react-native-tvos 0.82.1-0 → 0.83.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.
Files changed (1432) hide show
  1. package/Libraries/Animated/components/AnimatedFlatList.js +5 -3
  2. package/Libraries/Animated/components/AnimatedImage.js +4 -3
  3. package/Libraries/Animated/components/AnimatedSectionList.js +2 -2
  4. package/Libraries/Animated/components/AnimatedText.js +7 -3
  5. package/Libraries/Animated/components/AnimatedView.js +3 -2
  6. package/Libraries/Animated/createAnimatedComponent.js +24 -12
  7. package/Libraries/Animated/nodes/AnimatedColor.js +26 -10
  8. package/Libraries/AppDelegate/RCTAppDelegate.h +0 -2
  9. package/Libraries/AppDelegate/RCTAppDelegate.mm +1 -0
  10. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +16 -4
  11. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +5 -3
  12. package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
  13. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +36 -1
  14. package/Libraries/AppDelegate/RCTRootViewFactory.h +13 -1
  15. package/Libraries/AppDelegate/RCTRootViewFactory.mm +33 -6
  16. package/Libraries/Blob/RCTBlobCollector.mm +1 -1
  17. package/Libraries/Blob/RCTFileReaderModule.mm +6 -9
  18. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +43 -15
  19. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +2 -2
  20. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +2 -2
  21. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +2 -2
  22. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +3 -3
  23. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +2 -2
  24. package/Libraries/Components/ScrollView/ScrollView.js +1 -0
  25. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +6 -6
  26. package/Libraries/Components/Switch/Switch.d.ts +2 -2
  27. package/Libraries/Components/TextInput/TextInput.d.ts +2 -5
  28. package/Libraries/Components/TextInput/TextInput.js +6 -0
  29. package/Libraries/Components/Touchable/TouchableBounce.js +7 -7
  30. package/Libraries/Components/View/ReactNativeStyleAttributes.js +19 -1
  31. package/Libraries/Components/View/View.d.ts +2 -2
  32. package/Libraries/Components/View/ViewNativeComponent.js +14 -0
  33. package/Libraries/Core/ReactNativeVersion.js +2 -2
  34. package/Libraries/Core/setUpPerformance.js +2 -0
  35. package/Libraries/Debugging/DebuggingOverlay.js +14 -14
  36. package/Libraries/Debugging/DebuggingOverlayRegistry.js +8 -2
  37. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -2
  38. package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +39 -23
  39. package/Libraries/FBLazyVector/FBLazyVector/FBLazyVector.h +25 -15
  40. package/Libraries/Image/Image.d.ts +3 -3
  41. package/Libraries/Image/ImageInjection.js +3 -6
  42. package/Libraries/Image/ImageTypes.flow.js +3 -7
  43. package/Libraries/Image/RCTBundleAssetImageLoader.mm +2 -2
  44. package/Libraries/Image/RCTGIFImageDecoder.mm +2 -2
  45. package/Libraries/Image/RCTImageBlurUtils.mm +6 -5
  46. package/Libraries/Image/RCTImageEditingManager.mm +3 -5
  47. package/Libraries/Image/RCTImageLoader.mm +26 -37
  48. package/Libraries/Image/RCTImageShadowView.h +1 -1
  49. package/Libraries/Image/RCTImageShadowView.mm +1 -1
  50. package/Libraries/Image/RCTImageStoreManager.mm +13 -15
  51. package/Libraries/Image/RCTImageUtils.mm +41 -30
  52. package/Libraries/Image/RCTImageView.h +2 -2
  53. package/Libraries/Image/RCTImageView.mm +2 -2
  54. package/Libraries/Image/RCTImageViewManager.h +2 -2
  55. package/Libraries/Image/RCTImageViewManager.mm +13 -18
  56. package/Libraries/Image/RCTLocalAssetImageLoader.mm +2 -2
  57. package/Libraries/LinkingIOS/RCTLinkingManager.mm +8 -14
  58. package/Libraries/Lists/FlatList.js +8 -8
  59. package/Libraries/Lists/SectionList.d.ts +5 -1
  60. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  61. package/Libraries/Lists/VirtualizedList.js +1 -0
  62. package/Libraries/LogBox/UI/AnsiHighlight.js +4 -1
  63. package/Libraries/NativeAnimation/Drivers/RCTEventAnimation.mm +1 -1
  64. package/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.mm +9 -9
  65. package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +3 -3
  66. package/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.mm +1 -1
  67. package/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.mm +3 -3
  68. package/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.mm +1 -1
  69. package/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.mm +1 -1
  70. package/Libraries/NativeAnimation/RCTAnimationUtils.mm +8 -2
  71. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +9 -13
  72. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +9 -9
  73. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +9 -13
  74. package/Libraries/NativeComponent/BaseViewConfig.android.js +11 -2
  75. package/Libraries/NativeComponent/NativeComponentRegistry.d.ts +98 -0
  76. package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -0
  77. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +3 -1
  78. package/Libraries/Network/RCTDataRequestHandler.mm +4 -4
  79. package/Libraries/Network/RCTHTTPRequestHandler.h +1 -1
  80. package/Libraries/Network/RCTHTTPRequestHandler.mm +4 -4
  81. package/Libraries/Network/RCTInspectorNetworkReporter.h +8 -8
  82. package/Libraries/Network/RCTInspectorNetworkReporter.mm +20 -22
  83. package/Libraries/Network/RCTNetworkTask.h +5 -1
  84. package/Libraries/Network/RCTNetworkTask.mm +13 -0
  85. package/Libraries/Network/RCTNetworking+Internal.h +21 -0
  86. package/Libraries/Network/RCTNetworking.android.js +3 -1
  87. package/Libraries/Network/RCTNetworking.h +3 -0
  88. package/Libraries/Network/RCTNetworking.ios.js +3 -0
  89. package/Libraries/Network/RCTNetworking.mm +84 -37
  90. package/Libraries/Network/React-RCTNetwork.podspec +1 -0
  91. package/Libraries/Network/XMLHttpRequest.js +1 -41
  92. package/Libraries/Pressability/usePressability.js +14 -3
  93. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +5 -7
  94. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +20 -82
  95. package/Libraries/ReactNative/getNativeComponentAttributes.js +12 -0
  96. package/Libraries/Renderer/implementations/ReactFabric-dev.js +6759 -4478
  97. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3169 -3119
  98. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4732 -3535
  99. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +6646 -4070
  100. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3136 -2825
  101. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4761 -3312
  102. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  103. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  104. package/Libraries/Required/RCTRequired.h +14 -10
  105. package/Libraries/Settings/RCTSettingsManager.mm +2 -2
  106. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  107. package/Libraries/StyleSheet/StyleSheetTypes.js +44 -0
  108. package/Libraries/StyleSheet/processBackgroundPosition.js +284 -0
  109. package/Libraries/StyleSheet/processBackgroundRepeat.js +105 -0
  110. package/Libraries/StyleSheet/processBackgroundSize.js +104 -0
  111. package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +2 -2
  112. package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +2 -2
  113. package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +2 -2
  114. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +2 -2
  115. package/Libraries/Text/RCTTextAttributes.h +2 -2
  116. package/Libraries/Text/RCTTextAttributes.mm +2 -2
  117. package/Libraries/Text/RawText/RCTRawTextShadowView.h +2 -2
  118. package/Libraries/Text/RawText/RCTRawTextShadowView.mm +2 -2
  119. package/Libraries/Text/RawText/RCTRawTextViewManager.h +2 -2
  120. package/Libraries/Text/RawText/RCTRawTextViewManager.mm +2 -2
  121. package/Libraries/Text/Text/RCTTextShadowView.h +2 -2
  122. package/Libraries/Text/Text/RCTTextShadowView.mm +6 -7
  123. package/Libraries/Text/Text/RCTTextView.h +2 -2
  124. package/Libraries/Text/Text/RCTTextView.mm +2 -2
  125. package/Libraries/Text/Text/RCTTextViewManager.h +2 -2
  126. package/Libraries/Text/Text/RCTTextViewManager.mm +2 -2
  127. package/Libraries/Text/Text.d.ts +2 -2
  128. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +2 -2
  129. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +2 -2
  130. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +2 -2
  131. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +2 -2
  132. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +2 -2
  133. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +6 -7
  134. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +2 -2
  135. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +2 -2
  136. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +2 -2
  137. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +6 -9
  138. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +2 -2
  139. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +2 -2
  140. package/Libraries/Text/TextInput/RCTInputAccessoryView.h +2 -2
  141. package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +2 -2
  142. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +2 -2
  143. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +2 -2
  144. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +2 -2
  145. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +2 -2
  146. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +2 -2
  147. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +2 -2
  148. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +2 -2
  149. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +2 -2
  150. package/Libraries/Text/TextNativeComponent.js +10 -0
  151. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +2 -2
  152. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +2 -2
  153. package/Libraries/Text/VirtualText/RCTVirtualTextView.h +2 -2
  154. package/Libraries/Text/VirtualText/RCTVirtualTextView.mm +2 -2
  155. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +2 -2
  156. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +2 -2
  157. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -9
  158. package/Libraries/TypeSafety/RCTConvertHelpers.h +1 -1
  159. package/Libraries/TypeSafety/RCTTypedModuleConstants.mm +3 -5
  160. package/Libraries/Utilities/DevLoadingView.js +14 -6
  161. package/Libraries/Utilities/HMRClient.js +13 -5
  162. package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +2 -2
  163. package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +2 -2
  164. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +2 -2
  165. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +2 -2
  166. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +2 -2
  167. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +2 -2
  168. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +2 -2
  169. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +2 -2
  170. package/Libraries/Wrapper/RCTWrapper.h +2 -2
  171. package/Libraries/Wrapper/RCTWrapperShadowView.h +2 -2
  172. package/Libraries/Wrapper/RCTWrapperShadowView.m +2 -2
  173. package/Libraries/Wrapper/RCTWrapperView.h +2 -2
  174. package/Libraries/Wrapper/RCTWrapperView.m +2 -2
  175. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +2 -2
  176. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +2 -2
  177. package/Libraries/Wrapper/RCTWrapperViewManager.h +2 -2
  178. package/Libraries/Wrapper/RCTWrapperViewManager.m +2 -2
  179. package/README-core.md +5 -2
  180. package/React/Base/RCTAssert.h +7 -42
  181. package/React/Base/RCTAssert.m +1 -113
  182. package/React/Base/RCTBridge+Private.h +4 -4
  183. package/React/Base/RCTBridge.mm +5 -6
  184. package/React/Base/RCTBridgeDelegate.h +2 -2
  185. package/React/Base/RCTBridgeModule.h +24 -10
  186. package/React/Base/RCTBridgeProxy.mm +8 -8
  187. package/React/Base/RCTBundleManager.h +2 -2
  188. package/React/Base/RCTBundleManager.m +10 -10
  189. package/React/Base/RCTBundleURLProvider.mm +4 -4
  190. package/React/Base/RCTCallableJSModules.m +6 -6
  191. package/React/Base/RCTConvert.h +8 -3
  192. package/React/Base/RCTConvert.mm +2 -2
  193. package/React/Base/RCTDefines.h +0 -10
  194. package/React/Base/RCTJavaScriptExecutor.h +2 -2
  195. package/React/Base/RCTLog.h +6 -4
  196. package/React/Base/RCTMockDef.h +3 -6
  197. package/React/Base/RCTModuleData.mm +3 -3
  198. package/React/Base/RCTModuleMethod.mm +13 -11
  199. package/React/Base/RCTModuleRegistry.m +8 -8
  200. package/React/Base/RCTRootContentView.h +2 -2
  201. package/React/Base/RCTRootContentView.m +2 -2
  202. package/React/Base/RCTRootView.m +3 -3
  203. package/React/Base/RCTRootViewInternal.h +2 -2
  204. package/React/Base/RCTUtils.mm +5 -5
  205. package/React/Base/RCTVersion.m +2 -2
  206. package/React/Base/RCTViewRegistry.m +8 -8
  207. package/React/Base/Surface/RCTSurface.mm +3 -4
  208. package/React/Base/Surface/RCTSurfaceRootShadowView.m +3 -3
  209. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceSizeMeasureMode.mm +4 -4
  210. package/React/CoreModules/RCTAccessibilityManager.mm +25 -30
  211. package/React/CoreModules/RCTActionSheetManager.mm +38 -20
  212. package/React/CoreModules/RCTAlertController.mm +2 -2
  213. package/React/CoreModules/RCTAlertManager.mm +2 -2
  214. package/React/CoreModules/RCTAppearance.h +1 -1
  215. package/React/CoreModules/RCTDevLoadingView.mm +6 -14
  216. package/React/CoreModules/RCTDevMenu.h +30 -1
  217. package/React/CoreModules/RCTDevMenu.mm +99 -19
  218. package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +23 -0
  219. package/React/CoreModules/RCTDevMenuConfigurationDecorator.mm +52 -0
  220. package/React/CoreModules/RCTDevSettings.h +5 -0
  221. package/React/CoreModules/RCTDevSettings.mm +8 -1
  222. package/React/CoreModules/RCTDevToolsRuntimeSettingsModule.mm +2 -2
  223. package/React/CoreModules/RCTDeviceInfo.h +2 -0
  224. package/React/CoreModules/RCTDeviceInfo.mm +21 -4
  225. package/React/CoreModules/RCTEventDispatcher.mm +10 -8
  226. package/React/CoreModules/RCTExceptionsManager.mm +13 -15
  227. package/React/CoreModules/RCTFPSGraph.mm +3 -3
  228. package/React/CoreModules/RCTLogBox.mm +8 -8
  229. package/React/CoreModules/RCTLogBoxView.h +2 -2
  230. package/React/CoreModules/RCTLogBoxView.mm +7 -9
  231. package/React/CoreModules/RCTPerfMonitor.mm +19 -19
  232. package/React/CoreModules/RCTTiming.mm +3 -5
  233. package/React/CoreModules/RCTWebSocketModule.mm +3 -5
  234. package/React/CoreModules/React-CoreModules.podspec +1 -0
  235. package/React/CxxBridge/RCTCxxBridge.mm +9 -28
  236. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.h +3 -4
  237. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.mm +2 -2
  238. package/React/CxxBridge/RCTMessageThread.h +6 -7
  239. package/React/CxxBridge/RCTMessageThread.mm +1 -1
  240. package/React/CxxBridge/RCTObjcExecutor.h +4 -7
  241. package/React/CxxBridge/RCTObjcExecutor.mm +5 -5
  242. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.h +1 -1
  243. package/React/CxxModule/DispatchMessageQueueThread.h +2 -2
  244. package/React/CxxModule/RCTCxxMethod.mm +1 -1
  245. package/React/CxxModule/RCTCxxUtils.h +2 -2
  246. package/React/CxxModule/RCTCxxUtils.mm +8 -7
  247. package/React/CxxModule/RCTNativeModule.h +8 -12
  248. package/React/CxxModule/RCTNativeModule.mm +7 -7
  249. package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -4
  250. package/React/DevSupport/RCTInspectorNetworkHelper.mm +2 -2
  251. package/React/DevSupport/RCTPackagerConnection.h +1 -1
  252. package/React/DevSupport/RCTPackagerConnection.mm +1 -0
  253. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +1 -1
  254. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +6 -0
  255. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +3709 -5764
  256. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +8 -2
  257. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +1 -0
  258. package/React/Fabric/AppleEventBeat.h +3 -4
  259. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +2 -2
  260. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +6 -2
  261. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +2 -1
  262. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +311 -51
  263. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -11
  264. package/React/Fabric/Mounting/RCTMountingManager.mm +1 -1
  265. package/React/Fabric/Mounting/RCTMountingTransactionObserverCoordinator.h +7 -10
  266. package/React/Fabric/RCTSurfacePointerHandler.mm +1 -1
  267. package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
  268. package/React/Fabric/Utils/PlatformRunLoopObserver.h +5 -11
  269. package/React/Fabric/Utils/PlatformRunLoopObserver.mm +1 -1
  270. package/React/Fabric/Utils/RCTBackgroundImageUtils.h +28 -0
  271. package/React/Fabric/Utils/RCTBackgroundImageUtils.mm +209 -0
  272. package/React/Fabric/Utils/RCTBoxShadow.mm +1 -1
  273. package/React/Fabric/Utils/RCTGradientUtils.mm +4 -0
  274. package/React/Fabric/Utils/RCTIdentifierPool.h +6 -3
  275. package/React/Fabric/Utils/RCTLinearGradient.mm +1 -0
  276. package/React/Fabric/Utils/RCTRadialGradient.mm +11 -9
  277. package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.h +5 -8
  278. package/React/Inspector/RCTCxxInspectorPackagerConnectionDelegate.mm +1 -1
  279. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +2 -2
  280. package/React/Modules/RCTUIManager.mm +36 -55
  281. package/React/Profiler/RCTProfile.h +6 -6
  282. package/React/Profiler/RCTProfile.m +47 -44
  283. package/React/React-RCTFabric.podspec +2 -1
  284. package/React/Runtime/React-RCTRuntime.podspec +1 -0
  285. package/React/Views/RCTActivityIndicatorView.h +2 -2
  286. package/React/Views/RCTActivityIndicatorView.m +2 -2
  287. package/React/Views/RCTActivityIndicatorViewManager.h +3 -3
  288. package/React/Views/RCTActivityIndicatorViewManager.m +2 -2
  289. package/React/Views/RCTBorderDrawing.h +1 -1
  290. package/React/Views/RCTBorderDrawing.m +37 -35
  291. package/React/Views/RCTComponentData.mm +19 -19
  292. package/React/Views/RCTConvert+CoreLocation.m +2 -2
  293. package/React/Views/RCTDebuggingOverlayManager.h +2 -2
  294. package/React/Views/RCTDebuggingOverlayManager.m +2 -2
  295. package/React/Views/RCTFont+Private.h +16 -0
  296. package/React/Views/RCTFont.h +3 -1
  297. package/React/Views/RCTFont.mm +13 -2
  298. package/React/Views/RCTLayout.m +21 -25
  299. package/React/Views/RCTModalHostView.h +2 -2
  300. package/React/Views/RCTModalHostView.m +2 -2
  301. package/React/Views/RCTModalHostViewController.h +2 -2
  302. package/React/Views/RCTModalHostViewController.m +2 -2
  303. package/React/Views/RCTModalHostViewManager.h +2 -2
  304. package/React/Views/RCTModalHostViewManager.m +2 -2
  305. package/React/Views/RCTModalManager.h +2 -2
  306. package/React/Views/RCTModalManager.m +2 -2
  307. package/React/Views/RCTRootShadowView.m +3 -3
  308. package/React/Views/RCTShadowView+Layout.m +12 -15
  309. package/React/Views/RCTShadowView.m +5 -6
  310. package/React/Views/RCTSwitch.h +2 -2
  311. package/React/Views/RCTSwitch.m +2 -2
  312. package/React/Views/RCTSwitchManager.h +2 -2
  313. package/React/Views/RCTSwitchManager.m +2 -2
  314. package/React/Views/RCTViewManager.m +2 -2
  315. package/React/Views/RefreshControl/RCTRefreshControl.h +2 -2
  316. package/React/Views/RefreshControl/RCTRefreshControl.m +2 -2
  317. package/React/Views/RefreshControl/RCTRefreshControlManager.h +2 -2
  318. package/React/Views/RefreshControl/RCTRefreshControlManager.m +2 -2
  319. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.h +2 -2
  320. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.m +2 -2
  321. package/React/Views/SafeAreaView/RCTSafeAreaView.h +2 -2
  322. package/React/Views/SafeAreaView/RCTSafeAreaView.m +2 -2
  323. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.h +2 -2
  324. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.m +2 -2
  325. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.h +2 -2
  326. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.m +2 -2
  327. package/React/Views/ScrollView/RCTScrollContentShadowView.h +2 -2
  328. package/React/Views/ScrollView/RCTScrollContentShadowView.m +2 -2
  329. package/React/Views/ScrollView/RCTScrollContentView.h +2 -2
  330. package/React/Views/ScrollView/RCTScrollContentView.m +2 -2
  331. package/React/Views/ScrollView/RCTScrollContentViewManager.h +2 -2
  332. package/React/Views/ScrollView/RCTScrollContentViewManager.m +2 -2
  333. package/React/Views/ScrollView/RCTScrollView.h +2 -2
  334. package/React/Views/ScrollView/RCTScrollView.m +6 -7
  335. package/React/Views/ScrollView/RCTScrollViewManager.h +3 -3
  336. package/React/Views/ScrollView/RCTScrollViewManager.m +4 -7
  337. package/ReactAndroid/api/ReactAndroid.api +92 -10
  338. package/ReactAndroid/build.gradle.kts +8 -5
  339. package/ReactAndroid/external-artifacts/build.gradle.kts +2 -47
  340. package/ReactAndroid/gradle.properties +1 -1
  341. package/ReactAndroid/hermes-engine/build.gradle.kts +4 -11
  342. package/ReactAndroid/proguard-rules.pro +5 -0
  343. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +25 -1
  344. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +5 -1
  345. package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +21 -0
  346. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +0 -11
  347. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +2 -2
  348. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +1 -1
  349. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.kt +1 -1
  350. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +37 -9
  351. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +87 -50
  352. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +1 -7
  353. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +1 -1
  354. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +1 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +13 -3
  356. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevMenuConfiguration.kt +20 -0
  357. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +5 -1
  358. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +134 -31
  359. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt +13 -1
  360. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +7 -0
  361. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +2 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +16 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorDevHelper.kt +4 -0
  364. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +13 -2
  365. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +108 -0
  366. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +219 -0
  367. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +4 -9
  368. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -56
  369. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +47 -32
  370. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +13 -26
  371. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +143 -5
  372. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DestroyUnmountedViewMountItem.kt +3 -3
  373. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +2 -4
  374. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PrefetchResourcesMountItem.kt +35 -0
  375. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.kt +6 -6
  376. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SynchronousMountItem.kt +38 -0
  377. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +101 -11
  378. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +170 -20
  379. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +35 -5
  380. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +40 -10
  381. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +188 -23
  382. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +2 -2
  383. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
  384. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +3 -9
  385. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +35 -5
  386. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +5 -3
  387. package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +109 -0
  388. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +3 -3
  389. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +12 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +9 -2
  391. package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +3 -1
  392. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +2 -2
  393. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/InspectorNetworkReporter.kt +11 -11
  394. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +20 -11
  395. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +126 -11
  396. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.kt +20 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +3 -3
  398. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.kt +1 -10
  399. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  400. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +20 -4
  401. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +13 -2
  402. package/ReactAndroid/src/main/java/com/facebook/react/runtime/JSTimerExecutor.kt +9 -4
  403. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +127 -91
  404. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +1 -1
  405. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +15 -12
  406. package/ReactAndroid/src/main/java/com/facebook/react/runtime/{BridgelessReactStateTracker.kt → ReactHostStateTracker.kt} +6 -7
  407. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +1 -5
  408. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactLifecycleStateManager.kt +9 -11
  409. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +0 -8
  410. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +261 -147
  411. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +14 -1
  412. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolver.kt +11 -1
  413. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolverBinding.kt +12 -0
  414. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +6 -1
  415. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +16 -0
  416. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FloatUtil.kt +33 -0
  417. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +7 -9
  418. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +3 -5
  419. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRoot.kt +66 -0
  420. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +1 -3
  421. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +2 -1
  422. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -6
  423. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -2
  424. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +3 -2
  425. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +3 -0
  426. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +0 -48
  427. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +415 -0
  428. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +15 -18
  429. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +22 -174
  430. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +1 -3
  431. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundPosition.kt +59 -0
  432. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundRepeat.kt +46 -0
  433. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundSize.kt +103 -0
  434. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +5 -5
  435. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +1 -1
  436. package/ReactAndroid/src/main/java/com/facebook/react/views/image/MultiPostprocessor.kt +1 -1
  437. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +107 -14
  438. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +6 -0
  439. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +101 -16
  440. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +63 -18
  441. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +6 -0
  442. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.kt +5 -1
  443. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +50 -51
  444. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +92 -0
  445. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +526 -0
  446. package/ReactAndroid/src/main/java/com/facebook/react/views/text/DefaultStyleValuesUtil.kt +4 -0
  447. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +3 -5
  448. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +2 -0
  449. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +7 -0
  450. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +4 -0
  451. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +16 -7
  452. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +22 -0
  453. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +78 -1
  454. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +16 -5
  455. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +61 -3
  456. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager.kt +2 -2
  457. package/ReactAndroid/src/main/jni/CMakeLists.txt +15 -0
  458. package/ReactAndroid/src/main/jni/first-party/fbgloginit/fb/glog_init.h +1 -1
  459. package/ReactAndroid/src/main/jni/first-party/fbgloginit/glog_init.cpp +1 -1
  460. package/ReactAndroid/src/main/jni/first-party/jni-hack/real/jni.h +656 -643
  461. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.h +57 -59
  462. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +3 -2
  463. package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +8 -1
  464. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h +10 -12
  465. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.h +6 -14
  466. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.h +2 -4
  467. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocketDelegate.h +4 -8
  468. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +3 -4
  469. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorNetworkReporter.cpp +26 -23
  470. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorNetworkReporter.h +13 -21
  471. package/ReactAndroid/src/main/jni/react/fabric/AndroidEventBeat.h +4 -5
  472. package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.h +2 -3
  473. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +53 -47
  474. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h +3 -2
  475. package/ReactAndroid/src/main/jni/react/fabric/EventBeatManager.h +4 -6
  476. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +5 -7
  477. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +87 -58
  478. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +12 -23
  479. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +22 -46
  480. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +6 -4
  481. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.h +7 -7
  482. package/ReactAndroid/src/main/jni/react/fabric/JFabricUIManager.h +2 -3
  483. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +11 -19
  484. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +3 -5
  485. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.h +5 -9
  486. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +236 -26
  487. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +51 -6
  488. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesMemoryDumper.h +13 -14
  489. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.h +4 -7
  490. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +2 -1
  491. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -5
  492. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +23 -40
  493. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +7 -8
  494. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +6 -9
  495. package/ReactAndroid/src/main/jni/react/jni/InspectorNetworkRequestListener.h +5 -11
  496. package/ReactAndroid/src/main/jni/react/jni/JCallback.h +6 -6
  497. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.cpp +7 -4
  498. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.h +3 -3
  499. package/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h +3 -4
  500. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +1 -2
  501. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.h +8 -22
  502. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +3 -7
  503. package/ReactAndroid/src/main/jni/react/jni/JRuntimeExecutor.h +1 -2
  504. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +1 -2
  505. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  506. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -5
  507. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +1 -1
  508. package/ReactAndroid/src/main/jni/react/jni/JWeakRefUtils.h +2 -2
  509. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +1 -1
  510. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.h +19 -28
  511. package/ReactAndroid/src/main/jni/react/jni/JavaScriptExecutorHolder.h +6 -8
  512. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +1 -1
  513. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.h +10 -17
  514. package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +1 -1
  515. package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.h +11 -13
  516. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +10 -8
  517. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +6 -11
  518. package/ReactAndroid/src/main/jni/react/jni/NativeArray.h +7 -7
  519. package/ReactAndroid/src/main/jni/react/jni/NativeCommon.h +5 -6
  520. package/ReactAndroid/src/main/jni/react/jni/NativeMap.h +6 -6
  521. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +1 -1
  522. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +16 -28
  523. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.h +6 -8
  524. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeMap.h +4 -9
  525. package/ReactAndroid/src/main/jni/react/jni/SafeReleaseJniRef.h +20 -12
  526. package/ReactAndroid/src/main/jni/react/jni/TransformHelper.h +1 -2
  527. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +6 -9
  528. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +7 -10
  529. package/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JReadableMapBuffer.h +3 -5
  530. package/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JWritableMapBuffer.h +1 -2
  531. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +7 -6
  532. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h +5 -11
  533. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h +12 -21
  534. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +4 -8
  535. package/ReactAndroid/src/main/jni/react/reactperflogger/reactperflogger/JNativeModulePerfLogger.h +2 -4
  536. package/ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/ReactCommon/CxxReactPackage.h +3 -4
  537. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +5 -11
  538. package/ReactAndroid/src/main/jni/react/runtime/jni/JBindingsInstaller.h +2 -4
  539. package/ReactAndroid/src/main/jni/react/runtime/jni/JJSRuntimeFactory.h +2 -4
  540. package/ReactAndroid/src/main/jni/react/runtime/jni/JJSTimerExecutor.cpp +6 -0
  541. package/ReactAndroid/src/main/jni/react/runtime/jni/JJSTimerExecutor.h +6 -5
  542. package/ReactAndroid/src/main/jni/react/runtime/jni/JJavaTimerManager.h +1 -2
  543. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +3 -7
  544. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +15 -12
  545. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +44 -58
  546. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -10
  547. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +14 -36
  548. package/ReactAndroid/src/main/jni/react/runtime/jni/JavaTimerRegistry.h +1 -2
  549. package/ReactAndroid/src/main/jni/react/tracing/OnLoad.cpp +16 -0
  550. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +241 -0
  551. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.h +63 -0
  552. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h +7 -14
  553. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h +3 -3
  554. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h +5 -7
  555. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +9 -19
  556. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h +6 -8
  557. package/ReactAndroid/src/main/jni/react/uimanager/ComponentNameResolverBinding.h +2 -4
  558. package/ReactAndroid/src/main/jni/react/uimanager/UIConstantsProviderBinding.h +19 -30
  559. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -0
  560. package/ReactAndroid/src/main/res/views/uimanager/values-bn/strings.xml +1 -1
  561. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +26 -0
  562. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +94 -0
  563. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +39 -0
  564. package/ReactApple/RCTSwiftUI/RCTSwiftUIContainerView.swift +132 -0
  565. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.h +29 -0
  566. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.m +81 -0
  567. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +38 -0
  568. package/ReactCommon/React-Fabric.podspec +17 -0
  569. package/ReactCommon/callinvoker/ReactCommon/CallInvoker.h +13 -16
  570. package/ReactCommon/callinvoker/ReactCommon/tests/TestCallInvoker.h +10 -7
  571. package/ReactCommon/cxxreact/CxxModule.h +58 -87
  572. package/ReactCommon/cxxreact/CxxNativeModule.cpp +2 -2
  573. package/ReactCommon/cxxreact/CxxNativeModule.h +10 -19
  574. package/ReactCommon/cxxreact/ErrorUtils.h +4 -6
  575. package/ReactCommon/cxxreact/Instance.cpp +2 -2
  576. package/ReactCommon/cxxreact/Instance.h +24 -41
  577. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  578. package/ReactCommon/cxxreact/JSBigString.h +28 -20
  579. package/ReactCommon/cxxreact/JSBundleType.h +5 -4
  580. package/ReactCommon/cxxreact/JSExecutor.cpp +2 -2
  581. package/ReactCommon/cxxreact/JSExecutor.h +22 -40
  582. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +2 -2
  583. package/ReactCommon/cxxreact/JSIndexedRAMBundle.h +13 -20
  584. package/ReactCommon/cxxreact/JSModulesUnbundle.h +7 -7
  585. package/ReactCommon/cxxreact/JsArgumentHelpers-inl.h +33 -41
  586. package/ReactCommon/cxxreact/JsArgumentHelpers.h +17 -26
  587. package/ReactCommon/cxxreact/MessageQueueThread.h +2 -2
  588. package/ReactCommon/cxxreact/MethodCall.cpp +2 -2
  589. package/ReactCommon/cxxreact/MethodCall.h +8 -10
  590. package/ReactCommon/cxxreact/ModuleRegistry.cpp +3 -3
  591. package/ReactCommon/cxxreact/ModuleRegistry.h +10 -23
  592. package/ReactCommon/cxxreact/MoveWrapper.h +17 -11
  593. package/ReactCommon/cxxreact/NativeModule.h +9 -15
  594. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +4 -4
  595. package/ReactCommon/cxxreact/NativeToJsBridge.h +11 -17
  596. package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +4 -4
  597. package/ReactCommon/cxxreact/RAMBundleRegistry.h +8 -11
  598. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
  599. package/ReactCommon/cxxreact/ReactMarker.h +15 -23
  600. package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
  601. package/ReactCommon/cxxreact/RecoverableError.h +6 -5
  602. package/ReactCommon/cxxreact/SystraceSection.h +4 -4
  603. package/ReactCommon/cxxreact/TraceSection.h +25 -35
  604. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.h +9 -12
  605. package/ReactCommon/hermes/executor/HermesExecutorFactory.h +9 -14
  606. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +3 -2
  607. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +7 -14
  608. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.cpp +26 -25
  609. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.h +8 -11
  610. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeSamplingProfileSerializer.h +4 -3
  611. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +54 -0
  612. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h +9 -15
  613. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +1 -3
  614. package/ReactCommon/jsc/JSCRuntime.cpp +85 -62
  615. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -1
  616. package/ReactCommon/jserrorhandler/JsErrorHandler.h +7 -21
  617. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -3
  618. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +599 -233
  619. package/ReactCommon/jsi/jsi/decorator.h +112 -108
  620. package/ReactCommon/jsi/jsi/hermes.h +189 -0
  621. package/ReactCommon/jsi/jsi/instrumentation.h +3 -0
  622. package/ReactCommon/jsi/jsi/jsi.cpp +4 -0
  623. package/ReactCommon/jsi/jsi/test/testlib.cpp +86 -67
  624. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -0
  625. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +13 -8
  626. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +32 -43
  627. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +2 -2
  628. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.h +5 -8
  629. package/ReactCommon/jsinspector-modern/Base64.h +11 -10
  630. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -0
  631. package/ReactCommon/jsinspector-modern/ConsoleMessage.h +13 -18
  632. package/ReactCommon/jsinspector-modern/EnumArray.h +46 -0
  633. package/ReactCommon/jsinspector-modern/ExecutionContext.h +14 -22
  634. package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.cpp +10 -9
  635. package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h +2 -2
  636. package/ReactCommon/jsinspector-modern/FallbackRuntimeTargetDelegate.cpp +6 -0
  637. package/ReactCommon/jsinspector-modern/FallbackRuntimeTargetDelegate.h +7 -9
  638. package/ReactCommon/jsinspector-modern/HostAgent.cpp +124 -40
  639. package/ReactCommon/jsinspector-modern/HostAgent.h +30 -14
  640. package/ReactCommon/jsinspector-modern/HostTarget.cpp +75 -34
  641. package/ReactCommon/jsinspector-modern/HostTarget.h +73 -51
  642. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +7 -7
  643. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +9 -5
  644. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -7
  645. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +42 -0
  646. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +22 -16
  647. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +9 -7
  648. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +2 -4
  649. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +18 -29
  650. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +17 -15
  651. package/ReactCommon/jsinspector-modern/InstanceAgent.h +7 -10
  652. package/ReactCommon/jsinspector-modern/InstanceTarget.h +15 -22
  653. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +84 -68
  654. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +30 -34
  655. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +6 -68
  656. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +7 -28
  657. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  658. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +52 -34
  659. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +10 -29
  660. package/ReactCommon/jsinspector-modern/RuntimeAgentDelegate.h +3 -2
  661. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +95 -18
  662. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +93 -44
  663. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +43 -45
  664. package/ReactCommon/jsinspector-modern/RuntimeTargetNetwork.cpp +98 -0
  665. package/ReactCommon/jsinspector-modern/ScopedExecutor.h +43 -18
  666. package/ReactCommon/jsinspector-modern/SessionState.h +2 -2
  667. package/ReactCommon/jsinspector-modern/StackTrace.h +6 -5
  668. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +40 -26
  669. package/ReactCommon/jsinspector-modern/TracingAgent.h +10 -11
  670. package/ReactCommon/jsinspector-modern/UniqueMonostate.h +14 -9
  671. package/ReactCommon/jsinspector-modern/Utf8.h +4 -5
  672. package/ReactCommon/jsinspector-modern/WeakList.h +9 -5
  673. package/ReactCommon/jsinspector-modern/WebSocketInterfaces.h +1 -3
  674. package/ReactCommon/jsinspector-modern/cdp/CdpJson.cpp +2 -2
  675. package/ReactCommon/jsinspector-modern/cdp/CdpJson.h +6 -15
  676. package/ReactCommon/jsinspector-modern/network/BoundedRequestBuffer.cpp +2 -2
  677. package/ReactCommon/jsinspector-modern/network/BoundedRequestBuffer.h +3 -7
  678. package/ReactCommon/jsinspector-modern/network/CMakeLists.txt +1 -3
  679. package/ReactCommon/jsinspector-modern/network/CdpNetwork.cpp +9 -20
  680. package/ReactCommon/jsinspector-modern/network/CdpNetwork.h +7 -14
  681. package/ReactCommon/jsinspector-modern/network/HttpUtils.cpp +2 -1
  682. package/ReactCommon/jsinspector-modern/network/HttpUtils.h +4 -3
  683. package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +246 -0
  684. package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +147 -0
  685. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +0 -3
  686. package/ReactCommon/jsinspector-modern/tests/ConsoleApiTest.cpp +24 -14
  687. package/ReactCommon/jsinspector-modern/tests/DebuggerSessionObserverTest.cpp +195 -0
  688. package/ReactCommon/jsinspector-modern/tests/FollyDynamicMatchers.h +16 -22
  689. package/ReactCommon/jsinspector-modern/tests/GmockHelpers.h +25 -0
  690. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +8 -5
  691. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +55 -57
  692. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +163 -124
  693. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +120 -24
  694. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.h +107 -43
  695. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +825 -0
  696. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +15 -28
  697. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +9 -12
  698. package/ReactCommon/jsinspector-modern/tests/ReactNativeMocks.h +5 -4
  699. package/ReactCommon/jsinspector-modern/tests/UniquePtrFactory.h +21 -20
  700. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +0 -5
  701. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.h +4 -4
  702. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +6 -5
  703. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.h +4 -4
  704. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +12 -0
  705. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +6 -7
  706. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +2 -0
  707. package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.cpp +22 -0
  708. package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h +8 -3
  709. package/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h +4 -4
  710. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +369 -123
  711. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +144 -30
  712. package/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h +22 -20
  713. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +6 -0
  714. package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfile.h +22 -18
  715. package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h +8 -9
  716. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +3 -2
  717. package/ReactCommon/jsinspector-modern/tracing/Timing.h +8 -12
  718. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +8 -2
  719. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +3 -0
  720. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +6 -10
  721. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.h +4 -4
  722. package/ReactCommon/jsinspector-modern/tracing/tests/ProfileTreeNodeTest.cpp +12 -4
  723. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -0
  724. package/ReactCommon/jsitooling/react/runtime/JSRuntimeFactory.h +7 -9
  725. package/ReactCommon/jsitooling/react/runtime/JSRuntimeFactoryCAPI.h +1 -1
  726. package/ReactCommon/logger/react_native_log.h +7 -7
  727. package/ReactCommon/react/bridging/AString.h +8 -6
  728. package/ReactCommon/react/bridging/Array.h +32 -49
  729. package/ReactCommon/react/bridging/Base.h +27 -76
  730. package/ReactCommon/react/bridging/Bool.h +4 -2
  731. package/ReactCommon/react/bridging/CallbackWrapper.h +19 -18
  732. package/ReactCommon/react/bridging/Class.h +25 -48
  733. package/ReactCommon/react/bridging/Convert.h +38 -31
  734. package/ReactCommon/react/bridging/Dynamic.h +4 -2
  735. package/ReactCommon/react/bridging/Error.h +11 -6
  736. package/ReactCommon/react/bridging/EventEmitter.h +47 -45
  737. package/ReactCommon/react/bridging/Function.h +69 -89
  738. package/ReactCommon/react/bridging/HighResTimeStamp.h +8 -8
  739. package/ReactCommon/react/bridging/LongLivedObject.h +6 -6
  740. package/ReactCommon/react/bridging/Number.h +16 -8
  741. package/ReactCommon/react/bridging/Object.h +17 -24
  742. package/ReactCommon/react/bridging/Promise.h +17 -17
  743. package/ReactCommon/react/bridging/Value.h +20 -29
  744. package/ReactCommon/react/bridging/tests/BridgingTest.cpp +16 -13
  745. package/ReactCommon/react/bridging/tests/BridgingTest.h +24 -16
  746. package/ReactCommon/react/bridging/tests/ClassTest.cpp +6 -5
  747. package/ReactCommon/react/debug/react_native_assert.h +2 -7
  748. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +69 -9
  749. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +85 -10
  750. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +361 -91
  751. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +36 -6
  752. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +70 -10
  753. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +151 -16
  754. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +2 -2
  755. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
  756. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +11 -7
  757. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +18 -3
  758. package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.h +2 -6
  759. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +7 -16
  760. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +24 -36
  761. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -1
  762. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +8 -10
  763. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModulePerfLogger.h +38 -67
  764. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +5 -8
  765. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.h +2 -4
  766. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h +5 -7
  767. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +2 -1
  768. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -13
  769. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +8 -7
  770. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +15 -15
  771. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +7 -0
  772. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +38 -12
  773. package/ReactCommon/react/nativemodule/core/tests/TurboModuleTestFixture.h +57 -37
  774. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +17 -14
  775. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +2 -2
  776. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  777. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  778. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.h +2 -2
  779. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +7 -2
  780. package/ReactCommon/react/nativemodule/devtoolsruntimesettings/DevToolsRuntimeSettingsModule.h +3 -6
  781. package/ReactCommon/react/nativemodule/dom/NativeDOM.h +28 -66
  782. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.h +4 -7
  783. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/internal/FantomForcedCloneCommitHook.cpp +4 -3
  784. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/internal/FantomForcedCloneCommitHook.h +5 -7
  785. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +86 -11
  786. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +36 -6
  787. package/ReactCommon/react/nativemodule/idlecallbacks/NativeIdleCallbacks.h +6 -10
  788. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +2 -0
  789. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +43 -48
  790. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +66 -0
  791. package/ReactCommon/react/nativemodule/microtasks/NativeMicrotasks.h +1 -1
  792. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +8 -7
  793. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +20 -31
  794. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleJSIBindings.h +4 -6
  795. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.h +3 -3
  796. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleLegacyModule.mm +10 -16
  797. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +6 -8
  798. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +3 -0
  799. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +40 -58
  800. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +2 -0
  801. package/ReactCommon/react/networking/CMakeLists.txt +30 -0
  802. package/ReactCommon/react/networking/NetworkReporter.cpp +251 -0
  803. package/ReactCommon/react/networking/NetworkReporter.h +148 -0
  804. package/ReactCommon/{jsinspector-modern/network → react/networking}/NetworkTypes.h +2 -2
  805. package/ReactCommon/react/networking/React-networking.podspec +52 -0
  806. package/ReactCommon/react/performance/cdpmetrics/CdpInteractionTypes.cpp +1 -1
  807. package/ReactCommon/react/performance/cdpmetrics/CdpInteractionTypes.h +3 -4
  808. package/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.cpp +1 -24
  809. package/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h +5 -6
  810. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +60 -0
  811. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +37 -0
  812. package/ReactCommon/react/performance/timeline/CircularBuffer.h +24 -19
  813. package/ReactCommon/react/performance/timeline/PerformanceEntry.h +10 -9
  814. package/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h +4 -6
  815. package/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h +4 -6
  816. package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h +5 -7
  817. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +33 -26
  818. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +42 -51
  819. package/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h +10 -4
  820. package/ReactCommon/react/performance/timeline/PerformanceObserver.h +16 -19
  821. package/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h +2 -5
  822. package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +6 -2
  823. package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +17 -14
  824. package/ReactCommon/react/renderer/animated/AnimatedModule.h +31 -40
  825. package/ReactCommon/react/renderer/animated/CMakeLists.txt +2 -0
  826. package/ReactCommon/react/renderer/animated/EventEmitterListener.h +10 -11
  827. package/ReactCommon/react/renderer/animated/MergedValueDispatcher.h +4 -7
  828. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +250 -30
  829. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +55 -51
  830. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +52 -25
  831. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +18 -21
  832. package/ReactCommon/react/renderer/animated/drivers/AnimationDriver.h +16 -12
  833. package/ReactCommon/react/renderer/animated/drivers/AnimationDriverUtils.h +3 -3
  834. package/ReactCommon/react/renderer/animated/drivers/DecayAnimationDriver.h +1 -1
  835. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h +1 -1
  836. package/ReactCommon/react/renderer/animated/drivers/SpringAnimationDriver.h +2 -3
  837. package/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +9 -10
  838. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +6 -5
  839. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +4 -6
  840. package/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +2 -1
  841. package/ReactCommon/react/renderer/animated/nodes/AdditionAnimatedNode.h +4 -5
  842. package/ReactCommon/react/renderer/animated/nodes/AnimatedNode.cpp +2 -0
  843. package/ReactCommon/react/renderer/animated/nodes/AnimatedNode.h +20 -17
  844. package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.h +1 -4
  845. package/ReactCommon/react/renderer/animated/nodes/DiffClampAnimatedNode.h +1 -4
  846. package/ReactCommon/react/renderer/animated/nodes/DivisionAnimatedNode.h +4 -5
  847. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +1 -4
  848. package/ReactCommon/react/renderer/animated/nodes/ModulusAnimatedNode.h +1 -4
  849. package/ReactCommon/react/renderer/animated/nodes/MultiplicationAnimatedNode.h +4 -5
  850. package/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.cpp +121 -0
  851. package/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.h +33 -0
  852. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +7 -0
  853. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +5 -6
  854. package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.h +1 -4
  855. package/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.cpp +7 -0
  856. package/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.h +4 -6
  857. package/ReactCommon/react/renderer/animated/nodes/SubtractionAnimatedNode.h +4 -5
  858. package/ReactCommon/react/renderer/animated/nodes/TrackingAnimatedNode.h +1 -4
  859. package/ReactCommon/react/renderer/animated/nodes/TransformAnimatedNode.h +2 -5
  860. package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.h +5 -10
  861. package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +51 -0
  862. package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +9 -5
  863. package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +40 -0
  864. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +52 -0
  865. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +176 -0
  866. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +59 -0
  867. package/ReactCommon/react/renderer/animationbackend/CMakeLists.txt +28 -0
  868. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +6 -3
  869. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +3 -2
  870. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +7 -10
  871. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +52 -42
  872. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +35 -47
  873. package/ReactCommon/react/renderer/animations/conversions.h +36 -45
  874. package/ReactCommon/react/renderer/animations/primitives.h +2 -9
  875. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +50 -35
  876. package/ReactCommon/react/renderer/animations/utils.h +24 -38
  877. package/ReactCommon/react/renderer/attributedstring/AttributedString.cpp +6 -5
  878. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +17 -18
  879. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +2 -2
  880. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +12 -14
  881. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +4 -4
  882. package/ReactCommon/react/renderer/attributedstring/PlaceholderAttributedString.h +3 -5
  883. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +6 -6
  884. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -3
  885. package/ReactCommon/react/renderer/attributedstring/conversions.h +145 -208
  886. package/ReactCommon/react/renderer/attributedstring/primitives.h +1 -6
  887. package/ReactCommon/react/renderer/bridging/bridging.h +7 -12
  888. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorFactory.h +3 -4
  889. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProvider.h +6 -6
  890. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +7 -12
  891. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +3 -3
  892. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +11 -18
  893. package/ReactCommon/react/renderer/componentregistry/native/NativeComponentRegistryBinding.h +2 -5
  894. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +2 -1
  895. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +3 -5
  896. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.h +2 -2
  897. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
  898. package/ReactCommon/react/renderer/components/image/ImageProps.h +4 -10
  899. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +18 -0
  900. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +9 -10
  901. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -10
  902. package/ReactCommon/react/renderer/components/image/conversions.h +16 -25
  903. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +6 -12
  904. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h +2 -1
  905. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryState.h +2 -2
  906. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +2 -3
  907. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +3 -3
  908. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +3 -3
  909. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +5 -5
  910. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +2 -3
  911. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h +6 -7
  912. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +9 -18
  913. package/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h +2 -1
  914. package/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +5 -7
  915. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +10 -14
  916. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h +5 -7
  917. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.cpp +1 -0
  918. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +4 -6
  919. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/conversions.h +2 -1
  920. package/ReactCommon/react/renderer/components/root/RootProps.cpp +1 -1
  921. package/ReactCommon/react/renderer/components/root/RootProps.h +5 -8
  922. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +7 -8
  923. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h +5 -8
  924. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h +2 -5
  925. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h +8 -9
  926. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +7 -12
  927. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +8 -8
  928. package/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h +1 -2
  929. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +7 -8
  930. package/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h +5 -8
  931. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +7 -12
  932. package/ReactCommon/react/renderer/components/scrollview/conversions.h +26 -34
  933. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h +5 -1
  934. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +52 -4
  935. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +10 -10
  936. package/ReactCommon/react/renderer/components/scrollview/primitives.h +5 -8
  937. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +9 -11
  938. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.h +4 -3
  939. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +6 -10
  940. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchComponentDescriptor.h +6 -5
  941. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchShadowNode.h +5 -8
  942. package/ReactCommon/react/renderer/components/text/BaseParagraphProps.h +6 -9
  943. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +1 -1
  944. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +4 -12
  945. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +3 -2
  946. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.h +5 -5
  947. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +8 -9
  948. package/ReactCommon/react/renderer/components/text/ParagraphEventEmitter.h +1 -1
  949. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +19 -16
  950. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +19 -29
  951. package/ReactCommon/react/renderer/components/text/RawTextComponentDescriptor.h +1 -2
  952. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +1 -1
  953. package/ReactCommon/react/renderer/components/text/RawTextProps.h +2 -5
  954. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.cpp +1 -0
  955. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +1 -4
  956. package/ReactCommon/react/renderer/components/text/TextProps.cpp +1 -1
  957. package/ReactCommon/react/renderer/components/text/TextProps.h +4 -10
  958. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +8 -17
  959. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +1 -1
  960. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.h +6 -9
  961. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +8 -9
  962. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/conversions.h +4 -5
  963. package/ReactCommon/react/renderer/components/text/stateConversions.h +2 -1
  964. package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +26 -24
  965. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +6 -9
  966. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +56 -78
  967. package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h +12 -14
  968. package/ReactCommon/react/renderer/components/textinput/TextInputState.h +3 -1
  969. package/ReactCommon/react/renderer/components/textinput/baseConversions.h +4 -5
  970. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +31 -49
  971. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +16 -19
  972. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +6 -5
  973. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +10 -16
  974. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +8 -12
  975. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +8 -7
  976. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +1 -1
  977. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +1 -4
  978. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +2 -5
  979. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +11 -20
  980. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h +2 -4
  981. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +37 -115
  982. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +3 -6
  983. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -1
  984. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewShadowNode.h +1 -3
  985. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +25 -95
  986. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +7 -12
  987. package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.cpp +619 -0
  988. package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.h +44 -0
  989. package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -10
  990. package/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.h +3 -4
  991. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +36 -0
  992. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +23 -17
  993. package/ReactCommon/react/renderer/components/view/BoxShadowPropsConversions.h +27 -40
  994. package/ReactCommon/react/renderer/components/view/CSSConversions.h +12 -11
  995. package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +27 -34
  996. package/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +46 -70
  997. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +1 -2
  998. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +6 -9
  999. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +6 -7
  1000. package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +40 -21
  1001. package/ReactCommon/react/renderer/components/view/PointerEvent.h +3 -3
  1002. package/ReactCommon/react/renderer/components/view/TouchEvent.cpp +6 -4
  1003. package/ReactCommon/react/renderer/components/view/TouchEvent.h +2 -2
  1004. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +2 -8
  1005. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +5 -4
  1006. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +14 -20
  1007. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +1 -1
  1008. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +7 -15
  1009. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +11 -9
  1010. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +20 -40
  1011. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +10 -14
  1012. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +85 -42
  1013. package/ReactCommon/react/renderer/components/view/conversions.h +375 -430
  1014. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +97 -40
  1015. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +14 -12
  1016. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +9 -9
  1017. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +15 -21
  1018. package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +6 -3
  1019. package/ReactCommon/react/renderer/components/view/primitives.h +32 -34
  1020. package/ReactCommon/react/renderer/components/view/propsConversions.h +135 -522
  1021. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +11 -8
  1022. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +1 -1
  1023. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +13 -13
  1024. package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +1 -2
  1025. package/ReactCommon/react/renderer/components/virtualview/VirtualViewShadowNode.h +4 -5
  1026. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h +1 -2
  1027. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h +7 -8
  1028. package/ReactCommon/react/renderer/consistency/ScopedShadowTreeRevisionLock.h +10 -11
  1029. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +15 -23
  1030. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +49 -63
  1031. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +34 -35
  1032. package/ReactCommon/react/renderer/core/ConcreteState.h +23 -23
  1033. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +3 -3
  1034. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +3 -4
  1035. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -8
  1036. package/ReactCommon/react/renderer/core/EventBeat.h +6 -9
  1037. package/ReactCommon/react/renderer/core/EventDispatcher.h +5 -8
  1038. package/ReactCommon/react/renderer/core/EventEmitter.h +11 -16
  1039. package/ReactCommon/react/renderer/core/EventListener.h +3 -3
  1040. package/ReactCommon/react/renderer/core/EventPayload.h +7 -7
  1041. package/ReactCommon/react/renderer/core/EventPipe.h +5 -5
  1042. package/ReactCommon/react/renderer/core/EventQueue.h +6 -10
  1043. package/ReactCommon/react/renderer/core/EventQueueProcessor.h +2 -2
  1044. package/ReactCommon/react/renderer/core/EventTarget.h +4 -6
  1045. package/ReactCommon/react/renderer/core/InstanceHandle.h +2 -5
  1046. package/ReactCommon/react/renderer/core/LayoutConstraints.cpp +4 -2
  1047. package/ReactCommon/react/renderer/core/LayoutConstraints.h +10 -17
  1048. package/ReactCommon/react/renderer/core/LayoutContext.h +5 -3
  1049. package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +14 -14
  1050. package/ReactCommon/react/renderer/core/LayoutMetrics.h +30 -25
  1051. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +16 -12
  1052. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +14 -26
  1053. package/ReactCommon/react/renderer/core/Props.h +16 -19
  1054. package/ReactCommon/react/renderer/core/PropsMacros.h +50 -79
  1055. package/ReactCommon/react/renderer/core/PropsParserContext.h +7 -7
  1056. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  1057. package/ReactCommon/react/renderer/core/RawProps.h +11 -14
  1058. package/ReactCommon/react/renderer/core/RawPropsKey.h +6 -6
  1059. package/ReactCommon/react/renderer/core/RawPropsKeyMap.h +4 -8
  1060. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -10
  1061. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +2 -5
  1062. package/ReactCommon/react/renderer/core/RawValue.h +145 -183
  1063. package/ReactCommon/react/renderer/core/ReactEventPriority.h +3 -4
  1064. package/ReactCommon/react/renderer/core/ReactPrimitives.h +1 -1
  1065. package/ReactCommon/react/renderer/core/Sealable.cpp +1 -1
  1066. package/ReactCommon/react/renderer/core/Sealable.h +6 -5
  1067. package/ReactCommon/react/renderer/core/ShadowNode.cpp +1 -1
  1068. package/ReactCommon/react/renderer/core/ShadowNode.h +44 -70
  1069. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +15 -21
  1070. package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +6 -6
  1071. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +8 -4
  1072. package/ReactCommon/react/renderer/core/State.cpp +1 -1
  1073. package/ReactCommon/react/renderer/core/State.h +4 -3
  1074. package/ReactCommon/react/renderer/core/StateData.h +1 -1
  1075. package/ReactCommon/react/renderer/core/StatePipe.h +1 -1
  1076. package/ReactCommon/react/renderer/core/StateUpdate.h +1 -2
  1077. package/ReactCommon/react/renderer/core/ValueFactory.h +1 -1
  1078. package/ReactCommon/react/renderer/core/ValueFactoryEventPayload.h +1 -1
  1079. package/ReactCommon/react/renderer/core/conversions.h +13 -10
  1080. package/ReactCommon/react/renderer/core/graphicsConversions.h +49 -62
  1081. package/ReactCommon/react/renderer/core/propsConversions.h +62 -42
  1082. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +47 -36
  1083. package/ReactCommon/react/renderer/core/tests/ConcreteShadowNodeTest.cpp +4 -1
  1084. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +53 -50
  1085. package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +95 -95
  1086. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +12 -9
  1087. package/ReactCommon/react/renderer/core/tests/ShadowNodeFamilyTest.cpp +4 -1
  1088. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +81 -67
  1089. package/ReactCommon/react/renderer/core/tests/TestComponent.h +14 -17
  1090. package/ReactCommon/react/renderer/core/tests/benchmarks/RawPropsBenchmark.cpp +4 -2
  1091. package/ReactCommon/react/renderer/css/CSSAngle.h +3 -3
  1092. package/ReactCommon/react/renderer/css/CSSAngleUnit.h +4 -2
  1093. package/ReactCommon/react/renderer/css/CSSBackgroundImage.h +864 -0
  1094. package/ReactCommon/react/renderer/css/CSSColor.h +9 -8
  1095. package/ReactCommon/react/renderer/css/CSSColorFunction.h +65 -102
  1096. package/ReactCommon/react/renderer/css/CSSCompoundDataType.h +14 -46
  1097. package/ReactCommon/react/renderer/css/CSSDataType.h +10 -15
  1098. package/ReactCommon/react/renderer/css/CSSFilter.h +38 -58
  1099. package/ReactCommon/react/renderer/css/CSSFontVariant.h +1 -2
  1100. package/ReactCommon/react/renderer/css/CSSHexColor.h +10 -9
  1101. package/ReactCommon/react/renderer/css/CSSKeyword.h +6 -6
  1102. package/ReactCommon/react/renderer/css/CSSLength.h +5 -5
  1103. package/ReactCommon/react/renderer/css/CSSLengthUnit.h +2 -2
  1104. package/ReactCommon/react/renderer/css/CSSList.h +7 -12
  1105. package/ReactCommon/react/renderer/css/CSSNamedColor.h +2 -1
  1106. package/ReactCommon/react/renderer/css/CSSNumber.h +3 -3
  1107. package/ReactCommon/react/renderer/css/CSSPercentage.h +3 -3
  1108. package/ReactCommon/react/renderer/css/CSSRatio.h +10 -13
  1109. package/ReactCommon/react/renderer/css/CSSShadow.h +15 -32
  1110. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +66 -73
  1111. package/ReactCommon/react/renderer/css/CSSToken.h +18 -14
  1112. package/ReactCommon/react/renderer/css/CSSTokenizer.h +41 -32
  1113. package/ReactCommon/react/renderer/css/CSSTransform.h +70 -107
  1114. package/ReactCommon/react/renderer/css/CSSTransformOrigin.h +28 -49
  1115. package/ReactCommon/react/renderer/css/CSSValueParser.h +46 -76
  1116. package/ReactCommon/react/renderer/css/CSSZero.h +3 -3
  1117. package/ReactCommon/react/renderer/css/tests/CSSBackgroundImageTest.cpp +560 -0
  1118. package/ReactCommon/react/renderer/css/tests/CSSColorTest.cpp +6 -4
  1119. package/ReactCommon/react/renderer/css/tests/CSSFilterTest.cpp +5 -5
  1120. package/ReactCommon/react/renderer/css/tests/CSSFontVariantTest.cpp +3 -2
  1121. package/ReactCommon/react/renderer/css/tests/CSSListTest.cpp +12 -8
  1122. package/ReactCommon/react/renderer/css/tests/CSSShadowTest.cpp +6 -6
  1123. package/ReactCommon/react/renderer/css/tests/CSSSyntaxParserTest.cpp +11 -9
  1124. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +78 -92
  1125. package/ReactCommon/react/renderer/debug/DebugStringConvertibleItem.h +1 -1
  1126. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +18 -26
  1127. package/ReactCommon/react/renderer/dom/DOM.cpp +3 -1
  1128. package/ReactCommon/react/renderer/dom/DOM.h +24 -42
  1129. package/ReactCommon/react/renderer/element/ComponentBuilder.cpp +12 -9
  1130. package/ReactCommon/react/renderer/element/ComponentBuilder.h +8 -9
  1131. package/ReactCommon/react/renderer/element/Element.h +37 -35
  1132. package/ReactCommon/react/renderer/element/ElementFragment.h +3 -5
  1133. package/ReactCommon/react/renderer/element/testUtils.h +12 -20
  1134. package/ReactCommon/react/renderer/graphics/BackgroundImage.cpp +23 -0
  1135. package/ReactCommon/react/renderer/graphics/BackgroundImage.h +28 -2
  1136. package/ReactCommon/react/renderer/graphics/BackgroundPosition.h +27 -0
  1137. package/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +29 -0
  1138. package/ReactCommon/react/renderer/graphics/BackgroundSize.h +39 -0
  1139. package/ReactCommon/react/renderer/graphics/BlendMode.h +4 -3
  1140. package/ReactCommon/react/renderer/graphics/BoxShadow.h +5 -3
  1141. package/ReactCommon/react/renderer/graphics/Color.cpp +22 -3
  1142. package/ReactCommon/react/renderer/graphics/Color.h +20 -10
  1143. package/ReactCommon/react/renderer/graphics/ColorStop.cpp +21 -0
  1144. package/ReactCommon/react/renderer/graphics/ColorStop.h +20 -2
  1145. package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +38 -0
  1146. package/ReactCommon/react/renderer/graphics/DoubleConversions.h +16 -0
  1147. package/ReactCommon/react/renderer/graphics/Filter.h +13 -8
  1148. package/ReactCommon/react/renderer/graphics/Isolation.h +2 -2
  1149. package/ReactCommon/react/renderer/graphics/LinearGradient.cpp +92 -0
  1150. package/ReactCommon/react/renderer/graphics/LinearGradient.h +19 -15
  1151. package/ReactCommon/react/renderer/graphics/Point.h +16 -9
  1152. package/ReactCommon/react/renderer/graphics/RadialGradient.cpp +138 -0
  1153. package/ReactCommon/react/renderer/graphics/RadialGradient.h +47 -29
  1154. package/ReactCommon/react/renderer/graphics/Rect.h +39 -33
  1155. package/ReactCommon/react/renderer/graphics/RectangleCorners.h +11 -17
  1156. package/ReactCommon/react/renderer/graphics/RectangleEdges.h +27 -31
  1157. package/ReactCommon/react/renderer/graphics/Size.h +10 -5
  1158. package/ReactCommon/react/renderer/graphics/Transform.cpp +91 -64
  1159. package/ReactCommon/react/renderer/graphics/Transform.h +39 -49
  1160. package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +41 -0
  1161. package/ReactCommon/react/renderer/graphics/ValueUnit.h +24 -4
  1162. package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +7 -7
  1163. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h +19 -14
  1164. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +56 -36
  1165. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/configurePlatformColorCacheInvalidationHook.cpp +27 -0
  1166. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/configurePlatformColorCacheInvalidationHook.h +12 -0
  1167. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h +21 -14
  1168. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +7 -11
  1169. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +37 -26
  1170. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +14 -14
  1171. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h +5 -11
  1172. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.mm +10 -9
  1173. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h +3 -5
  1174. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm +3 -3
  1175. package/ReactCommon/react/renderer/graphics/rounding.h +28 -18
  1176. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +5 -7
  1177. package/ReactCommon/react/renderer/imagemanager/ImageRequest.h +8 -9
  1178. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserver.h +3 -4
  1179. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +3 -5
  1180. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +7 -12
  1181. package/ReactCommon/react/renderer/imagemanager/ImageTelemetry.h +2 -1
  1182. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +19 -41
  1183. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +14 -23
  1184. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +7 -4
  1185. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +21 -39
  1186. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +4 -2
  1187. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +4 -2
  1188. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +2 -2
  1189. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  1190. package/ReactCommon/react/renderer/imagemanager/primitives.h +25 -31
  1191. package/ReactCommon/react/renderer/leakchecker/LeakChecker.h +1 -2
  1192. package/ReactCommon/react/renderer/leakchecker/WeakFamilyRegistry.h +1 -1
  1193. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +6 -7
  1194. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +4 -10
  1195. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +3 -2
  1196. package/ReactCommon/react/renderer/mounting/Differentiator.h +2 -2
  1197. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +6 -9
  1198. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  1199. package/ReactCommon/react/renderer/mounting/MountingTransaction.h +8 -10
  1200. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +22 -13
  1201. package/ReactCommon/react/renderer/mounting/ShadowTree.h +12 -23
  1202. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +4 -4
  1203. package/ReactCommon/react/renderer/mounting/ShadowTreeRegistry.h +4 -9
  1204. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +11 -8
  1205. package/ReactCommon/react/renderer/mounting/ShadowView.h +11 -10
  1206. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +14 -30
  1207. package/ReactCommon/react/renderer/mounting/TelemetryController.h +9 -11
  1208. package/ReactCommon/react/renderer/mounting/internal/CullingContext.cpp +14 -0
  1209. package/ReactCommon/react/renderer/mounting/internal/CullingContext.h +2 -3
  1210. package/ReactCommon/react/renderer/mounting/internal/ShadowViewNodePair.h +9 -6
  1211. package/ReactCommon/react/renderer/mounting/internal/TinyMap.h +18 -14
  1212. package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +5 -3
  1213. package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.h +4 -4
  1214. package/ReactCommon/react/renderer/mounting/stubs/StubView.h +7 -9
  1215. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +14 -16
  1216. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +13 -10
  1217. package/ReactCommon/react/renderer/mounting/stubs/stubs.h +2 -4
  1218. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +2 -1
  1219. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +40 -22
  1220. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +3 -2
  1221. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +6 -0
  1222. package/ReactCommon/react/renderer/mounting/updateMountedFlag.h +2 -2
  1223. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +3 -1
  1224. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h +6 -10
  1225. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +175 -56
  1226. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +34 -19
  1227. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +15 -6
  1228. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.h +18 -30
  1229. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +4 -9
  1230. package/ReactCommon/react/renderer/observers/mutation/MutationObserver.cpp +6 -5
  1231. package/ReactCommon/react/renderer/observers/mutation/MutationObserver.h +20 -24
  1232. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.h +14 -17
  1233. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +36 -62
  1234. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +1 -1
  1235. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -5
  1236. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +3 -4
  1237. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerEventTimingDelegate.h +1 -2
  1238. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerIntersectionObserverDelegate.h +1 -2
  1239. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +23 -43
  1240. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +31 -56
  1241. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +7 -7
  1242. package/ReactCommon/react/renderer/runtimescheduler/Task.h +6 -13
  1243. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -6
  1244. package/ReactCommon/react/renderer/runtimescheduler/tests/StubClock.h +8 -4
  1245. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +9 -12
  1246. package/ReactCommon/react/renderer/runtimescheduler/tests/StubQueue.h +16 -13
  1247. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +12 -36
  1248. package/ReactCommon/react/renderer/scheduler/Scheduler.h +26 -33
  1249. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +11 -22
  1250. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +3 -3
  1251. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +15 -22
  1252. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +5 -5
  1253. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +13 -17
  1254. package/ReactCommon/react/renderer/telemetry/SurfaceTelemetry.h +1 -3
  1255. package/ReactCommon/react/renderer/telemetry/TransactionTelemetry.h +1 -1
  1256. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutContext.h +1 -1
  1257. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +27 -34
  1258. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +68 -106
  1259. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/JPreparedLayout.h +1 -2
  1260. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +9 -7
  1261. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +23 -28
  1262. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/react/renderer/textlayoutmanager/TextLayoutManager.cpp +9 -4
  1263. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/react/renderer/textlayoutmanager/TextLayoutManager.h +9 -10
  1264. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +1 -1
  1265. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +10 -10
  1266. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.h +10 -2
  1267. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +71 -40
  1268. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +6 -7
  1269. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +12 -13
  1270. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +2 -2
  1271. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +7 -7
  1272. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +5 -3
  1273. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +28 -37
  1274. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h +7 -14
  1275. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +1 -2
  1276. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +17 -5
  1277. package/ReactCommon/react/renderer/uimanager/UIManager.h +68 -77
  1278. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +24 -0
  1279. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +5 -6
  1280. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +3 -3
  1281. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +13 -15
  1282. package/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h +12 -23
  1283. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +14 -21
  1284. package/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h +3 -4
  1285. package/ReactCommon/react/renderer/uimanager/UIManagerUpdateShadowTree.cpp +1 -2
  1286. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h +6 -11
  1287. package/ReactCommon/react/renderer/uimanager/primitives.h +37 -51
  1288. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +4 -2
  1289. package/ReactCommon/react/runtime/BindingsInstaller.h +2 -1
  1290. package/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h +3 -7
  1291. package/ReactCommon/react/runtime/BufferedRuntimeExecutor.h +4 -3
  1292. package/ReactCommon/react/runtime/ReactInstance.cpp +14 -1
  1293. package/ReactCommon/react/runtime/ReactInstance.h +14 -20
  1294. package/ReactCommon/react/runtime/TimerManager.h +17 -25
  1295. package/ReactCommon/react/runtime/nativeviewconfig/LegacyUIManagerConstantsProviderBinding.h +4 -7
  1296. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +14 -15
  1297. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +3 -15
  1298. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +10 -1
  1299. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +22 -2
  1300. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +10 -0
  1301. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +31 -1
  1302. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.h +2 -3
  1303. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.h +1 -1
  1304. package/ReactCommon/react/test_utils/Entropy.h +24 -18
  1305. package/ReactCommon/react/test_utils/MockClock.h +5 -4
  1306. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +1 -1
  1307. package/ReactCommon/react/test_utils/ios/RCTSwizzleHelpers.h +1 -4
  1308. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +9 -6
  1309. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +70 -91
  1310. package/ReactCommon/react/timing/primitives.h +127 -115
  1311. package/ReactCommon/react/utils/CMakeLists.txt +1 -1
  1312. package/ReactCommon/react/utils/ContextContainer.h +16 -13
  1313. package/ReactCommon/react/utils/FloatComparison.h +3 -4
  1314. package/ReactCommon/react/utils/OnScopeExit.h +7 -7
  1315. package/ReactCommon/react/utils/PackTraits.h +5 -4
  1316. package/ReactCommon/react/utils/React-utils.podspec +3 -1
  1317. package/ReactCommon/react/utils/RunLoopObserver.h +4 -7
  1318. package/ReactCommon/react/utils/SharedFunction.h +10 -9
  1319. package/ReactCommon/react/utils/SimpleThreadSafeCache.h +10 -11
  1320. package/ReactCommon/react/utils/Telemetry.h +19 -27
  1321. package/ReactCommon/react/utils/TemplateStringLiteral.h +4 -2
  1322. package/ReactCommon/react/utils/Uuid.cpp +69 -0
  1323. package/ReactCommon/react/utils/Uuid.h +20 -0
  1324. package/ReactCommon/react/utils/fnv1a.h +8 -6
  1325. package/ReactCommon/react/utils/hash_combine.h +5 -3
  1326. package/ReactCommon/react/utils/iequals.h +2 -1
  1327. package/ReactCommon/react/utils/jsi-utils.h +1 -4
  1328. package/ReactCommon/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp +1 -1
  1329. package/ReactCommon/react/utils/platform/android/react/utils/LowPriorityExecutor.h +1 -1
  1330. package/ReactCommon/react/utils/platform/cxx/react/utils/LowPriorityExecutor.h +2 -1
  1331. package/ReactCommon/react/utils/platform/ios/react/utils/FollyConvert.mm +2 -2
  1332. package/ReactCommon/react/utils/platform/ios/react/utils/LowPriorityExecutor.h +1 -1
  1333. package/ReactCommon/react/utils/tests/UuidTest.cpp +28 -0
  1334. package/ReactCommon/react/utils/tests/hash_combineTests.cpp +2 -2
  1335. package/ReactCommon/react/utils/toLower.h +2 -1
  1336. package/ReactCommon/react/utils/to_underlying.h +2 -1
  1337. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +24 -16
  1338. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +7 -11
  1339. package/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.h +38 -67
  1340. package/ReactCommon/reactperflogger/reactperflogger/FuseboxPerfettoDataSource.h +9 -11
  1341. package/ReactCommon/reactperflogger/reactperflogger/HermesPerfettoDataSource.h +9 -11
  1342. package/ReactCommon/reactperflogger/reactperflogger/NativeModulePerfLogger.h +38 -84
  1343. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.h +2 -2
  1344. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoCategories.h +1 -2
  1345. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.h +6 -6
  1346. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +1 -2
  1347. package/ReactCommon/runtimeexecutor/platform/cxx/ReactCommon/RuntimeExecutorSyncUIThreadUtils.h +6 -6
  1348. package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.h +6 -6
  1349. package/ReactCommon/yoga/cmake/yoga-config.cmake.in +1 -1
  1350. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +14 -11
  1351. package/flow/bom.js.flow +1 -0
  1352. package/index.js +6 -0
  1353. package/index.js.flow +4 -0
  1354. package/jest/mockComponent.js +6 -6
  1355. package/jest/setup.js +15 -10
  1356. package/package.json +15 -17
  1357. package/scripts/cocoapods/rncore.rb +261 -36
  1358. package/scripts/cocoapods/rndependencies.rb +56 -19
  1359. package/scripts/cocoapods/utils.rb +5 -0
  1360. package/scripts/codegen/codegen-utils.js +2 -2
  1361. package/scripts/codegen/generate-artifacts-executor/generatePackageSwift.js +44 -0
  1362. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +12 -3
  1363. package/scripts/codegen/generate-artifacts-executor/index.js +75 -29
  1364. package/scripts/codegen/generate-artifacts-executor/utils.js +44 -6
  1365. package/scripts/codegen/templates/Package.swift.template +59 -0
  1366. package/scripts/hermes/hermes-utils.js +52 -304
  1367. package/scripts/react_native_pods.rb +13 -2
  1368. package/scripts/react_native_pods_utils/script_phases.sh +1 -3
  1369. package/sdks/.hermesv1version +1 -0
  1370. package/sdks/.hermesversion +1 -1
  1371. package/sdks/hermes-engine/hermes-engine.podspec +5 -9
  1372. package/sdks/hermes-engine/hermes-utils.rb +24 -27
  1373. package/sdks/hermes-engine/version.properties +2 -1
  1374. package/src/private/components/virtualview/VirtualView.js +22 -27
  1375. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +6 -0
  1376. package/src/private/featureflags/ReactNativeFeatureFlags.js +100 -19
  1377. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +18 -3
  1378. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  1379. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -0
  1380. package/src/private/webapis/dom/nodes/ReactNativeElement.js +12 -2
  1381. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +76 -15
  1382. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +1 -0
  1383. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  1384. package/src/private/webapis/performance/ResourceTiming.js +31 -4
  1385. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +4 -1
  1386. package/src/private/webapis/performance/specs/NativePerformance.js +3 -0
  1387. package/types/index.d.ts +1 -0
  1388. package/types/public/ReactNativeTypes.d.ts +115 -2
  1389. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +0 -152
  1390. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +0 -3371
  1391. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.kt +0 -207
  1392. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerfMonitorOverlayViewManager.kt +0 -278
  1393. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/PerfMonitorOverlayManager.kt +0 -20
  1394. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutDirectionUtil.kt +0 -36
  1395. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NoSuchNativeViewException.kt +0 -34
  1396. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRoot.java +0 -76
  1397. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/YogaNodePool.kt +0 -34
  1398. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +0 -1474
  1399. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AbstractLayoutAnimation.kt +0 -137
  1400. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AnimatedPropertyType.kt +0 -42
  1401. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/BaseLayoutAnimation.kt +0 -96
  1402. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/InterpolatorType.kt +0 -43
  1403. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationType.kt +0 -46
  1404. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.kt +0 -33
  1405. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.kt +0 -37
  1406. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutHandlingAnimation.kt +0 -42
  1407. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutUpdateAnimation.kt +0 -66
  1408. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/OpacityAnimation.kt +0 -77
  1409. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/PositionAndSizeAnimation.kt +0 -98
  1410. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.kt +0 -62
  1411. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.kt +0 -54
  1412. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextShadowNode.kt +0 -38
  1413. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextShadowNode.kt +0 -34
  1414. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.kt +0 -54
  1415. package/ReactCommon/jsinspector-modern/network/NetworkReporter.cpp +0 -316
  1416. package/ReactCommon/jsinspector-modern/network/NetworkReporter.h +0 -211
  1417. package/ReactCommon/jsinspector-modern/tests/RuntimeTargetDebuggerSessionObserverTest.cpp +0 -214
  1418. package/scripts/hermes/prepare-hermes-for-build.js +0 -49
  1419. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  1420. package/sdks/hermesc/osx-bin/hermes +0 -0
  1421. package/sdks/hermesc/osx-bin/hermes-lit +0 -15
  1422. package/sdks/hermesc/osx-bin/hermesc +0 -0
  1423. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  1424. package/sdks/hermesc/win64-bin/icudt64.dll +0 -0
  1425. package/sdks/hermesc/win64-bin/icuin64.dll +0 -0
  1426. package/sdks/hermesc/win64-bin/icuio64.dll +0 -0
  1427. package/sdks/hermesc/win64-bin/icutest64.dll +0 -0
  1428. package/sdks/hermesc/win64-bin/icutu64.dll +0 -0
  1429. package/sdks/hermesc/win64-bin/icuuc64.dll +0 -0
  1430. package/sdks/hermesc/win64-bin/msvcp140.dll +0 -0
  1431. package/sdks/hermesc/win64-bin/vcruntime140.dll +0 -0
  1432. package/sdks/hermesc/win64-bin/vcruntime140_1.dll +0 -0
@@ -0,0 +1,864 @@
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 <optional>
11
+ #include <variant>
12
+
13
+ #include <react/renderer/css/CSSAngle.h>
14
+ #include <react/renderer/css/CSSColor.h>
15
+ #include <react/renderer/css/CSSCompoundDataType.h>
16
+ #include <react/renderer/css/CSSDataType.h>
17
+ #include <react/renderer/css/CSSLength.h>
18
+ #include <react/renderer/css/CSSLengthPercentage.h>
19
+ #include <react/renderer/css/CSSList.h>
20
+ #include <react/renderer/css/CSSPercentage.h>
21
+ #include <react/renderer/css/CSSValueParser.h>
22
+ #include <react/utils/TemplateStringLiteral.h>
23
+ #include <react/utils/fnv1a.h>
24
+ #include <react/utils/iequals.h>
25
+
26
+ namespace facebook::react {
27
+
28
+ enum class CSSLinearGradientDirectionKeyword : uint8_t {
29
+ ToTopLeft,
30
+ ToTopRight,
31
+ ToBottomLeft,
32
+ ToBottomRight,
33
+ };
34
+
35
+ struct CSSLinearGradientDirection {
36
+ // angle or keyword like "to bottom"
37
+ std::variant<CSSAngle, CSSLinearGradientDirectionKeyword> value;
38
+
39
+ bool operator==(const CSSLinearGradientDirection &rhs) const = default;
40
+ };
41
+
42
+ template <>
43
+ struct CSSDataTypeParser<CSSLinearGradientDirection> {
44
+ static constexpr auto consume(CSSSyntaxParser &parser) -> std::optional<CSSLinearGradientDirection>
45
+ {
46
+ return parseLinearGradientDirection(parser);
47
+ }
48
+
49
+ private:
50
+ static constexpr std::optional<CSSLinearGradientDirection> parseLinearGradientDirection(CSSSyntaxParser &parser)
51
+ {
52
+ auto angle = parseNextCSSValue<CSSAngle>(parser);
53
+ if (std::holds_alternative<CSSAngle>(angle)) {
54
+ return CSSLinearGradientDirection{std::get<CSSAngle>(angle)};
55
+ }
56
+ auto toResult = parser.consumeComponentValue<bool>([](const CSSPreservedToken &token) -> bool {
57
+ return token.type() == CSSTokenType::Ident && fnv1aLowercase(token.stringValue()) == fnv1a("to");
58
+ });
59
+
60
+ if (!toResult) {
61
+ // no direction found, default to 180 degrees (to bottom)
62
+ return CSSLinearGradientDirection{CSSAngle{180.0f}};
63
+ }
64
+
65
+ parser.consumeWhitespace();
66
+
67
+ std::optional<CSSKeyword> primaryDir;
68
+ auto primaryResult = parser.consumeComponentValue<std::optional<CSSKeyword>>(
69
+ [](const CSSPreservedToken &token) -> std::optional<CSSKeyword> {
70
+ if (token.type() == CSSTokenType::Ident) {
71
+ switch (fnv1aLowercase(token.stringValue())) {
72
+ case fnv1a("top"):
73
+ return CSSKeyword::Top;
74
+ case fnv1a("bottom"):
75
+ return CSSKeyword::Bottom;
76
+ case fnv1a("left"):
77
+ return CSSKeyword::Left;
78
+ case fnv1a("right"):
79
+ return CSSKeyword::Right;
80
+ }
81
+ }
82
+ return {};
83
+ });
84
+
85
+ if (!primaryResult) {
86
+ return {};
87
+ }
88
+
89
+ primaryDir = primaryResult;
90
+ parser.consumeWhitespace();
91
+
92
+ std::optional<CSSKeyword> secondaryDir;
93
+ auto secondaryResult = parser.consumeComponentValue<std::optional<CSSKeyword>>(
94
+ [&](const CSSPreservedToken &token) -> std::optional<CSSKeyword> {
95
+ if (token.type() == CSSTokenType::Ident) {
96
+ auto hash = fnv1aLowercase(token.stringValue());
97
+ // validate compatible combinations
98
+ if (primaryDir == CSSKeyword::Top || primaryDir == CSSKeyword::Bottom) {
99
+ if (hash == fnv1a("left")) {
100
+ return CSSKeyword::Left;
101
+ }
102
+ if (hash == fnv1a("right")) {
103
+ return CSSKeyword::Right;
104
+ }
105
+ }
106
+ if (primaryDir == CSSKeyword::Left || primaryDir == CSSKeyword::Right) {
107
+ if (hash == fnv1a("top")) {
108
+ return CSSKeyword::Top;
109
+ }
110
+ if (hash == fnv1a("bottom")) {
111
+ return CSSKeyword::Bottom;
112
+ }
113
+ }
114
+ }
115
+ return {};
116
+ });
117
+
118
+ if (secondaryResult) {
119
+ secondaryDir = secondaryResult;
120
+ }
121
+
122
+ if (primaryDir == CSSKeyword::Top) {
123
+ if (secondaryDir == CSSKeyword::Left) {
124
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToTopLeft};
125
+ } else if (secondaryDir == CSSKeyword::Right) {
126
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToTopRight};
127
+ } else {
128
+ // "to top" = 0 degrees
129
+ return CSSLinearGradientDirection{CSSAngle{0.0f}};
130
+ }
131
+ } else if (primaryDir == CSSKeyword::Bottom) {
132
+ if (secondaryDir == CSSKeyword::Left) {
133
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToBottomLeft};
134
+ } else if (secondaryDir == CSSKeyword::Right) {
135
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToBottomRight};
136
+ } else {
137
+ // "to bottom" = 180 degrees
138
+ return CSSLinearGradientDirection{CSSAngle{180.0f}};
139
+ }
140
+ } else if (primaryDir == CSSKeyword::Left) {
141
+ if (secondaryDir == CSSKeyword::Top) {
142
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToTopLeft};
143
+ } else if (secondaryDir == CSSKeyword::Bottom) {
144
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToBottomLeft};
145
+ } else {
146
+ // "to left" = 270 degrees
147
+ return CSSLinearGradientDirection{CSSAngle{270.0f}};
148
+ }
149
+ } else if (primaryDir == CSSKeyword::Right) {
150
+ if (secondaryDir == CSSKeyword::Top) {
151
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToTopRight};
152
+ } else if (secondaryDir == CSSKeyword::Bottom) {
153
+ return CSSLinearGradientDirection{CSSLinearGradientDirectionKeyword::ToBottomRight};
154
+ } else {
155
+ // "to right" = 90 degrees
156
+ return CSSLinearGradientDirection{CSSAngle{90.0f}};
157
+ }
158
+ }
159
+
160
+ return {};
161
+ }
162
+ };
163
+
164
+ static_assert(CSSDataType<CSSLinearGradientDirection>);
165
+
166
+ /**
167
+ * Representation of a color hint (interpolation hint)
168
+ */
169
+ struct CSSColorHint {
170
+ std::variant<CSSLength, CSSPercentage> position{}; // Support both lengths and percentages
171
+
172
+ bool operator==(const CSSColorHint &rhs) const
173
+ {
174
+ return position == rhs.position;
175
+ }
176
+ };
177
+
178
+ template <>
179
+ struct CSSDataTypeParser<CSSColorHint> {
180
+ static auto consume(CSSSyntaxParser &parser) -> std::optional<CSSColorHint>
181
+ {
182
+ return parseCSSColorHint(parser);
183
+ }
184
+
185
+ private:
186
+ static std::optional<CSSColorHint> parseCSSColorHint(CSSSyntaxParser &parser)
187
+ {
188
+ auto position = parseNextCSSValue<CSSLengthPercentage>(parser);
189
+ if (std::holds_alternative<CSSLength>(position)) {
190
+ return CSSColorHint{std::get<CSSLength>(position)};
191
+ } else if (std::holds_alternative<CSSPercentage>(position)) {
192
+ return CSSColorHint{std::get<CSSPercentage>(position)};
193
+ }
194
+ return {};
195
+ }
196
+ };
197
+
198
+ static_assert(CSSDataType<CSSColorHint>);
199
+
200
+ struct CSSColorStop {
201
+ CSSColor color{};
202
+ std::optional<std::variant<CSSLength, CSSPercentage>> startPosition{};
203
+ std::optional<std::variant<CSSLength, CSSPercentage>> endPosition{};
204
+
205
+ bool operator==(const CSSColorStop &rhs) const
206
+ {
207
+ if (color != rhs.color) {
208
+ return false;
209
+ }
210
+
211
+ if (startPosition.has_value() != rhs.startPosition.has_value()) {
212
+ return false;
213
+ }
214
+ if (startPosition.has_value()) {
215
+ if (startPosition->index() != rhs.startPosition->index()) {
216
+ return false;
217
+ }
218
+ if (*startPosition != *rhs.startPosition) {
219
+ return false;
220
+ }
221
+ }
222
+
223
+ if (endPosition.has_value() != rhs.endPosition.has_value()) {
224
+ return false;
225
+ }
226
+ if (endPosition.has_value()) {
227
+ if (endPosition->index() != rhs.endPosition->index()) {
228
+ return false;
229
+ }
230
+ if (*endPosition != *rhs.endPosition) {
231
+ return false;
232
+ }
233
+ }
234
+
235
+ return true;
236
+ }
237
+ };
238
+
239
+ template <>
240
+ struct CSSDataTypeParser<CSSColorStop> {
241
+ static constexpr auto consume(CSSSyntaxParser &parser) -> std::optional<CSSColorStop>
242
+ {
243
+ return parseCSSColorStop(parser);
244
+ }
245
+
246
+ private:
247
+ static constexpr std::optional<CSSColorStop> parseCSSColorStop(CSSSyntaxParser &parser)
248
+ {
249
+ auto color = parseNextCSSValue<CSSColor>(parser);
250
+ if (!std::holds_alternative<CSSColor>(color)) {
251
+ return {};
252
+ }
253
+
254
+ CSSColorStop colorStop;
255
+ colorStop.color = std::get<CSSColor>(color);
256
+
257
+ auto startPosition = parseNextCSSValue<CSSLengthPercentage>(parser, CSSDelimiter::Whitespace);
258
+ if (std::holds_alternative<CSSLength>(startPosition)) {
259
+ colorStop.startPosition = std::get<CSSLength>(startPosition);
260
+ } else if (std::holds_alternative<CSSPercentage>(startPosition)) {
261
+ colorStop.startPosition = std::get<CSSPercentage>(startPosition);
262
+ }
263
+
264
+ if (colorStop.startPosition) {
265
+ // Try to parse second optional position (supports both lengths and
266
+ // percentages)
267
+ auto endPosition = parseNextCSSValue<CSSLengthPercentage>(parser, CSSDelimiter::Whitespace);
268
+ if (std::holds_alternative<CSSLength>(endPosition)) {
269
+ colorStop.endPosition = std::get<CSSLength>(endPosition);
270
+ } else if (std::holds_alternative<CSSPercentage>(endPosition)) {
271
+ colorStop.endPosition = std::get<CSSPercentage>(endPosition);
272
+ }
273
+ }
274
+ return colorStop;
275
+ }
276
+ };
277
+
278
+ static_assert(CSSDataType<CSSColorStop>);
279
+
280
+ struct CSSLinearGradientFunction {
281
+ std::optional<CSSLinearGradientDirection> direction{};
282
+ std::vector<std::variant<CSSColorStop, CSSColorHint>> items{}; // Color stops and color hints
283
+
284
+ bool operator==(const CSSLinearGradientFunction &rhs) const = default;
285
+
286
+ static std::pair<std::vector<std::variant<CSSColorStop, CSSColorHint>>, int> parseGradientColorStopsAndHints(
287
+ CSSSyntaxParser &parser)
288
+ {
289
+ std::vector<std::variant<CSSColorStop, CSSColorHint>> items;
290
+ int colorStopCount = 0;
291
+
292
+ std::optional<CSSColorStop> prevColorStop = std::nullopt;
293
+ do {
294
+ auto colorStop = parseNextCSSValue<CSSColorStop>(parser);
295
+ if (std::holds_alternative<CSSColorStop>(colorStop)) {
296
+ auto parsedColorStop = std::get<CSSColorStop>(colorStop);
297
+ items.emplace_back(parsedColorStop);
298
+ prevColorStop = parsedColorStop;
299
+ colorStopCount++;
300
+ } else {
301
+ auto colorHint = parseNextCSSValue<CSSColorHint>(parser);
302
+ if (std::holds_alternative<CSSColorHint>(colorHint)) {
303
+ // color hint must be between two color stops
304
+ if (!prevColorStop) {
305
+ return {};
306
+ }
307
+ auto nextColorStop = peekNextCSSValue<CSSColorStop>(parser, CSSDelimiter::Comma);
308
+ if (!std::holds_alternative<CSSColorStop>(nextColorStop)) {
309
+ return {};
310
+ }
311
+ items.emplace_back(std::get<CSSColorHint>(colorHint));
312
+ } else {
313
+ break; // No more valid items
314
+ }
315
+ }
316
+ } while (parser.consumeDelimiter(CSSDelimiter::Comma));
317
+
318
+ return {items, colorStopCount};
319
+ }
320
+ };
321
+
322
+ enum class CSSRadialGradientShape : uint8_t {
323
+ Circle,
324
+ Ellipse,
325
+ };
326
+
327
+ template <>
328
+ struct CSSDataTypeParser<CSSRadialGradientShape> {
329
+ static constexpr auto consumePreservedToken(const CSSPreservedToken &token) -> std::optional<CSSRadialGradientShape>
330
+ {
331
+ if (token.type() == CSSTokenType::Ident) {
332
+ auto lowercase = fnv1aLowercase(token.stringValue());
333
+ if (lowercase == fnv1a("circle")) {
334
+ return CSSRadialGradientShape::Circle;
335
+ } else if (lowercase == fnv1a("ellipse")) {
336
+ return CSSRadialGradientShape::Ellipse;
337
+ }
338
+ }
339
+ return {};
340
+ }
341
+ };
342
+
343
+ static_assert(CSSDataType<CSSRadialGradientShape>);
344
+
345
+ enum class CSSRadialGradientSizeKeyword : uint8_t {
346
+ ClosestSide,
347
+ ClosestCorner,
348
+ FarthestSide,
349
+ FarthestCorner,
350
+ };
351
+
352
+ template <>
353
+ struct CSSDataTypeParser<CSSRadialGradientSizeKeyword> {
354
+ static constexpr auto consumePreservedToken(const CSSPreservedToken &token)
355
+ -> std::optional<CSSRadialGradientSizeKeyword>
356
+ {
357
+ if (token.type() == CSSTokenType::Ident) {
358
+ auto lowercase = fnv1aLowercase(token.stringValue());
359
+ if (lowercase == fnv1a("closest-side")) {
360
+ return CSSRadialGradientSizeKeyword::ClosestSide;
361
+ } else if (lowercase == fnv1a("closest-corner")) {
362
+ return CSSRadialGradientSizeKeyword::ClosestCorner;
363
+ } else if (lowercase == fnv1a("farthest-side")) {
364
+ return CSSRadialGradientSizeKeyword::FarthestSide;
365
+ } else if (lowercase == fnv1a("farthest-corner")) {
366
+ return CSSRadialGradientSizeKeyword::FarthestCorner;
367
+ }
368
+ }
369
+ return {};
370
+ }
371
+ };
372
+
373
+ static_assert(CSSDataType<CSSRadialGradientSizeKeyword>);
374
+
375
+ struct CSSRadialGradientExplicitSize {
376
+ std::variant<CSSLength, CSSPercentage> sizeX{};
377
+ std::variant<CSSLength, CSSPercentage> sizeY{};
378
+
379
+ bool operator==(const CSSRadialGradientExplicitSize &rhs) const = default;
380
+ };
381
+
382
+ template <>
383
+ struct CSSDataTypeParser<CSSRadialGradientExplicitSize> {
384
+ static auto consume(CSSSyntaxParser &syntaxParser) -> std::optional<CSSRadialGradientExplicitSize>
385
+ {
386
+ auto sizeX = parseNextCSSValue<CSSLengthPercentage>(syntaxParser);
387
+ if (std::holds_alternative<std::monostate>(sizeX)) {
388
+ return {};
389
+ }
390
+
391
+ syntaxParser.consumeWhitespace();
392
+
393
+ auto sizeY = parseNextCSSValue<CSSLengthPercentage>(syntaxParser);
394
+
395
+ CSSRadialGradientExplicitSize result;
396
+ if (std::holds_alternative<CSSLength>(sizeX)) {
397
+ result.sizeX = std::get<CSSLength>(sizeX);
398
+ } else {
399
+ result.sizeX = std::get<CSSPercentage>(sizeX);
400
+ }
401
+
402
+ if (std::holds_alternative<CSSLength>(sizeY) || std::holds_alternative<CSSPercentage>(sizeY)) {
403
+ if (std::holds_alternative<CSSLength>(sizeY)) {
404
+ result.sizeY = std::get<CSSLength>(sizeY);
405
+ } else {
406
+ result.sizeY = std::get<CSSPercentage>(sizeY);
407
+ }
408
+ } else {
409
+ result.sizeY = result.sizeX;
410
+ }
411
+
412
+ return result;
413
+ }
414
+ };
415
+
416
+ static_assert(CSSDataType<CSSRadialGradientExplicitSize>);
417
+
418
+ using CSSRadialGradientSize = std::variant<CSSRadialGradientSizeKeyword, CSSRadialGradientExplicitSize>;
419
+
420
+ struct CSSRadialGradientPosition {
421
+ std::optional<std::variant<CSSLength, CSSPercentage>> top{};
422
+ std::optional<std::variant<CSSLength, CSSPercentage>> bottom{};
423
+ std::optional<std::variant<CSSLength, CSSPercentage>> left{};
424
+ std::optional<std::variant<CSSLength, CSSPercentage>> right{};
425
+
426
+ bool operator==(const CSSRadialGradientPosition &rhs) const
427
+ {
428
+ return top == rhs.top && bottom == rhs.bottom && left == rhs.left && right == rhs.right;
429
+ }
430
+ };
431
+
432
+ struct CSSRadialGradientFunction {
433
+ std::optional<CSSRadialGradientShape> shape{};
434
+ std::optional<CSSRadialGradientSize> size{};
435
+ std::optional<CSSRadialGradientPosition> position{};
436
+ std::vector<std::variant<CSSColorStop, CSSColorHint>> items{}; // Color stops and color hints
437
+
438
+ bool operator==(const CSSRadialGradientFunction &rhs) const = default;
439
+ };
440
+
441
+ template <>
442
+ struct CSSDataTypeParser<CSSRadialGradientFunction> {
443
+ static auto consumeFunctionBlock(const CSSFunctionBlock &func, CSSSyntaxParser &parser)
444
+ -> std::optional<CSSRadialGradientFunction>
445
+ {
446
+ if (!iequals(func.name, "radial-gradient")) {
447
+ return {};
448
+ }
449
+
450
+ CSSRadialGradientFunction gradient;
451
+
452
+ auto hasExplicitShape = false;
453
+ auto hasExplicitSingleSize = false;
454
+ auto shapeResult = parseNextCSSValue<CSSRadialGradientShape>(parser);
455
+ if (std::holds_alternative<CSSRadialGradientShape>(shapeResult)) {
456
+ parser.consumeWhitespace();
457
+ }
458
+
459
+ std::optional<CSSRadialGradientSize> sizeResult;
460
+
461
+ auto sizeKeywordResult = parseNextCSSValue<CSSRadialGradientSizeKeyword>(parser);
462
+
463
+ if (std::holds_alternative<CSSRadialGradientSizeKeyword>(sizeKeywordResult)) {
464
+ sizeResult = CSSRadialGradientSize{std::get<CSSRadialGradientSizeKeyword>(sizeKeywordResult)};
465
+ parser.consumeWhitespace();
466
+ } else {
467
+ auto explicitSizeResult = parseNextCSSValue<CSSRadialGradientExplicitSize>(parser);
468
+ if (std::holds_alternative<CSSRadialGradientExplicitSize>(explicitSizeResult)) {
469
+ auto explicitSize = std::get<CSSRadialGradientExplicitSize>(explicitSizeResult);
470
+ // negative value validation
471
+ if (std::holds_alternative<CSSLength>(explicitSize.sizeX)) {
472
+ const auto &lengthX = std::get<CSSLength>(explicitSize.sizeX);
473
+ if (lengthX.value < 0) {
474
+ return {};
475
+ }
476
+ } else if (std::holds_alternative<CSSPercentage>(explicitSize.sizeX)) {
477
+ const auto &percentageX = std::get<CSSPercentage>(explicitSize.sizeX);
478
+ if (percentageX.value < 0) {
479
+ return {};
480
+ }
481
+ }
482
+ if (std::holds_alternative<CSSLength>(explicitSize.sizeY)) {
483
+ const auto &lengthY = std::get<CSSLength>(explicitSize.sizeY);
484
+ if (lengthY.value < 0) {
485
+ return {};
486
+ }
487
+ } else if (std::holds_alternative<CSSPercentage>(explicitSize.sizeY)) {
488
+ const auto &percentageY = std::get<CSSPercentage>(explicitSize.sizeY);
489
+ if (percentageY.value < 0) {
490
+ return {};
491
+ }
492
+ }
493
+
494
+ // check if it's a single size (both X and Y are the same), we use it
495
+ // to set shape to circle
496
+ if (explicitSize.sizeX == explicitSize.sizeY) {
497
+ hasExplicitSingleSize = true;
498
+ }
499
+
500
+ sizeResult = CSSRadialGradientSize{explicitSize};
501
+ parser.consumeWhitespace();
502
+ }
503
+ }
504
+
505
+ if (std::holds_alternative<CSSRadialGradientShape>(shapeResult)) {
506
+ gradient.shape = std::get<CSSRadialGradientShape>(shapeResult);
507
+ hasExplicitShape = true;
508
+ } else {
509
+ // default to ellipse
510
+ gradient.shape = CSSRadialGradientShape::Ellipse;
511
+ }
512
+
513
+ if (sizeResult.has_value()) {
514
+ gradient.size = *sizeResult;
515
+ } else {
516
+ // default to farthest corner
517
+ gradient.size = CSSRadialGradientSize{CSSRadialGradientSizeKeyword::FarthestCorner};
518
+ }
519
+
520
+ if (!hasExplicitShape && hasExplicitSingleSize) {
521
+ gradient.shape = CSSRadialGradientShape::Circle;
522
+ }
523
+
524
+ if (hasExplicitSingleSize && hasExplicitShape && gradient.shape.value() == CSSRadialGradientShape::Ellipse) {
525
+ // if a single size is explicitly set and the shape is an ellipse do not
526
+ // apply any gradient. Same as web.
527
+ return {};
528
+ }
529
+
530
+ auto atResult = parser.consumeComponentValue<bool>([](const CSSPreservedToken &token) -> bool {
531
+ return token.type() == CSSTokenType::Ident && fnv1aLowercase(token.stringValue()) == fnv1a("at");
532
+ });
533
+
534
+ CSSRadialGradientPosition position;
535
+
536
+ if (atResult) {
537
+ parser.consumeWhitespace();
538
+ std::vector<std::variant<CSSLength, CSSPercentage, CSSKeyword>> positionKeywordValues;
539
+ for (int i = 0; i < 2; i++) {
540
+ auto keywordFound = false;
541
+ auto valueFound = false;
542
+
543
+ auto positionKeyword = parser.consumeComponentValue<std::optional<CSSKeyword>>(
544
+ [](const CSSPreservedToken &token) -> std::optional<CSSKeyword> {
545
+ if (token.type() == CSSTokenType::Ident) {
546
+ auto keyword = std::string(token.stringValue());
547
+ auto hash = fnv1aLowercase(keyword);
548
+ if (hash == fnv1a("top")) {
549
+ return CSSKeyword::Top;
550
+ } else if (hash == fnv1a("bottom")) {
551
+ return CSSKeyword::Bottom;
552
+ } else if (hash == fnv1a("left")) {
553
+ return CSSKeyword::Left;
554
+ } else if (hash == fnv1a("right")) {
555
+ return CSSKeyword::Right;
556
+ } else if (hash == fnv1a("center")) {
557
+ return CSSKeyword::Center;
558
+ }
559
+ }
560
+ return {};
561
+ });
562
+
563
+ if (positionKeyword) {
564
+ // invalid position declaration of same keyword "at top 10% top 20%"
565
+ for (const auto &existingValue : positionKeywordValues) {
566
+ if (std::holds_alternative<CSSKeyword>(existingValue)) {
567
+ if (std::get<CSSKeyword>(existingValue) == positionKeyword) {
568
+ return {};
569
+ }
570
+ }
571
+ }
572
+ positionKeywordValues.emplace_back(*positionKeyword);
573
+ keywordFound = true;
574
+ }
575
+
576
+ parser.consumeWhitespace();
577
+
578
+ auto lengthPercentageValue = parseNextCSSValue<CSSLengthPercentage>(parser);
579
+
580
+ std::optional<decltype(positionKeywordValues)::value_type> value;
581
+ if (std::holds_alternative<CSSLength>(lengthPercentageValue)) {
582
+ value = std::get<CSSLength>(lengthPercentageValue);
583
+ } else if (std::holds_alternative<CSSPercentage>(lengthPercentageValue)) {
584
+ value = std::get<CSSPercentage>(lengthPercentageValue);
585
+ }
586
+ if (value.has_value()) {
587
+ positionKeywordValues.emplace_back(*value);
588
+ valueFound = true;
589
+ }
590
+
591
+ parser.consumeWhitespace();
592
+
593
+ if (!keywordFound && !valueFound) {
594
+ break;
595
+ }
596
+ }
597
+
598
+ if (positionKeywordValues.empty()) {
599
+ return {};
600
+ }
601
+
602
+ // 1. [ left | center | right | top | bottom | <length-percentage> ]
603
+ if (positionKeywordValues.size() == 1) {
604
+ auto value = positionKeywordValues[0];
605
+ if (std::holds_alternative<CSSKeyword>(value)) {
606
+ auto keyword = std::get<CSSKeyword>(value);
607
+ if (keyword == CSSKeyword::Left) {
608
+ position.top = CSSPercentage{50.0f};
609
+ position.left = CSSPercentage{0.0f};
610
+ } else if (keyword == CSSKeyword::Right) {
611
+ position.top = CSSPercentage{50.0f};
612
+ position.left = CSSPercentage{100.0f};
613
+ } else if (keyword == CSSKeyword::Top) {
614
+ position.top = CSSPercentage{0.0f};
615
+ position.left = CSSPercentage{50.0f};
616
+ } else if (keyword == CSSKeyword::Bottom) {
617
+ position.top = CSSPercentage{100.0f};
618
+ position.left = CSSPercentage{50.0f};
619
+ } else if (keyword == CSSKeyword::Center) {
620
+ position.left = CSSPercentage{50.0f};
621
+ position.top = CSSPercentage{50.0f};
622
+ } else {
623
+ return {};
624
+ }
625
+ } else if ((std::holds_alternative<CSSLength>(value) || std::holds_alternative<CSSPercentage>(value))) {
626
+ if (std::holds_alternative<CSSLength>(value)) {
627
+ position.left = std::get<CSSLength>(value);
628
+ } else {
629
+ position.left = std::get<CSSPercentage>(value);
630
+ }
631
+ position.top = CSSPercentage{50.0f};
632
+ } else {
633
+ return {};
634
+ }
635
+ }
636
+
637
+ else if (positionKeywordValues.size() == 2) {
638
+ auto value1 = positionKeywordValues[0];
639
+ auto value2 = positionKeywordValues[1];
640
+ // 2. [ left | center | right ] && [ top | center | bottom ]
641
+ if (std::holds_alternative<CSSKeyword>(value1) && std::holds_alternative<CSSKeyword>(value2)) {
642
+ auto keyword1 = std::get<CSSKeyword>(value1);
643
+ auto keyword2 = std::get<CSSKeyword>(value2);
644
+ auto isHorizontal = [](CSSKeyword kw) {
645
+ return kw == CSSKeyword::Left || kw == CSSKeyword::Center || kw == CSSKeyword::Right;
646
+ };
647
+ auto isVertical = [](CSSKeyword kw) {
648
+ return kw == CSSKeyword::Top || kw == CSSKeyword::Center || kw == CSSKeyword::Bottom;
649
+ };
650
+ if (isHorizontal(keyword1) && isVertical(keyword2)) {
651
+ // First horizontal, second vertical
652
+ if (keyword1 == CSSKeyword::Left) {
653
+ position.left = CSSPercentage{0.0f};
654
+ } else if (keyword1 == CSSKeyword::Right) {
655
+ position.right = CSSPercentage{0.0f};
656
+ } else if (keyword1 == CSSKeyword::Center) {
657
+ position.left = CSSPercentage{50.0f};
658
+ }
659
+
660
+ if (keyword2 == CSSKeyword::Top) {
661
+ position.top = CSSPercentage{0.0f};
662
+ } else if (keyword2 == CSSKeyword::Bottom) {
663
+ position.bottom = CSSPercentage{0.0f};
664
+ } else if (keyword2 == CSSKeyword::Center) {
665
+ position.top = CSSPercentage{50.0f};
666
+ }
667
+ } else if (isVertical(keyword1) && isHorizontal(keyword2)) {
668
+ // First vertical, second horizontal
669
+ if (keyword1 == CSSKeyword::Top) {
670
+ position.top = CSSPercentage{0.0f};
671
+ } else if (keyword1 == CSSKeyword::Bottom) {
672
+ position.bottom = CSSPercentage{0.0f};
673
+ } else if (keyword1 == CSSKeyword::Center) {
674
+ position.top = CSSPercentage{50.0f};
675
+ }
676
+
677
+ if (keyword2 == CSSKeyword::Left) {
678
+ position.left = CSSPercentage{0.0f};
679
+ } else if (keyword2 == CSSKeyword::Right) {
680
+ position.left = CSSPercentage{100.0f};
681
+ } else if (keyword2 == CSSKeyword::Center) {
682
+ position.left = CSSPercentage{50.0f};
683
+ }
684
+ } else {
685
+ return {};
686
+ }
687
+ }
688
+ // 3. [ left | center | right | <length-percentage> ] [ top | center |
689
+ // bottom | <length-percentage> ]
690
+ else {
691
+ if (std::holds_alternative<CSSKeyword>(value1)) {
692
+ auto keyword1 = std::get<CSSKeyword>(value1);
693
+ if (keyword1 == CSSKeyword::Left) {
694
+ position.left = CSSPercentage{0.0f};
695
+ } else if (keyword1 == CSSKeyword::Right) {
696
+ position.right = CSSPercentage{0.0f};
697
+ } else if (keyword1 == CSSKeyword::Center) {
698
+ position.left = CSSPercentage{50.0f};
699
+ } else {
700
+ return {};
701
+ }
702
+ } else if ((std::holds_alternative<CSSLength>(value1) || std::holds_alternative<CSSPercentage>(value1))) {
703
+ if (std::holds_alternative<CSSLength>(value1)) {
704
+ position.left = std::get<CSSLength>(value1);
705
+ } else {
706
+ position.left = std::get<CSSPercentage>(value1);
707
+ }
708
+ } else {
709
+ return {};
710
+ }
711
+
712
+ if (std::holds_alternative<CSSKeyword>(value2)) {
713
+ auto keyword2 = std::get<CSSKeyword>(value2);
714
+ if (keyword2 == CSSKeyword::Top) {
715
+ position.top = CSSPercentage{0.0f};
716
+ } else if (keyword2 == CSSKeyword::Bottom) {
717
+ position.bottom = CSSPercentage{0.f};
718
+ } else if (keyword2 == CSSKeyword::Center) {
719
+ position.top = CSSPercentage{50.0f};
720
+ } else {
721
+ return {};
722
+ }
723
+ } else if ((std::holds_alternative<CSSLength>(value2) || std::holds_alternative<CSSPercentage>(value2))) {
724
+ if (std::holds_alternative<CSSLength>(value2)) {
725
+ position.top = std::get<CSSLength>(value2);
726
+ } else {
727
+ position.top = std::get<CSSPercentage>(value2);
728
+ }
729
+ } else {
730
+ return {};
731
+ }
732
+ }
733
+ }
734
+
735
+ // 4. [ [ left | right ] <length-percentage> ] && [ [ top | bottom ]
736
+ // <length-percentage> ]
737
+ else if (positionKeywordValues.size() == 4) {
738
+ auto value1 = positionKeywordValues[0];
739
+ auto value2 = positionKeywordValues[1];
740
+ auto value3 = positionKeywordValues[2];
741
+ auto value4 = positionKeywordValues[3];
742
+
743
+ if (!std::holds_alternative<CSSKeyword>(value1)) {
744
+ return {};
745
+ }
746
+ if (!std::holds_alternative<CSSKeyword>(value3)) {
747
+ return {};
748
+ }
749
+ if ((!std::holds_alternative<CSSLength>(value2) && !std::holds_alternative<CSSPercentage>(value2))) {
750
+ return {};
751
+ }
752
+ if ((!std::holds_alternative<CSSLength>(value4) && !std::holds_alternative<CSSPercentage>(value4))) {
753
+ return {};
754
+ }
755
+
756
+ auto parsedValue2 = std::holds_alternative<CSSLength>(value2)
757
+ ? std::variant<CSSLength, CSSPercentage>{std::get<CSSLength>(value2)}
758
+ : std::variant<CSSLength, CSSPercentage>{std::get<CSSPercentage>(value2)};
759
+ auto parsedValue4 = std::holds_alternative<CSSLength>(value4)
760
+ ? std::variant<CSSLength, CSSPercentage>{std::get<CSSLength>(value4)}
761
+ : std::variant<CSSLength, CSSPercentage>{std::get<CSSPercentage>(value4)};
762
+ auto keyword1 = std::get<CSSKeyword>(value1);
763
+ auto keyword3 = std::get<CSSKeyword>(value3);
764
+
765
+ if (keyword1 == CSSKeyword::Left) {
766
+ position.left = parsedValue2;
767
+ } else if (keyword1 == CSSKeyword::Right) {
768
+ position.right = parsedValue2;
769
+ } else if (keyword1 == CSSKeyword::Top) {
770
+ position.top = parsedValue2;
771
+ } else if (keyword1 == CSSKeyword::Bottom) {
772
+ position.bottom = parsedValue2;
773
+ } else {
774
+ return {};
775
+ }
776
+
777
+ if (keyword3 == CSSKeyword::Left) {
778
+ position.left = parsedValue4;
779
+ } else if (keyword3 == CSSKeyword::Right) {
780
+ position.right = parsedValue4;
781
+ } else if (keyword3 == CSSKeyword::Top) {
782
+ position.top = parsedValue4;
783
+ } else if (keyword3 == CSSKeyword::Bottom) {
784
+ position.bottom = parsedValue4;
785
+ } else {
786
+ return {};
787
+ }
788
+ } else {
789
+ return {};
790
+ }
791
+
792
+ gradient.position = position;
793
+ } else {
794
+ // Default position
795
+ position.top = CSSPercentage{50.0f};
796
+ position.left = CSSPercentage{50.0f};
797
+ gradient.position = position;
798
+ }
799
+
800
+ parser.consumeDelimiter(CSSDelimiter::Comma);
801
+ auto [items, colorStopCount] = CSSLinearGradientFunction::parseGradientColorStopsAndHints(parser);
802
+
803
+ if (items.empty() || colorStopCount < 2) {
804
+ return {};
805
+ }
806
+
807
+ gradient.items = std::move(items);
808
+ return gradient;
809
+ }
810
+ };
811
+
812
+ static_assert(CSSDataType<CSSRadialGradientFunction>);
813
+
814
+ template <>
815
+ struct CSSDataTypeParser<CSSLinearGradientFunction> {
816
+ static auto consumeFunctionBlock(const CSSFunctionBlock &func, CSSSyntaxParser &parser)
817
+ -> std::optional<CSSLinearGradientFunction>
818
+ {
819
+ if (!iequals(func.name, "linear-gradient")) {
820
+ return {};
821
+ }
822
+
823
+ CSSLinearGradientFunction gradient;
824
+
825
+ auto parsedDirection = parseNextCSSValue<CSSLinearGradientDirection>(parser);
826
+ if (!std::holds_alternative<CSSLinearGradientDirection>(parsedDirection)) {
827
+ return {};
828
+ }
829
+
830
+ parser.consumeDelimiter(CSSDelimiter::Comma);
831
+
832
+ gradient.direction = std::get<CSSLinearGradientDirection>(parsedDirection);
833
+
834
+ auto [items, colorStopCount] = CSSLinearGradientFunction::parseGradientColorStopsAndHints(parser);
835
+
836
+ if (items.empty() || colorStopCount < 2) {
837
+ return {};
838
+ }
839
+
840
+ gradient.items = std::move(items);
841
+
842
+ return gradient;
843
+ }
844
+ };
845
+
846
+ static_assert(CSSDataType<CSSLinearGradientFunction>);
847
+
848
+ /**
849
+ * Representation of <background-image>
850
+ * https://www.w3.org/TR/css-backgrounds-3/#background-image
851
+ */
852
+ using CSSBackgroundImage = CSSCompoundDataType<CSSLinearGradientFunction, CSSRadialGradientFunction>;
853
+
854
+ /**
855
+ * Variant of possible CSS background image types
856
+ */
857
+ using CSSBackgroundImageVariant = CSSVariantWithTypes<CSSBackgroundImage>;
858
+
859
+ /**
860
+ * Representation of <background-image-list>
861
+ */
862
+ using CSSBackgroundImageList = CSSCommaSeparatedList<CSSBackgroundImage>;
863
+
864
+ } // namespace facebook::react