not-react-native-macos 0.83.0-rc.1 → 0.87.1-rc.2

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 (2860) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +22 -27
  2. package/Libraries/Alert/Alert.js +38 -120
  3. package/Libraries/Alert/RCTAlertManager.macos.js +12 -7
  4. package/Libraries/Animated/Animated.d.ts +8 -1
  5. package/Libraries/Animated/AnimatedEvent.js +7 -7
  6. package/Libraries/Animated/AnimatedExports.js +22 -0
  7. package/Libraries/Animated/AnimatedExports.js.flow +1 -1
  8. package/Libraries/Animated/AnimatedImplementation.js +134 -13
  9. package/Libraries/Animated/AnimatedMock.js +1 -7
  10. package/Libraries/Animated/Easing.js +4 -3
  11. package/Libraries/Animated/NativeAnimatedAllowlist.js +58 -0
  12. package/Libraries/Animated/__tests__/Animated-benchmark-itest.js +133 -0
  13. package/Libraries/Animated/__tests__/Animated-itest.js +1010 -0
  14. package/Libraries/Animated/__tests__/Animated-test.js +1257 -0
  15. package/Libraries/Animated/__tests__/Animated-web-test.js +199 -0
  16. package/Libraries/Animated/__tests__/AnimatedBackend-benchmark-itest.js +198 -0
  17. package/Libraries/Animated/__tests__/AnimatedBackend-itest.js +733 -0
  18. package/Libraries/Animated/__tests__/AnimatedBackendSuspense-itest.js +592 -0
  19. package/Libraries/Animated/__tests__/AnimatedMock-itest.js +49 -0
  20. package/Libraries/Animated/__tests__/AnimatedObject-itest.js +90 -0
  21. package/Libraries/Animated/__tests__/AnimatedValue-itest.js +248 -0
  22. package/Libraries/Animated/__tests__/Easing-itest.js +249 -0
  23. package/Libraries/Animated/__tests__/Interpolation-itest.js +601 -0
  24. package/Libraries/Animated/__tests__/NativeAnimatedAllowlist-test.js +86 -0
  25. package/Libraries/Animated/__tests__/TimingAnimation-itest.js +40 -0
  26. package/Libraries/Animated/__tests__/bezier-itest.js +149 -0
  27. package/Libraries/Animated/animations/Animation.js +18 -11
  28. package/Libraries/Animated/animations/DecayAnimation.js +5 -4
  29. package/Libraries/Animated/animations/SpringAnimation.js +6 -5
  30. package/Libraries/Animated/animations/TimingAnimation.js +14 -5
  31. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  32. package/Libraries/Animated/components/AnimatedText.js +3 -3
  33. package/Libraries/Animated/createAnimatedComponent.js +21 -18
  34. package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
  35. package/Libraries/Animated/nodes/AnimatedColor.js +18 -18
  36. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
  37. package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
  38. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -27
  39. package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
  40. package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
  41. package/Libraries/Animated/nodes/AnimatedNode.js +6 -6
  42. package/Libraries/Animated/nodes/AnimatedObject.js +18 -13
  43. package/Libraries/Animated/nodes/AnimatedProps.js +73 -18
  44. package/Libraries/Animated/nodes/AnimatedStyle.js +19 -19
  45. package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
  46. package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
  47. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  48. package/Libraries/Animated/nodes/AnimatedValue.js +17 -6
  49. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -4
  50. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  51. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  52. package/Libraries/Animated/useAnimatedColor.js +25 -0
  53. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  54. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  55. package/Libraries/AppDelegate/RCTAppDelegate.h +8 -16
  56. package/Libraries/AppDelegate/RCTAppDelegate.mm +4 -60
  57. package/Libraries/AppDelegate/RCTAppSetupUtils.h +0 -18
  58. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +0 -80
  59. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +1 -5
  60. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +23 -22
  61. package/Libraries/AppDelegate/RCTReactNativeFactory.h +12 -45
  62. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +22 -108
  63. package/Libraries/AppDelegate/RCTRootViewFactory.h +26 -17
  64. package/Libraries/AppDelegate/RCTRootViewFactory.mm +35 -134
  65. package/Libraries/AppDelegate/RCTUIConfiguratorProtocol.h +2 -2
  66. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -0
  67. package/Libraries/AppState/AppState.d.ts +4 -1
  68. package/Libraries/AppState/AppState.js +35 -22
  69. package/Libraries/BatchedBridge/MessageQueue.js +69 -76
  70. package/Libraries/BatchedBridge/NativeModules.js +20 -11
  71. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +37 -0
  72. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +24 -0
  73. package/Libraries/BatchedBridge/__tests__/MessageQueue-itest.js +183 -0
  74. package/Libraries/BatchedBridge/__tests__/NativeModules-test.js +253 -0
  75. package/Libraries/Blob/Blob.js +7 -1
  76. package/Libraries/Blob/FileReader.js +6 -0
  77. package/Libraries/Blob/RCTBlobCollector.h +1 -1
  78. package/Libraries/Blob/RCTBlobCollector.mm +14 -26
  79. package/Libraries/Blob/RCTBlobManager.mm +11 -3
  80. package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
  81. package/Libraries/Blob/URL.js +34 -3
  82. package/Libraries/Blob/URLSearchParams.js +1 -0
  83. package/Libraries/Blob/URLSearchParams.js.flow +1 -1
  84. package/Libraries/Blob/__mocks__/BlobModule.js +16 -0
  85. package/Libraries/Blob/__mocks__/FileReaderModule.js +20 -0
  86. package/Libraries/Blob/__tests__/Blob-test.js +135 -0
  87. package/Libraries/Blob/__tests__/BlobManager-test.js +32 -0
  88. package/Libraries/Blob/__tests__/BlobRegistry-itest.js +49 -0
  89. package/Libraries/Blob/__tests__/File-test.js +89 -0
  90. package/Libraries/Blob/__tests__/FileReader-test.js +87 -0
  91. package/Libraries/Blob/__tests__/URL-itest.js +168 -0
  92. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +29 -19
  93. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +118 -156
  94. package/Libraries/Components/AccessibilityInfo/__tests__/AccessibilityInfo-test.js +822 -0
  95. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.macos.js +14 -7
  96. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +61 -51
  97. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  98. package/Libraries/Components/ActivityIndicator/__tests__/ActivityIndicator-itest.js +195 -0
  99. package/Libraries/Components/Button.js +104 -248
  100. package/Libraries/Components/Clipboard/Clipboard.js +5 -0
  101. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  102. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +9 -70
  103. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +10 -1
  104. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +2 -0
  105. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.macos.js +23 -0
  106. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +32 -37
  107. package/Libraries/Components/DrawerAndroid/__tests__/DrawerAndroid-test.js +38 -0
  108. package/Libraries/Components/DrawerAndroid/__tests__/__snapshots__/DrawerAndroid-test.js.snap +107 -0
  109. package/Libraries/Components/Keyboard/Keyboard.js +34 -71
  110. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +17 -9
  111. package/Libraries/Components/Keyboard/__tests__/Keyboard-test.js +83 -0
  112. package/Libraries/Components/LayoutConformance/LayoutConformance.js +2 -28
  113. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  114. package/Libraries/Components/Pressable/Pressable.d.ts +6 -0
  115. package/Libraries/Components/Pressable/Pressable.js +53 -172
  116. package/Libraries/Components/Pressable/__tests__/Pressable-itest.js +323 -0
  117. package/Libraries/Components/Pressable/useAndroidRippleForView.js +11 -12
  118. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +5 -6
  119. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +5 -5
  120. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  121. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +20 -3
  122. package/Libraries/Components/ProgressBarAndroid/__tests__/ProgressBarAndroid-itest.js +31 -0
  123. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  124. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  125. package/Libraries/Components/RefreshControl/RefreshControl.js +44 -54
  126. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  127. package/Libraries/Components/SafeAreaView/SafeAreaView.js +8 -8
  128. package/Libraries/Components/SafeAreaView/__tests__/SafeAreaView-itest.js +38 -0
  129. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  130. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  131. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -5
  132. package/Libraries/Components/ScrollView/ScrollView.d.ts +64 -43
  133. package/Libraries/Components/ScrollView/ScrollView.js +227 -165
  134. package/Libraries/Components/ScrollView/ScrollViewCommands.js +6 -6
  135. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -32
  136. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  137. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +4 -4
  138. package/Libraries/Components/ScrollView/__tests__/ScrollView-itest.js +240 -0
  139. package/Libraries/Components/ScrollView/__tests__/ScrollView-viewCulling-itest.js +2602 -0
  140. package/Libraries/Components/StaticRenderer.js +1 -1
  141. package/Libraries/Components/StatusBar/StatusBar.d.ts +7 -54
  142. package/Libraries/Components/StatusBar/StatusBar.js +93 -169
  143. package/Libraries/Components/StatusBar/__tests__/StatusBar-test.js +79 -0
  144. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  145. package/Libraries/Components/Switch/Switch.js +80 -79
  146. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  147. package/Libraries/Components/Switch/__tests__/Switch-itest.js +47 -0
  148. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +58 -49
  149. package/Libraries/Components/TextInput/InputAccessoryView.js +14 -62
  150. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  151. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +2 -2
  152. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -3
  153. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -41
  154. package/Libraries/Components/TextInput/TextInput.d.ts +33 -127
  155. package/Libraries/Components/TextInput/TextInput.flow.js +79 -205
  156. package/Libraries/Components/TextInput/TextInput.js +163 -246
  157. package/Libraries/Components/TextInput/TextInputNativeCommands.js +4 -16
  158. package/Libraries/Components/TextInput/TextInputState.js +3 -7
  159. package/Libraries/Components/TextInput/__tests__/InputAccessoryView-itest.js +33 -0
  160. package/Libraries/Components/TextInput/__tests__/TextInput-itest.js +633 -0
  161. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +30 -24
  162. package/Libraries/Components/ToastAndroid/ToastAndroid.macos.js +23 -0
  163. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
  164. package/Libraries/Components/Touchable/PooledClass.js +6 -6
  165. package/Libraries/Components/Touchable/Touchable.js +95 -101
  166. package/Libraries/Components/Touchable/TouchableBounce.js +12 -32
  167. package/Libraries/Components/Touchable/TouchableHighlight.js +53 -139
  168. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +27 -43
  169. package/Libraries/Components/Touchable/TouchableOpacity.js +20 -116
  170. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +15 -49
  171. package/Libraries/Components/Touchable/__tests__/TouchableHighlight-itest.js +483 -0
  172. package/Libraries/Components/Touchable/__tests__/TouchableNativeFeedback-itest.js +160 -0
  173. package/Libraries/Components/Touchable/__tests__/TouchableOpacity-itest.js +235 -0
  174. package/Libraries/Components/Touchable/__tests__/TouchableWithoutFeedback-itest.js +170 -0
  175. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  176. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  177. package/Libraries/Components/View/ReactNativeStyleAttributes.js +79 -33
  178. package/Libraries/Components/View/View.js +21 -72
  179. package/Libraries/Components/View/ViewAccessibility.d.ts +11 -1
  180. package/Libraries/Components/View/ViewAccessibility.js +23 -13
  181. package/Libraries/Components/View/ViewNativeComponent.js +4 -6
  182. package/Libraries/Components/View/ViewPropTypes.d.ts +0 -26
  183. package/Libraries/Components/View/ViewPropTypes.js +98 -170
  184. package/Libraries/Components/View/__tests__/FantomEventHandlers-itest.js +80 -0
  185. package/Libraries/Components/View/__tests__/View-benchmark-itest.js +270 -0
  186. package/Libraries/Components/View/__tests__/View-flexBasisFitContent-itest.js +87 -0
  187. package/Libraries/Components/View/__tests__/View-itest.js +1138 -0
  188. package/Libraries/Components/View/__tests__/View-vs-ViewNativeComponent-benchmark-itest.js +60 -0
  189. package/Libraries/Components/View/__tests__/View-yogaNodeOwnerAssertion-itest.js +120 -0
  190. package/Libraries/Components/View/__tests__/ViewProps-benchmark-itest.js +172 -0
  191. package/Libraries/Components/__tests__/Button-itest.js +290 -0
  192. package/Libraries/Core/Devtools/__tests__/loadBundleFromServer-test.js +269 -0
  193. package/Libraries/Core/Devtools/__tests__/parseErrorStack-itest.js +45 -0
  194. package/Libraries/Core/Devtools/__tests__/parseHermesStack-itest.js +241 -0
  195. package/Libraries/Core/Devtools/loadBundleFromServer.js +14 -3
  196. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  197. package/Libraries/Core/Devtools/symbolicateStackTrace.js +3 -3
  198. package/Libraries/Core/ExceptionsManager.js +5 -11
  199. package/Libraries/Core/ExtendedError.js +3 -3
  200. package/Libraries/Core/InitializeCore.js +9 -14
  201. package/Libraries/Core/RawEventEmitter.js +2 -2
  202. package/Libraries/Core/ReactFiberErrorDialog.js +6 -6
  203. package/Libraries/Core/ReactNativeVersion.js +3 -3
  204. package/Libraries/Core/ReactNativeVersionCheck.js +1 -1
  205. package/Libraries/Core/Timers/JSTimers.js +56 -54
  206. package/Libraries/Core/Timers/__tests__/JSTimers-test.js +427 -0
  207. package/Libraries/Core/Timers/immediateShim.js +1 -1
  208. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +18 -0
  209. package/Libraries/Core/__tests__/ExceptionsManager-test.js +1102 -0
  210. package/Libraries/Core/__tests__/ReactNativeVersionCheck-itest.js +135 -0
  211. package/Libraries/Core/setUpAlert.js +0 -1
  212. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  213. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  214. package/Libraries/Core/setUpErrorHandling.js +5 -3
  215. package/Libraries/Core/setUpGlobals.js +9 -4
  216. package/Libraries/Core/setUpNavigator.js +6 -1
  217. package/Libraries/Core/setUpReactDevTools.js +0 -101
  218. package/Libraries/Core/setUpSegmentFetcher.js +2 -2
  219. package/Libraries/Core/setUpXHR.js +6 -2
  220. package/Libraries/Debugging/DebuggingOverlay.js +4 -4
  221. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  222. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  223. package/Libraries/EventEmitter/NativeEventEmitter.js +41 -11
  224. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -9
  225. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +3 -0
  226. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +51 -0
  227. package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +0 -6
  228. package/Libraries/Image/AssetSourceResolver.js +18 -27
  229. package/Libraries/Image/Image.android.js +170 -313
  230. package/Libraries/Image/Image.d.ts +0 -5
  231. package/Libraries/Image/Image.ios.js +5 -5
  232. package/Libraries/Image/Image.macos.js +15 -7
  233. package/Libraries/Image/ImageBackground.js +30 -18
  234. package/Libraries/Image/ImageProps.js +126 -134
  235. package/Libraries/Image/ImageSource.d.ts +1 -1
  236. package/Libraries/Image/ImageSource.js +11 -11
  237. package/Libraries/Image/ImageSourceUtils.js +14 -7
  238. package/Libraries/Image/ImageTypes.flow.js +6 -4
  239. package/Libraries/Image/ImageViewNativeComponent.js +8 -17
  240. package/Libraries/Image/RCTAnimatedImage.h +4 -8
  241. package/Libraries/Image/RCTAnimatedImage.mm +1 -12
  242. package/Libraries/Image/RCTBundleAssetImageLoader.mm +1 -1
  243. package/Libraries/Image/RCTDisplayWeakRefreshable.h +2 -4
  244. package/Libraries/Image/RCTDisplayWeakRefreshable.mm +3 -3
  245. package/Libraries/Image/RCTImageBlurUtils.h +2 -2
  246. package/Libraries/Image/RCTImageBlurUtils.mm +7 -20
  247. package/Libraries/Image/RCTImageCache.h +4 -4
  248. package/Libraries/Image/RCTImageCache.mm +3 -7
  249. package/Libraries/Image/RCTImageDataDecoder.h +1 -1
  250. package/Libraries/Image/RCTImageEditingManager.mm +4 -4
  251. package/Libraries/Image/RCTImageLoader.h +1 -2
  252. package/Libraries/Image/RCTImageLoader.mm +91 -144
  253. package/Libraries/Image/RCTImageLoaderProtocol.h +2 -1
  254. package/Libraries/Image/RCTImageLoaderWithAttributionProtocol.h +2 -2
  255. package/Libraries/Image/RCTImagePlugins.h +1 -0
  256. package/Libraries/Image/RCTImagePlugins.mm +30 -17
  257. package/Libraries/Image/RCTImageStoreManager.h +5 -7
  258. package/Libraries/Image/RCTImageStoreManager.mm +6 -8
  259. package/Libraries/Image/RCTImageURLLoader.h +4 -4
  260. package/Libraries/Image/RCTImageURLLoaderWithAttribution.h +1 -1
  261. package/Libraries/Image/RCTImageUtils.h +5 -10
  262. package/Libraries/Image/RCTImageUtils.mm +44 -48
  263. package/Libraries/Image/RCTLocalAssetImageLoader.mm +1 -1
  264. package/Libraries/Image/RCTResizeMode.h +2 -13
  265. package/Libraries/Image/RCTUIImageViewAnimated.h +2 -1
  266. package/Libraries/Image/RCTUIImageViewAnimated.mm +24 -30
  267. package/Libraries/Image/React-RCTImage.podspec +1 -5
  268. package/Libraries/Image/RelativeImageStub.js +3 -3
  269. package/Libraries/Image/__tests__/AssetUtils-itest.js +50 -0
  270. package/Libraries/Image/__tests__/Image-benchmark-itest.js +80 -0
  271. package/Libraries/Image/__tests__/Image-itest.js +1085 -0
  272. package/Libraries/Image/__tests__/ImageBackground-itest.js +154 -0
  273. package/Libraries/Image/__tests__/ImageSourceUtils-itest.js +301 -0
  274. package/Libraries/Image/__tests__/assetRelativePathInSnapshot-itest.js +41 -0
  275. package/Libraries/Image/__tests__/img/img1.png +0 -0
  276. package/Libraries/Image/__tests__/img/img2.png +0 -0
  277. package/Libraries/Image/__tests__/resolveAssetSource-test.js +459 -0
  278. package/Libraries/Image/nativeImageSource.js +1 -3
  279. package/Libraries/Image/resolveAssetSource.js +1 -1
  280. package/Libraries/Interaction/PanResponder.js +104 -99
  281. package/Libraries/LayoutAnimation/LayoutAnimation.js +37 -21
  282. package/Libraries/Linking/Linking.js +27 -30
  283. package/Libraries/LinkingIOS/RCTLinkingManager.h +1 -8
  284. package/Libraries/LinkingIOS/RCTLinkingManager.mm +0 -3
  285. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
  286. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -8
  287. package/Libraries/Lists/FillRateHelper.js +2 -2
  288. package/Libraries/Lists/FlatList.d.ts +7 -18
  289. package/Libraries/Lists/FlatList.js +16 -55
  290. package/Libraries/Lists/SectionList.d.ts +1 -1
  291. package/Libraries/Lists/SectionList.js +10 -3
  292. package/Libraries/Lists/SectionListModern.js +4 -4
  293. package/Libraries/Lists/ViewabilityHelper.js +2 -2
  294. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  295. package/Libraries/Lists/VirtualizedList.js +5 -2
  296. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  297. package/Libraries/Lists/VirtualizedSectionList.js +6 -2
  298. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +118 -0
  299. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +130 -0
  300. package/Libraries/Lists/__tests__/FlatList-itest.js +1160 -0
  301. package/Libraries/Lists/__tests__/SectionList-itest.js +728 -0
  302. package/Libraries/Lists/__tests__/VirtualizedList-stickyHeaders-benchmark-itest.js +85 -0
  303. package/Libraries/LogBox/Data/LogBoxData.js +69 -28
  304. package/Libraries/LogBox/Data/LogBoxLog.js +45 -114
  305. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  306. package/Libraries/LogBox/Data/__tests__/LogBoxData-test.js +867 -0
  307. package/Libraries/LogBox/Data/__tests__/LogBoxLog-test.js +600 -0
  308. package/Libraries/LogBox/Data/__tests__/LogBoxSymbolication-test.js +60 -0
  309. package/Libraries/LogBox/Data/__tests__/parseLogBoxLog-itest.js +776 -0
  310. package/Libraries/LogBox/Data/__tests__/parseLogBoxLog-test.js +365 -0
  311. package/Libraries/LogBox/Data/parseLogBoxLog.js +23 -119
  312. package/Libraries/LogBox/LogBox.js +53 -30
  313. package/Libraries/LogBox/LogBoxInspectorContainer.js +26 -4
  314. package/Libraries/LogBox/LogBoxNotificationContainer.js +29 -6
  315. package/Libraries/LogBox/UI/AnsiHighlight.js +2 -1
  316. package/Libraries/LogBox/UI/LogBoxButton.js +55 -34
  317. package/Libraries/LogBox/UI/LogBoxInspector.js +63 -3
  318. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +10 -25
  319. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +11 -2
  320. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +4 -2
  321. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +9 -4
  322. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  323. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +18 -16
  324. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +32 -24
  325. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +7 -7
  326. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +11 -11
  327. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -8
  328. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +20 -30
  329. package/Libraries/LogBox/UI/LogBoxMessage.js +43 -39
  330. package/Libraries/LogBox/UI/LogBoxNotification.js +3 -1
  331. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +4 -1
  332. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +1 -0
  333. package/Libraries/LogBox/UI/LogBoxStyle.js +0 -4
  334. package/Libraries/LogBox/UI/__tests__/LogBoxButton-itest.js +54 -0
  335. package/Libraries/LogBox/UI/__tests__/LogBoxInspector-itest.js +106 -0
  336. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorCodeFrame-itest.js +140 -0
  337. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorFooter-itest.js +81 -0
  338. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorHeader-itest.js +81 -0
  339. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorMessageHeader-itest.js +134 -0
  340. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorReactFrames-itest.js +196 -0
  341. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorSection-itest.js +46 -0
  342. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorSourceMapStatus-itest.js +50 -0
  343. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorStackFrame-itest.js +77 -0
  344. package/Libraries/LogBox/UI/__tests__/LogBoxInspectorStackFrames-itest.js +110 -0
  345. package/Libraries/LogBox/UI/__tests__/LogBoxMessage-itest.js +266 -0
  346. package/Libraries/LogBox/UI/__tests__/LogBoxNotification-itest.js +47 -0
  347. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxButton-itest.js.snap +38 -0
  348. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspector-itest.js.snap +367 -0
  349. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorCodeFrame-itest.js.snap +924 -0
  350. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorFooter-itest.js.snap +203 -0
  351. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorHeader-itest.js.snap +177 -0
  352. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorMessageHeader-itest.js.snap +289 -0
  353. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorReactFrames-itest.js.snap +475 -0
  354. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorSection-itest.js.snap +69 -0
  355. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorSourceMapStatus-itest.js.snap +76 -0
  356. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorStackFrame-itest.js.snap +121 -0
  357. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorStackFrames-itest.js.snap +100 -0
  358. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxMessage-itest.js.snap +332 -0
  359. package/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxNotification-itest.js.snap +102 -0
  360. package/Libraries/LogBox/__tests__/LogBox-test.js +464 -0
  361. package/Libraries/LogBox/__tests__/LogBoxInspectorContainer-test.js +168 -0
  362. package/Libraries/LogBox/__tests__/LogBoxNotificationContainer-test.js +362 -0
  363. package/Libraries/LogBox/__tests__/__snapshots__/LogBoxInspectorContainer-test.js.snap +78 -0
  364. package/Libraries/LogBox/__tests__/__snapshots__/LogBoxNotificationContainer-test.js.snap +231 -0
  365. package/Libraries/LogBox/__tests__/fantomHelpers.js +225 -0
  366. package/Libraries/Modal/Modal.d.ts +5 -4
  367. package/Libraries/Modal/Modal.js +87 -48
  368. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  369. package/Libraries/Modal/__tests__/Modal-itest.js +324 -0
  370. package/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.mm +1 -1
  371. package/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.mm +1 -1
  372. package/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.mm +1 -1
  373. package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +2 -4
  374. package/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.h +1 -1
  375. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
  376. package/Libraries/NativeAnimation/RCTAnimationUtils.h +2 -2
  377. package/Libraries/NativeAnimation/RCTAnimationUtils.mm +1 -1
  378. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +2 -2
  379. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +1 -2
  380. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +3 -3
  381. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
  382. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +2 -5
  383. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -52
  384. package/Libraries/NativeComponent/BaseViewConfig.ios.js +36 -21
  385. package/Libraries/NativeComponent/BaseViewConfig.macos.js +12 -89
  386. package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
  387. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  388. package/Libraries/NativeComponent/ViewConfig.js +3 -3
  389. package/Libraries/NativeComponent/ViewConfigIgnore.js +6 -5
  390. package/Libraries/NativeComponent/__tests__/StaticViewConfigValidator-itest.js +239 -0
  391. package/Libraries/Network/RCTFileRequestHandler.mm +0 -4
  392. package/Libraries/Network/RCTHTTPRequestHandler.h +10 -1
  393. package/Libraries/Network/RCTHTTPRequestHandler.mm +15 -1
  394. package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
  395. package/Libraries/Network/RCTNetworkConversions.h +1 -1
  396. package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
  397. package/Libraries/Network/RCTNetworking.android.js +4 -4
  398. package/Libraries/Network/RCTNetworking.ios.js +3 -3
  399. package/Libraries/Network/RCTNetworking.js.flow +3 -3
  400. package/Libraries/Network/RCTNetworking.macos.js +15 -7
  401. package/Libraries/Network/RCTNetworking.mm +1 -2
  402. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  403. package/Libraries/Network/React-RCTNetwork.podspec +1 -4
  404. package/Libraries/Network/XMLHttpRequest.js +30 -13
  405. package/Libraries/Network/__tests__/FormData-itest.js +130 -0
  406. package/Libraries/Network/__tests__/XMLHttpRequest-test.js +288 -0
  407. package/Libraries/Performance/Systrace.js +36 -0
  408. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +4 -2
  409. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +32 -20
  410. package/Libraries/Pressability/HoverState.js +0 -4
  411. package/Libraries/Pressability/Pressability.js +17 -82
  412. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  413. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  414. package/Libraries/Pressability/__tests__/Pressability-itest.js +253 -0
  415. package/Libraries/Pressability/__tests__/Pressability-test.js +989 -0
  416. package/Libraries/Pressability/usePressability.js +3 -14
  417. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +8 -7
  418. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.h +0 -5
  419. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +26 -27
  420. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
  421. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -5
  422. package/Libraries/ReactNative/AppContainer-dev.js +22 -4
  423. package/Libraries/ReactNative/AppContainer-prod.js +1 -2
  424. package/Libraries/ReactNative/AppContainer.js +1 -2
  425. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  426. package/Libraries/ReactNative/AppRegistry.flow.js +4 -4
  427. package/Libraries/ReactNative/AppRegistry.js +15 -11
  428. package/Libraries/ReactNative/AppRegistryImpl.js +74 -28
  429. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  430. package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
  431. package/Libraries/ReactNative/DisplayMode.js +1 -1
  432. package/Libraries/ReactNative/FabricUIManager.js +36 -27
  433. package/Libraries/ReactNative/I18nManager.js +20 -0
  434. package/Libraries/ReactNative/IPerformanceLogger.d.ts +51 -0
  435. package/Libraries/ReactNative/IPerformanceLogger.flow.js +52 -0
  436. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  437. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  438. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  439. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +15 -15
  440. package/Libraries/ReactNative/ReactFabricPublicInstance/__tests__/ReactNativeAttributePayload-itest.js +495 -0
  441. package/Libraries/ReactNative/RendererImplementation.js +26 -142
  442. package/Libraries/ReactNative/RendererProxy.js +4 -15
  443. package/Libraries/ReactNative/UIManager.js +53 -0
  444. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  445. package/Libraries/ReactNative/__tests__/FabricUIManager-test.js +67 -0
  446. package/Libraries/ReactNative/__tests__/StaleEventHandlersFromInterruptedRender-itest.js +126 -0
  447. package/Libraries/ReactNative/__tests__/State-ForcedCloneCommitHook-itest.js +57 -0
  448. package/Libraries/ReactNative/__tests__/SyncOnCommit-itest.js +181 -0
  449. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  450. package/Libraries/ReactNative/renderApplication.js +33 -59
  451. package/Libraries/ReactNative/requireNativeComponent.js +3 -3
  452. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -122
  453. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +5 -41
  454. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  455. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  456. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  457. package/Libraries/Renderer/shims/ReactNativeTypes.js +36 -66
  458. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +4 -4
  459. package/Libraries/Settings/RCTSettingsManager.mm +1 -32
  460. package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
  461. package/Libraries/Settings/Settings.ios.js +24 -2
  462. package/Libraries/Settings/Settings.macos.js +25 -7
  463. package/Libraries/Share/Share.js +25 -28
  464. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +4 -4
  465. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +4 -4
  466. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +10 -2
  467. package/Libraries/StyleSheet/PlatformColorValueTypes.macos.js +11 -159
  468. package/Libraries/StyleSheet/PointPropType.js +1 -1
  469. package/Libraries/StyleSheet/Rect.js +1 -1
  470. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  471. package/Libraries/StyleSheet/StyleSheet.js +42 -2
  472. package/Libraries/StyleSheet/StyleSheet.js.flow +2 -2
  473. package/Libraries/StyleSheet/StyleSheetExports.js +23 -30
  474. package/Libraries/StyleSheet/StyleSheetExports.js.flow +3 -8
  475. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +123 -48
  476. package/Libraries/StyleSheet/StyleSheetTypes.js +79 -95
  477. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +51 -0
  478. package/Libraries/StyleSheet/__tests__/StyleSheet-itest.js +53 -0
  479. package/Libraries/StyleSheet/__tests__/flattenStyle-benchmark-itest.js +72 -0
  480. package/Libraries/StyleSheet/__tests__/flattenStyle-itest.js +190 -0
  481. package/Libraries/StyleSheet/__tests__/normalizeColor-itest.js +99 -0
  482. package/Libraries/StyleSheet/__tests__/processAspectRatio-itest.js +75 -0
  483. package/Libraries/StyleSheet/__tests__/processBackgroundImage-itest.js +1158 -0
  484. package/Libraries/StyleSheet/__tests__/processBackgroundPosition-itest.js +477 -0
  485. package/Libraries/StyleSheet/__tests__/processBackgroundRepeat-itest.js +242 -0
  486. package/Libraries/StyleSheet/__tests__/processBackgroundSize-itest.js +227 -0
  487. package/Libraries/StyleSheet/__tests__/processBoxShadow-itest.js +353 -0
  488. package/Libraries/StyleSheet/__tests__/processColor-itest.js +125 -0
  489. package/Libraries/StyleSheet/__tests__/processColorArray-itest.js +141 -0
  490. package/Libraries/StyleSheet/__tests__/processFilter-itest.js +416 -0
  491. package/Libraries/StyleSheet/__tests__/processFontVariant-itest.js +50 -0
  492. package/Libraries/StyleSheet/__tests__/processTransform-itest.js +151 -0
  493. package/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js +117 -0
  494. package/Libraries/StyleSheet/__tests__/setNormalizedColorAlpha-itest.js +35 -0
  495. package/Libraries/StyleSheet/__tests__/splitLayoutProps-itest.js +54 -0
  496. package/Libraries/StyleSheet/flattenStyle.js +29 -14
  497. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  498. package/Libraries/StyleSheet/private/_TransformStyle.js +22 -20
  499. package/Libraries/StyleSheet/processBackgroundImage.js +26 -16
  500. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  501. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  502. package/Libraries/StyleSheet/processBackgroundSize.js +11 -16
  503. package/Libraries/StyleSheet/processBoxShadow.js +15 -13
  504. package/Libraries/StyleSheet/processColorArray.js +2 -2
  505. package/Libraries/StyleSheet/processFilter.js +19 -11
  506. package/Libraries/StyleSheet/processTransformOrigin.js +10 -3
  507. package/Libraries/Text/RCTConvert+Text.h +0 -16
  508. package/Libraries/Text/RCTConvert+Text.mm +0 -2
  509. package/Libraries/Text/React-RCTText.podspec +1 -6
  510. package/Libraries/Text/Text/NSTextStorage+FontScaling.h +1 -1
  511. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +1 -1
  512. package/Libraries/Text/Text/RCTDynamicTypeRamp.h +0 -2
  513. package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +6 -5
  514. package/Libraries/Text/Text.d.ts +0 -1
  515. package/Libraries/Text/Text.js +307 -626
  516. package/Libraries/Text/TextEffectNativeComponent.js +31 -0
  517. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +38 -62
  518. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +18 -337
  519. package/Libraries/Text/TextInput/RCTBackedTextInputDelegate.h +4 -22
  520. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.h +1 -12
  521. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +46 -215
  522. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +5 -53
  523. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +2 -41
  524. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +8 -446
  525. package/Libraries/Text/TextNativeComponent.js +18 -12
  526. package/Libraries/Text/TextProps.js +67 -129
  527. package/Libraries/Text/__tests__/Text-benchmark-itest.js +76 -0
  528. package/Libraries/Text/__tests__/Text-itest.js +830 -0
  529. package/Libraries/Text/requireNativeTextEffect.js +28 -0
  530. package/Libraries/TurboModule/RCTExport.js +2 -2
  531. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -3
  532. package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
  533. package/Libraries/Types/CodegenTypes.js +9 -6
  534. package/Libraries/Types/CoreEventTypes.d.ts +8 -76
  535. package/Libraries/Types/CoreEventTypes.js +78 -125
  536. package/Libraries/Types/ReactDevToolsTypes.js +4 -4
  537. package/Libraries/Types/UIManagerJSInterface.js +2 -2
  538. package/Libraries/Utilities/Appearance.d.ts +32 -17
  539. package/Libraries/Utilities/Appearance.js +39 -17
  540. package/Libraries/Utilities/BackHandler.android.js +24 -33
  541. package/Libraries/Utilities/BackHandler.d.ts +11 -1
  542. package/Libraries/Utilities/BackHandler.ios.js +3 -1
  543. package/Libraries/Utilities/BackHandler.js.flow +22 -1
  544. package/Libraries/Utilities/BackHandler.macos.js +15 -10
  545. package/Libraries/Utilities/DevLoadingView.js +8 -1
  546. package/Libraries/Utilities/DevSettings.js +12 -5
  547. package/Libraries/Utilities/Dimensions.js +19 -13
  548. package/Libraries/Utilities/HMRClient.js +35 -7
  549. package/Libraries/Utilities/HardwareBackPressEvent.js +22 -0
  550. package/Libraries/Utilities/PixelRatio.js +5 -2
  551. package/Libraries/Utilities/Platform.js.flow +4 -0
  552. package/Libraries/Utilities/Platform.macos.js +11 -82
  553. package/Libraries/Utilities/PlatformTypes.js +77 -0
  554. package/Libraries/Utilities/RCTLog.js +3 -3
  555. package/Libraries/Utilities/ReactNativeTestTools.js +6 -7
  556. package/Libraries/Utilities/__mocks__/BackHandler.js +52 -0
  557. package/Libraries/Utilities/__mocks__/PixelRatio.js +24 -0
  558. package/Libraries/Utilities/__tests__/BackHandler-itest.js +144 -0
  559. package/Libraries/Utilities/__tests__/DeviceInfo-itest.js +19 -0
  560. package/Libraries/Utilities/__tests__/Dimensions-itest.js +70 -0
  561. package/Libraries/Utilities/__tests__/HardwareBackPressEvent-itest.js +65 -0
  562. package/Libraries/Utilities/__tests__/PixelRatio-itest.js +53 -0
  563. package/Libraries/Utilities/__tests__/Platform-itest.js +50 -0
  564. package/Libraries/Utilities/__tests__/ReactNativeTestTools-test.js +103 -0
  565. package/Libraries/Utilities/__tests__/binaryToBase64-itest.js +47 -0
  566. package/Libraries/Utilities/__tests__/codegenNativeComponent-test.js +93 -0
  567. package/Libraries/Utilities/__tests__/deepFreezeAndThrowOnMutationInDev-itest.js +165 -0
  568. package/Libraries/Utilities/__tests__/logError-itest.js +58 -0
  569. package/Libraries/Utilities/__tests__/mapWithSeparator-itest.js +70 -0
  570. package/Libraries/Utilities/__tests__/stringifySafe-itest.js +88 -0
  571. package/Libraries/Utilities/__tests__/useColorScheme-itest.js +60 -0
  572. package/Libraries/Utilities/__tests__/useMergeRefs-itest.js +299 -0
  573. package/Libraries/Utilities/__tests__/useRefEffect-itest.js +213 -0
  574. package/Libraries/Utilities/__tests__/warnOnce-itest.js +33 -0
  575. package/Libraries/Utilities/binaryToBase64.js +1 -1
  576. package/Libraries/Utilities/codegenNativeCommands.js +6 -6
  577. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  578. package/Libraries/Utilities/codegenNativeComponent.js +6 -6
  579. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  580. package/Libraries/Utilities/differ/__tests__/deepDiffer-itest.js +195 -0
  581. package/Libraries/Utilities/differ/__tests__/matricesDiffer-itest.js +45 -0
  582. package/Libraries/Utilities/differ/deepDiffer.js +5 -2
  583. package/Libraries/Utilities/logError.js +1 -1
  584. package/Libraries/Utilities/stringifySafe.js +10 -10
  585. package/Libraries/Utilities/useColorScheme.js +11 -1
  586. package/Libraries/Utilities/useMergeRefs.js +2 -2
  587. package/Libraries/Utilities/useRefEffect.js +1 -1
  588. package/Libraries/Utilities/useWindowDimensions.js +6 -0
  589. package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
  590. package/Libraries/Vibration/Vibration.js +14 -11
  591. package/Libraries/WebSocket/RCTReconnectingWebSocket.m +4 -1
  592. package/Libraries/WebSocket/WebSocket.js +1 -3
  593. package/Libraries/WebSocket/WebSocketInterceptor.js +4 -6
  594. package/Libraries/WebSocket/__tests__/WebSocket-itest.js +23 -0
  595. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +30 -0
  596. package/Libraries/promiseRejectionTrackingOptions.js +9 -9
  597. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  598. package/Libraries/vendor/emitter/EventEmitter.js +35 -25
  599. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
  600. package/Libraries/vendor/emitter/__tests__/EventEmitter-itest.js +422 -0
  601. package/README.md +40 -59
  602. package/React/Base/RCTAssert.m +2 -2
  603. package/React/Base/RCTBridge+Private.h +0 -22
  604. package/React/Base/RCTBridge.h +11 -13
  605. package/React/Base/RCTBridge.mm +5 -459
  606. package/React/Base/RCTBridgeDelegate.h +1 -56
  607. package/React/Base/RCTBridgeModule.h +3 -12
  608. package/React/Base/RCTBridgeProxy.h +8 -0
  609. package/React/Base/RCTBridgeProxy.mm +6 -23
  610. package/React/Base/RCTBundleManager.h +58 -9
  611. package/React/Base/RCTBundleManager.m +109 -29
  612. package/React/Base/RCTBundleURLProvider.h +43 -1
  613. package/React/Base/RCTBundleURLProvider.mm +163 -15
  614. package/React/Base/RCTCallableJSModules.m +0 -18
  615. package/React/Base/RCTConstants.h +1 -4
  616. package/React/Base/RCTConstants.m +7 -8
  617. package/React/Base/RCTConvert.h +12 -27
  618. package/React/Base/RCTConvert.mm +48 -458
  619. package/React/Base/RCTDefines.h +1 -9
  620. package/React/Base/RCTDevSupportHttpHeaders.h +24 -0
  621. package/React/Base/RCTDevSupportHttpHeaders.m +65 -0
  622. package/React/Base/RCTDisplayLink.h +3 -1
  623. package/React/Base/RCTDisplayLink.m +5 -10
  624. package/React/Base/RCTEventDispatcherProtocol.h +1 -1
  625. package/React/Base/RCTFrameUpdate.h +3 -2
  626. package/React/Base/RCTFrameUpdate.m +2 -2
  627. package/React/Base/RCTJSThread.h +1 -1
  628. package/React/Base/RCTJavaScriptExecutor.h +0 -69
  629. package/React/Base/RCTJavaScriptLoader.h +2 -1
  630. package/React/Base/RCTJavaScriptLoader.mm +6 -2
  631. package/React/Base/RCTKeyCommands.h +0 -2
  632. package/React/Base/RCTKeyCommands.m +0 -2
  633. package/React/Base/RCTModuleData.mm +2 -483
  634. package/React/Base/RCTModuleRegistry.m +0 -25
  635. package/React/Base/RCTMultipartDataTask.h +9 -0
  636. package/React/Base/RCTMultipartDataTask.m +16 -1
  637. package/React/Base/RCTPlatformDisplayLink.h +19 -31
  638. package/React/Base/RCTRedBoxSetEnabled.m +1 -1
  639. package/React/Base/RCTReloadCommand.m +2 -4
  640. package/React/Base/RCTRootView.h +10 -6
  641. package/React/Base/RCTRootView.m +4 -507
  642. package/React/Base/RCTRootViewDelegate.h +5 -2
  643. package/React/Base/RCTTextView.h +31 -0
  644. package/React/Base/RCTTouchHandler.h +3 -11
  645. package/React/Base/RCTTouchHandler.m +30 -285
  646. package/React/Base/RCTUIKit.h +89 -737
  647. package/React/Base/RCTUIKit.m +29 -0
  648. package/React/Base/RCTUtils.h +13 -24
  649. package/React/Base/RCTUtils.mm +107 -164
  650. package/React/Base/RCTUtilsUIOverride.h +1 -1
  651. package/React/Base/RCTUtilsUIOverride.m +0 -1
  652. package/React/Base/RCTVersion.m +3 -3
  653. package/React/Base/RCTViewRegistry.m +3 -31
  654. package/React/Base/Surface/RCTSurface.h +3 -0
  655. package/React/Base/Surface/RCTSurface.mm +1 -582
  656. package/React/Base/Surface/RCTSurfaceDelegate.h +8 -4
  657. package/React/Base/Surface/RCTSurfaceProtocol.h +1 -1
  658. package/React/Base/Surface/RCTSurfaceRootShadowView.m +0 -89
  659. package/React/Base/Surface/RCTSurfaceRootShadowViewDelegate.h +1 -1
  660. package/React/Base/Surface/RCTSurfaceRootView.h +1 -1
  661. package/React/Base/Surface/RCTSurfaceRootView.mm +1 -1
  662. package/React/Base/Surface/RCTSurfaceStage.h +1 -1
  663. package/React/Base/Surface/RCTSurfaceView+Internal.h +1 -1
  664. package/React/Base/Surface/RCTSurfaceView.h +2 -2
  665. package/React/Base/Surface/RCTSurfaceView.mm +2 -8
  666. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +9 -4
  667. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +32 -7
  668. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +3 -17
  669. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +6 -57
  670. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceSizeMeasureMode.h +1 -1
  671. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceSizeMeasureMode.mm +1 -1
  672. package/React/CoreModules/CoreModulesPlugins.mm +98 -39
  673. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -3
  674. package/React/CoreModules/RCTAccessibilityManager.h +0 -1
  675. package/React/CoreModules/RCTAccessibilityManager.mm +20 -153
  676. package/React/CoreModules/RCTActionSheetManager.h +1 -1
  677. package/React/CoreModules/RCTActionSheetManager.mm +21 -185
  678. package/React/CoreModules/RCTAlertController.h +1 -7
  679. package/React/CoreModules/RCTAlertController.mm +2 -6
  680. package/React/CoreModules/RCTAlertManager.h +1 -1
  681. package/React/CoreModules/RCTAlertManager.mm +1 -115
  682. package/React/CoreModules/RCTAppState.mm +3 -16
  683. package/React/CoreModules/RCTAppearance.h +2 -6
  684. package/React/CoreModules/RCTAppearance.mm +1 -56
  685. package/React/CoreModules/RCTClipboard.mm +7 -12
  686. package/React/CoreModules/RCTDevLoadingView.mm +144 -110
  687. package/React/CoreModules/RCTDevMenu.h +1 -8
  688. package/React/CoreModules/RCTDevMenu.mm +5 -209
  689. package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
  690. package/React/CoreModules/RCTDevSettings.h +36 -9
  691. package/React/CoreModules/RCTDevSettings.mm +56 -33
  692. package/React/CoreModules/RCTDeviceInfo.h +2 -2
  693. package/React/CoreModules/RCTDeviceInfo.mm +16 -48
  694. package/React/CoreModules/RCTEventDispatcher.h +1 -1
  695. package/React/CoreModules/RCTEventDispatcher.mm +1 -1
  696. package/React/CoreModules/RCTExceptionsManager.mm +5 -2
  697. package/React/CoreModules/RCTFPSGraph.h +3 -3
  698. package/React/CoreModules/RCTFPSGraph.mm +6 -13
  699. package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
  700. package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
  701. package/React/CoreModules/RCTKeyboardObserver.mm +11 -13
  702. package/React/CoreModules/RCTLogBox.h +1 -1
  703. package/React/CoreModules/RCTLogBox.mm +0 -11
  704. package/React/CoreModules/RCTLogBoxView.h +3 -17
  705. package/React/CoreModules/RCTLogBoxView.mm +5 -85
  706. package/React/CoreModules/RCTPerfMonitor.mm +58 -366
  707. package/React/CoreModules/RCTPlatform.mm +4 -20
  708. package/React/CoreModules/RCTRedBox+Internal.h +42 -0
  709. package/React/CoreModules/RCTRedBox.h +1 -1
  710. package/React/CoreModules/RCTRedBox.mm +35 -780
  711. package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
  712. package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
  713. package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
  714. package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
  715. package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
  716. package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
  717. package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
  718. package/React/CoreModules/RCTRedBoxController.mm +447 -0
  719. package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
  720. package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
  721. package/React/CoreModules/RCTStatusBarManager.h +3 -3
  722. package/React/CoreModules/RCTStatusBarManager.mm +1 -42
  723. package/React/CoreModules/RCTTiming.mm +1 -9
  724. package/React/CoreModules/RCTWebSocketModule.h +6 -0
  725. package/React/CoreModules/RCTWebSocketModule.mm +79 -30
  726. package/React/CoreModules/React-CoreModules.podspec +3 -5
  727. package/React/CxxModule/RCTCxxUtils.h +0 -8
  728. package/React/CxxModule/RCTCxxUtils.mm +1 -28
  729. package/React/DevSupport/RCTDevLoadingViewProtocol.h +5 -2
  730. package/React/DevSupport/RCTFrameTimingsObserver.h +24 -0
  731. package/React/DevSupport/RCTFrameTimingsObserver.mm +298 -0
  732. package/React/DevSupport/RCTInspectorDevServerHelper.h +2 -1
  733. package/React/DevSupport/RCTInspectorDevServerHelper.mm +41 -53
  734. package/React/DevSupport/RCTInspectorNetworkHelper.mm +2 -0
  735. package/React/DevSupport/RCTInspectorUtils.mm +9 -3
  736. package/React/DevSupport/RCTPackagerConnection.h +4 -2
  737. package/React/DevSupport/RCTPackagerConnection.mm +43 -44
  738. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +8 -86
  739. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +188 -23
  740. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +162 -40
  741. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +920 -566
  742. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.cpp +1 -1
  743. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +1 -1
  744. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp +71 -71
  745. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +97 -96
  746. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +357 -363
  747. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +223 -210
  748. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h +107 -107
  749. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp +1 -1
  750. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +11 -11
  751. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +2 -2
  752. package/React/Fabric/Mounting/ComponentViews/ActivityIndicator/RCTActivityIndicatorViewComponentView.h +1 -1
  753. package/React/Fabric/Mounting/ComponentViews/ActivityIndicator/RCTActivityIndicatorViewComponentView.mm +2 -3
  754. package/React/Fabric/Mounting/ComponentViews/DebuggingOverlay/RCTDebuggingOverlayComponentView.h +1 -1
  755. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +4 -11
  756. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.h +1 -1
  757. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +18 -16
  758. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.h +2 -2
  759. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +3 -3
  760. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.h +6 -2
  761. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +23 -13
  762. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.h +5 -1
  763. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +6 -1
  764. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.h +1 -3
  765. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +14 -12
  766. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.h +1 -4
  767. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +18 -9
  768. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
  769. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
  770. package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.h +1 -1
  771. package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm +1 -1
  772. package/React/Fabric/Mounting/ComponentViews/SafeAreaView/RCTSafeAreaViewComponentView.h +1 -1
  773. package/React/Fabric/Mounting/ComponentViews/SafeAreaView/RCTSafeAreaViewComponentView.mm +3 -15
  774. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTCustomPullToRefreshViewProtocol.h +1 -1
  775. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.h +4 -4
  776. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +30 -14
  777. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h +1 -1
  778. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +18 -32
  779. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +7 -7
  780. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +56 -97
  781. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTVirtualViewContainerState.mm +16 -30
  782. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTVirtualViewProtocol.h +2 -2
  783. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.h +1 -1
  784. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +21 -13
  785. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h +1 -5
  786. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm +1 -3
  787. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.h +2 -4
  788. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm +2 -6
  789. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.h +1 -1
  790. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +56 -40
  791. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.h +1 -1
  792. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +20 -368
  793. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.h +5 -10
  794. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +6 -27
  795. package/React/Fabric/Mounting/ComponentViews/UnimplementedComponent/RCTUnimplementedNativeComponentView.h +1 -2
  796. package/React/Fabric/Mounting/ComponentViews/UnimplementedComponent/RCTUnimplementedNativeComponentView.mm +4 -10
  797. package/React/Fabric/Mounting/ComponentViews/UnimplementedView/RCTUnimplementedViewComponentView.h +1 -1
  798. package/React/Fabric/Mounting/ComponentViews/UnimplementedView/RCTUnimplementedViewComponentView.mm +4 -10
  799. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +5 -18
  800. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +239 -799
  801. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.h +3 -2
  802. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +92 -204
  803. package/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h +1 -1
  804. package/React/Fabric/Mounting/RCTComponentViewDescriptor.h +2 -2
  805. package/React/Fabric/Mounting/RCTComponentViewFactory.h +1 -1
  806. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +9 -5
  807. package/React/Fabric/Mounting/RCTComponentViewProtocol.h +3 -6
  808. package/React/Fabric/Mounting/RCTComponentViewRegistry.h +2 -2
  809. package/React/Fabric/Mounting/RCTComponentViewRegistry.mm +1 -11
  810. package/React/Fabric/Mounting/RCTMountingManager.h +3 -3
  811. package/React/Fabric/Mounting/RCTMountingManager.mm +17 -20
  812. package/React/Fabric/Mounting/RCTMountingManagerDelegate.h +1 -1
  813. package/React/Fabric/Mounting/RCTMountingTransactionObserving.h +1 -1
  814. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +5 -8
  815. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +5 -23
  816. package/React/Fabric/RCTConversions.h +37 -56
  817. package/React/Fabric/RCTImageResponseDelegate.h +2 -2
  818. package/React/Fabric/RCTImageResponseObserverProxy.mm +1 -1
  819. package/React/Fabric/RCTLocalizationProvider.h +1 -1
  820. package/React/Fabric/RCTScheduler.h +3 -1
  821. package/React/Fabric/RCTScheduler.mm +75 -0
  822. package/React/Fabric/RCTSurfacePointerHandler.h +3 -3
  823. package/React/Fabric/RCTSurfacePointerHandler.mm +65 -209
  824. package/React/Fabric/RCTSurfacePresenter.h +2 -2
  825. package/React/Fabric/RCTSurfacePresenter.mm +94 -6
  826. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +3 -1
  827. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  828. package/React/Fabric/RCTSurfaceTouchHandler.h +3 -3
  829. package/React/Fabric/RCTSurfaceTouchHandler.mm +37 -205
  830. package/React/Fabric/RCTTouchableComponentViewProtocol.h +1 -1
  831. package/React/Fabric/Surface/RCTFabricSurface.mm +8 -3
  832. package/React/Fabric/Utils/RCTBoxShadow.h +1 -1
  833. package/React/Fabric/Utils/RCTBoxShadow.mm +1 -18
  834. package/React/Fabric/Utils/RCTGenericDelegateSplitter.h +1 -1
  835. package/React/Fabric/Utils/RCTGradientUtils.mm +3 -3
  836. package/React/Fabric/Utils/RCTLinearGradient.h +1 -1
  837. package/React/Fabric/Utils/RCTLinearGradient.mm +4 -10
  838. package/React/Fabric/Utils/RCTRadialGradient.h +1 -1
  839. package/React/Fabric/Utils/RCTRadialGradient.mm +0 -1
  840. package/React/Fabric/Utils/RCTReactTaggedView.h +5 -5
  841. package/React/Fabric/Utils/RCTReactTaggedView.mm +3 -5
  842. package/React/I18n/RCTLocalizedString.mm +38 -2
  843. package/React/I18n/strings/pt.lproj/fbt_language_pack.bin +0 -0
  844. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +11 -3
  845. package/React/Modules/RCTEventEmitter.h +7 -7
  846. package/React/Modules/RCTEventEmitter.m +31 -10
  847. package/React/Modules/RCTI18nUtil.m +4 -2
  848. package/React/Modules/RCTLayoutAnimation.h +1 -1
  849. package/React/Modules/RCTLayoutAnimation.m +8 -54
  850. package/React/Modules/RCTLayoutAnimationGroup.h +1 -1
  851. package/React/Modules/RCTRedBoxExtraDataViewController.h +1 -6
  852. package/React/Modules/RCTRedBoxExtraDataViewController.m +3 -18
  853. package/React/Modules/RCTSurfacePresenterStub.h +1 -1
  854. package/React/Modules/RCTUIManager.h +15 -14
  855. package/React/Modules/RCTUIManager.mm +5 -1561
  856. package/React/Modules/RCTUIManagerObserverCoordinator.h +1 -1
  857. package/React/Modules/RCTUIManagerUtils.h +0 -1
  858. package/React/Profiler/RCTProfile.h +5 -0
  859. package/React/Profiler/RCTProfile.m +19 -27
  860. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  861. package/React/Profiler/RCTProfileTrampoline-arm64.S +1 -1
  862. package/React/Profiler/RCTProfileTrampoline-i386.S +1 -1
  863. package/React/Profiler/RCTProfileTrampoline-x86_64.S +1 -1
  864. package/React/React-RCTFBReactNativeSpec.podspec +1 -1
  865. package/React/React-RCTFabric.podspec +4 -4
  866. package/React/Runtime/React-RCTRuntime.podspec +1 -0
  867. package/React/Tests/Mounting/RCTViewComponentViewTests.mm +186 -0
  868. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +32 -5
  869. package/React/Views/RCTAnimationType.h +0 -4
  870. package/React/Views/RCTAutoInsetsProtocol.h +1 -1
  871. package/React/Views/RCTBorderDrawing.h +7 -8
  872. package/React/Views/RCTBorderDrawing.m +19 -26
  873. package/React/Views/RCTComponentData.h +3 -3
  874. package/React/Views/RCTComponentData.mm +4 -4
  875. package/React/Views/RCTCursor.h +1 -44
  876. package/React/Views/RCTDebuggingOverlay.h +3 -3
  877. package/React/Views/RCTDebuggingOverlay.m +10 -9
  878. package/React/Views/RCTFont+Private.h +1 -5
  879. package/React/Views/RCTFont.h +1 -1
  880. package/React/Views/RCTFont.mm +0 -17
  881. package/React/Views/RCTLayout.h +1 -1
  882. package/React/Views/RCTLayout.m +4 -3
  883. package/React/Views/RCTModalHostViewController.h +0 -15
  884. package/React/Views/RCTModalHostViewManager.h +0 -26
  885. package/React/Views/RCTShadowView+Layout.h +1 -1
  886. package/React/Views/RCTShadowView.h +2 -4
  887. package/React/Views/RCTShadowView.m +0 -723
  888. package/React/Views/RCTView.h +14 -68
  889. package/React/Views/RCTView.m +54 -813
  890. package/React/Views/RCTViewManager.h +3 -22
  891. package/React/Views/RCTViewManager.m +10 -166
  892. package/React/Views/RCTViewUtils.h +2 -2
  893. package/React/Views/RCTViewUtils.m +1 -3
  894. package/React/Views/RCTWrapperViewController.h +2 -2
  895. package/React/Views/RCTWrapperViewController.m +1 -3
  896. package/React/Views/RefreshControl/RCTRefreshableProtocol.h +1 -1
  897. package/React/Views/ScrollView/RCTScrollEvent.m +1 -1
  898. package/React/Views/ScrollView/RCTScrollView.h +1 -94
  899. package/React/Views/ScrollView/RCTScrollableProtocol.h +4 -10
  900. package/React/Views/UIView+Private.h +4 -4
  901. package/React/Views/UIView+React.h +8 -19
  902. package/React/Views/UIView+React.m +29 -123
  903. package/React-Core-prebuilt.podspec +46 -18
  904. package/React-Core.podspec +11 -2
  905. package/ReactAndroid/api/ReactAndroid.api +280 -521
  906. package/ReactAndroid/build.gradle.kts +65 -42
  907. package/ReactAndroid/external-artifacts/build.gradle.kts +49 -0
  908. package/ReactAndroid/gradle.properties +1 -1
  909. package/ReactAndroid/hermes-engine/build.gradle.kts +118 -51
  910. package/ReactAndroid/src/debug/AndroidManifest.xml +6 -0
  911. package/ReactAndroid/src/debugOptimized/AndroidManifest.xml +22 -0
  912. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/HermesSamplingProfiler.kt +2 -0
  913. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +3 -7
  914. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
  915. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
  916. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +5 -5
  917. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +2 -0
  918. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +13 -18
  919. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +56 -336
  920. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +2 -12
  921. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.kt +212 -0
  922. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
  923. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
  924. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +96 -111
  925. package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
  926. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimationDriver.kt +1 -3
  927. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +11 -11
  928. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +11 -11
  929. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +1 -26
  930. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +12 -0
  931. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +20 -100
  932. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +12 -33
  933. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +13 -25
  934. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +19 -19
  935. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +5 -1
  936. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.kt +1 -0
  937. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.kt +287 -0
  938. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
  939. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt +16 -0
  940. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.kt +9 -4
  941. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +15 -23
  942. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +8 -6
  943. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
  944. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +4 -34
  945. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
  946. package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
  947. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +61 -2
  948. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJNISoLoader.kt +2 -0
  949. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +2 -0
  950. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +4 -0
  951. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
  952. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ScrollEndedListener.kt +70 -0
  953. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +1 -3
  954. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +4 -0
  955. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +4 -0
  956. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBuffer.kt +50 -2
  957. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +67 -26
  958. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +33 -0
  959. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +4 -12
  960. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactActivityDelegate.kt +14 -10
  961. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +36 -34
  962. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +6 -6
  963. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +2 -0
  964. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
  965. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +59 -51
  966. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
  967. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +101 -17
  968. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +61 -15
  969. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
  970. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +15 -15
  971. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +12 -12
  972. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +11 -14
  973. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +2 -2
  974. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +6 -0
  975. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LocalNetworkPermissionUtil.kt +49 -0
  976. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +15 -2
  977. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.kt +101 -26
  978. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.kt +10 -19
  979. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxContentView.kt +2 -2
  980. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.kt +1 -0
  981. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +49 -0
  982. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +16 -0
  983. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +274 -0
  984. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +2 -13
  985. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +2 -0
  986. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
  987. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
  988. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateProvider.kt +12 -0
  989. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevBundleDownloadListener.kt +1 -1
  990. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +7 -2
  991. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
  992. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
  993. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
  994. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
  995. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +17 -16
  996. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
  997. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +4 -1
  998. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +199 -72
  999. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +7 -2
  1000. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +2 -2
  1001. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.kt +6 -6
  1002. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +227 -0
  1003. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +2 -2
  1004. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +25 -8
  1005. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +26 -22
  1006. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/__docs__/README.md +22 -0
  1007. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/__docs__/life-of-an-event.excalidraw.svg +4 -0
  1008. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +108 -69
  1009. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +10 -14
  1010. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +1395 -0
  1011. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +1 -0
  1012. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +2 -2
  1013. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -1
  1014. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +2 -2
  1015. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SynchronousMountItem.kt +12 -8
  1016. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/ExtraWindowEventListener.kt +29 -0
  1017. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +102 -84
  1018. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +196 -166
  1019. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +41 -35
  1020. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +44 -38
  1021. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +227 -194
  1022. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +8 -4
  1023. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +7 -3
  1024. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +1 -6
  1025. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +41 -35
  1026. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt +0 -24
  1027. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +3 -11
  1028. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/__docs__/README.md +12 -0
  1029. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/rewrite_feature_flag_defaults.py +76 -0
  1030. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/tests/test_rewrite_feature_flag_defaults.py +63 -0
  1031. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -15
  1032. package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +40 -1
  1033. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
  1034. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
  1035. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +4 -10
  1036. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +40 -1
  1037. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +11 -6
  1038. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -2
  1039. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +3 -0
  1040. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +2 -1
  1041. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +4 -2
  1042. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +21 -20
  1043. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt +3 -0
  1044. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
  1045. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +63 -3
  1046. package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
  1047. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +4 -1
  1048. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +108 -61
  1049. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +7 -3
  1050. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +116 -54
  1051. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +26 -14
  1052. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.kt +2 -0
  1053. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.kt +2 -0
  1054. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +46 -112
  1055. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +1 -1
  1056. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +9 -4
  1057. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +10 -8
  1058. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.kt +2 -1
  1059. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +28 -8
  1060. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.kt +2 -8
  1061. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +2 -0
  1062. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +10 -13
  1063. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +16 -11
  1064. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +4 -0
  1065. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +108 -36
  1066. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +11 -4
  1067. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +13 -19
  1068. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +10 -8
  1069. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +78 -24
  1070. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +18 -6
  1071. package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
  1072. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +4 -4
  1073. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +139 -31
  1074. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +78 -37
  1075. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
  1076. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +11 -53
  1077. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
  1078. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +17 -0
  1079. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/HasChildPressedStateDelay.kt +29 -0
  1080. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
  1081. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.kt +796 -0
  1082. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +3 -6
  1083. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +751 -0
  1084. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.kt +184 -0
  1085. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.kt +18 -0
  1086. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +3 -3
  1087. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
  1088. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
  1089. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.kt +486 -0
  1090. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +19 -62
  1091. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
  1092. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.kt +2 -2
  1093. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/SkewMatrixHelper.kt +200 -0
  1094. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +25 -0
  1095. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +27 -17
  1096. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +20 -32
  1097. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIBlock.kt +7 -1
  1098. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
  1099. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +25 -109
  1100. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.kt +645 -0
  1101. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.kt +2 -3
  1102. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.kt +142 -0
  1103. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.kt +0 -10
  1104. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +3 -3
  1105. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.kt +527 -0
  1106. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +3 -1
  1107. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +22 -0
  1108. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +44 -30
  1109. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
  1110. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
  1111. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
  1112. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +5 -42
  1113. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
  1114. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
  1115. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
  1116. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +30 -4
  1117. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +2 -9
  1118. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +42 -1
  1119. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
  1120. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -16
  1121. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -42
  1122. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +27 -0
  1123. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundPosition.kt +20 -0
  1124. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundRepeat.kt +27 -0
  1125. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundSize.kt +50 -0
  1126. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +33 -0
  1127. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +25 -1
  1128. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +52 -8
  1129. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +14 -0
  1130. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +23 -1
  1131. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +51 -7
  1132. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +40 -2
  1133. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +21 -1
  1134. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +16 -0
  1135. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +34 -0
  1136. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +33 -1
  1137. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +17 -0
  1138. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +15 -0
  1139. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/RadialGradient.kt +42 -0
  1140. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +34 -3
  1141. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.kt +8 -1
  1142. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +1 -2
  1143. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +19 -17
  1144. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +1 -4
  1145. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +7 -1
  1146. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +10 -9
  1147. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +2 -0
  1148. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
  1149. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
  1150. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.kt +1640 -0
  1151. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +11 -6
  1152. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.kt +1317 -0
  1153. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +466 -0
  1154. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.kt +1309 -0
  1155. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +16 -14
  1156. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +11 -6
  1157. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +20 -67
  1158. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +15 -36
  1159. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +30 -44
  1160. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +263 -0
  1161. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +8 -2
  1162. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +1 -1
  1163. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +7 -7
  1164. package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
  1165. package/ReactAndroid/src/main/java/com/facebook/react/views/text/MutableSpannableLayout.kt +107 -0
  1166. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +2 -0
  1167. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +154 -20
  1168. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +4 -3
  1169. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +4 -65
  1170. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +150 -267
  1171. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +37 -15
  1172. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +247 -21
  1173. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +42 -2
  1174. package/ReactAndroid/src/main/java/com/facebook/react/views/text/SelectableTextViewManager.kt +29 -0
  1175. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +49 -4
  1176. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextDecorationStyle.kt +200 -0
  1177. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectRegistry.kt +45 -0
  1178. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectSpanFactory.kt +17 -0
  1179. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +542 -150
  1180. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/AnimatedEffectSpan.kt +37 -0
  1181. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CanvasEffectSpan.kt +26 -0
  1182. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +24 -7
  1183. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactClickableSpan.kt +1 -1
  1184. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactLinkSpan.kt +10 -3
  1185. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactStrikethroughSpan.kt +30 -3
  1186. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactUnderlineSpan.kt +25 -3
  1187. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/SetSpanOperation.kt +1 -1
  1188. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/StatefulSpan.kt +21 -0
  1189. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextEffectSpan.kt +19 -0
  1190. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TouchableSpan.kt +29 -0
  1191. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +90 -97
  1192. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.kt +8 -0
  1193. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextContentSizeWatcher.kt +1 -1
  1194. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +49 -40
  1195. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputTextWatcher.kt +3 -2
  1196. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextScrollWatcher.kt +1 -1
  1197. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  1198. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ImportantForInteractionHelper.kt +55 -0
  1199. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
  1200. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +95 -77
  1201. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +52 -69
  1202. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +87 -13
  1203. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/VirtualViewRenderState.kt +1 -1
  1204. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +153 -308
  1205. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualViewManager.kt +11 -13
  1206. package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
  1207. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.kt +45 -0
  1208. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.kt +27 -0
  1209. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +17 -2
  1210. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +70 -0
  1211. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
  1212. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.kt +27 -0
  1213. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.kt +29 -0
  1214. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.kt +31 -0
  1215. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.kt +41 -0
  1216. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.kt +37 -0
  1217. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.kt +27 -0
  1218. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.kt +31 -0
  1219. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.kt +33 -0
  1220. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.kt +29 -0
  1221. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.kt +43 -0
  1222. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.kt +39 -0
  1223. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.kt +29 -0
  1224. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +17 -1
  1225. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +254 -0
  1226. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.kt +762 -0
  1227. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
  1228. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.kt +27 -0
  1229. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.kt +29 -0
  1230. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.kt +29 -0
  1231. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +205 -0
  1232. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.kt +37 -0
  1233. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.kt +29 -0
  1234. package/ReactAndroid/src/main/jni/CMakeLists.txt +36 -3
  1235. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +94 -0
  1236. package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +7 -0
  1237. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.cpp +3 -0
  1238. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  1239. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +22 -0
  1240. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +2 -0
  1241. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +38 -0
  1242. package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.cpp +0 -1
  1243. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +7 -6
  1244. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.cpp +26 -6
  1245. package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +3 -3
  1246. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +152 -3
  1247. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +22 -6
  1248. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +132 -28
  1249. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +15 -0
  1250. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +0 -1
  1251. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +2 -1
  1252. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +1 -0
  1253. package/ReactAndroid/src/main/jni/react/fabric/test/FabricMountingManagerTest.cpp +159 -0
  1254. package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.cpp +85 -0
  1255. package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.h +46 -0
  1256. package/ReactAndroid/src/main/jni/react/fabric/test_helper/OnLoad.cpp +16 -0
  1257. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +255 -213
  1258. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +50 -41
  1259. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +1 -1
  1260. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +0 -4
  1261. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -4
  1262. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
  1263. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.cpp +10 -24
  1264. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.h +0 -2
  1265. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  1266. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
  1267. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +1 -2
  1268. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
  1269. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
  1270. package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +0 -2
  1271. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -12
  1272. package/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JWritableMapBuffer.cpp +13 -0
  1273. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +37 -30
  1274. package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +11 -8
  1275. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +2 -1
  1276. package/ReactAndroid/src/main/jni/react/reactnativeblob/OnLoad.cpp +1 -1
  1277. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +0 -4
  1278. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -4
  1279. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +167 -51
  1280. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +205 -26
  1281. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +6 -2
  1282. package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
  1283. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
  1284. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +79 -65
  1285. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +10 -7
  1286. package/ReactAndroid/src/main/jni/react/uimanager/StateWrapper.h +19 -0
  1287. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  1288. package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
  1289. package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
  1290. package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
  1291. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
  1292. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +8 -0
  1293. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +18 -0
  1294. package/ReactAndroid/src/main/res/views/uimanager/values-zu/strings.xml +3 -0
  1295. package/ReactAndroid/src/test/java/com/facebook/react/ReactActivityDelegateTest.kt +64 -0
  1296. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.kt +194 -0
  1297. package/ReactAndroid/src/test/java/com/facebook/react/animated/NativeAnimatedInterpolationTest.kt +171 -0
  1298. package/ReactAndroid/src/test/java/com/facebook/react/animated/NativeAnimatedNodeTraversalTest.kt +1418 -0
  1299. package/ReactAndroid/src/test/java/com/facebook/react/bridge/DimensionPropConverterTest.kt +45 -0
  1300. package/ReactAndroid/src/test/java/com/facebook/react/bridge/DynamicFromMapTest.kt +64 -0
  1301. package/ReactAndroid/src/test/java/com/facebook/react/bridge/JavaOnlyArrayTest.kt +37 -0
  1302. package/ReactAndroid/src/test/java/com/facebook/react/bridge/JavaOnlyMapTest.kt +56 -0
  1303. package/ReactAndroid/src/test/java/com/facebook/react/bridge/JavaScriptModuleRegistryTest.kt +30 -0
  1304. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.kt +75 -0
  1305. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReadableArrayBuilderTest.kt +71 -0
  1306. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReadableMapBuilderTest.kt +87 -0
  1307. package/ReactAndroid/src/test/java/com/facebook/react/bridge/interop/InteropModuleRegistryTest.kt +84 -0
  1308. package/ReactAndroid/src/test/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPointTest.kt +115 -0
  1309. package/ReactAndroid/src/test/java/com/facebook/react/devsupport/CxxInspectorPackagerConnectionTest.kt +28 -0
  1310. package/ReactAndroid/src/test/java/com/facebook/react/devsupport/MultipartStreamReaderTest.kt +237 -0
  1311. package/ReactAndroid/src/test/java/com/facebook/react/devsupport/StackTraceHelperTest.kt +134 -0
  1312. package/ReactAndroid/src/test/java/com/facebook/react/fabric/FabricMountingManagerInstrumentationTest.kt +261 -0
  1313. package/ReactAndroid/src/test/java/com/facebook/react/fabric/FabricMountingManagerTestHelper.kt +48 -0
  1314. package/ReactAndroid/src/test/java/com/facebook/react/fabric/FabricUIManagerTest.kt +64 -0
  1315. package/ReactAndroid/src/test/java/com/facebook/react/fabric/MountingManagerTest.kt +81 -0
  1316. package/ReactAndroid/src/test/java/com/facebook/react/fabric/SurfaceMountingManagerEventOrderingTest.kt +353 -0
  1317. package/ReactAndroid/src/test/java/com/facebook/react/fabric/SurfaceMountingManagerSynchronousMountPropsTest.kt +273 -0
  1318. package/ReactAndroid/src/test/java/com/facebook/react/fabric/SurfaceMountingManagerTest.kt +195 -0
  1319. package/ReactAndroid/src/test/java/com/facebook/react/fabric/events/TouchEventDispatchTest.kt +690 -0
  1320. package/ReactAndroid/src/test/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListenerTest.kt +131 -0
  1321. package/ReactAndroid/src/test/java/com/facebook/react/interfaces/ExtraWindowEventListenerTest.kt +124 -0
  1322. package/ReactAndroid/src/test/java/com/facebook/react/internal/interop/InteropEventEmitterTest.kt +61 -0
  1323. package/ReactAndroid/src/test/java/com/facebook/react/modules/appstate/AppStateModuleTest.kt +127 -0
  1324. package/ReactAndroid/src/test/java/com/facebook/react/modules/blob/BlobModuleTest.kt +227 -0
  1325. package/ReactAndroid/src/test/java/com/facebook/react/modules/camera/ImageStoreManagerTest.kt +85 -0
  1326. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.kt +62 -0
  1327. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.kt +261 -0
  1328. package/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.kt +205 -0
  1329. package/ReactAndroid/src/test/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcherTest.kt +139 -0
  1330. package/ReactAndroid/src/test/java/com/facebook/react/modules/image/ImageLoaderModuleTest.kt +274 -0
  1331. package/ReactAndroid/src/test/java/com/facebook/react/modules/intent/IntentModuleTest.kt +143 -0
  1332. package/ReactAndroid/src/test/java/com/facebook/react/modules/model/ReactModuleInfoTest.kt +50 -0
  1333. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/HeaderUtilTest.kt +48 -0
  1334. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/NetworkEventUtilTest.kt +454 -0
  1335. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/NetworkingModuleTest.kt +666 -0
  1336. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/OkHttpClientProviderTest.kt +135 -0
  1337. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/ProgressResponseBodyTest.kt +165 -0
  1338. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/ProgressiveStringDecoderTest.kt +137 -0
  1339. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/ReactCookieJarContainerTest.kt +59 -0
  1340. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/RequestBodyUtilTest.kt +152 -0
  1341. package/ReactAndroid/src/test/java/com/facebook/react/modules/share/ShareModuleTest.kt +160 -0
  1342. package/ReactAndroid/src/test/java/com/facebook/react/modules/timing/TimingModuleTest.kt +307 -0
  1343. package/ReactAndroid/src/test/java/com/facebook/react/packagerconnection/JSPackagerClientTest.kt +157 -0
  1344. package/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt +99 -0
  1345. package/ReactAndroid/src/test/java/com/facebook/react/runtime/ReactHostDelegateTest.kt +49 -0
  1346. package/ReactAndroid/src/test/java/com/facebook/react/runtime/ReactHostTest.kt +171 -0
  1347. package/ReactAndroid/src/test/java/com/facebook/react/runtime/ReactSurfaceTest.kt +162 -0
  1348. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerTest.kt +133 -0
  1349. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/BorderRadiusStyleTest.kt +208 -0
  1350. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/DisplayMetricsHolderTest.kt +167 -0
  1351. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/JSPointerDispatcherTest.kt +87 -0
  1352. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/MatrixMathHelperTest.kt +775 -0
  1353. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/OnLayoutEventTest.kt +63 -0
  1354. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/PixelUtilTest.kt +189 -0
  1355. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactAccessibilityDelegateTest.kt +376 -0
  1356. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterSpecTest.kt +120 -0
  1357. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterTest.kt +435 -0
  1358. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropConstantsTest.kt +142 -0
  1359. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSetterTest.kt +177 -0
  1360. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSpecTest.kt +153 -0
  1361. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/SimpleViewPropertyTest.kt +93 -0
  1362. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/SkewMatrixHelperTest.kt +221 -0
  1363. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/ThemedReactContextTest.kt +84 -0
  1364. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/TouchTargetHelperTest.kt +169 -0
  1365. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelperTest.kt +82 -0
  1366. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/UIManagerModuleConstantsTest.kt +235 -0
  1367. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/style/ColorStopTest.kt +186 -0
  1368. package/ReactAndroid/src/test/java/com/facebook/react/util/JSStackTraceTest.kt +109 -0
  1369. package/ReactAndroid/src/test/java/com/facebook/react/views/image/ImageResizeModeTest.kt +52 -0
  1370. package/ReactAndroid/src/test/java/com/facebook/react/views/image/ReactImagePropertyTest.kt +235 -0
  1371. package/ReactAndroid/src/test/java/com/facebook/react/views/text/ReactTextViewTest.kt +154 -0
  1372. package/ReactAndroid/src/test/java/com/facebook/react/views/text/TextAttributePropsTest.kt +37 -0
  1373. package/ReactAndroid/src/test/java/com/facebook/react/views/text/TextDecorationStyleTest.kt +53 -0
  1374. package/ReactAndroid/src/test/java/com/facebook/react/views/text/TextLayoutManagerAbsoluteLayoutWithFractionalPixelTest.kt +131 -0
  1375. package/ReactAndroid/src/test/java/com/facebook/react/views/text/TextLayoutManagerFontWeightAdjustmentTest.kt +70 -0
  1376. package/ReactAndroid/src/test/java/com/facebook/react/views/text/TextTransformTest.kt +34 -0
  1377. package/ReactAndroid/src/test/java/com/facebook/react/views/text/internal/span/CustomLineHeightSpanTest.kt +99 -0
  1378. package/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt +530 -0
  1379. package/ReactAndroid/src/test/java/com/facebook/react/views/view/ColorUtilTest.kt +23 -0
  1380. package/ReactAndroid/src/test/java/com/facebook/react/views/view/ReactViewGroupTest.kt +79 -0
  1381. package/ReactAndroid/src/test/java/com/facebook/testutils/fakes/FakeBatchEventDispatchedListener.kt +17 -0
  1382. package/ReactAndroid/src/test/java/com/facebook/testutils/fakes/FakeEventDispatcher.kt +41 -0
  1383. package/ReactAndroid/src/test/java/com/facebook/testutils/fakes/FakeUIManager.kt +125 -0
  1384. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowArguments.kt +35 -0
  1385. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowNativeArray.kt +24 -0
  1386. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowNativeLoader.kt +21 -0
  1387. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowNativeMap.kt +46 -0
  1388. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowReadableNativeArray.kt +45 -0
  1389. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowReadableNativeMap.kt +53 -0
  1390. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowSoLoader.kt +24 -0
  1391. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowWritableNativeArray.kt +36 -0
  1392. package/ReactAndroid/src/test/java/com/facebook/testutils/shadows/ShadowWritableNativeMap.kt +45 -0
  1393. package/ReactAndroid/src/test/java/org/mockito/configuration/MockitoConfiguration.kt +17 -0
  1394. package/ReactAndroid/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +1 -0
  1395. package/ReactAndroid/src/test/resources/robolectric.properties +2 -0
  1396. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
  1397. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +45 -5
  1398. package/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec +63 -0
  1399. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +12 -1
  1400. package/ReactApple/RCTSwiftUI/RCTSwiftUIContainerView.swift +9 -41
  1401. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.h +0 -17
  1402. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.m +73 -11
  1403. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -2
  1404. package/ReactCommon/React-Fabric.podspec +28 -9
  1405. package/ReactCommon/React-FabricComponents.podspec +7 -9
  1406. package/ReactCommon/ReactCommon.podspec +2 -12
  1407. package/ReactCommon/cmake-utils/react-native-flags.cmake +1 -0
  1408. package/ReactCommon/cxxreact/CMakeLists.txt +1 -0
  1409. package/ReactCommon/cxxreact/ErrorUtils.h +2 -32
  1410. package/ReactCommon/cxxreact/Instance.cpp +1 -26
  1411. package/ReactCommon/cxxreact/Instance.h +0 -2
  1412. package/ReactCommon/cxxreact/JSBigString.h +14 -5
  1413. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -2
  1414. package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +0 -12
  1415. package/ReactCommon/cxxreact/RAMBundleRegistry.h +0 -5
  1416. package/ReactCommon/cxxreact/React-cxxreact.podspec +3 -1
  1417. package/ReactCommon/cxxreact/ReactMarker.cpp +4 -31
  1418. package/ReactCommon/cxxreact/ReactMarker.h +38 -21
  1419. package/ReactCommon/cxxreact/ReactNativeVersion.h +10 -8
  1420. package/ReactCommon/cxxreact/TraceSection.h +1 -1
  1421. package/ReactCommon/cxxreact/tests/methodcall.cpp +4 -0
  1422. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
  1423. package/ReactCommon/hermes/React-hermes.podspec +1 -0
  1424. package/ReactCommon/hermes/executor/CMakeLists.txt +0 -4
  1425. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +9 -80
  1426. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +0 -4
  1427. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +25 -16
  1428. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h +1 -1
  1429. package/ReactCommon/jsc/JSCRuntime.cpp +10 -31
  1430. package/ReactCommon/jsc/JSCRuntime.h +0 -9
  1431. package/ReactCommon/jserrorhandler/ErrorUtils.cpp +42 -0
  1432. package/ReactCommon/jserrorhandler/ErrorUtils.h +16 -0
  1433. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +2 -1
  1434. package/ReactCommon/jserrorhandler/JsErrorHandler.h +1 -1
  1435. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +2 -3
  1436. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -0
  1437. package/ReactCommon/jsi/jsi/decorator.h +93 -0
  1438. package/ReactCommon/jsi/jsi/hermes-interfaces.h +242 -0
  1439. package/ReactCommon/jsi/jsi/jsi-inl.h +97 -68
  1440. package/ReactCommon/jsi/jsi/jsi.cpp +214 -28
  1441. package/ReactCommon/jsi/jsi/jsi.h +621 -219
  1442. package/ReactCommon/jsi/jsi/test/testlib.cpp +455 -2
  1443. package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
  1444. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +6 -1
  1445. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +5 -57
  1446. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
  1447. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +5 -14
  1448. package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
  1449. package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
  1450. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
  1451. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
  1452. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
  1453. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
  1454. package/ReactCommon/jsinspector-modern/EmulationAgent.cpp +108 -0
  1455. package/ReactCommon/jsinspector-modern/EmulationAgent.h +47 -0
  1456. package/ReactCommon/jsinspector-modern/HostAgent.cpp +137 -26
  1457. package/ReactCommon/jsinspector-modern/HostAgent.h +6 -7
  1458. package/ReactCommon/jsinspector-modern/HostTarget.cpp +40 -33
  1459. package/ReactCommon/jsinspector-modern/HostTarget.h +136 -32
  1460. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +42 -8
  1461. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
  1462. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
  1463. package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
  1464. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +24 -2
  1465. package/ReactCommon/jsinspector-modern/InspectorFlags.h +24 -2
  1466. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +39 -2
  1467. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +12 -2
  1468. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +186 -56
  1469. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +42 -4
  1470. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
  1471. package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
  1472. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +13 -4
  1473. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +13 -0
  1474. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
  1475. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
  1476. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +34 -1
  1477. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +8 -1
  1478. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +99 -18
  1479. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +57 -13
  1480. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
  1481. package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +6 -95
  1482. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.cpp +122 -0
  1483. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h +42 -0
  1484. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.cpp +27 -0
  1485. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h +27 -0
  1486. package/ReactCommon/jsinspector-modern/SessionState.h +31 -0
  1487. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +48 -54
  1488. package/ReactCommon/jsinspector-modern/TracingAgent.h +1 -11
  1489. package/ReactCommon/jsinspector-modern/UniqueMonostate.h +0 -4
  1490. package/ReactCommon/jsinspector-modern/WeakList.h +60 -1
  1491. package/ReactCommon/jsinspector-modern/__docs__/InspectorPackagerConnection.md +70 -0
  1492. package/ReactCommon/jsinspector-modern/__docs__/consoleTimeStamp.md +96 -0
  1493. package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +25 -21
  1494. package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +21 -15
  1495. package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
  1496. package/ReactCommon/jsinspector-modern/tests/GmockHelpers.h +1 -1
  1497. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +121 -3
  1498. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +23 -2
  1499. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionMultiSessionTest.cpp +692 -0
  1500. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +10 -123
  1501. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.h +140 -0
  1502. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +159 -6
  1503. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +60 -56
  1504. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
  1505. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +335 -0
  1506. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
  1507. package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +31 -1
  1508. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -1
  1509. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +10 -0
  1510. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +3 -1
  1511. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
  1512. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +61 -0
  1513. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +56 -0
  1514. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +165 -0
  1515. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +50 -0
  1516. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
  1517. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
  1518. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracerSection.h +113 -0
  1519. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +5 -0
  1520. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
  1521. package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
  1522. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  1523. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +100 -0
  1524. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +60 -0
  1525. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +44 -1
  1526. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +7 -0
  1527. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +29 -7
  1528. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +138 -0
  1529. package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
  1530. package/ReactCommon/jsitooling/React-jsitooling.podspec +5 -0
  1531. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
  1532. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h +20 -0
  1533. package/ReactCommon/logger/react_native_log.cpp +0 -1
  1534. package/ReactCommon/react/bridging/Array.h +1 -1
  1535. package/ReactCommon/react/bridging/ArrayBuffer.h +180 -0
  1536. package/ReactCommon/react/bridging/Bridging.h +1 -0
  1537. package/ReactCommon/react/bridging/Convert.h +12 -0
  1538. package/ReactCommon/react/bridging/React-bridging.podspec +44 -0
  1539. package/ReactCommon/react/bridging/tests/BridgingTest.cpp +185 -11
  1540. package/ReactCommon/react/bridging/tests/ClassTest.cpp +22 -0
  1541. package/ReactCommon/react/cxxstableapi/CMakeLists.txt +18 -0
  1542. package/ReactCommon/react/cxxstableapi/FrameworksGuard.h +35 -0
  1543. package/ReactCommon/react/cxxstableapi/PrivateGuard.h +34 -0
  1544. package/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec +34 -0
  1545. package/ReactCommon/react/cxxstableapi/UmbrellaGuard.h +53 -0
  1546. package/ReactCommon/react/debug/CMakeLists.txt +2 -1
  1547. package/ReactCommon/react/debug/React-debug.podspec +7 -1
  1548. package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
  1549. package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
  1550. package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
  1551. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
  1552. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
  1553. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
  1554. package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
  1555. package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
  1556. package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
  1557. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +81 -69
  1558. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +93 -78
  1559. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +309 -255
  1560. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +54 -48
  1561. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +70 -58
  1562. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +151 -124
  1563. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +13 -5
  1564. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +11 -3
  1565. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -12
  1566. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +27 -24
  1567. package/ReactCommon/react/featureflags/__docs__/README.md +12 -0
  1568. package/ReactCommon/react/featureflags/rewrite_feature_flag_defaults.py +111 -0
  1569. package/ReactCommon/react/featureflags/tests/test_rewrite_feature_flag_defaults.py +60 -0
  1570. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +8 -2
  1571. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
  1572. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
  1573. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +49 -1
  1574. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.cpp +4 -0
  1575. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h +4 -0
  1576. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +1 -1
  1577. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  1578. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +7 -9
  1579. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +5 -4
  1580. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
  1581. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +106 -65
  1582. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +0 -9
  1583. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +47 -174
  1584. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleWithJSIBindings.h +0 -3
  1585. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +4 -0
  1586. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +36 -3
  1587. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +8 -1
  1588. package/ReactCommon/react/nativemodule/dom/NativeDOM.cpp +10 -4
  1589. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -0
  1590. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +33 -1
  1591. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.h +2 -0
  1592. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +90 -75
  1593. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +41 -35
  1594. package/ReactCommon/react/nativemodule/featureflags/__docs__/README.md +12 -0
  1595. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  1596. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +4 -0
  1597. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +67 -0
  1598. package/ReactCommon/react/nativemodule/intersectionobserver/__docs__/README.md +13 -0
  1599. package/ReactCommon/react/nativemodule/microtasks/__docs__/README.md +13 -0
  1600. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +7 -2
  1601. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
  1602. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +67 -0
  1603. package/ReactCommon/react/nativemodule/mutationobserver/__docs__/README.md +13 -0
  1604. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +2 -5
  1605. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleLegacyModule.h +1 -1
  1606. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h +1 -1
  1607. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +21 -26
  1608. package/ReactCommon/react/nativemodule/viewtransition/CMakeLists.txt +24 -0
  1609. package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.cpp +92 -0
  1610. package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.h +37 -0
  1611. package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +58 -0
  1612. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +10 -1
  1613. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +1 -0
  1614. package/ReactCommon/react/networking/CMakeLists.txt +7 -0
  1615. package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
  1616. package/ReactCommon/react/networking/NetworkReporter.h +0 -1
  1617. package/ReactCommon/react/networking/React-networking.podspec +0 -1
  1618. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
  1619. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +0 -1
  1620. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  1621. package/ReactCommon/react/performance/timeline/PerformanceEntry.h +1 -1
  1622. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
  1623. package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +18 -6
  1624. package/ReactCommon/react/performance/timeline/PerformanceObserver.h +2 -0
  1625. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  1626. package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
  1627. package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
  1628. package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
  1629. package/ReactCommon/react/renderer/animated/CMakeLists.txt +0 -1
  1630. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +281 -178
  1631. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +51 -9
  1632. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +85 -72
  1633. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +0 -1
  1634. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +21 -1
  1635. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h +1 -0
  1636. package/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +0 -1
  1637. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
  1638. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +0 -2
  1639. package/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +2 -2
  1640. package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
  1641. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +169 -9
  1642. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +21 -0
  1643. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +59 -15
  1644. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +22 -0
  1645. package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
  1646. package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
  1647. package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
  1648. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +107 -0
  1649. package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
  1650. package/ReactCommon/react/renderer/animated/tests/DecayAnimationDriverTest.cpp +245 -0
  1651. package/ReactCommon/react/renderer/animated/tests/ManagedPropsMountingOverrideTests.cpp +204 -0
  1652. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +711 -0
  1653. package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +388 -1
  1654. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +191 -2
  1655. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +118 -0
  1656. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +303 -0
  1657. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
  1658. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +225 -113
  1659. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +54 -27
  1660. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +85 -0
  1661. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +31 -0
  1662. package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +44 -0
  1663. package/ReactCommon/react/renderer/animationbackend/CMakeLists.txt +0 -1
  1664. package/ReactCommon/react/renderer/animationbackend/__docs__/AnimationBackend.md +88 -0
  1665. package/ReactCommon/react/renderer/animationbackend/__docs__/AnimationBackend.svg +4 -0
  1666. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
  1667. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +3 -4
  1668. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +0 -2
  1669. package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
  1670. package/ReactCommon/react/renderer/animations/utils.h +12 -1
  1671. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  1672. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +0 -6
  1673. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -1
  1674. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +0 -4
  1675. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +0 -1
  1676. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -3
  1677. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +25 -1
  1678. package/ReactCommon/react/renderer/attributedstring/conversions.h +193 -4
  1679. package/ReactCommon/react/renderer/attributedstring/primitives.h +4 -2
  1680. package/ReactCommon/react/renderer/attributedstring/tests/ParagraphAttributesTest.cpp +73 -0
  1681. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +6 -0
  1682. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +3 -5
  1683. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +79 -126
  1684. package/ReactCommon/react/renderer/components/image/ImageProps.h +3 -3
  1685. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
  1686. package/ReactCommon/react/renderer/components/image/conversions.h +7 -3
  1687. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.cpp +4 -0
  1688. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h +4 -0
  1689. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h +4 -0
  1690. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +5 -0
  1691. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +4 -0
  1692. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp +5 -0
  1693. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +4 -0
  1694. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.cpp +4 -0
  1695. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +4 -0
  1696. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h +4 -0
  1697. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +39 -0
  1698. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +182 -0
  1699. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.mm +11 -0
  1700. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +48 -0
  1701. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +227 -0
  1702. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +1 -1
  1703. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +235 -352
  1704. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
  1705. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +1 -1
  1706. package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
  1707. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +30 -46
  1708. package/ReactCommon/react/renderer/components/scrollview/primitives.h +1 -10
  1709. package/ReactCommon/react/renderer/components/scrollview/tests/ScrollViewTest.cpp +83 -3
  1710. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/IOSSwitchShadowNode.mm +1 -1
  1711. package/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h +49 -0
  1712. package/ReactCommon/react/renderer/components/text/BaseParagraphProps.cpp +17 -27
  1713. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +24 -25
  1714. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +19 -0
  1715. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +3 -28
  1716. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  1717. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +4 -4
  1718. package/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h +24 -0
  1719. package/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h +32 -0
  1720. package/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h +17 -0
  1721. package/ReactCommon/react/renderer/components/text/TextEffectProps.cpp +59 -0
  1722. package/ReactCommon/react/renderer/components/text/TextEffectProps.h +30 -0
  1723. package/ReactCommon/react/renderer/components/text/TextEffectShadowNode.cpp +14 -0
  1724. package/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h +26 -0
  1725. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +19 -29
  1726. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.cpp +1 -1
  1727. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +2 -2
  1728. package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
  1729. package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +15 -0
  1730. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +13 -1
  1731. package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.cpp +2 -40
  1732. package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h +0 -20
  1733. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +42 -50
  1734. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +0 -22
  1735. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h +0 -48
  1736. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +0 -61
  1737. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +2 -36
  1738. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +149 -225
  1739. package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.cpp +15 -24
  1740. package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -16
  1741. package/ReactCommon/react/renderer/components/view/BaseTouch.h +11 -30
  1742. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +256 -312
  1743. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +1 -1
  1744. package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +0 -3
  1745. package/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +57 -53
  1746. package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
  1747. package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
  1748. package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
  1749. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
  1750. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
  1751. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +1 -6
  1752. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +2 -12
  1753. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +78 -27
  1754. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +7 -9
  1755. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +36 -39
  1756. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
  1757. package/ReactCommon/react/renderer/components/view/conversions.h +294 -36
  1758. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +110 -201
  1759. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
  1760. package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
  1761. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h +14 -0
  1762. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
  1763. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
  1764. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
  1765. package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
  1766. package/ReactCommon/react/renderer/components/view/primitives.h +8 -87
  1767. package/ReactCommon/react/renderer/components/view/propsConversions.h +81 -43
  1768. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +301 -0
  1769. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +6 -6
  1770. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +384 -3
  1771. package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +1 -1
  1772. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +59 -14
  1773. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +33 -0
  1774. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
  1775. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
  1776. package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
  1777. package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
  1778. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
  1779. package/ReactCommon/react/renderer/core/EventEmitter.cpp +99 -21
  1780. package/ReactCommon/react/renderer/core/EventEmitter.h +33 -8
  1781. package/ReactCommon/react/renderer/core/EventPipe.h +4 -2
  1782. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +21 -13
  1783. package/ReactCommon/react/renderer/core/EventTarget.cpp +11 -8
  1784. package/ReactCommon/react/renderer/core/EventTarget.h +7 -7
  1785. package/ReactCommon/react/renderer/core/LayoutConstraints.h +0 -5
  1786. package/ReactCommon/react/renderer/core/LayoutContext.h +9 -7
  1787. package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
  1788. package/ReactCommon/react/renderer/core/LayoutMetrics.h +3 -2
  1789. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
  1790. package/ReactCommon/react/renderer/core/Props.cpp +26 -22
  1791. package/ReactCommon/react/renderer/core/Props.h +69 -17
  1792. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  1793. package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
  1794. package/ReactCommon/react/renderer/core/RawProps.cpp +20 -3
  1795. package/ReactCommon/react/renderer/core/RawProps.h +44 -0
  1796. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +15 -28
  1797. package/ReactCommon/react/renderer/core/RawPropsKeyMap.h +3 -3
  1798. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +5 -13
  1799. package/ReactCommon/react/renderer/core/RawPropsParser.h +5 -9
  1800. package/ReactCommon/react/renderer/core/RawValue.h +1 -2
  1801. package/ReactCommon/react/renderer/core/ShadowNode.cpp +63 -59
  1802. package/ReactCommon/react/renderer/core/ShadowNode.h +21 -31
  1803. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +6 -6
  1804. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +16 -14
  1805. package/ReactCommon/react/renderer/core/ShadowNodeFragment.cpp +4 -2
  1806. package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +2 -2
  1807. package/ReactCommon/react/renderer/core/StateData.h +4 -4
  1808. package/ReactCommon/react/renderer/core/__docs__/RSNRU.excalidraw.svg +2 -0
  1809. package/ReactCommon/react/renderer/core/__docs__/RSNRU.md +61 -0
  1810. package/ReactCommon/react/renderer/core/__docs__/passChildrenWhenCloning.excalidraw.svg +2 -0
  1811. package/ReactCommon/react/renderer/core/__docs__/passChildrenWhenCloning.md +52 -0
  1812. package/ReactCommon/react/renderer/core/conversions.h +4 -0
  1813. package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
  1814. package/ReactCommon/react/renderer/core/propsConversions.h +4 -8
  1815. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +8 -0
  1816. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
  1817. package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
  1818. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +7 -7
  1819. package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +19 -19
  1820. package/ReactCommon/react/renderer/core/tests/PropsConceptsTest.cpp +135 -0
  1821. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +43 -53
  1822. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +88 -1
  1823. package/ReactCommon/react/renderer/css/CSSBackgroundImage.h +112 -140
  1824. package/ReactCommon/react/renderer/css/CSSColor.h +7 -8
  1825. package/ReactCommon/react/renderer/css/CSSColorFunction.h +38 -39
  1826. package/ReactCommon/react/renderer/css/CSSCompoundDataType.h +23 -17
  1827. package/ReactCommon/react/renderer/css/CSSDataType.h +15 -10
  1828. package/ReactCommon/react/renderer/css/CSSFilter.h +12 -17
  1829. package/ReactCommon/react/renderer/css/CSSKeyword.h +8 -0
  1830. package/ReactCommon/react/renderer/css/CSSList.h +11 -11
  1831. package/ReactCommon/react/renderer/css/CSSRatio.h +4 -4
  1832. package/ReactCommon/react/renderer/css/CSSShadow.h +7 -7
  1833. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +17 -6
  1834. package/ReactCommon/react/renderer/css/CSSTokenizer.h +2 -0
  1835. package/ReactCommon/react/renderer/css/CSSTransform.h +20 -20
  1836. package/ReactCommon/react/renderer/css/CSSTransformOrigin.h +4 -5
  1837. package/ReactCommon/react/renderer/css/CSSValueParser.h +71 -67
  1838. package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +12 -11
  1839. package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
  1840. package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
  1841. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
  1842. package/ReactCommon/react/renderer/debug/flags.h +3 -2
  1843. package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
  1844. package/ReactCommon/react/renderer/element/tests/ElementTest.cpp +3 -3
  1845. package/ReactCommon/react/renderer/graphics/BackgroundPosition.h +0 -1
  1846. package/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +0 -1
  1847. package/ReactCommon/react/renderer/graphics/BackgroundSize.h +0 -1
  1848. package/ReactCommon/react/renderer/graphics/BlendMode.h +7 -0
  1849. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
  1850. package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
  1851. package/ReactCommon/react/renderer/graphics/Filter.h +5 -2
  1852. package/ReactCommon/react/renderer/graphics/LinearGradient.cpp +9 -15
  1853. package/ReactCommon/react/renderer/graphics/LinearGradient.h +10 -19
  1854. package/ReactCommon/react/renderer/graphics/Point.h +0 -2
  1855. package/ReactCommon/react/renderer/graphics/RadialGradient.h +8 -35
  1856. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +4 -6
  1857. package/ReactCommon/react/renderer/graphics/Rect.h +1 -9
  1858. package/ReactCommon/react/renderer/graphics/RectangleCorners.h +1 -10
  1859. package/ReactCommon/react/renderer/graphics/RectangleEdges.h +1 -10
  1860. package/ReactCommon/react/renderer/graphics/Size.h +0 -5
  1861. package/ReactCommon/react/renderer/graphics/Transform.cpp +0 -4
  1862. package/ReactCommon/react/renderer/graphics/Transform.h +1 -13
  1863. package/ReactCommon/react/renderer/graphics/TransformUtils.h +95 -0
  1864. package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
  1865. package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -11
  1866. package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +13 -1
  1867. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +17 -53
  1868. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h +3 -3
  1869. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm +13 -16
  1870. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -4
  1871. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +11 -12
  1872. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +4 -3
  1873. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +19 -13
  1874. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
  1875. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
  1876. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +6 -36
  1877. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +25 -4
  1878. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  1879. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  1880. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.h +1 -1
  1881. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +1 -1
  1882. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +1 -5
  1883. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.h +1 -1
  1884. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +8 -4
  1885. package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -11
  1886. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +158 -47
  1887. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +28 -14
  1888. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +99 -48
  1889. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +4 -0
  1890. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +96 -1
  1891. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
  1892. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +39 -42
  1893. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
  1894. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
  1895. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +253 -21
  1896. package/ReactCommon/react/renderer/mounting/ShadowTree.h +32 -6
  1897. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +11 -0
  1898. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -4
  1899. package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -1
  1900. package/ReactCommon/react/renderer/mounting/internal/ShadowViewNodePair.h +0 -5
  1901. package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.h +3 -3
  1902. package/ReactCommon/react/renderer/mounting/stubs/StubView.cpp +0 -4
  1903. package/ReactCommon/react/renderer/mounting/stubs/StubView.h +0 -1
  1904. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -4
  1905. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +0 -2
  1906. package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +220 -0
  1907. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +1 -1
  1908. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +79 -18
  1909. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeReactBranchingTest.cpp +141 -0
  1910. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +1 -1
  1911. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -0
  1912. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +37 -11
  1913. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +2 -1
  1914. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +0 -5
  1915. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +0 -1
  1916. package/ReactCommon/react/renderer/observers/intersection/__docs__/README.md +13 -0
  1917. package/ReactCommon/react/renderer/observers/mutation/__docs__/README.md +13 -0
  1918. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +1 -0
  1919. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -0
  1920. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +22 -2
  1921. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +13 -2
  1922. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +13 -0
  1923. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +9 -0
  1924. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +43 -5
  1925. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +17 -1
  1926. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -0
  1927. package/ReactCommon/react/renderer/runtimescheduler/__docs__/README.md +210 -0
  1928. package/ReactCommon/react/renderer/runtimescheduler/__docs__/event-loop-async-task.excalidraw.svg +4 -0
  1929. package/ReactCommon/react/renderer/runtimescheduler/__docs__/event-loop-sync-task.excalidraw.svg +4 -0
  1930. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +134 -31
  1931. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +2 -0
  1932. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +118 -10
  1933. package/ReactCommon/react/renderer/scheduler/Scheduler.h +17 -4
  1934. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +11 -0
  1935. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +7 -0
  1936. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +1 -105
  1937. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -9
  1938. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
  1939. package/ReactCommon/react/renderer/scheduler/tests/SchedulerDelegateInvalidationTest.cpp +671 -0
  1940. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +18 -18
  1941. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +22 -5
  1942. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +12 -16
  1943. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +5 -5
  1944. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +15 -4
  1945. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +82 -44
  1946. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontProperties.h +1 -1
  1947. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.h +1 -1
  1948. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +1 -25
  1949. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.h +2 -8
  1950. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +210 -32
  1951. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +18 -6
  1952. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +12 -2
  1953. package/ReactCommon/react/renderer/textlayoutmanager/tests/TextLayoutManagerTest.cpp +86 -5
  1954. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +1 -1
  1955. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +1 -3
  1956. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +1 -1
  1957. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +144 -98
  1958. package/ReactCommon/react/renderer/uimanager/UIManager.h +27 -10
  1959. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +20 -5
  1960. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +349 -7
  1961. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +7 -5
  1962. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +16 -1
  1963. package/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +82 -0
  1964. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.cpp +19 -23
  1965. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h +2 -3
  1966. package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +13 -5
  1967. package/ReactCommon/react/renderer/uimanager/primitives.h +16 -7
  1968. package/ReactCommon/react/renderer/uimanager/tests/FabricUIManagerTest.cpp +144 -3
  1969. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +236 -0
  1970. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +4 -4
  1971. package/ReactCommon/react/renderer/viewtransition/CMakeLists.txt +22 -0
  1972. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +569 -0
  1973. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +171 -0
  1974. package/ReactCommon/react/runtime/CMakeLists.txt +0 -4
  1975. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +12 -0
  1976. package/ReactCommon/react/runtime/ReactInstance.cpp +99 -77
  1977. package/ReactCommon/react/runtime/ReactInstance.h +5 -1
  1978. package/ReactCommon/react/runtime/TimerManager.cpp +30 -56
  1979. package/ReactCommon/react/runtime/TimerManager.h +7 -12
  1980. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +0 -4
  1981. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +11 -95
  1982. package/ReactCommon/react/runtime/iostests/MainQueueCoordinatorTests.mm +99 -0
  1983. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +11 -0
  1984. package/ReactCommon/react/runtime/iostests/RCTInstanceTests.mm +244 -0
  1985. package/ReactCommon/react/runtime/platform/ios/ReactCommon/ObjCTimerRegistry.h +2 -2
  1986. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +20 -5
  1987. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +170 -7
  1988. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +1 -1
  1989. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +49 -39
  1990. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.mm +3 -2
  1991. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.mm +3 -2
  1992. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +27 -3
  1993. package/ReactCommon/react/runtime/tests/cxx/RuntimeExecutorShutdownTest.cpp +155 -0
  1994. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +8 -5
  1995. package/ReactCommon/react/timing/PrivacyInfo.xcprivacy +21 -0
  1996. package/ReactCommon/react/timing/React-timing.podspec +2 -0
  1997. package/ReactCommon/react/timing/__docs__/README.md +107 -0
  1998. package/ReactCommon/react/timing/primitives.h +33 -1
  1999. package/ReactCommon/react/utils/Base64.h +99 -0
  2000. package/ReactCommon/react/utils/ContextContainer.h +0 -2
  2001. package/ReactCommon/react/utils/React-utils.podspec +3 -1
  2002. package/ReactCommon/react/utils/Telemetry.h +0 -13
  2003. package/ReactCommon/react/utils/tests/Base64Tests.cpp +36 -0
  2004. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +0 -1
  2005. package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.mm +21 -38
  2006. package/ReactCommon/yoga/Yoga.podspec +1 -1
  2007. package/ReactCommon/yoga/yoga/YGEnums.cpp +34 -0
  2008. package/ReactCommon/yoga/yoga/YGEnums.h +21 -4
  2009. package/ReactCommon/yoga/yoga/YGMacros.h +2 -0
  2010. package/ReactCommon/yoga/yoga/YGNode.cpp +41 -0
  2011. package/ReactCommon/yoga/yoga/YGNode.h +70 -1
  2012. package/ReactCommon/yoga/yoga/YGNodeLayout.h +0 -2
  2013. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +269 -0
  2014. package/ReactCommon/yoga/yoga/YGNodeStyle.h +93 -1
  2015. package/ReactCommon/yoga/yoga/YGValue.h +0 -4
  2016. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +41 -9
  2017. package/ReactCommon/yoga/yoga/algorithm/Align.h +12 -1
  2018. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +401 -32
  2019. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +22 -0
  2020. package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
  2021. package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
  2022. package/ReactCommon/yoga/yoga/config/Config.h +1 -1
  2023. package/ReactCommon/yoga/yoga/enums/Align.h +3 -1
  2024. package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
  2025. package/ReactCommon/yoga/yoga/enums/Errata.h +1 -0
  2026. package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +2 -1
  2027. package/ReactCommon/yoga/yoga/enums/GridTrackType.h +43 -0
  2028. package/ReactCommon/yoga/yoga/enums/Justify.h +5 -1
  2029. package/ReactCommon/yoga/yoga/enums/YogaEnums.h +0 -1
  2030. package/ReactCommon/yoga/yoga/event/event.cpp +2 -0
  2031. package/ReactCommon/yoga/yoga/event/event.h +1 -0
  2032. package/ReactCommon/yoga/yoga/node/LayoutResults.h +8 -3
  2033. package/ReactCommon/yoga/yoga/node/Node.cpp +38 -1
  2034. package/ReactCommon/yoga/yoga/node/Node.h +37 -4
  2035. package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +0 -9
  2036. package/ReactCommon/yoga/yoga/style/GridLine.h +53 -0
  2037. package/ReactCommon/yoga/yoga/style/GridTrack.h +63 -0
  2038. package/ReactCommon/yoga/yoga/style/Style.h +268 -82
  2039. package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
  2040. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +14 -1
  2041. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  2042. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +10 -0
  2043. package/cli.js +4 -183
  2044. package/flow/HermesInternalType.js +6 -6
  2045. package/flow/bom.js.flow +152 -52
  2046. package/flow/cssom.js.flow +24 -24
  2047. package/flow/dom.js.flow +258 -250
  2048. package/flow/global.js +7 -1
  2049. package/gradle/libs.versions.toml +11 -7
  2050. package/index.js +95 -100
  2051. package/index.js.flow +92 -32
  2052. package/macos/UIKitCompat/MobileCoreServices/MobileCoreServices.h +14 -0
  2053. package/macos/UIKitCompat/MobileCoreServices/UTCoreTypes.h +14 -0
  2054. package/macos/UIKitCompat/MobileCoreServices/UTType.h +14 -0
  2055. package/macos/UIKitCompat/RCTPlatformViewCompat.h +68 -0
  2056. package/macos/UIKitCompat/README.md +77 -0
  2057. package/macos/UIKitCompat/React-UIKitCompat.podspec +61 -0
  2058. package/macos/UIKitCompat/UIKit/UIAccessibility.h +72 -0
  2059. package/macos/UIKitCompat/UIKit/UIAccessibility.m +103 -0
  2060. package/macos/UIKitCompat/UIKit/UIAlertController.h +92 -0
  2061. package/macos/UIKitCompat/UIKit/UIAlertController.m +172 -0
  2062. package/macos/UIKitCompat/UIKit/UIApplication.h +39 -0
  2063. package/macos/UIKitCompat/UIKit/UIApplication.m +30 -0
  2064. package/macos/UIKitCompat/UIKit/UIApplicationDelegate.h +156 -0
  2065. package/macos/UIKitCompat/UIKit/UIApplicationDelegate.m +116 -0
  2066. package/macos/UIKitCompat/UIKit/UIColor.h +50 -0
  2067. package/macos/UIKitCompat/UIKit/UIColor.m +84 -0
  2068. package/macos/UIKitCompat/UIKit/UIControls.h +352 -0
  2069. package/macos/UIKitCompat/UIKit/UIControls.m +609 -0
  2070. package/macos/UIKitCompat/UIKit/UIDisplayLink.h +52 -0
  2071. package/macos/UIKitCompat/UIKit/UIDisplayLink.m +168 -0
  2072. package/macos/UIKitCompat/UIKit/UIEvent.h +110 -0
  2073. package/macos/UIKitCompat/UIKit/UIEvent.m +109 -0
  2074. package/macos/UIKitCompat/UIKit/UIGestureRecognizerSubclass.h +16 -0
  2075. package/macos/UIKitCompat/UIKit/UIGraphics.h +66 -0
  2076. package/macos/UIKitCompat/UIKit/UIGraphics.m +192 -0
  2077. package/macos/UIKitCompat/UIKit/UIImage.h +90 -0
  2078. package/macos/UIKitCompat/UIKit/UIImage.m +176 -0
  2079. package/macos/UIKitCompat/UIKit/UIKeyCommand.h +95 -0
  2080. package/macos/UIKitCompat/UIKit/UIKeyCommand.m +66 -0
  2081. package/macos/UIKitCompat/UIKit/UIKit.h +51 -0
  2082. package/macos/UIKitCompat/UIKit/UIKitDefines.h +417 -0
  2083. package/macos/UIKitCompat/UIKit/UIPlatformGaps.h +405 -0
  2084. package/macos/UIKitCompat/UIKit/UIPlatformGaps.m +1075 -0
  2085. package/macos/UIKitCompat/UIKit/UIScrollView.h +106 -0
  2086. package/macos/UIKitCompat/UIKit/UIScrollView.m +237 -0
  2087. package/macos/UIKitCompat/UIKit/UIStatusBar.h +42 -0
  2088. package/macos/UIKitCompat/UIKit/UIStatusBar.m +27 -0
  2089. package/macos/UIKitCompat/UIKit/UIText.h +234 -0
  2090. package/macos/UIKitCompat/UIKit/UIText.m +332 -0
  2091. package/macos/UIKitCompat/UIKit/UITouch.h +24 -0
  2092. package/macos/UIKitCompat/UIKit/UITraitCollection.h +57 -0
  2093. package/macos/UIKitCompat/UIKit/UITraitCollection.m +114 -0
  2094. package/macos/UIKitCompat/UIKit/UIUserActivity.h +14 -0
  2095. package/macos/UIKitCompat/UIKit/UIView.h +166 -0
  2096. package/macos/UIKitCompat/UIKit/UIView.m +555 -0
  2097. package/macos/UIKitCompat/UIKit/UIViewAnimation.h +355 -0
  2098. package/macos/UIKitCompat/UIKit/UIViewAnimation.m +481 -0
  2099. package/macos/UIKitCompat/UIKit/UIViewController.h +24 -0
  2100. package/macos/UIKitCompat/UIKit/UIWindow.h +24 -0
  2101. package/macos/UIKitCompat/macos-excludes.txt +22 -0
  2102. package/macos/metro-config.js +120 -0
  2103. package/package.json +79 -89
  2104. package/react-native.config.js +86 -57
  2105. package/scripts/cocoapods/__docs__/prebuilt-deps.md +78 -0
  2106. package/scripts/cocoapods/__tests__/codegen_utils-test.rb +315 -0
  2107. package/scripts/cocoapods/__tests__/fabric-test.rb +57 -0
  2108. package/scripts/cocoapods/__tests__/jsengine-test.rb +47 -0
  2109. package/scripts/cocoapods/__tests__/local_podspec_patch-test.rb +167 -0
  2110. package/scripts/cocoapods/__tests__/new_architecture-test.rb +402 -0
  2111. package/scripts/cocoapods/__tests__/rndependencies-test.rb +89 -0
  2112. package/scripts/cocoapods/__tests__/spm-test.rb +100 -0
  2113. package/scripts/cocoapods/__tests__/test_utils/CodegenScriptPhaseExtractorMock.rb +21 -0
  2114. package/scripts/cocoapods/__tests__/test_utils/CodegenUtilsMock.rb +108 -0
  2115. package/scripts/cocoapods/__tests__/test_utils/DirMock.rb +72 -0
  2116. package/scripts/cocoapods/__tests__/test_utils/EnvironmentMock.rb +21 -0
  2117. package/scripts/cocoapods/__tests__/test_utils/FileMock.rb +113 -0
  2118. package/scripts/cocoapods/__tests__/test_utils/FileUtilsMock.rb +40 -0
  2119. package/scripts/cocoapods/__tests__/test_utils/FinderMock.rb +28 -0
  2120. package/scripts/cocoapods/__tests__/test_utils/InstallerMock.rb +239 -0
  2121. package/scripts/cocoapods/__tests__/test_utils/LocalPodspecPatchMock.rb +14 -0
  2122. package/scripts/cocoapods/__tests__/test_utils/Open3Mock.rb +43 -0
  2123. package/scripts/cocoapods/__tests__/test_utils/PathnameMock.rb +50 -0
  2124. package/scripts/cocoapods/__tests__/test_utils/PodMock.rb +144 -0
  2125. package/scripts/cocoapods/__tests__/test_utils/SpecMock.rb +30 -0
  2126. package/scripts/cocoapods/__tests__/test_utils/SysctlCheckerMock.rb +21 -0
  2127. package/scripts/cocoapods/__tests__/test_utils/TargetDefinitionMock.rb +12 -0
  2128. package/scripts/cocoapods/__tests__/test_utils/XcodebuildMock.rb +26 -0
  2129. package/scripts/cocoapods/__tests__/test_utils/XcodeprojMock.rb +21 -0
  2130. package/scripts/cocoapods/__tests__/test_utils/podSpy.rb +39 -0
  2131. package/scripts/cocoapods/__tests__/test_utils/systemUtils.rb +14 -0
  2132. package/scripts/cocoapods/__tests__/utils-test.rb +1079 -0
  2133. package/scripts/cocoapods/autolinking.rb +11 -2
  2134. package/scripts/cocoapods/codegen.rb +3 -1
  2135. package/scripts/cocoapods/codegen_utils.rb +7 -2
  2136. package/scripts/cocoapods/fabric.rb +1 -1
  2137. package/scripts/cocoapods/helpers.rb +27 -6
  2138. package/scripts/cocoapods/jsengine.rb +1 -1
  2139. package/scripts/cocoapods/new_architecture.rb +8 -2
  2140. package/scripts/cocoapods/rncore.rb +153 -18
  2141. package/scripts/cocoapods/rncore_facades.rb +232 -0
  2142. package/scripts/cocoapods/rndependencies.rb +148 -27
  2143. package/scripts/cocoapods/rndeps_facades.rb +197 -0
  2144. package/scripts/cocoapods/spm.rb +104 -19
  2145. package/scripts/cocoapods/utils.rb +65 -26
  2146. package/scripts/codegen/__fixtures__/fixtures.js +133 -0
  2147. package/scripts/codegen/__fixtures__/test-app/lib/test-library/package.json +66 -0
  2148. package/scripts/codegen/__fixtures__/test-app/package.json +67 -0
  2149. package/scripts/codegen/__fixtures__/test-app-legacy/package.json +37 -0
  2150. package/scripts/codegen/__fixtures__/test-library/test-library.podspec +10 -0
  2151. package/scripts/codegen/__fixtures__/test-library-2/test-library-2.podspec +12 -0
  2152. package/scripts/codegen/__tests__/__snapshots__/generate-artifacts-executor-test.js.snap +995 -0
  2153. package/scripts/codegen/__tests__/generate-artifacts-executor-test.js +509 -0
  2154. package/scripts/codegen/__tests__/generate-specs-cli-executor-test.js +74 -0
  2155. package/scripts/codegen/generate-artifacts-executor/generateAppDependencyProvider.js +4 -4
  2156. package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +4 -4
  2157. package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +15 -7
  2158. package/scripts/codegen/generate-artifacts-executor/generatePackageSwift.js +2 -2
  2159. package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +4 -3
  2160. package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +12 -9
  2161. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +26 -11
  2162. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +8 -8
  2163. package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +4 -4
  2164. package/scripts/codegen/generate-artifacts-executor/index.js +102 -33
  2165. package/scripts/codegen/generate-artifacts-executor/utils.js +67 -6
  2166. package/scripts/codegen/generate-specs-cli-executor.js +1 -1
  2167. package/scripts/codegen/templates/Package.swift.spm-template +97 -0
  2168. package/scripts/codegen/templates/Package.swift.template +7 -0
  2169. package/scripts/codegen/templates/RCTThirdPartyComponentsProviderMM.template +22 -1
  2170. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -1
  2171. package/scripts/generate-codegen-artifacts.js +20 -2
  2172. package/scripts/generate-provider-cli.js +1 -1
  2173. package/scripts/hermes/hermes-utils.js +27 -58
  2174. package/scripts/ios-configure-glog.sh +24 -1
  2175. package/scripts/node-binary.sh +0 -0
  2176. package/scripts/react-native-xcode.sh +24 -6
  2177. package/scripts/react_native_pods.rb +125 -30
  2178. package/scripts/react_native_pods_utils/script_phases.rb +9 -3
  2179. package/scripts/react_native_pods_utils/script_phases.sh +4 -3
  2180. package/scripts/replace-rncore-version.js +110 -37
  2181. package/scripts/setup-apple-spm.js +1283 -0
  2182. package/scripts/spm/__docs__/README.md +92 -0
  2183. package/scripts/spm/__docs__/spm-autolinking-plugins.md +359 -0
  2184. package/scripts/spm/__docs__/spm-header-paths-contract.md +100 -0
  2185. package/scripts/spm/__docs__/spm-scripts.md +646 -0
  2186. package/scripts/spm/__tests__/__fixtures__/plain-app.pbxproj +171 -0
  2187. package/scripts/spm/__tests__/autolinking-plugins-test.js +543 -0
  2188. package/scripts/spm/__tests__/download-spm-artifacts-test.js +893 -0
  2189. package/scripts/spm/__tests__/expand-spm-dependencies-test.js +959 -0
  2190. package/scripts/spm/__tests__/flavored-frameworks-plist-dep-test.js +102 -0
  2191. package/scripts/spm/__tests__/flavored-frameworks-test.js +439 -0
  2192. package/scripts/spm/__tests__/generate-spm-autolinking-config-test.js +364 -0
  2193. package/scripts/spm/__tests__/generate-spm-autolinking-test.js +1960 -0
  2194. package/scripts/spm/__tests__/generate-spm-package-test.js +335 -0
  2195. package/scripts/spm/__tests__/generate-spm-xcodeproj-test.js +443 -0
  2196. package/scripts/spm/__tests__/inject-spm-xcodeproj-test.js +1169 -0
  2197. package/scripts/spm/__tests__/pbxproj-oracles.js +33 -0
  2198. package/scripts/spm/__tests__/read-podspec-test.js +487 -0
  2199. package/scripts/spm/__tests__/remove-spm-injection-test.js +1379 -0
  2200. package/scripts/spm/__tests__/scaffold-package-swift-test.js +1321 -0
  2201. package/scripts/spm/__tests__/setup-apple-spm-test.js +652 -0
  2202. package/scripts/spm/__tests__/spm-pbxproj-test.js +707 -0
  2203. package/scripts/spm/__tests__/spm-utils-test.js +715 -0
  2204. package/scripts/spm/__tests__/swift-tools-version-test.js +97 -0
  2205. package/scripts/spm/__tests__/sync-spm-autolinking-test.js +118 -0
  2206. package/scripts/spm/autolinking-plugins.js +411 -0
  2207. package/scripts/spm/download-spm-artifacts.js +1467 -0
  2208. package/scripts/spm/expand-spm-dependencies.js +435 -0
  2209. package/scripts/spm/flavored-frameworks.js +1008 -0
  2210. package/scripts/spm/generate-spm-autolinking-config.js +221 -0
  2211. package/scripts/spm/generate-spm-autolinking.js +2005 -0
  2212. package/scripts/spm/generate-spm-package.js +314 -0
  2213. package/scripts/spm/generate-spm-xcodeproj.js +2790 -0
  2214. package/scripts/spm/read-podspec.js +695 -0
  2215. package/scripts/spm/scaffold-package-swift.js +1247 -0
  2216. package/scripts/spm/spm-pbxproj.js +784 -0
  2217. package/scripts/spm/spm-types.js +546 -0
  2218. package/scripts/spm/spm-utils.js +760 -0
  2219. package/scripts/spm/sync-spm-autolinking.js +160 -0
  2220. package/scripts/xcode/with-environment.sh +7 -1
  2221. package/sdks/.hermesv1version +1 -0
  2222. package/sdks/hermes-engine/hermes-engine.podspec +12 -31
  2223. package/sdks/hermes-engine/hermes-utils.rb +108 -133
  2224. package/sdks/hermes-engine/utils/replace_hermes_version.js +18 -4
  2225. package/sdks/hermes-engine/version.properties +1 -2
  2226. package/settings.gradle.kts +0 -23
  2227. package/src/asset-registry.js +29 -0
  2228. package/src/private/__tests__/MemoryBaseline-itest.js +113 -0
  2229. package/src/private/__tests__/utilities/ShadowNodeReferenceCounter.js +60 -0
  2230. package/src/private/__tests__/utilities/ShadowNodeRevisionGetter.js +49 -0
  2231. package/src/private/__tests__/utilities/__tests__/ShadowNodeReferenceCounter-itest.js +196 -0
  2232. package/src/private/__tests__/utilities/__tests__/ShadowNodeRevisionGetter-itest.js +79 -0
  2233. package/src/private/__tests__/utilities/accessibilityPropsSuite.js +332 -0
  2234. package/src/private/__tests__/utilities/commonPropsSuite.js +40 -0
  2235. package/src/private/__tests__/utilities/ensureInstance.js +21 -0
  2236. package/src/private/__tests__/utilities/isUnreachable.js +27 -0
  2237. package/src/private/__tests__/utilities/measureRenderTime.js +46 -0
  2238. package/src/private/animated/NativeAnimatedHelper.js +170 -143
  2239. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  2240. package/src/private/animated/__tests__/AnimatedNative-test.js +1766 -0
  2241. package/src/private/animated/__tests__/AnimatedProps-itest.js +80 -0
  2242. package/src/private/animated/__tests__/createAnimatedPropsHook-itest.js +89 -0
  2243. package/src/private/animated/__tests__/createAnimatedPropsMemoHook-itest.js +370 -0
  2244. package/src/private/animated/createAnimatedPropsHook.js +15 -7
  2245. package/src/private/animated/createAnimatedPropsMemoHook.js +20 -20
  2246. package/src/private/assets/AssetRegistry.js +52 -0
  2247. package/src/private/components/activityindicator/specs/ActivityIndicatorViewNativeComponent.js +56 -0
  2248. package/src/private/components/debuggingoverlay/specs/DebuggingOverlayNativeComponent.js +62 -0
  2249. package/src/private/components/drawerlayoutandroid/specs/AndroidDrawerLayoutNativeComponent.js +124 -0
  2250. package/src/private/components/inputaccessoryview/specs/RCTInputAccessoryViewNativeComponent.js +29 -0
  2251. package/src/private/components/modal/specs/RCTModalHostViewNativeComponent.js +151 -0
  2252. package/src/private/components/progressbarandroid/specs/ProgressBarAndroidNativeComponent.js +39 -0
  2253. package/src/private/components/refreshcontrol/specs/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  2254. package/src/private/components/refreshcontrol/specs/PullToRefreshViewNativeComponent.js +74 -0
  2255. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  2256. package/src/private/components/safeareaview/specs/RCTSafeAreaViewNativeComponent.js +28 -0
  2257. package/src/private/components/scrollview/HScrollViewNativeComponents.js +1 -1
  2258. package/src/private/components/scrollview/specs/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
  2259. package/src/private/components/switch/specs/AndroidSwitchNativeComponent.js +65 -0
  2260. package/src/private/components/switch/specs/SwitchNativeComponent.js +65 -0
  2261. package/src/private/components/unimplementedview/specs/UnimplementedNativeViewNativeComponent.js +26 -0
  2262. package/src/private/components/virtualcollection/FlingConstants.js +21 -0
  2263. package/src/private/components/virtualcollection/Virtual.js +62 -0
  2264. package/src/private/components/virtualcollection/VirtualCollectionView.js +234 -0
  2265. package/src/private/components/virtualcollection/column/VirtualColumn.js +43 -0
  2266. package/src/private/components/virtualcollection/column/VirtualColumnGenerator.js +72 -0
  2267. package/src/private/components/virtualcollection/dom/getScrollParent.js +43 -0
  2268. package/src/private/components/virtualcollection/dom/isScrollableNode.js +22 -0
  2269. package/src/private/components/virtualcollection/row/VirtualRow.js +43 -0
  2270. package/src/private/components/virtualcollection/row/VirtualRowGenerator.js +72 -0
  2271. package/src/private/components/virtualview/VirtualView.js +30 -30
  2272. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  2273. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  2274. package/src/private/components/virtualview/__tests__/VirtualView-itest.js +409 -0
  2275. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  2276. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  2277. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  2278. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  2279. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  2280. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +2 -2
  2281. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +42 -37
  2282. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  2283. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +3 -29
  2284. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  2285. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  2286. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  2287. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +2 -2
  2288. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  2289. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  2290. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +5 -5
  2291. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  2292. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  2293. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.macos.js +7 -5
  2294. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  2295. package/src/private/devsupport/rndevtools/__docs__/FuseboxReactDevToolsDispatcher.excalidraw.svg +3 -0
  2296. package/src/private/devsupport/rndevtools/__tests__/TracingStateObserver-itest.js +131 -0
  2297. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +6 -4
  2298. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +4 -4
  2299. package/src/private/featureflags/ReactNativeFeatureFlags.js +136 -133
  2300. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +6 -6
  2301. package/src/private/featureflags/__docs__/README.md +229 -0
  2302. package/src/private/featureflags/__docs__/architecture.excalidraw.svg +4 -0
  2303. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-itest.js +104 -0
  2304. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +91 -0
  2305. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +88 -85
  2306. package/src/private/renderer/branching/__tests__/ShadowTreeBranching-itest.js +249 -0
  2307. package/src/private/renderer/consistency/__tests__/UIConsistency-itest.js +159 -0
  2308. package/src/private/renderer/core/__tests__/EventDispatching-benchmark-itest.js +326 -0
  2309. package/src/private/renderer/core/__tests__/EventDispatching-itest.js +685 -0
  2310. package/src/private/renderer/core/__tests__/EventTargetDispatching-itest.js +1630 -0
  2311. package/src/private/renderer/core/__tests__/ResponderEventTarget-itest.js +910 -0
  2312. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -9
  2313. package/src/private/renderer/events/LegacySyntheticEvent.js +90 -0
  2314. package/src/private/renderer/events/ReactNativeEventTypeMapping.js +103 -0
  2315. package/src/private/renderer/events/ReactNativeResponder.js +732 -0
  2316. package/src/private/renderer/events/ResponderEvent.js +40 -0
  2317. package/src/private/renderer/events/ResponderTouchHistoryStore.js +267 -0
  2318. package/src/private/renderer/events/dispatchNativeEvent.js +118 -0
  2319. package/src/private/renderer/mounting/__tests__/Mounting-itest.js +563 -0
  2320. package/src/private/renderer/runtimescheduler/__tests__/RuntimeScheduler-benchmark-itest.js +62 -0
  2321. package/src/private/setup/__tests__/setUpDefaultReactNativeEnvironment-ComponentSideEffects-itest.js +56 -0
  2322. package/src/private/setup/__tests__/setUpDefaultReactNativeEnvironment-FeatureFlags-itest.js +28 -0
  2323. package/src/private/setup/__tests__/setUpDefaultReactNativeEnvironment-Globals-IntersectionObserver-itest.js +44 -0
  2324. package/src/private/setup/__tests__/setUpDefaultReactNativeEnvironment-Globals-MutationObserver-itest.js +44 -0
  2325. package/src/private/setup/__tests__/setUpDefaultReactNativeEnvironment-Globals-itest.js +346 -0
  2326. package/src/private/setup/setUpDOM.js +39 -9
  2327. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +12 -0
  2328. package/src/private/setup/setUpIntersectionObserver.js +7 -0
  2329. package/src/private/setup/setUpMutationObserver.js +3 -1
  2330. package/src/private/specs_DEPRECATED/__docs__/README.md +12 -0
  2331. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +10 -10
  2332. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +26 -32
  2333. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +29 -29
  2334. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +2 -7
  2335. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +48 -24
  2336. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +44 -24
  2337. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +5 -5
  2338. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +9 -7
  2339. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +8 -8
  2340. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +4 -4
  2341. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +4 -3
  2342. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +12 -15
  2343. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +2 -2
  2344. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +4 -4
  2345. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +8 -8
  2346. package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +5 -9
  2347. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +4 -4
  2348. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +5 -5
  2349. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +3 -3
  2350. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +2 -2
  2351. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +15 -15
  2352. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +10 -7
  2353. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +7 -7
  2354. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +4 -4
  2355. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +10 -7
  2356. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +6 -6
  2357. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +2 -2
  2358. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +3 -3
  2359. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +7 -7
  2360. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +3 -3
  2361. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +3 -3
  2362. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +6 -6
  2363. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +7 -7
  2364. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +7 -5
  2365. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +4 -4
  2366. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +3 -3
  2367. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +37 -33
  2368. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +3 -3
  2369. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +26 -26
  2370. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +3 -3
  2371. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +5 -5
  2372. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +3 -3
  2373. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +2 -2
  2374. package/src/private/specs_DEPRECATED/modules/NativeSourceCode.js +1 -1
  2375. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerAndroid.js +5 -17
  2376. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerIOS.js +10 -15
  2377. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +4 -4
  2378. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +5 -5
  2379. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +36 -23
  2380. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +5 -5
  2381. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +9 -9
  2382. package/src/private/styles/composeStyles.js +2 -2
  2383. package/src/private/testing/fantom/specs/NativeCPUTime.js +24 -0
  2384. package/src/private/testing/fantom/specs/NativeFantom.js +140 -0
  2385. package/src/private/testing/fantom/specs/NativeFantomTestSpecificMethods.js +37 -0
  2386. package/src/private/testing/fantom/specs/__docs__/README.md +19 -0
  2387. package/src/private/timers/__tests__/Timers-itest.js +140 -0
  2388. package/src/private/types/HostComponent.js +1 -1
  2389. package/src/private/types/HostInstance.js +38 -80
  2390. package/src/private/utilities/toError.js +27 -0
  2391. package/src/private/utilities/toExtendedError.js +30 -0
  2392. package/src/private/viewtransition/specs/NativeViewTransition.js +35 -0
  2393. package/src/private/webapis/console/__tests__/consoleCreateTask-benchmark-itest.js +35 -0
  2394. package/src/private/webapis/console/__tests__/consoleCreateTask-jsx-benchmark-itest.js +79 -0
  2395. package/src/private/webapis/console/__tests__/no-consoleCreateTask-jsx-benchmark-itest.js +19 -0
  2396. package/src/private/webapis/dom/abort-api/AbortController.js +92 -0
  2397. package/src/private/webapis/dom/abort-api/AbortSignal.js +243 -0
  2398. package/src/private/webapis/dom/abort-api/__tests__/AbortController-itest.js +466 -0
  2399. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  2400. package/src/private/webapis/dom/events/Event.js +22 -13
  2401. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  2402. package/src/private/webapis/dom/events/EventTarget.js +184 -33
  2403. package/src/private/webapis/dom/events/__tests__/CustomEvent-itest.js +51 -0
  2404. package/src/private/webapis/dom/events/__tests__/Event-itest.js +317 -0
  2405. package/src/private/webapis/dom/events/__tests__/EventHandlerAttributes-itest.js +203 -0
  2406. package/src/private/webapis/dom/events/__tests__/EventTarget-benchmark-itest.js +209 -0
  2407. package/src/private/webapis/dom/events/__tests__/EventTarget-itest.js +1048 -0
  2408. package/src/private/webapis/dom/events/__tests__/createEventTargetHierarchyWithDepth.js +37 -0
  2409. package/src/private/webapis/dom/events/internals/EventInternals.js +56 -3
  2410. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +50 -3
  2411. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +11 -0
  2412. package/src/private/webapis/dom/nodes/ReactNativeElement.js +127 -2
  2413. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +11 -0
  2414. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +14 -7
  2415. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +99 -3
  2416. package/src/private/webapis/dom/nodes/ReadOnlyText.js +33 -0
  2417. package/src/private/webapis/dom/nodes/__tests__/ReactNativeDocument-itest.js +319 -0
  2418. package/src/private/webapis/dom/nodes/__tests__/ReactNativeElement-itest.js +1810 -0
  2419. package/src/private/webapis/dom/nodes/__tests__/ReactNativeElement-traversal-benchmark-itest.js +181 -0
  2420. package/src/private/webapis/dom/nodes/__tests__/ReadOnlyText-itest.js +462 -0
  2421. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +10 -0
  2422. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  2423. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  2424. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +88 -84
  2425. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +15 -3
  2426. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +7 -3
  2427. package/src/private/webapis/dom/oldstylecollections/NodeList.js +14 -4
  2428. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +8 -4
  2429. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-itest.js +97 -0
  2430. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-itest.js +178 -0
  2431. package/src/private/webapis/errors/DOMException.js +50 -50
  2432. package/src/private/webapis/errors/__tests__/DOMException-itest.js +157 -0
  2433. package/src/private/webapis/geometry/DOMRectList.js +14 -2
  2434. package/src/private/webapis/geometry/DOMRectList.js.flow +4 -2
  2435. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  2436. package/src/private/webapis/geometry/__tests__/DOMRectList-itest.js +102 -0
  2437. package/src/private/webapis/html/events/MessageEvent.js +5 -5
  2438. package/src/private/webapis/idlecallbacks/__tests__/requestIdleCallback-itest.js +172 -0
  2439. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +7 -7
  2440. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +61 -13
  2441. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +13 -0
  2442. package/src/private/webapis/intersectionobserver/__docs__/README.md +53 -0
  2443. package/src/private/webapis/intersectionobserver/__docs__/architecture.excalidraw.svg +5 -0
  2444. package/src/private/webapis/intersectionobserver/__tests__/IntersectionObserver-benchmark-itest.js +449 -0
  2445. package/src/private/webapis/intersectionobserver/__tests__/IntersectionObserver-itest.js +4295 -0
  2446. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +10 -18
  2447. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +16 -16
  2448. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +3 -3
  2449. package/src/private/webapis/mutationobserver/MutationObserver.js +9 -9
  2450. package/src/private/webapis/mutationobserver/MutationRecord.js +15 -3
  2451. package/src/private/webapis/mutationobserver/__docs__/README.md +46 -0
  2452. package/src/private/webapis/mutationobserver/__docs__/architecture.excalidraw.svg +4 -0
  2453. package/src/private/webapis/mutationobserver/__tests__/MutationObserver-itest.js +943 -0
  2454. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +6 -8
  2455. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +13 -13
  2456. package/src/private/webapis/performance/EventTiming.js +3 -3
  2457. package/src/private/webapis/performance/LongTasks.js +3 -3
  2458. package/src/private/webapis/performance/Performance.js +5 -5
  2459. package/src/private/webapis/performance/PerformanceEntry.js +4 -4
  2460. package/src/private/webapis/performance/PerformanceObserver.js +6 -6
  2461. package/src/private/webapis/performance/ResourceTiming.js +13 -13
  2462. package/src/private/webapis/performance/UserTiming.js +4 -4
  2463. package/src/private/webapis/performance/__tests__/EventTimingAPI-itest.js +403 -0
  2464. package/src/private/webapis/performance/__tests__/LongTasksAPI-itest.js +207 -0
  2465. package/src/private/webapis/performance/__tests__/Performance-benchmark-itest.js +146 -0
  2466. package/src/private/webapis/performance/__tests__/Performance-itest.js +77 -0
  2467. package/src/private/webapis/performance/__tests__/PerformanceMemory-itest.js +28 -0
  2468. package/src/private/webapis/performance/__tests__/PerformanceObserver-itest.js +127 -0
  2469. package/src/private/webapis/performance/__tests__/UserTiming-itest.js +828 -0
  2470. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +1 -1
  2471. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  2472. package/src/private/webapis/performance/specs/NativePerformance.js +34 -28
  2473. package/src/private/webapis/structuredClone/__tests__/structuredClone-benchmark-itest.js +43 -0
  2474. package/src/private/webapis/structuredClone/__tests__/structuredClone-itest.js +444 -0
  2475. package/src/private/webapis/structuredClone/structuredClone.js +6 -6
  2476. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  2477. package/src/private/webapis/webidl/PlatformObjects.js +4 -4
  2478. package/src/private/webapis/websockets/events/CloseEvent.js +3 -3
  2479. package/src/private/webapis/xhr/events/ProgressEvent.js +3 -3
  2480. package/src/react-private-interface.js +145 -0
  2481. package/src/react-private-interface.js.flow +48 -0
  2482. package/src/setup-env.js +22 -0
  2483. package/src/types/globals.d.ts +67 -6
  2484. package/src/unstable-internals-do-not-use.d.ts +214 -0
  2485. package/src/unstable-internals-do-not-use.js +76 -0
  2486. package/third-party-podspecs/RCT-Folly.podspec +2 -1
  2487. package/third-party-podspecs/ReactNativeDependencies.podspec +2 -2
  2488. package/third-party-podspecs/fmt.podspec +2 -2
  2489. package/third-party-podspecs/glog.podspec +1 -0
  2490. package/types/index.d.ts +3 -3
  2491. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -4
  2492. package/types/public/ReactNativeTypes.d.ts +4 -2
  2493. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +0 -38
  2494. package/Libraries/Components/View/DraggedType.js +0 -23
  2495. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -77
  2496. package/Libraries/DevToolsSettings/DevToolsSettingsManager.macos.js +0 -14
  2497. package/Libraries/Image/AssetRegistry.js +0 -14
  2498. package/Libraries/Image/RCTImageShadowView.h +0 -17
  2499. package/Libraries/Image/RCTImageShadowView.mm +0 -28
  2500. package/Libraries/Image/RCTImageView.h +0 -35
  2501. package/Libraries/Image/RCTImageView.mm +0 -657
  2502. package/Libraries/Image/RCTImageViewManager.h +0 -17
  2503. package/Libraries/Image/RCTImageViewManager.mm +0 -119
  2504. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  2505. package/Libraries/Interaction/InteractionManager.d.ts +0 -87
  2506. package/Libraries/Interaction/InteractionManager.js +0 -188
  2507. package/Libraries/LinkingIOS/macos/RCTLinkingManager.mm +0 -123
  2508. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19660
  2509. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +0 -11121
  2510. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +0 -12922
  2511. package/Libraries/Renderer/shims/ReactNative.js +0 -26
  2512. package/Libraries/StyleSheet/PlatformColorValueTypesMacOS.d.ts +0 -30
  2513. package/Libraries/StyleSheet/PlatformColorValueTypesMacOS.js +0 -44
  2514. package/Libraries/StyleSheet/PlatformColorValueTypesMacOS.macos.js +0 -52
  2515. package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +0 -35
  2516. package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +0 -162
  2517. package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +0 -21
  2518. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +0 -69
  2519. package/Libraries/Text/RCTTextAttributes.h +0 -112
  2520. package/Libraries/Text/RCTTextAttributes.mm +0 -381
  2521. package/Libraries/Text/RCTTextUIKit.h +0 -50
  2522. package/Libraries/Text/RawText/RCTRawTextShadowView.h +0 -23
  2523. package/Libraries/Text/RawText/RCTRawTextShadowView.mm +0 -38
  2524. package/Libraries/Text/RawText/RCTRawTextViewManager.h +0 -21
  2525. package/Libraries/Text/RawText/RCTRawTextViewManager.mm +0 -32
  2526. package/Libraries/Text/Text/RCTTextShadowView.h +0 -33
  2527. package/Libraries/Text/Text/RCTTextShadowView.mm +0 -469
  2528. package/Libraries/Text/Text/RCTTextView.h +0 -37
  2529. package/Libraries/Text/Text/RCTTextView.mm +0 -571
  2530. package/Libraries/Text/Text/RCTTextViewManager.h +0 -19
  2531. package/Libraries/Text/Text/RCTTextViewManager.mm +0 -101
  2532. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +0 -29
  2533. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +0 -209
  2534. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +0 -21
  2535. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +0 -42
  2536. package/Libraries/Text/TextInput/Multiline/RCTWrappedTextView.h +0 -30
  2537. package/Libraries/Text/TextInput/Multiline/RCTWrappedTextView.m +0 -210
  2538. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +0 -30
  2539. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +0 -379
  2540. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +0 -86
  2541. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -1217
  2542. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +0 -17
  2543. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +0 -217
  2544. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +0 -17
  2545. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +0 -26
  2546. package/Libraries/Text/TextInput/RCTInputAccessoryView.h +0 -22
  2547. package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +0 -82
  2548. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +0 -17
  2549. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +0 -78
  2550. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +0 -17
  2551. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +0 -33
  2552. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +0 -21
  2553. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +0 -106
  2554. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +0 -21
  2555. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +0 -37
  2556. package/Libraries/Text/TextInput/Singleline/macOS/RCTUISecureTextField.h +0 -15
  2557. package/Libraries/Text/TextInput/Singleline/macOS/RCTUISecureTextField.m +0 -14
  2558. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +0 -17
  2559. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +0 -42
  2560. package/Libraries/Text/VirtualText/RCTVirtualTextView.h +0 -28
  2561. package/Libraries/Text/VirtualText/RCTVirtualTextView.mm +0 -16
  2562. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +0 -17
  2563. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +0 -30
  2564. package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -24
  2565. package/Libraries/Utilities/IPerformanceLogger.d.ts +0 -48
  2566. package/Libraries/Utilities/IPerformanceLogger.js +0 -49
  2567. package/Libraries/Utilities/NativePlatformConstantsMacOS.js +0 -31
  2568. package/Libraries/Utilities/PerformanceLoggerContext.js +0 -33
  2569. package/Libraries/Utilities/SceneTracker.js +0 -42
  2570. package/Libraries/Utilities/createPerformanceLogger.js +0 -329
  2571. package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +0 -21
  2572. package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +0 -57
  2573. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +0 -21
  2574. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +0 -27
  2575. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +0 -29
  2576. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +0 -50
  2577. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +0 -23
  2578. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +0 -35
  2579. package/Libraries/Wrapper/RCTWrapper.h +0 -73
  2580. package/Libraries/Wrapper/RCTWrapperShadowView.h +0 -27
  2581. package/Libraries/Wrapper/RCTWrapperShadowView.m +0 -138
  2582. package/Libraries/Wrapper/RCTWrapperView.h +0 -42
  2583. package/Libraries/Wrapper/RCTWrapperView.m +0 -99
  2584. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +0 -34
  2585. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +0 -137
  2586. package/Libraries/Wrapper/RCTWrapperViewManager.h +0 -25
  2587. package/Libraries/Wrapper/RCTWrapperViewManager.m +0 -31
  2588. package/React/Base/RCTFocusChangeEvent.h +0 -20
  2589. package/React/Base/RCTFocusChangeEvent.m +0 -30
  2590. package/React/Base/RCTRootContentView.h +0 -43
  2591. package/React/Base/RCTRootContentView.m +0 -158
  2592. package/React/Base/RCTRootViewInternal.h +0 -28
  2593. package/React/Base/macOS/RCTPlatformDisplayLink.m +0 -165
  2594. package/React/Base/macOS/RCTUIKit.m +0 -908
  2595. package/React/CxxBridge/RCTCxxBridge.mm +0 -1585
  2596. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.h +0 -25
  2597. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.mm +0 -34
  2598. package/React/CxxBridge/RCTObjcExecutor.h +0 -34
  2599. package/React/CxxBridge/RCTObjcExecutor.mm +0 -150
  2600. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.h +0 -16
  2601. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -35
  2602. package/React/CxxModule/DispatchMessageQueueThread.h +0 -50
  2603. package/React/CxxModule/RCTCxxMethod.h +0 -17
  2604. package/React/CxxModule/RCTCxxMethod.mm +0 -147
  2605. package/React/CxxModule/RCTCxxModule.h +0 -29
  2606. package/React/CxxModule/RCTCxxModule.mm +0 -87
  2607. package/React/CxxModule/RCTNativeModule.h +0 -34
  2608. package/React/CxxModule/RCTNativeModule.mm +0 -241
  2609. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.h +0 -25
  2610. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +0 -325
  2611. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +0 -205
  2612. package/React/Tests/Text/RCTTextAttributesTest.mm +0 -49
  2613. package/React/Views/RCTActivityIndicatorView.h +0 -26
  2614. package/React/Views/RCTActivityIndicatorView.m +0 -132
  2615. package/React/Views/RCTActivityIndicatorViewManager.h +0 -23
  2616. package/React/Views/RCTActivityIndicatorViewManager.m +0 -65
  2617. package/React/Views/RCTCursor.m +0 -233
  2618. package/React/Views/RCTDebuggingOverlayManager.h +0 -18
  2619. package/React/Views/RCTDebuggingOverlayManager.m +0 -68
  2620. package/React/Views/RCTHandledKey.h +0 -40
  2621. package/React/Views/RCTHandledKey.m +0 -139
  2622. package/React/Views/RCTModalHostView.h +0 -64
  2623. package/React/Views/RCTModalHostView.m +0 -260
  2624. package/React/Views/RCTModalHostViewController.m +0 -80
  2625. package/React/Views/RCTModalHostViewManager.m +0 -133
  2626. package/React/Views/RCTModalManager.h +0 -22
  2627. package/React/Views/RCTModalManager.m +0 -46
  2628. package/React/Views/RCTRootShadowView.h +0 -35
  2629. package/React/Views/RCTRootShadowView.m +0 -53
  2630. package/React/Views/RCTShadowView+Internal.h +0 -18
  2631. package/React/Views/RCTShadowView+Internal.m +0 -23
  2632. package/React/Views/RCTSwitch.h +0 -22
  2633. package/React/Views/RCTSwitch.m +0 -24
  2634. package/React/Views/RCTSwitchManager.h +0 -17
  2635. package/React/Views/RCTSwitchManager.m +0 -77
  2636. package/React/Views/RCTViewKeyboardEvent.h +0 -17
  2637. package/React/Views/RCTViewKeyboardEvent.m +0 -109
  2638. package/React/Views/RefreshControl/RCTRefreshControl.h +0 -26
  2639. package/React/Views/RefreshControl/RCTRefreshControl.m +0 -232
  2640. package/React/Views/RefreshControl/RCTRefreshControlManager.h +0 -17
  2641. package/React/Views/RefreshControl/RCTRefreshControlManager.m +0 -49
  2642. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.h +0 -21
  2643. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.m +0 -57
  2644. package/React/Views/SafeAreaView/RCTSafeAreaView.h +0 -27
  2645. package/React/Views/SafeAreaView/RCTSafeAreaView.m +0 -83
  2646. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.h +0 -25
  2647. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.m +0 -25
  2648. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.h +0 -21
  2649. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.m +0 -34
  2650. package/React/Views/ScrollView/MacOS/RCTScrollContentLocalData.h +0 -27
  2651. package/React/Views/ScrollView/MacOS/RCTScrollContentLocalData.m +0 -26
  2652. package/React/Views/ScrollView/RCTScrollContentShadowView.h +0 -19
  2653. package/React/Views/ScrollView/RCTScrollContentShadowView.m +0 -53
  2654. package/React/Views/ScrollView/RCTScrollContentView.h +0 -23
  2655. package/React/Views/ScrollView/RCTScrollContentView.m +0 -81
  2656. package/React/Views/ScrollView/RCTScrollContentViewManager.h +0 -17
  2657. package/React/Views/ScrollView/RCTScrollContentViewManager.m +0 -33
  2658. package/React/Views/ScrollView/RCTScrollView.m +0 -1533
  2659. package/React/Views/ScrollView/RCTScrollViewManager.h +0 -28
  2660. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -214
  2661. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
  2662. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +0 -251
  2663. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +0 -315
  2664. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
  2665. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +0 -710
  2666. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
  2667. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
  2668. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +0 -427
  2669. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
  2670. package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
  2671. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
  2672. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
  2673. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +0 -51
  2674. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
  2675. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
  2676. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingStateProvider.kt +0 -12
  2677. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +0 -1410
  2678. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.kt +0 -31
  2679. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
  2680. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +0 -714
  2681. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -985
  2682. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
  2683. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +0 -904
  2684. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +0 -485
  2685. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -403
  2686. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +0 -25
  2687. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +0 -1008
  2688. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +0 -848
  2689. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -1092
  2690. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +0 -111
  2691. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +0 -614
  2692. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
  2693. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.kt +0 -336
  2694. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +0 -135
  2695. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
  2696. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
  2697. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +0 -81
  2698. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +0 -47
  2699. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +0 -1783
  2700. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +0 -1605
  2701. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +0 -72
  2702. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +0 -677
  2703. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +0 -218
  2704. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.kt +0 -369
  2705. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +0 -156
  2706. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +0 -174
  2707. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +0 -54
  2708. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +0 -30
  2709. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineImageSpan.kt +0 -58
  2710. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +0 -228
  2711. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +0 -314
  2712. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager.kt +0 -110
  2713. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +0 -47
  2714. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.java +0 -33
  2715. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +0 -62
  2716. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +0 -31
  2717. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.java +0 -33
  2718. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.java +0 -35
  2719. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +0 -35
  2720. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.java +0 -47
  2721. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +0 -41
  2722. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +0 -31
  2723. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.java +0 -37
  2724. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.java +0 -35
  2725. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +0 -41
  2726. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.java +0 -45
  2727. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.java +0 -35
  2728. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +0 -279
  2729. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +0 -827
  2730. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +0 -35
  2731. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.java +0 -33
  2732. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.java +0 -35
  2733. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.java +0 -35
  2734. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +0 -197
  2735. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +0 -43
  2736. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.java +0 -35
  2737. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -428
  2738. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +0 -118
  2739. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
  2740. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
  2741. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +0 -22
  2742. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
  2743. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
  2744. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +0 -136
  2745. package/ReactCommon/cxxreact/JSIndexedRAMBundle.h +0 -72
  2746. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +0 -143
  2747. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +0 -55
  2748. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +0 -37
  2749. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +0 -39
  2750. package/ReactCommon/hermes/inspector-modern/chrome/tests/ConnectionDemuxTests.cpp +0 -148
  2751. package/ReactCommon/jsi/jsi/hermes.h +0 -189
  2752. package/ReactCommon/jsinspector-modern/Base64.h +0 -99
  2753. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
  2754. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.h +0 -42
  2755. package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
  2756. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
  2757. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
  2758. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +0 -147
  2759. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +0 -416
  2760. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.h +0 -31
  2761. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +0 -71
  2762. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +0 -280
  2763. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +0 -35
  2764. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -177
  2765. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.mm +0 -11
  2766. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +0 -44
  2767. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +0 -222
  2768. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.cpp +0 -14
  2769. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformTouch.h +0 -16
  2770. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +0 -197
  2771. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformViewEventEmitter.h +0 -50
  2772. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformViewEvents.h +0 -81
  2773. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformViewProps.cpp +0 -160
  2774. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformViewProps.h +0 -58
  2775. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +0 -30
  2776. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/KeyEvent.h +0 -137
  2777. package/ReactCommon/react/renderer/components/view/platform/macos/react/renderer/components/view/MouseEvent.h +0 -83
  2778. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h +0 -19
  2779. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h +0 -38
  2780. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +0 -72
  2781. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -40
  2782. package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +0 -38
  2783. package/ReactCommon/react/renderer/graphics/DoubleConversions.h +0 -16
  2784. package/ReactCommon/react/renderer/mounting/internal/TinyMap.h +0 -147
  2785. package/interface.js +0 -21
  2786. package/jest/MockNativeMethods.js +0 -27
  2787. package/jest/RefreshControlMock.js +0 -32
  2788. package/jest/assetFileTransformer.js +0 -33
  2789. package/jest/local-setup.js +0 -29
  2790. package/jest/mock.js +0 -39
  2791. package/jest/mockComponent.js +0 -104
  2792. package/jest/mockNativeComponent.js +0 -52
  2793. package/jest/mocks/AccessibilityInfo.js +0 -67
  2794. package/jest/mocks/ActivityIndicator.js +0 -23
  2795. package/jest/mocks/AppState.js +0 -19
  2796. package/jest/mocks/Clipboard.js +0 -16
  2797. package/jest/mocks/Image.js +0 -23
  2798. package/jest/mocks/InitializeCore.js +0 -9
  2799. package/jest/mocks/Linking.js +0 -28
  2800. package/jest/mocks/Modal.js +0 -33
  2801. package/jest/mocks/NativeComponentRegistry.js +0 -30
  2802. package/jest/mocks/NativeModules.js +0 -239
  2803. package/jest/mocks/RefreshControl.js +0 -31
  2804. package/jest/mocks/RendererProxy.js +0 -45
  2805. package/jest/mocks/ScrollView.js +0 -58
  2806. package/jest/mocks/Text.js +0 -27
  2807. package/jest/mocks/TextInput.js +0 -32
  2808. package/jest/mocks/UIManager.js +0 -60
  2809. package/jest/mocks/Vibration.js +0 -16
  2810. package/jest/mocks/View.js +0 -27
  2811. package/jest/mocks/ViewNativeComponent.js +0 -23
  2812. package/jest/mocks/requireNativeComponent.js +0 -22
  2813. package/jest/mocks/useColorScheme.js +0 -18
  2814. package/jest/react-native-env.js +0 -17
  2815. package/jest/renderer.js +0 -40
  2816. package/jest/resolver.js +0 -32
  2817. package/jest/setup.js +0 -140
  2818. package/jest-preset.js +0 -30
  2819. package/local-cli/cli.js +0 -18
  2820. package/local-cli/generate-macos.js +0 -36
  2821. package/local-cli/generator-common/index.js +0 -385
  2822. package/local-cli/generator-macos/index.js +0 -135
  2823. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/AppDelegate.h +0 -6
  2824. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/AppDelegate.mm +0 -47
  2825. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -58
  2826. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/Assets.xcassets/Contents.json +0 -6
  2827. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/Base.lproj/Main.storyboard +0 -684
  2828. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/HelloWorld.entitlements +0 -12
  2829. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/Info.plist +0 -47
  2830. package/local-cli/generator-macos/templates/macos/HelloWorld-macOS/main.m +0 -5
  2831. package/local-cli/generator-macos/templates/macos/HelloWorld.xcodeproj/project.pbxproj +0 -536
  2832. package/local-cli/generator-macos/templates/macos/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld-iOS.xcscheme +0 -78
  2833. package/local-cli/generator-macos/templates/macos/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld-macOS.xcscheme +0 -78
  2834. package/local-cli/generator-macos/templates/macos/Podfile +0 -28
  2835. package/local-cli/generator-macos/templates/macos/_gitignore +0 -2
  2836. package/local-cli/runMacOS/runMacOS.js +0 -387
  2837. package/rn-get-polyfills.js +0 -13
  2838. package/sdks/.hermesversion +0 -1
  2839. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  2840. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
  2841. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +0 -56
  2842. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +0 -124
  2843. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +0 -27
  2844. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +0 -74
  2845. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +0 -65
  2846. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +0 -62
  2847. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +0 -39
  2848. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +0 -74
  2849. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +0 -29
  2850. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +0 -156
  2851. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +0 -28
  2852. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +0 -62
  2853. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +0 -26
  2854. package/third-party-podspecs/SocketRocket.podspec +0 -30
  2855. package/types/tsconfig.json +0 -15
  2856. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewMode.h +0 -0
  2857. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewRenderState.h +0 -0
  2858. /package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/{InteropUiBlockListener.kt → InteropUIBlockListener.kt} +0 -0
  2859. /package/ReactCommon/react/renderer/components/scrollview/{RCTComponentViewHelpers.h → platform/ios/react/renderer/components/scrollview/RCTComponentViewHelpers.h} +0 -0
  2860. /package/ReactCommon/{cxxreact → react/utils}/MoveWrapper.h +0 -0
@@ -0,0 +1,2602 @@
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
+ * @fantom_flags enableViewCulling:true
8
+ * @flow strict-local
9
+ * @format
10
+ */
11
+
12
+ import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
13
+
14
+ import type {HostInstance} from 'react-native';
15
+
16
+ import * as Fantom from '@react-native/fantom';
17
+ import nullthrows from 'nullthrows';
18
+ import * as React from 'react';
19
+ import {createRef, useState} from 'react';
20
+ import {FlatList, Modal, ScrollView, View} from 'react-native';
21
+
22
+ test('basic culling', () => {
23
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
24
+ const nodeRef = createRef<HostInstance>();
25
+
26
+ Fantom.runTask(() => {
27
+ root.render(
28
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
29
+ <View
30
+ nativeID={'child'}
31
+ style={{height: 10, width: 10, marginTop: 45}}
32
+ />
33
+ </ScrollView>,
34
+ );
35
+ });
36
+
37
+ expect(root.takeMountingManagerLogs()).toEqual([
38
+ 'Update {type: "RootView", nativeID: (root)}',
39
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
40
+ 'Create {type: "View", nativeID: (N/A)}',
41
+ 'Create {type: "View", nativeID: "child"}',
42
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
43
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
44
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
45
+ ]);
46
+
47
+ Fantom.scrollTo(nodeRef, {
48
+ x: 0,
49
+ y: 60,
50
+ });
51
+
52
+ expect(root.takeMountingManagerLogs()).toEqual([
53
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
54
+ 'Delete {type: "View", nativeID: "child"}',
55
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
56
+ 'Delete {type: "View", nativeID: (N/A)}',
57
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
58
+ ]);
59
+
60
+ Fantom.scrollTo(nodeRef, {
61
+ x: 0,
62
+ y: 0,
63
+ });
64
+
65
+ expect(root.takeMountingManagerLogs()).toEqual([
66
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
67
+ 'Create {type: "View", nativeID: (N/A)}',
68
+ 'Create {type: "View", nativeID: "child"}',
69
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
70
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
71
+ ]);
72
+ });
73
+
74
+ test('recursive culling', () => {
75
+ const root = Fantom.createRoot({viewportHeight: 100, viewportWidth: 100});
76
+ const nodeRef = createRef<HostInstance>();
77
+
78
+ Fantom.runTask(() => {
79
+ root.render(
80
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
81
+ <View
82
+ nativeID={'element A'}
83
+ style={{height: 30, width: 30, marginTop: 25}}>
84
+ <View nativeID={'child AA'} style={{height: 10, width: 10}} />
85
+ <View
86
+ nativeID={'child AB'}
87
+ style={{height: 10, width: 10, marginTop: 5}}
88
+ />
89
+ </View>
90
+ <View
91
+ nativeID={'element B'}
92
+ style={{height: 30, width: 30, marginTop: 195}}>
93
+ <View nativeID={'child BA'} style={{height: 10, width: 10}} />
94
+ <View
95
+ nativeID={'child BB'}
96
+ style={{height: 10, width: 10, marginTop: 5}}
97
+ />
98
+ </View>
99
+ </ScrollView>,
100
+ );
101
+ });
102
+
103
+ expect(root.takeMountingManagerLogs()).toEqual([
104
+ 'Update {type: "RootView", nativeID: (root)}',
105
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
106
+ 'Create {type: "View", nativeID: (N/A)}',
107
+ 'Create {type: "View", nativeID: "element A"}',
108
+ 'Create {type: "View", nativeID: "child AA"}',
109
+ 'Create {type: "View", nativeID: "child AB"}',
110
+ 'Insert {type: "View", parentNativeID: "element A", index: 0, nativeID: "child AA"}',
111
+ 'Insert {type: "View", parentNativeID: "element A", index: 1, nativeID: "child AB"}',
112
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
113
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
114
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
115
+ ]);
116
+
117
+ // === Scroll down to the edge of child AA ===
118
+ Fantom.scrollTo(nodeRef, {
119
+ x: 0,
120
+ y: 30,
121
+ });
122
+
123
+ expect(root.takeMountingManagerLogs()).toEqual([
124
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
125
+ ]);
126
+
127
+ // === Scroll down past child AA ===
128
+
129
+ Fantom.scrollTo(nodeRef, {
130
+ x: 0,
131
+ y: 36,
132
+ });
133
+
134
+ expect(root.takeMountingManagerLogs()).toEqual([
135
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
136
+ 'Remove {type: "View", parentNativeID: "element A", index: 0, nativeID: "child AA"}',
137
+ 'Delete {type: "View", nativeID: "child AA"}',
138
+ ]);
139
+
140
+ // === Scroll down past child AB ===
141
+ Fantom.scrollTo(nodeRef, {
142
+ x: 0,
143
+ y: 51,
144
+ });
145
+
146
+ expect(root.takeMountingManagerLogs()).toEqual([
147
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
148
+ 'Remove {type: "View", parentNativeID: "element A", index: 0, nativeID: "child AB"}',
149
+ 'Delete {type: "View", nativeID: "child AB"}',
150
+ ]);
151
+
152
+ // === Scroll down past element A ===
153
+ Fantom.scrollTo(nodeRef, {
154
+ x: 0,
155
+ y: 56,
156
+ });
157
+
158
+ expect(root.takeMountingManagerLogs()).toEqual([
159
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
160
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
161
+ 'Delete {type: "View", nativeID: "element A"}',
162
+ ]);
163
+
164
+ // Scroll element B into viewport. Just child BA should be created.
165
+ Fantom.scrollTo(nodeRef, {
166
+ x: 0,
167
+ y: 155,
168
+ });
169
+
170
+ expect(root.takeMountingManagerLogs()).toEqual([
171
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
172
+ 'Create {type: "View", nativeID: "element B"}',
173
+ 'Create {type: "View", nativeID: "child BA"}',
174
+ 'Insert {type: "View", parentNativeID: "element B", index: 0, nativeID: "child BA"}',
175
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element B"}',
176
+ ]);
177
+
178
+ // Scroll child BA into viewport.
179
+ Fantom.scrollTo(nodeRef, {
180
+ x: 0,
181
+ y: 165,
182
+ });
183
+
184
+ expect(root.takeMountingManagerLogs()).toEqual([
185
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
186
+ 'Create {type: "View", nativeID: "child BB"}',
187
+ 'Insert {type: "View", parentNativeID: "element B", index: 1, nativeID: "child BB"}',
188
+ ]);
189
+
190
+ // Scroll back to start
191
+ Fantom.scrollTo(nodeRef, {
192
+ x: 0,
193
+ y: 0,
194
+ });
195
+
196
+ expect(root.takeMountingManagerLogs()).toEqual([
197
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
198
+ 'Remove {type: "View", parentNativeID: "element B", index: 1, nativeID: "child BB"}',
199
+ 'Remove {type: "View", parentNativeID: "element B", index: 0, nativeID: "child BA"}',
200
+ 'Delete {type: "View", nativeID: "child BA"}',
201
+ 'Delete {type: "View", nativeID: "child BB"}',
202
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element B"}',
203
+ 'Delete {type: "View", nativeID: "element B"}',
204
+ 'Create {type: "View", nativeID: "element A"}',
205
+ 'Create {type: "View", nativeID: "child AA"}',
206
+ 'Create {type: "View", nativeID: "child AB"}',
207
+ 'Insert {type: "View", parentNativeID: "element A", index: 0, nativeID: "child AA"}',
208
+ 'Insert {type: "View", parentNativeID: "element A", index: 1, nativeID: "child AB"}',
209
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
210
+ ]);
211
+
212
+ // Scroll past element A
213
+ Fantom.scrollTo(nodeRef, {
214
+ x: 0,
215
+ y: 85,
216
+ });
217
+
218
+ expect(root.takeMountingManagerLogs()).toEqual([
219
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
220
+ 'Remove {type: "View", parentNativeID: "element A", index: 1, nativeID: "child AB"}',
221
+ 'Remove {type: "View", parentNativeID: "element A", index: 0, nativeID: "child AA"}',
222
+ 'Delete {type: "View", nativeID: "child AA"}',
223
+ 'Delete {type: "View", nativeID: "child AB"}',
224
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
225
+ 'Delete {type: "View", nativeID: "element A"}',
226
+ ]);
227
+ });
228
+
229
+ test('recursive culling when initial offset is negative', () => {
230
+ const root = Fantom.createRoot({viewportHeight: 874, viewportWidth: 402});
231
+ const nodeRef = createRef<HostInstance>();
232
+
233
+ Fantom.runTask(() => {
234
+ root.render(
235
+ <ScrollView
236
+ style={{height: 874, width: 402}}
237
+ contentOffset={{x: 0, y: -10000}}
238
+ ref={nodeRef}>
239
+ <View
240
+ nativeID={'child A'}
241
+ style={{height: 100, width: 100, marginTop: 235}}
242
+ />
243
+ <View
244
+ nativeID={'child B'}
245
+ style={{height: 100, width: 100, marginTop: 235}}>
246
+ <View nativeID={'child BA'} style={{height: 17, width: 100}} />
247
+ <View
248
+ nativeID={'child BB'}
249
+ style={{height: 17, width: 100, marginTop: 60}}
250
+ />
251
+ </View>
252
+ </ScrollView>,
253
+ );
254
+ });
255
+
256
+ expect(root.takeMountingManagerLogs()).toEqual([
257
+ 'Update {type: "RootView", nativeID: (root)}',
258
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
259
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
260
+ ]);
261
+
262
+ Fantom.scrollTo(nodeRef, {
263
+ x: 0,
264
+ y: 0,
265
+ });
266
+
267
+ expect(root.takeMountingManagerLogs()).toEqual([
268
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
269
+ 'Create {type: "View", nativeID: (N/A)}',
270
+ 'Create {type: "View", nativeID: "child A"}',
271
+ 'Create {type: "View", nativeID: "child B"}',
272
+ 'Create {type: "View", nativeID: "child BA"}',
273
+ 'Create {type: "View", nativeID: "child BB"}',
274
+ 'Insert {type: "View", parentNativeID: "child B", index: 0, nativeID: "child BA"}',
275
+ 'Insert {type: "View", parentNativeID: "child B", index: 1, nativeID: "child BB"}',
276
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child A"}',
277
+ 'Insert {type: "View", parentNativeID: (N/A), index: 1, nativeID: "child B"}',
278
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
279
+ ]);
280
+ });
281
+
282
+ test('deep nesting', () => {
283
+ const root = Fantom.createRoot({viewportHeight: 100, viewportWidth: 100});
284
+ const nodeRef = createRef<HostInstance>();
285
+
286
+ Fantom.runTask(() => {
287
+ root.render(
288
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
289
+ <View
290
+ nativeID={'element A'}
291
+ style={{height: 10, width: 100, marginTop: 30}}
292
+ />
293
+ <View
294
+ nativeID={'element B'}
295
+ style={{height: 50, width: 100, marginTop: 85}}>
296
+ <View
297
+ nativeID={'child BA'}
298
+ style={{height: 30, width: 80, marginTop: 10, marginLeft: 10}}>
299
+ <View
300
+ nativeID={'child BAA'}
301
+ style={{height: 10, width: 75, marginTop: 5, marginLeft: 5}}
302
+ />
303
+ <View
304
+ nativeID={'child BAB'}
305
+ style={{height: 10, width: 75, marginTop: 15, marginLeft: 5}}
306
+ />
307
+ </View>
308
+ </View>
309
+ </ScrollView>,
310
+ );
311
+ });
312
+
313
+ expect(root.takeMountingManagerLogs()).toEqual([
314
+ 'Update {type: "RootView", nativeID: (root)}',
315
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
316
+ 'Create {type: "View", nativeID: (N/A)}',
317
+ 'Create {type: "View", nativeID: "element A"}',
318
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
319
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
320
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
321
+ ]);
322
+
323
+ Fantom.scrollTo(nodeRef, {
324
+ x: 0,
325
+ y: 40,
326
+ });
327
+
328
+ expect(root.takeMountingManagerLogs()).toEqual([
329
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
330
+ 'Create {type: "View", nativeID: "element B"}',
331
+ 'Create {type: "View", nativeID: "child BA"}',
332
+ 'Create {type: "View", nativeID: "child BAA"}',
333
+ 'Insert {type: "View", parentNativeID: "child BA", index: 0, nativeID: "child BAA"}',
334
+ 'Insert {type: "View", parentNativeID: "element B", index: 0, nativeID: "child BA"}',
335
+ 'Insert {type: "View", parentNativeID: (N/A), index: 1, nativeID: "element B"}',
336
+ ]);
337
+
338
+ Fantom.scrollTo(nodeRef, {
339
+ x: 0,
340
+ y: 150,
341
+ });
342
+
343
+ expect(root.takeMountingManagerLogs()).toEqual([
344
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
345
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
346
+ 'Delete {type: "View", nativeID: "element A"}',
347
+ 'Create {type: "View", nativeID: "child BAB"}',
348
+ 'Insert {type: "View", parentNativeID: "child BA", index: 1, nativeID: "child BAB"}',
349
+ ]);
350
+ });
351
+
352
+ test('adding new item into area that is not culled', () => {
353
+ const root = Fantom.createRoot({viewportHeight: 100, viewportWidth: 100});
354
+
355
+ Fantom.runTask(() => {
356
+ root.render(
357
+ <ScrollView style={{height: 100, width: 100}}>
358
+ <View
359
+ nativeID={'element A'}
360
+ style={{height: 20, width: 20, marginTop: 30}}
361
+ />
362
+ </ScrollView>,
363
+ );
364
+ });
365
+
366
+ expect(root.takeMountingManagerLogs()).toEqual([
367
+ 'Update {type: "RootView", nativeID: (root)}',
368
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
369
+ 'Create {type: "View", nativeID: (N/A)}',
370
+ 'Create {type: "View", nativeID: "element A"}',
371
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
372
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
373
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
374
+ ]);
375
+
376
+ Fantom.runTask(() => {
377
+ root.render(
378
+ <ScrollView style={{height: 100, width: 100}}>
379
+ <View
380
+ nativeID={'element A'}
381
+ style={{height: 20, width: 20, marginTop: 30}}>
382
+ <View nativeID={'child AA'} style={{height: 20, width: 20}} />
383
+ </View>
384
+ </ScrollView>,
385
+ );
386
+ });
387
+
388
+ expect(root.takeMountingManagerLogs()).toEqual([
389
+ 'Create {type: "View", nativeID: "child AA"}',
390
+ 'Insert {type: "View", parentNativeID: "element A", index: 0, nativeID: "child AA"}',
391
+ ]);
392
+ });
393
+
394
+ test('adding new item into area that is culled', () => {
395
+ const root = Fantom.createRoot({viewportHeight: 100, viewportWidth: 100});
396
+
397
+ Fantom.runTask(() => {
398
+ root.render(
399
+ <ScrollView
400
+ contentOffset={{x: 0, y: 45}}
401
+ style={{height: 100, width: 100}}>
402
+ <View
403
+ key="element B"
404
+ nativeID={'element B'}
405
+ style={{height: 20, width: 20, marginTop: 30}}
406
+ />
407
+ </ScrollView>,
408
+ );
409
+ });
410
+
411
+ expect(root.takeMountingManagerLogs()).toEqual([
412
+ 'Update {type: "RootView", nativeID: (root)}',
413
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
414
+ 'Create {type: "View", nativeID: (N/A)}',
415
+ 'Create {type: "View", nativeID: "element B"}',
416
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element B"}',
417
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
418
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
419
+ ]);
420
+
421
+ Fantom.runTask(() => {
422
+ root.render(
423
+ <ScrollView
424
+ contentOffset={{x: 0, y: 45}}
425
+ style={{height: 100, width: 100}}>
426
+ <View
427
+ key="element A"
428
+ nativeID={'element A'}
429
+ style={{height: 20, width: 20}}
430
+ />
431
+ <View
432
+ key="element B"
433
+ nativeID={'element B'}
434
+ style={{height: 20, width: 20, marginTop: 10}}
435
+ />
436
+ </ScrollView>,
437
+ );
438
+ });
439
+
440
+ // element B is updated but it should be inconsequential.
441
+ // Differentiator generates an update for it because Yoga cloned
442
+ // shadow node backing element B.
443
+ expect(root.takeMountingManagerLogs()).toEqual([
444
+ 'Update {type: "View", nativeID: "element B"}',
445
+ ]);
446
+ });
447
+
448
+ test('initial render', () => {
449
+ const nodeRef = createRef<HostInstance>();
450
+ const root = Fantom.createRoot({viewportHeight: 100, viewportWidth: 100});
451
+
452
+ Fantom.runTask(() => {
453
+ root.render(
454
+ <ScrollView
455
+ contentOffset={{x: 0, y: 45}}
456
+ ref={nodeRef}
457
+ style={{height: 100, width: 100}}>
458
+ <View nativeID={'element A'} style={{height: 50, width: 100}} />
459
+ <View
460
+ nativeID={'element B'}
461
+ style={{height: 50, width: 100, marginTop: 100}}>
462
+ <View nativeID={'child BA'} style={{height: 20, width: 100}} />
463
+ <View
464
+ nativeID={'child BB'}
465
+ style={{height: 20, width: 100, marginTop: 10}}
466
+ />
467
+ </View>
468
+ </ScrollView>,
469
+ );
470
+ });
471
+
472
+ expect(root.takeMountingManagerLogs()).toEqual([
473
+ 'Update {type: "RootView", nativeID: (root)}',
474
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
475
+ 'Create {type: "View", nativeID: (N/A)}',
476
+ 'Create {type: "View", nativeID: "element A"}',
477
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
478
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
479
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
480
+ ]);
481
+
482
+ Fantom.scrollTo(nodeRef, {
483
+ x: 0,
484
+ y: 100,
485
+ });
486
+
487
+ expect(root.takeMountingManagerLogs()).toEqual([
488
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
489
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element A"}',
490
+ 'Delete {type: "View", nativeID: "element A"}',
491
+ 'Create {type: "View", nativeID: "element B"}',
492
+ 'Create {type: "View", nativeID: "child BA"}',
493
+ 'Create {type: "View", nativeID: "child BB"}',
494
+ 'Insert {type: "View", parentNativeID: "element B", index: 0, nativeID: "child BA"}',
495
+ 'Insert {type: "View", parentNativeID: "element B", index: 1, nativeID: "child BB"}',
496
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element B"}',
497
+ ]);
498
+ });
499
+
500
+ test('unmounting culled elements', () => {
501
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
502
+
503
+ Fantom.runTask(() => {
504
+ root.render(
505
+ <ScrollView
506
+ style={{height: 100, width: 100}}
507
+ contentOffset={{x: 0, y: 20}}>
508
+ <View nativeID={'element 1'} style={{height: 10, width: 10}} />
509
+ </ScrollView>,
510
+ );
511
+ });
512
+
513
+ expect(root.takeMountingManagerLogs()).toEqual([
514
+ 'Update {type: "RootView", nativeID: (root)}',
515
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
516
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
517
+ ]);
518
+
519
+ Fantom.runTask(() => {
520
+ root.render(<></>);
521
+ });
522
+
523
+ expect(root.takeMountingManagerLogs()).toEqual([
524
+ 'Remove {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
525
+ 'Delete {type: "ScrollView", nativeID: (N/A)}',
526
+ ]);
527
+ });
528
+
529
+ // TODO: only elements in ScrollView are culled.
530
+ test('basic culling smaller ScrollView', () => {
531
+ const nodeRef = createRef<HostInstance>();
532
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
533
+
534
+ Fantom.runTask(() => {
535
+ root.render(
536
+ <ScrollView ref={nodeRef} style={{height: 50, width: 50, marginTop: 25}}>
537
+ <View nativeID={'element 1'} style={{height: 10, width: 10}} />
538
+ </ScrollView>,
539
+ );
540
+ });
541
+
542
+ expect(root.takeMountingManagerLogs()).toEqual([
543
+ 'Update {type: "RootView", nativeID: (root)}',
544
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
545
+ 'Create {type: "View", nativeID: (N/A)}',
546
+ 'Create {type: "View", nativeID: "element 1"}',
547
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element 1"}',
548
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
549
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
550
+ ]);
551
+
552
+ Fantom.scrollTo(nodeRef, {
553
+ x: 0,
554
+ y: 11,
555
+ });
556
+
557
+ expect(root.takeMountingManagerLogs()).toEqual([
558
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "element 1"}',
559
+ 'Delete {type: "View", nativeID: "element 1"}',
560
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
561
+ 'Delete {type: "View", nativeID: (N/A)}',
562
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
563
+ ]);
564
+ });
565
+
566
+ test('views are not culled when outside of viewport', () => {
567
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
568
+
569
+ Fantom.runTask(() => {
570
+ root.render(
571
+ <View
572
+ nativeID={'child'}
573
+ style={{height: 10, width: 10, marginTop: 101}}
574
+ />,
575
+ );
576
+ });
577
+
578
+ expect(root.takeMountingManagerLogs()).toEqual([
579
+ 'Update {type: "RootView", nativeID: (root)}',
580
+ 'Create {type: "View", nativeID: "child"}',
581
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: "child"}',
582
+ ]);
583
+ });
584
+
585
+ test('culling with transform move', () => {
586
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
587
+ const nodeRef = createRef<HostInstance>();
588
+
589
+ Fantom.runTask(() => {
590
+ root.render(
591
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
592
+ <View
593
+ nativeID={'child'}
594
+ style={{
595
+ height: 10,
596
+ width: 10,
597
+ marginTop: 90,
598
+ transform: [{translateY: 11}],
599
+ }}
600
+ />
601
+ </ScrollView>,
602
+ );
603
+ });
604
+
605
+ expect(root.takeMountingManagerLogs()).toEqual([
606
+ 'Update {type: "RootView", nativeID: (root)}',
607
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
608
+ 'Create {type: "View", nativeID: (N/A)}',
609
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
610
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
611
+ ]);
612
+
613
+ Fantom.scrollTo(nodeRef, {
614
+ x: 0,
615
+ y: 1,
616
+ });
617
+
618
+ expect(root.takeMountingManagerLogs()).toEqual([
619
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
620
+ 'Create {type: "View", nativeID: "child"}',
621
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
622
+ ]);
623
+ });
624
+
625
+ test('culling with recursive transform move', () => {
626
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
627
+ const nodeRef = createRef<HostInstance>();
628
+
629
+ Fantom.runTask(() => {
630
+ root.render(
631
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
632
+ <View style={{transform: [{translateY: 11}]}}>
633
+ <View
634
+ nativeID={'child'}
635
+ style={{
636
+ height: 10,
637
+ width: 10,
638
+ marginTop: 90,
639
+ }}
640
+ />
641
+ </View>
642
+ </ScrollView>,
643
+ );
644
+ });
645
+
646
+ expect(root.takeMountingManagerLogs()).toEqual([
647
+ 'Update {type: "RootView", nativeID: (root)}',
648
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
649
+ 'Create {type: "View", nativeID: (N/A)}',
650
+ 'Create {type: "View", nativeID: (N/A)}',
651
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
652
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
653
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
654
+ ]);
655
+
656
+ Fantom.scrollTo(nodeRef, {
657
+ x: 0,
658
+ y: 1,
659
+ });
660
+
661
+ expect(root.takeMountingManagerLogs()).toEqual([
662
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
663
+ 'Create {type: "View", nativeID: "child"}',
664
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
665
+ ]);
666
+ });
667
+
668
+ test('culling with transform scale', () => {
669
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
670
+ const nodeRef = createRef<HostInstance>();
671
+
672
+ Fantom.runTask(() => {
673
+ root.render(
674
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
675
+ <View
676
+ nativeID={'child'}
677
+ style={{
678
+ height: 10,
679
+ width: 10,
680
+ marginTop: 105,
681
+ transform: [{scale: 2}],
682
+ }}
683
+ />
684
+ </ScrollView>,
685
+ );
686
+ });
687
+
688
+ expect(root.takeMountingManagerLogs()).toEqual([
689
+ 'Update {type: "RootView", nativeID: (root)}',
690
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
691
+ 'Create {type: "View", nativeID: (N/A)}',
692
+ 'Create {type: "View", nativeID: "child"}',
693
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
694
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
695
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
696
+ ]);
697
+
698
+ Fantom.scrollTo(nodeRef, {
699
+ x: 0,
700
+ y: 121,
701
+ });
702
+
703
+ expect(root.takeMountingManagerLogs()).toEqual([
704
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
705
+ 'Delete {type: "View", nativeID: "child"}',
706
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
707
+ 'Delete {type: "View", nativeID: (N/A)}',
708
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
709
+ ]);
710
+ });
711
+
712
+ test('culling when ScrollView parent has transform', () => {
713
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
714
+
715
+ Fantom.runTask(() => {
716
+ root.render(
717
+ <View style={{transform: [{translateY: 100}]}}>
718
+ <ScrollView style={{height: 100, width: 100}}>
719
+ <View
720
+ nativeID={'child'}
721
+ style={{height: 10, width: 10, marginTop: 45}}
722
+ />
723
+ </ScrollView>
724
+ </View>,
725
+ );
726
+ });
727
+
728
+ expect(root.takeMountingManagerLogs()).toEqual([
729
+ 'Update {type: "RootView", nativeID: (root)}',
730
+ 'Create {type: "View", nativeID: (N/A)}',
731
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
732
+ 'Create {type: "View", nativeID: (N/A)}',
733
+ 'Create {type: "View", nativeID: "child"}',
734
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
735
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
736
+ 'Insert {type: "ScrollView", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
737
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: (N/A)}',
738
+ ]);
739
+ });
740
+
741
+ test('culling inside of Modal', () => {
742
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
743
+ const nodeRef = createRef<HostInstance>();
744
+
745
+ Fantom.runTask(() => {
746
+ root.render(
747
+ // <ScrollView /> is scrolled down and if it wasn't for the Modal,
748
+ // the content would be culled.
749
+ <ScrollView
750
+ contentOffset={{x: 0, y: 100}}
751
+ style={{height: 100, width: 100}}>
752
+ <Modal ref={nodeRef} />
753
+ </ScrollView>,
754
+ );
755
+ });
756
+
757
+ Fantom.runOnUIThread(() => {
758
+ Fantom.enqueueModalSizeUpdate(nodeRef, {
759
+ width: 100,
760
+ height: 100,
761
+ });
762
+ });
763
+
764
+ Fantom.runWorkLoop();
765
+
766
+ expect(root.takeMountingManagerLogs()).toEqual([
767
+ 'Update {type: "RootView", nativeID: (root)}',
768
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
769
+ 'Create {type: "View", nativeID: (N/A)}',
770
+ 'Create {type: "ModalHostView", nativeID: (root)}',
771
+ 'Create {type: "View", nativeID: (N/A)}',
772
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: (N/A)}',
773
+ 'Insert {type: "ModalHostView", parentNativeID: (N/A), index: 0, nativeID: (root)}',
774
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
775
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
776
+ 'Update {type: "View", nativeID: (N/A)}',
777
+ 'Update {type: "ModalHostView", nativeID: (root)}',
778
+ 'Update {type: "View", nativeID: (N/A)}',
779
+ ]);
780
+
781
+ Fantom.runTask(() => {
782
+ root.render(
783
+ <ScrollView
784
+ contentOffset={{x: 0, y: 100}}
785
+ style={{height: 100, width: 100}}>
786
+ <Modal ref={nodeRef}>
787
+ <View
788
+ nativeID={'child'}
789
+ style={{height: 10, width: 10, marginTop: 45}}
790
+ />
791
+ </Modal>
792
+ </ScrollView>,
793
+ );
794
+ });
795
+
796
+ expect(root.takeMountingManagerLogs()).toEqual([
797
+ 'Create {type: "View", nativeID: "child"}',
798
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
799
+ ]);
800
+ });
801
+
802
+ test('nesting inside FlatList with item resizing', () => {
803
+ const root = Fantom.createRoot({viewportHeight: 100, viewportWidth: 100});
804
+ let _setIsExpanded = null;
805
+ function ExpandableComponent() {
806
+ const [isExpanded, setIsExpanded] = useState(false);
807
+ _setIsExpanded = setIsExpanded;
808
+ return <View>{isExpanded && <View style={{height: 80.5}} />}</View>;
809
+ }
810
+
811
+ Fantom.runTask(() => {
812
+ root.render(
813
+ <FlatList
814
+ style={{height: 100, width: 100}}
815
+ data={[{key: 'one'}, {key: 'two'}]}
816
+ renderItem={({item}) => {
817
+ if (item.key === 'one') {
818
+ return <ExpandableComponent />;
819
+ } else if (item.key === 'two') {
820
+ return (
821
+ // position: 'absolute' is the important part that prevents Yoga from overcloning.
822
+ // When Yoga overclones, differentiator visits all cloned nodes and culling is correctly
823
+ // applied.
824
+ <View style={{position: 'absolute'}}>
825
+ <View nativeID={'parent'} style={{marginTop: 10}}>
826
+ <View
827
+ nativeID={'child'}
828
+ style={{height: 10, width: 75, marginTop: 10}}
829
+ />
830
+ </View>
831
+ </View>
832
+ );
833
+ }
834
+ }}
835
+ />,
836
+ );
837
+ });
838
+
839
+ expect(root.takeMountingManagerLogs()).toContain(
840
+ 'Create {type: "View", nativeID: "child"}',
841
+ );
842
+
843
+ Fantom.runTask(() => {
844
+ nullthrows(_setIsExpanded)(true);
845
+ });
846
+
847
+ expect(root.takeMountingManagerLogs()).toContain(
848
+ 'Delete {type: "View", nativeID: "child"}',
849
+ );
850
+ });
851
+
852
+ describe('reparenting', () => {
853
+ test('view flattening with culling', () => {
854
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
855
+ const nodeRef = createRef<HostInstance>();
856
+
857
+ Fantom.runTask(() => {
858
+ root.render(
859
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
860
+ <View
861
+ style={{
862
+ marginTop: 150,
863
+ }}>
864
+ <View
865
+ nativeID={'child'}
866
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
867
+ />
868
+ </View>
869
+ </ScrollView>,
870
+ );
871
+ });
872
+
873
+ expect(root.takeMountingManagerLogs()).toEqual([
874
+ 'Update {type: "RootView", nativeID: (root)}',
875
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
876
+ 'Create {type: "View", nativeID: (N/A)}',
877
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
878
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
879
+ ]);
880
+
881
+ Fantom.scrollTo(nodeRef, {
882
+ x: 0,
883
+ y: 60,
884
+ });
885
+
886
+ expect(root.takeMountingManagerLogs()).toEqual([
887
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
888
+ 'Create {type: "View", nativeID: "child"}',
889
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
890
+ ]);
891
+
892
+ // force view to be unflattened.
893
+ Fantom.runTask(() => {
894
+ root.render(
895
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
896
+ <View
897
+ style={{
898
+ marginTop: 150,
899
+ opacity: 0, // force view to be unflattened
900
+ }}>
901
+ <View
902
+ nativeID={'child'}
903
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
904
+ />
905
+ </View>
906
+ </ScrollView>,
907
+ );
908
+ });
909
+
910
+ expect(root.takeMountingManagerLogs()).toEqual([
911
+ 'Update {type: "View", nativeID: "child"}',
912
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
913
+ 'Create {type: "View", nativeID: (N/A)}',
914
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
915
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
916
+ ]);
917
+
918
+ // force view to be flattened.
919
+ Fantom.runTask(() => {
920
+ root.render(
921
+ <ScrollView style={{height: 100, width: 100}} ref={nodeRef}>
922
+ <View
923
+ style={{
924
+ marginTop: 150,
925
+ }}>
926
+ <View
927
+ nativeID={'child'}
928
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
929
+ />
930
+ </View>
931
+ </ScrollView>,
932
+ );
933
+ });
934
+
935
+ expect(root.takeMountingManagerLogs()).toEqual([
936
+ 'Update {type: "View", nativeID: "child"}',
937
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
938
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
939
+ 'Delete {type: "View", nativeID: (N/A)}',
940
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
941
+ ]);
942
+ });
943
+
944
+ test('scroll view parent is unflattened and culled view becomes visible', () => {
945
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
946
+
947
+ Fantom.runTask(() => {
948
+ root.render(
949
+ <View style={{width: 100, height: 100}}>
950
+ <ScrollView>
951
+ <View
952
+ nativeID={'child'}
953
+ style={{height: 10, width: 10, marginTop: 150}}
954
+ />
955
+ </ScrollView>
956
+ </View>,
957
+ );
958
+ });
959
+
960
+ expect(root.takeMountingManagerLogs()).toEqual([
961
+ 'Update {type: "RootView", nativeID: (root)}',
962
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
963
+ 'Create {type: "View", nativeID: (N/A)}',
964
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
965
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
966
+ ]);
967
+
968
+ Fantom.runTask(() => {
969
+ root.render(
970
+ <View nativeID="unflattened" style={{width: 100, height: 100}}>
971
+ <ScrollView>
972
+ <View
973
+ nativeID={'child'}
974
+ style={{height: 10, width: 10, marginTop: 50}}
975
+ />
976
+ </ScrollView>
977
+ </View>,
978
+ );
979
+ });
980
+
981
+ expect(root.takeMountingManagerLogs()).toEqual([
982
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
983
+ 'Remove {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
984
+ 'Create {type: "View", nativeID: "unflattened"}',
985
+ 'Update {type: "View", nativeID: (N/A)}',
986
+ 'Create {type: "View", nativeID: "child"}',
987
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
988
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: "unflattened"}',
989
+ 'Insert {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
990
+ ]);
991
+ });
992
+
993
+ test('scroll view parent is flattened and culled view becomes visible', () => {
994
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
995
+
996
+ Fantom.runTask(() => {
997
+ root.render(
998
+ <View nativeID="unflattened" style={{width: 100, height: 100}}>
999
+ <ScrollView>
1000
+ <View
1001
+ nativeID={'child'}
1002
+ style={{height: 10, width: 10, marginTop: 150}}
1003
+ />
1004
+ </ScrollView>
1005
+ </View>,
1006
+ );
1007
+ });
1008
+
1009
+ expect(root.takeMountingManagerLogs()).toEqual([
1010
+ 'Update {type: "RootView", nativeID: (root)}',
1011
+ 'Create {type: "View", nativeID: "unflattened"}',
1012
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1013
+ 'Create {type: "View", nativeID: (N/A)}',
1014
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1015
+ 'Insert {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
1016
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: "unflattened"}',
1017
+ ]);
1018
+
1019
+ Fantom.runTask(() => {
1020
+ root.render(
1021
+ <View style={{width: 100, height: 100}}>
1022
+ <ScrollView>
1023
+ <View
1024
+ nativeID={'child'}
1025
+ style={{height: 10, width: 10, marginTop: 50}}
1026
+ />
1027
+ </ScrollView>
1028
+ </View>,
1029
+ );
1030
+ });
1031
+
1032
+ expect(root.takeMountingManagerLogs()).toEqual([
1033
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1034
+ 'Remove {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
1035
+ 'Remove {type: "View", parentNativeID: (root), index: 0, nativeID: "unflattened"}',
1036
+ 'Delete {type: "View", nativeID: "unflattened"}',
1037
+ 'Update {type: "View", nativeID: (N/A)}',
1038
+ 'Create {type: "View", nativeID: "child"}',
1039
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1040
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1041
+ ]);
1042
+ });
1043
+
1044
+ test('scroll view parent is flattened and view becomes culled', () => {
1045
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1046
+
1047
+ Fantom.runTask(() => {
1048
+ root.render(
1049
+ <View nativeID="unflattened" style={{width: 100, height: 100}}>
1050
+ <ScrollView>
1051
+ <View
1052
+ nativeID={'child'}
1053
+ style={{height: 10, width: 10, marginTop: 50}}
1054
+ />
1055
+ </ScrollView>
1056
+ </View>,
1057
+ );
1058
+ });
1059
+
1060
+ expect(root.takeMountingManagerLogs()).toEqual([
1061
+ 'Update {type: "RootView", nativeID: (root)}',
1062
+ 'Create {type: "View", nativeID: "unflattened"}',
1063
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1064
+ 'Create {type: "View", nativeID: (N/A)}',
1065
+ 'Create {type: "View", nativeID: "child"}',
1066
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1067
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1068
+ 'Insert {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
1069
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: "unflattened"}',
1070
+ ]);
1071
+
1072
+ Fantom.runTask(() => {
1073
+ root.render(
1074
+ <View style={{width: 100, height: 100}}>
1075
+ <ScrollView>
1076
+ <View
1077
+ nativeID={'child'}
1078
+ style={{height: 10, width: 10, marginTop: 150}}
1079
+ />
1080
+ </ScrollView>
1081
+ </View>,
1082
+ );
1083
+ });
1084
+
1085
+ expect(root.takeMountingManagerLogs()).toEqual([
1086
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1087
+ 'Remove {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
1088
+ 'Remove {type: "View", parentNativeID: (root), index: 0, nativeID: "unflattened"}',
1089
+ 'Delete {type: "View", nativeID: "unflattened"}',
1090
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1091
+ 'Delete {type: "View", nativeID: "child"}',
1092
+ 'Update {type: "View", nativeID: (N/A)}',
1093
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1094
+ ]);
1095
+ });
1096
+
1097
+ test('scroll view parent is unflattened and view becomes culled', () => {
1098
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1099
+
1100
+ Fantom.runTask(() => {
1101
+ root.render(
1102
+ <View style={{width: 100, height: 100}}>
1103
+ <ScrollView>
1104
+ <View
1105
+ nativeID={'child'}
1106
+ style={{height: 10, width: 10, marginTop: 50}}
1107
+ />
1108
+ </ScrollView>
1109
+ </View>,
1110
+ );
1111
+ });
1112
+
1113
+ expect(root.takeMountingManagerLogs()).toEqual([
1114
+ 'Update {type: "RootView", nativeID: (root)}',
1115
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1116
+ 'Create {type: "View", nativeID: (N/A)}',
1117
+ 'Create {type: "View", nativeID: "child"}',
1118
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1119
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1120
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1121
+ ]);
1122
+
1123
+ Fantom.runTask(() => {
1124
+ root.render(
1125
+ <View nativeID="unflattened" style={{width: 100, height: 100}}>
1126
+ <ScrollView>
1127
+ <View
1128
+ nativeID={'child'}
1129
+ style={{height: 10, width: 10, marginTop: 150}}
1130
+ />
1131
+ </ScrollView>
1132
+ </View>,
1133
+ );
1134
+ });
1135
+
1136
+ expect(root.takeMountingManagerLogs()).toEqual([
1137
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1138
+ 'Remove {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1139
+ 'Create {type: "View", nativeID: "unflattened"}',
1140
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1141
+ 'Delete {type: "View", nativeID: "child"}',
1142
+ 'Update {type: "View", nativeID: (N/A)}',
1143
+ 'Insert {type: "View", parentNativeID: (root), index: 0, nativeID: "unflattened"}',
1144
+ 'Insert {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
1145
+ ]);
1146
+ });
1147
+
1148
+ test('parent-child flattening with culling', () => {
1149
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1150
+
1151
+ Fantom.runTask(() => {
1152
+ root.render(
1153
+ <ScrollView
1154
+ style={{height: 100, width: 100}}
1155
+ contentOffset={{x: 0, y: 60}}>
1156
+ <View
1157
+ style={{
1158
+ marginTop: 100,
1159
+ opacity: 0,
1160
+ }}>
1161
+ <View
1162
+ style={{
1163
+ marginTop: 50,
1164
+ opacity: 0,
1165
+ }}>
1166
+ <View
1167
+ nativeID={'child'}
1168
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
1169
+ />
1170
+ </View>
1171
+ </View>
1172
+ </ScrollView>,
1173
+ );
1174
+ });
1175
+
1176
+ expect(root.takeMountingManagerLogs()).toEqual([
1177
+ 'Update {type: "RootView", nativeID: (root)}',
1178
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1179
+ 'Create {type: "View", nativeID: (N/A)}',
1180
+ 'Create {type: "View", nativeID: (N/A)}',
1181
+ 'Create {type: "View", nativeID: (N/A)}',
1182
+ 'Create {type: "View", nativeID: "child"}',
1183
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1184
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1185
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1186
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1187
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1188
+ ]);
1189
+
1190
+ // force parent-child to be flattened.
1191
+ Fantom.runTask(() => {
1192
+ root.render(
1193
+ <ScrollView
1194
+ style={{height: 100, width: 100}}
1195
+ contentOffset={{x: 0, y: 60}}>
1196
+ <View
1197
+ style={{
1198
+ marginTop: 100,
1199
+ }}>
1200
+ <View
1201
+ style={{
1202
+ marginTop: 50,
1203
+ }}>
1204
+ <View
1205
+ nativeID={'child'}
1206
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
1207
+ />
1208
+ </View>
1209
+ </View>
1210
+ </ScrollView>,
1211
+ );
1212
+ });
1213
+
1214
+ expect(root.takeMountingManagerLogs()).toEqual([
1215
+ 'Update {type: "View", nativeID: "child"}',
1216
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1217
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1218
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1219
+ 'Delete {type: "View", nativeID: (N/A)}',
1220
+ 'Delete {type: "View", nativeID: (N/A)}',
1221
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1222
+ ]);
1223
+ });
1224
+
1225
+ test('flattening grandparent ', () => {
1226
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1227
+
1228
+ Fantom.runTask(() => {
1229
+ root.render(
1230
+ <ScrollView style={{height: 100, width: 100}}>
1231
+ <View // grandparent
1232
+ style={{
1233
+ marginTop: 70,
1234
+ opacity: 0, // opacity 0 - can't be flattened
1235
+ }}>
1236
+ <View // parent
1237
+ nativeID="parent"
1238
+ style={{height: 10, width: 10, marginTop: 10}}>
1239
+ <View // child
1240
+ nativeID="child"
1241
+ style={{height: 5, width: 5, marginTop: 5}}
1242
+ />
1243
+ </View>
1244
+ </View>
1245
+ </ScrollView>,
1246
+ );
1247
+ });
1248
+
1249
+ expect(root.takeMountingManagerLogs()).toContain(
1250
+ 'Insert {type: "View", parentNativeID: "parent", index: 0, nativeID: "child"}',
1251
+ );
1252
+
1253
+ // Flatten grandparent by changing opacity to default value.
1254
+ Fantom.runTask(() => {
1255
+ root.render(
1256
+ <ScrollView style={{height: 100, width: 100}}>
1257
+ <View // grandparent
1258
+ style={{
1259
+ marginTop: 70,
1260
+ }}>
1261
+ <View // parent
1262
+ nativeID="parent"
1263
+ style={{height: 10, width: 11, marginTop: 10}}>
1264
+ <View // child
1265
+ nativeID="child"
1266
+ style={{height: 5, width: 5, marginTop: 5}}
1267
+ />
1268
+ </View>
1269
+ </View>
1270
+ </ScrollView>,
1271
+ );
1272
+ });
1273
+
1274
+ expect(root.takeMountingManagerLogs()).toEqual([
1275
+ 'Update {type: "View", nativeID: "parent"}',
1276
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "parent"}',
1277
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1278
+ 'Delete {type: "View", nativeID: (N/A)}',
1279
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "parent"}',
1280
+ ]);
1281
+ });
1282
+
1283
+ test('unflattening grandparent', () => {
1284
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1285
+
1286
+ Fantom.runTask(() => {
1287
+ root.render(
1288
+ <ScrollView style={{height: 100, width: 100}}>
1289
+ <View // grandparent
1290
+ style={{
1291
+ marginTop: 70,
1292
+ }}>
1293
+ <View // parent
1294
+ nativeID={'parent'}
1295
+ style={{height: 10, width: 10, marginTop: 10}}>
1296
+ <View // child
1297
+ nativeID="child"
1298
+ style={{height: 5, width: 5, marginTop: 5}}
1299
+ />
1300
+ </View>
1301
+ </View>
1302
+ </ScrollView>,
1303
+ );
1304
+ });
1305
+
1306
+ expect(root.takeMountingManagerLogs()).toContain(
1307
+ 'Insert {type: "View", parentNativeID: "parent", index: 0, nativeID: "child"}',
1308
+ );
1309
+
1310
+ // Unflatten grandparent by setting opacity to 0.
1311
+ Fantom.runTask(() => {
1312
+ root.render(
1313
+ <ScrollView style={{height: 100, width: 100}}>
1314
+ <View // grandparent
1315
+ style={{
1316
+ marginTop: 70,
1317
+ opacity: 0, // opacity 0 - can't be flattened
1318
+ }}>
1319
+ <View // parent
1320
+ nativeID={'parent'}
1321
+ style={{height: 10, width: 11, marginTop: 10}}>
1322
+ <View // child
1323
+ nativeID="child"
1324
+ style={{height: 5, width: 5, marginTop: 5}}
1325
+ />
1326
+ </View>
1327
+ </View>
1328
+ </ScrollView>,
1329
+ );
1330
+ });
1331
+
1332
+ expect(root.takeMountingManagerLogs()).toEqual([
1333
+ 'Update {type: "View", nativeID: "parent"}',
1334
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "parent"}',
1335
+ 'Create {type: "View", nativeID: (N/A)}',
1336
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1337
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "parent"}',
1338
+ ]);
1339
+ });
1340
+
1341
+ test('parent-child flattening with child culled', () => {
1342
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1343
+ const nodeRef = createRef<HostInstance>();
1344
+
1345
+ Fantom.runTask(() => {
1346
+ root.render(
1347
+ <ScrollView
1348
+ style={{height: 100, width: 100}}
1349
+ ref={nodeRef}
1350
+ contentOffset={{x: 0, y: 50}}>
1351
+ <View
1352
+ style={{
1353
+ marginTop: 100,
1354
+ opacity: 0.5,
1355
+ }}>
1356
+ <View
1357
+ style={{
1358
+ marginTop: 50,
1359
+ opacity: 0.1,
1360
+ }}>
1361
+ <View
1362
+ nativeID={'child'}
1363
+ style={{height: 10, width: 10, marginTop: 5}}
1364
+ />
1365
+ </View>
1366
+ </View>
1367
+ </ScrollView>,
1368
+ );
1369
+ });
1370
+
1371
+ expect(root.takeMountingManagerLogs()).toEqual([
1372
+ 'Update {type: "RootView", nativeID: (root)}',
1373
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1374
+ 'Create {type: "View", nativeID: (N/A)}',
1375
+ 'Create {type: "View", nativeID: (N/A)}',
1376
+ 'Create {type: "View", nativeID: (N/A)}',
1377
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1378
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1379
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1380
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1381
+ ]);
1382
+
1383
+ // force parent-child to be flattened.
1384
+ Fantom.runTask(() => {
1385
+ root.render(
1386
+ <ScrollView
1387
+ style={{height: 100, width: 100}}
1388
+ ref={nodeRef}
1389
+ contentOffset={{x: 0, y: 50}}>
1390
+ <View
1391
+ style={{
1392
+ marginTop: 100,
1393
+ }}>
1394
+ <View
1395
+ style={{
1396
+ marginTop: 50,
1397
+ }}>
1398
+ <View
1399
+ nativeID={'child'}
1400
+ style={{height: 10, width: 10, marginTop: 5}}
1401
+ />
1402
+ </View>
1403
+ </View>
1404
+ </ScrollView>,
1405
+ );
1406
+ });
1407
+
1408
+ expect(root.takeMountingManagerLogs()).toEqual([
1409
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1410
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1411
+ 'Delete {type: "View", nativeID: (N/A)}',
1412
+ 'Delete {type: "View", nativeID: (N/A)}',
1413
+ ]);
1414
+ });
1415
+
1416
+ test('parent-child switching from unflattened-flattened to flattened-unflattened', () => {
1417
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1418
+
1419
+ Fantom.runTask(() => {
1420
+ root.render(
1421
+ <ScrollView
1422
+ style={{height: 100, width: 100}}
1423
+ contentOffset={{x: 0, y: 60}}>
1424
+ <View
1425
+ style={{
1426
+ marginTop: 100,
1427
+ opacity: 0,
1428
+ }}>
1429
+ <View
1430
+ style={{
1431
+ marginTop: 50,
1432
+ }}>
1433
+ <View
1434
+ nativeID={'child'}
1435
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
1436
+ />
1437
+ </View>
1438
+ </View>
1439
+ </ScrollView>,
1440
+ );
1441
+ });
1442
+
1443
+ expect(root.takeMountingManagerLogs()).toEqual([
1444
+ 'Update {type: "RootView", nativeID: (root)}',
1445
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1446
+ 'Create {type: "View", nativeID: (N/A)}',
1447
+ 'Create {type: "View", nativeID: (N/A)}',
1448
+ 'Create {type: "View", nativeID: "child"}',
1449
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1450
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1451
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1452
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1453
+ ]);
1454
+
1455
+ // force view to be flattened.
1456
+ Fantom.runTask(() => {
1457
+ root.render(
1458
+ <ScrollView
1459
+ style={{height: 100, width: 100}}
1460
+ contentOffset={{x: 0, y: 60}}>
1461
+ <View
1462
+ style={{
1463
+ marginTop: 100,
1464
+ }}>
1465
+ <View
1466
+ style={{
1467
+ marginTop: 50,
1468
+ opacity: 0,
1469
+ }}>
1470
+ <View
1471
+ nativeID={'child'}
1472
+ style={{height: 10, width: 10, backgroundColor: 'red'}}
1473
+ />
1474
+ </View>
1475
+ </View>
1476
+ </ScrollView>,
1477
+ );
1478
+ });
1479
+
1480
+ expect(root.takeMountingManagerLogs()).toEqual([
1481
+ 'Update {type: "View", nativeID: "child"}',
1482
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1483
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1484
+ 'Delete {type: "View", nativeID: (N/A)}',
1485
+ 'Create {type: "View", nativeID: (N/A)}',
1486
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1487
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1488
+ ]);
1489
+ });
1490
+
1491
+ test('unflattening and creating a subtree that is partially culled', () => {
1492
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1493
+
1494
+ // First render with a flattened view container that is visible.
1495
+ Fantom.runTask(() => {
1496
+ root.render(
1497
+ <ScrollView
1498
+ style={{height: 100, width: 100}}
1499
+ contentOffset={{x: 0, y: 111}}>
1500
+ <View style={{marginTop: 200}} />
1501
+ </ScrollView>,
1502
+ );
1503
+ });
1504
+
1505
+ expect(root.takeMountingManagerLogs()).toEqual([
1506
+ 'Update {type: "RootView", nativeID: (root)}',
1507
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1508
+ 'Create {type: "View", nativeID: (N/A)}',
1509
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1510
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1511
+ ]);
1512
+
1513
+ const nodeRef = createRef<HostInstance>();
1514
+
1515
+ // Now update opacity to unflattned the container and add a child that has a culled descendant.
1516
+ Fantom.runTask(() => {
1517
+ root.render(
1518
+ <ScrollView
1519
+ style={{height: 100, width: 100}}
1520
+ ref={nodeRef}
1521
+ contentOffset={{x: 0, y: 111}}>
1522
+ <View
1523
+ style={{
1524
+ marginTop: 200,
1525
+ opacity: 0.5, // Force unflattening
1526
+ }}>
1527
+ <View
1528
+ nativeID="child"
1529
+ style={{
1530
+ marginTop: 10,
1531
+ height: 10,
1532
+ width: 10,
1533
+ }}>
1534
+ <View
1535
+ nativeID="grandchild"
1536
+ style={{
1537
+ marginTop: 5,
1538
+ height: 5,
1539
+ width: 5,
1540
+ }}
1541
+ />
1542
+ </View>
1543
+ </View>
1544
+ </ScrollView>,
1545
+ );
1546
+ });
1547
+
1548
+ expect(root.takeMountingManagerLogs()).toEqual([
1549
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1550
+ 'Update {type: "View", nativeID: (N/A)}',
1551
+ 'Create {type: "View", nativeID: (N/A)}',
1552
+ 'Create {type: "View", nativeID: "child"}',
1553
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1554
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1555
+ ]);
1556
+
1557
+ // Scroll down to see the grandchild.
1558
+ Fantom.scrollTo(nodeRef, {
1559
+ x: 0,
1560
+ y: 115,
1561
+ });
1562
+
1563
+ expect(root.takeMountingManagerLogs()).toEqual([
1564
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1565
+ 'Create {type: "View", nativeID: "grandchild"}',
1566
+ 'Insert {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
1567
+ ]);
1568
+ });
1569
+
1570
+ test('unflattening and creating a deeper subtree that is partially culled', () => {
1571
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1572
+
1573
+ // First render with a flattened view container that is visible.
1574
+ Fantom.runTask(() => {
1575
+ root.render(
1576
+ <ScrollView
1577
+ style={{height: 100, width: 100}}
1578
+ contentOffset={{x: 0, y: 115}}>
1579
+ <View style={{marginTop: 200}} />
1580
+ </ScrollView>,
1581
+ );
1582
+ });
1583
+
1584
+ expect(root.takeMountingManagerLogs()).toEqual([
1585
+ 'Update {type: "RootView", nativeID: (root)}',
1586
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1587
+ 'Create {type: "View", nativeID: (N/A)}',
1588
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1589
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1590
+ ]);
1591
+
1592
+ const nodeRef = createRef<HostInstance>();
1593
+
1594
+ // Now update opacity to unflattned the container and add a child that has a culled descendant.
1595
+ Fantom.runTask(() => {
1596
+ root.render(
1597
+ <ScrollView
1598
+ style={{height: 100, width: 100}}
1599
+ ref={nodeRef}
1600
+ contentOffset={{x: 0, y: 115}}>
1601
+ <View
1602
+ style={{
1603
+ marginTop: 200,
1604
+ opacity: 0.5, // Force unflattening
1605
+ }}>
1606
+ <View
1607
+ nativeID="child"
1608
+ style={{
1609
+ marginTop: 10,
1610
+ height: 10,
1611
+ width: 10,
1612
+ }}>
1613
+ <View
1614
+ nativeID="grandchild"
1615
+ style={{
1616
+ marginTop: 5, // 215
1617
+ height: 5,
1618
+ width: 5,
1619
+ }}>
1620
+ <View
1621
+ nativeID="grandgrandchild"
1622
+ style={{
1623
+ marginTop: 2.5, // 217.5
1624
+ height: 2.5,
1625
+ width: 2.5,
1626
+ }}
1627
+ />
1628
+ </View>
1629
+ </View>
1630
+ </View>
1631
+ </ScrollView>,
1632
+ );
1633
+ });
1634
+
1635
+ expect(root.takeMountingManagerLogs()).toEqual([
1636
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1637
+ 'Update {type: "View", nativeID: (N/A)}',
1638
+ 'Create {type: "View", nativeID: (N/A)}',
1639
+ 'Create {type: "View", nativeID: "child"}',
1640
+ 'Create {type: "View", nativeID: "grandchild"}',
1641
+ 'Insert {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
1642
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1643
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1644
+ ]);
1645
+
1646
+ // Scroll down to see the grandchild.
1647
+ Fantom.scrollTo(nodeRef, {
1648
+ x: 0,
1649
+ y: 118,
1650
+ });
1651
+
1652
+ expect(root.takeMountingManagerLogs()).toEqual([
1653
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1654
+ 'Create {type: "View", nativeID: "grandgrandchild"}',
1655
+ 'Insert {type: "View", parentNativeID: "grandchild", index: 0, nativeID: "grandgrandchild"}',
1656
+ ]);
1657
+ });
1658
+
1659
+ test('flattening and deleting a deeper subtree that is partially culled', () => {
1660
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1661
+
1662
+ // First render with a unflattened view container that is visible and a subtree that is partially culled.
1663
+ Fantom.runTask(() => {
1664
+ root.render(
1665
+ <ScrollView
1666
+ style={{height: 100, width: 100}}
1667
+ contentOffset={{x: 0, y: 115}}>
1668
+ <View style={{marginTop: 200, opacity: 0.5}}>
1669
+ <View
1670
+ nativeID="child"
1671
+ style={{
1672
+ marginTop: 10,
1673
+ height: 10,
1674
+ width: 10,
1675
+ }}>
1676
+ <View
1677
+ nativeID="grandchild"
1678
+ style={{
1679
+ marginTop: 5,
1680
+ height: 5,
1681
+ width: 5,
1682
+ }}>
1683
+ <View
1684
+ nativeID="grandgrandchild"
1685
+ style={{
1686
+ marginTop: 2.5,
1687
+ height: 2.5,
1688
+ width: 2.5,
1689
+ }}
1690
+ />
1691
+ </View>
1692
+ </View>
1693
+ </View>
1694
+ </ScrollView>,
1695
+ );
1696
+ });
1697
+
1698
+ // All views are mounted, except for the grandchild.
1699
+ expect(root.takeMountingManagerLogs()).toEqual([
1700
+ 'Update {type: "RootView", nativeID: (root)}',
1701
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1702
+ 'Create {type: "View", nativeID: (N/A)}',
1703
+ 'Create {type: "View", nativeID: (N/A)}',
1704
+ 'Create {type: "View", nativeID: "child"}',
1705
+ 'Create {type: "View", nativeID: "grandchild"}',
1706
+ 'Insert {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
1707
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1708
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1709
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1710
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1711
+ ]);
1712
+
1713
+ // Now change opacity to the default to flatten the container and delete container's subtree.
1714
+ Fantom.runTask(() => {
1715
+ root.render(
1716
+ <ScrollView
1717
+ style={{height: 100, width: 100}}
1718
+ contentOffset={{x: 0, y: 115}}>
1719
+ <View
1720
+ style={{
1721
+ marginTop: 200,
1722
+ }}
1723
+ />
1724
+ </ScrollView>,
1725
+ );
1726
+ });
1727
+
1728
+ // Note that the grandchild is not deleted because it was not previously mounted.
1729
+ expect(root.takeMountingManagerLogs()).toEqual([
1730
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1731
+ 'Update {type: "View", nativeID: (N/A)}',
1732
+ 'Remove {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
1733
+ 'Delete {type: "View", nativeID: "grandchild"}',
1734
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1735
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1736
+ 'Delete {type: "View", nativeID: (N/A)}',
1737
+ 'Delete {type: "View", nativeID: "child"}',
1738
+ ]);
1739
+ });
1740
+
1741
+ test('flattening and deleting a subtree that is partially culled', () => {
1742
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1743
+
1744
+ // First render with a unflattened view container that is visible and a subtree that is partially culled.
1745
+ Fantom.runTask(() => {
1746
+ root.render(
1747
+ <ScrollView
1748
+ style={{height: 100, width: 100}}
1749
+ contentOffset={{x: 0, y: 111}}>
1750
+ <View style={{marginTop: 200, opacity: 0.5}}>
1751
+ <View
1752
+ nativeID="child"
1753
+ style={{
1754
+ marginTop: 10,
1755
+ height: 10,
1756
+ width: 10,
1757
+ }}>
1758
+ <View
1759
+ nativeID="grandchild"
1760
+ style={{
1761
+ marginTop: 5,
1762
+ height: 5,
1763
+ width: 5,
1764
+ }}
1765
+ />
1766
+ </View>
1767
+ </View>
1768
+ </ScrollView>,
1769
+ );
1770
+ });
1771
+
1772
+ // All views are mounted, except for the grandchild.
1773
+ expect(root.takeMountingManagerLogs()).toEqual([
1774
+ 'Update {type: "RootView", nativeID: (root)}',
1775
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1776
+ 'Create {type: "View", nativeID: (N/A)}',
1777
+ 'Create {type: "View", nativeID: (N/A)}',
1778
+ 'Create {type: "View", nativeID: "child"}',
1779
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1780
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1781
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1782
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1783
+ ]);
1784
+
1785
+ // Now change opacity to the default to flatten the container and delete container's subtree.
1786
+ Fantom.runTask(() => {
1787
+ root.render(
1788
+ <ScrollView
1789
+ style={{height: 100, width: 100}}
1790
+ contentOffset={{x: 0, y: 111}}>
1791
+ <View
1792
+ style={{
1793
+ marginTop: 200,
1794
+ }}
1795
+ />
1796
+ </ScrollView>,
1797
+ );
1798
+ });
1799
+
1800
+ // Note that the grandchild is not deleted because it was not previously mounted.
1801
+ expect(root.takeMountingManagerLogs()).toEqual([
1802
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1803
+ 'Update {type: "View", nativeID: (N/A)}',
1804
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
1805
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1806
+ 'Delete {type: "View", nativeID: (N/A)}',
1807
+ 'Delete {type: "View", nativeID: "child"}',
1808
+ ]);
1809
+ });
1810
+
1811
+ test('parent-child switching from unflattened-flattened to flattened-unflattened and grandchild is culled', () => {
1812
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1813
+
1814
+ // First render unflattened view container with flattened child that has a culled grandchild.
1815
+ Fantom.runTask(() => {
1816
+ root.render(
1817
+ <ScrollView
1818
+ style={{height: 100, width: 100}}
1819
+ contentOffset={{x: 0, y: 60}}>
1820
+ <View
1821
+ style={{
1822
+ marginTop: 100,
1823
+ opacity: 0,
1824
+ }}>
1825
+ <View
1826
+ style={{
1827
+ marginTop: 50,
1828
+ }}>
1829
+ <View
1830
+ nativeID={'grandchild'}
1831
+ style={{height: 10, width: 10, marginTop: 11}}
1832
+ />
1833
+ </View>
1834
+ </View>
1835
+ </ScrollView>,
1836
+ );
1837
+ });
1838
+
1839
+ // Note that `grandchild` is not mounted.
1840
+ expect(root.takeMountingManagerLogs()).toEqual([
1841
+ 'Update {type: "RootView", nativeID: (root)}',
1842
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1843
+ 'Create {type: "View", nativeID: (N/A)}',
1844
+ 'Create {type: "View", nativeID: (N/A)}',
1845
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1846
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1847
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1848
+ ]);
1849
+
1850
+ const nodeRef = createRef<HostInstance>();
1851
+
1852
+ // Now change unflattened view container to flattened and change its child to be unflattened.
1853
+ Fantom.runTask(() => {
1854
+ root.render(
1855
+ <ScrollView
1856
+ style={{height: 100, width: 100}}
1857
+ ref={nodeRef}
1858
+ contentOffset={{x: 0, y: 60}}>
1859
+ <View
1860
+ style={{
1861
+ marginTop: 100,
1862
+ }}>
1863
+ <View
1864
+ style={{
1865
+ marginTop: 50,
1866
+ opacity: 0,
1867
+ }}>
1868
+ <View
1869
+ nativeID={'grandchild'}
1870
+ style={{height: 10, width: 10, marginTop: 11}}
1871
+ />
1872
+ </View>
1873
+ </View>
1874
+ </ScrollView>,
1875
+ );
1876
+ });
1877
+
1878
+ // Note that `grandchild` is not mounted.
1879
+ expect(root.takeMountingManagerLogs()).toEqual([
1880
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1881
+ 'Delete {type: "View", nativeID: (N/A)}',
1882
+ 'Create {type: "View", nativeID: (N/A)}',
1883
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1884
+ ]);
1885
+
1886
+ // Scroll to reveal grandchild.
1887
+ Fantom.scrollTo(nodeRef, {
1888
+ x: 0,
1889
+ y: 70,
1890
+ });
1891
+
1892
+ expect(root.takeMountingManagerLogs()).toEqual([
1893
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1894
+ 'Create {type: "View", nativeID: "grandchild"}',
1895
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "grandchild"}',
1896
+ ]);
1897
+ });
1898
+
1899
+ test('parent-child switching from flattened-unflattened to unflattened-flattened and grandchild is culled', () => {
1900
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1901
+
1902
+ // First render unflattened view container with flattened child that has a culled grandchild.
1903
+ Fantom.runTask(() => {
1904
+ root.render(
1905
+ <ScrollView
1906
+ style={{height: 100, width: 100}}
1907
+ contentOffset={{x: 0, y: 60}}>
1908
+ <View
1909
+ style={{
1910
+ marginTop: 100,
1911
+ }}>
1912
+ <View
1913
+ style={{
1914
+ marginTop: 50,
1915
+ opacity: 0,
1916
+ }}>
1917
+ <View
1918
+ nativeID={'grandchild'}
1919
+ style={{height: 10, width: 10, marginTop: 11}}
1920
+ />
1921
+ </View>
1922
+ </View>
1923
+ </ScrollView>,
1924
+ );
1925
+ });
1926
+
1927
+ // Note that `grandchild` is not mounted.
1928
+ expect(root.takeMountingManagerLogs()).toEqual([
1929
+ 'Update {type: "RootView", nativeID: (root)}',
1930
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
1931
+ 'Create {type: "View", nativeID: (N/A)}',
1932
+ 'Create {type: "View", nativeID: (N/A)}',
1933
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1934
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1935
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
1936
+ ]);
1937
+
1938
+ const nodeRef = createRef<HostInstance>();
1939
+
1940
+ // Now change unflattened view container to flattened and change its child to be unflattened.
1941
+ Fantom.runTask(() => {
1942
+ root.render(
1943
+ <ScrollView
1944
+ style={{height: 100, width: 100}}
1945
+ ref={nodeRef}
1946
+ contentOffset={{x: 0, y: 60}}>
1947
+ <View
1948
+ style={{
1949
+ marginTop: 100,
1950
+ opacity: 0,
1951
+ }}>
1952
+ <View
1953
+ style={{
1954
+ marginTop: 50,
1955
+ }}>
1956
+ <View
1957
+ nativeID={'grandchild'}
1958
+ style={{height: 10, width: 10, marginTop: 11}}
1959
+ />
1960
+ </View>
1961
+ </View>
1962
+ </ScrollView>,
1963
+ );
1964
+ });
1965
+
1966
+ // Note that `grandchild` is not mounted.
1967
+ expect(root.takeMountingManagerLogs()).toEqual([
1968
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1969
+ 'Delete {type: "View", nativeID: (N/A)}',
1970
+ 'Create {type: "View", nativeID: (N/A)}',
1971
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
1972
+ ]);
1973
+
1974
+ // Scroll to reveal grandchild.
1975
+ Fantom.scrollTo(nodeRef, {
1976
+ x: 0,
1977
+ y: 70,
1978
+ });
1979
+
1980
+ expect(root.takeMountingManagerLogs()).toEqual([
1981
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
1982
+ 'Create {type: "View", nativeID: "grandchild"}',
1983
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "grandchild"}',
1984
+ ]);
1985
+ });
1986
+
1987
+ test('parent-child switching from flattened-unflattened to unflattened-flattened', () => {
1988
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
1989
+
1990
+ // First create a view hierarchy where parent is flattened but child is not.
1991
+ // `grandchild` is not culled.
1992
+ Fantom.runTask(() => {
1993
+ root.render(
1994
+ <ScrollView
1995
+ style={{height: 100, width: 100}}
1996
+ contentOffset={{x: 0, y: 60}}>
1997
+ <View
1998
+ style={{
1999
+ marginTop: 100,
2000
+ }}>
2001
+ <View
2002
+ style={{
2003
+ marginTop: 50,
2004
+ opacity: 0,
2005
+ }}>
2006
+ <View nativeID={'grandchild'} style={{height: 10, width: 10}} />
2007
+ </View>
2008
+ </View>
2009
+ </ScrollView>,
2010
+ );
2011
+ });
2012
+
2013
+ expect(root.takeMountingManagerLogs()).toEqual([
2014
+ 'Update {type: "RootView", nativeID: (root)}',
2015
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2016
+ 'Create {type: "View", nativeID: (N/A)}',
2017
+ 'Create {type: "View", nativeID: (N/A)}',
2018
+ 'Create {type: "View", nativeID: "grandchild"}',
2019
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "grandchild"}',
2020
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2021
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2022
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2023
+ ]);
2024
+
2025
+ // Now switch parent to be unflattened and child to be flattened.
2026
+ // `grandchild` remains visible.
2027
+ Fantom.runTask(() => {
2028
+ root.render(
2029
+ <ScrollView
2030
+ style={{height: 100, width: 100}}
2031
+ contentOffset={{x: 0, y: 60}}>
2032
+ <View
2033
+ style={{
2034
+ marginTop: 100,
2035
+ opacity: 0,
2036
+ }}>
2037
+ <View
2038
+ style={{
2039
+ marginTop: 50,
2040
+ }}>
2041
+ <View nativeID={'grandchild'} style={{height: 10, width: 10}} />
2042
+ </View>
2043
+ </View>
2044
+ </ScrollView>,
2045
+ );
2046
+ });
2047
+
2048
+ expect(root.takeMountingManagerLogs()).toEqual([
2049
+ 'Update {type: "View", nativeID: "grandchild"}',
2050
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2051
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "grandchild"}',
2052
+ 'Delete {type: "View", nativeID: (N/A)}',
2053
+ 'Create {type: "View", nativeID: (N/A)}',
2054
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2055
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "grandchild"}',
2056
+ ]);
2057
+ });
2058
+
2059
+ test('nested scroll view with unflattened wrapper', () => {
2060
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2061
+
2062
+ Fantom.runTask(() => {
2063
+ root.render(
2064
+ <ScrollView style={{width: 100, height: 100}}>
2065
+ <View>
2066
+ <ScrollView
2067
+ contentOffset={{x: 15, y: 0}}
2068
+ style={{height: 100, width: 100}}
2069
+ horizontal={true}>
2070
+ <View nativeID="child" style={{width: 10, height: 10}} />
2071
+ </ScrollView>
2072
+ </View>
2073
+ </ScrollView>,
2074
+ );
2075
+ });
2076
+
2077
+ expect(root.takeMountingManagerLogs()).toEqual([
2078
+ 'Update {type: "RootView", nativeID: (root)}',
2079
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2080
+ 'Create {type: "View", nativeID: (N/A)}',
2081
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2082
+ 'Insert {type: "ScrollView", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2083
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2084
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2085
+ ]);
2086
+
2087
+ Fantom.runTask(() => {
2088
+ root.render(
2089
+ <ScrollView style={{height: 100, width: 100, padding: 1}}>
2090
+ <View nativeID="unflattened">
2091
+ <ScrollView
2092
+ contentOffset={{x: 15, y: 0}}
2093
+ style={{height: 100, width: 100}}
2094
+ horizontal={true}>
2095
+ <View nativeID="child" style={{width: 10, height: 10}} />
2096
+ </ScrollView>
2097
+ </View>
2098
+ </ScrollView>,
2099
+ );
2100
+ });
2101
+
2102
+ expect(root.takeMountingManagerLogs()).toEqual([
2103
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
2104
+ 'Update {type: "View", nativeID: (N/A)}',
2105
+ 'Remove {type: "ScrollView", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2106
+ 'Create {type: "View", nativeID: "unflattened"}',
2107
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "unflattened"}',
2108
+ 'Insert {type: "ScrollView", parentNativeID: "unflattened", index: 0, nativeID: (N/A)}',
2109
+ ]);
2110
+ });
2111
+
2112
+ test('reparenting with reparented subtree changing its marginTop', () => {
2113
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2114
+ const nodeRef = createRef<HostInstance>();
2115
+
2116
+ Fantom.runTask(() => {
2117
+ root.render(
2118
+ <ScrollView ref={nodeRef} style={{width: 100, height: 100}}>
2119
+ <View>
2120
+ <View
2121
+ style={{
2122
+ height: 100,
2123
+ width: 100,
2124
+ }}
2125
+ collapsableChildren={false}>
2126
+ <View nativeID="child" style={{width: 10, height: 10}}>
2127
+ <View
2128
+ nativeID="grandchild"
2129
+ style={{width: 5, height: 5, marginTop: 5}}
2130
+ />
2131
+ </View>
2132
+ </View>
2133
+ </View>
2134
+ </ScrollView>,
2135
+ );
2136
+ });
2137
+
2138
+ expect(root.takeMountingManagerLogs()).toEqual([
2139
+ 'Update {type: "RootView", nativeID: (root)}',
2140
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2141
+ 'Create {type: "View", nativeID: (N/A)}',
2142
+ 'Create {type: "View", nativeID: "child"}',
2143
+ 'Create {type: "View", nativeID: "grandchild"}',
2144
+ 'Insert {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
2145
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
2146
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2147
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2148
+ ]);
2149
+
2150
+ Fantom.runTask(() => {
2151
+ root.render(
2152
+ <ScrollView ref={nodeRef} style={{height: 100, width: 100}}>
2153
+ <View nativeID="unflattened">
2154
+ <View
2155
+ style={{
2156
+ height: 100,
2157
+ width: 100,
2158
+ marginTop: 97,
2159
+ }}
2160
+ collapsableChildren={false}>
2161
+ <View nativeID="child" style={{width: 10, height: 10}}>
2162
+ <View
2163
+ nativeID="grandchild"
2164
+ style={{width: 5, height: 5, marginTop: 5}}
2165
+ />
2166
+ </View>
2167
+ </View>
2168
+ </View>
2169
+ </ScrollView>,
2170
+ );
2171
+ });
2172
+
2173
+ expect(root.takeMountingManagerLogs()).toEqual([
2174
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
2175
+ 'Update {type: "View", nativeID: (N/A)}',
2176
+ 'Update {type: "View", nativeID: "child"}',
2177
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
2178
+ 'Create {type: "View", nativeID: "unflattened"}',
2179
+ 'Remove {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
2180
+ 'Delete {type: "View", nativeID: "grandchild"}',
2181
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "unflattened"}',
2182
+ 'Insert {type: "View", parentNativeID: "unflattened", index: 0, nativeID: "child"}',
2183
+ ]);
2184
+
2185
+ Fantom.scrollTo(nodeRef, {
2186
+ x: 0,
2187
+ y: 50,
2188
+ });
2189
+
2190
+ expect(root.takeMountingManagerLogs()).toEqual([
2191
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
2192
+ 'Create {type: "View", nativeID: "grandchild"}',
2193
+ 'Insert {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
2194
+ ]);
2195
+ });
2196
+
2197
+ test('reparenting deep tree with reparented subtree changing its marginTop', () => {
2198
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2199
+ const nodeRef = createRef<HostInstance>();
2200
+
2201
+ Fantom.runTask(() => {
2202
+ root.render(
2203
+ <ScrollView ref={nodeRef} style={{width: 100, height: 100}}>
2204
+ <View>
2205
+ <View
2206
+ style={{
2207
+ height: 100,
2208
+ width: 100,
2209
+ }}
2210
+ collapsableChildren={false}>
2211
+ <View nativeID="child" style={{width: 10, height: 10}}>
2212
+ <View
2213
+ nativeID="grandchild"
2214
+ style={{width: 5, height: 5, marginTop: 5}}>
2215
+ <View
2216
+ nativeID="grandgrandchild"
2217
+ style={{width: 5, height: 5, marginTop: 5}}
2218
+ />
2219
+ </View>
2220
+ </View>
2221
+ </View>
2222
+ </View>
2223
+ </ScrollView>,
2224
+ );
2225
+ });
2226
+
2227
+ expect(root.takeMountingManagerLogs()).toEqual([
2228
+ 'Update {type: "RootView", nativeID: (root)}',
2229
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2230
+ 'Create {type: "View", nativeID: (N/A)}',
2231
+ 'Create {type: "View", nativeID: "child"}',
2232
+ 'Create {type: "View", nativeID: "grandchild"}',
2233
+ 'Create {type: "View", nativeID: "grandgrandchild"}',
2234
+ 'Insert {type: "View", parentNativeID: "grandchild", index: 0, nativeID: "grandgrandchild"}',
2235
+ 'Insert {type: "View", parentNativeID: "child", index: 0, nativeID: "grandchild"}',
2236
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
2237
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2238
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2239
+ ]);
2240
+
2241
+ Fantom.runTask(() => {
2242
+ root.render(
2243
+ <ScrollView ref={nodeRef} style={{height: 100, width: 100}}>
2244
+ <View nativeID="unflattened">
2245
+ <View
2246
+ style={{
2247
+ height: 100,
2248
+ width: 100,
2249
+ marginTop: 94,
2250
+ }}
2251
+ collapsableChildren={false}>
2252
+ <View nativeID="child" style={{width: 10, height: 10}}>
2253
+ <View
2254
+ nativeID="grandchild"
2255
+ style={{width: 5, height: 5, marginTop: 5}}>
2256
+ <View
2257
+ nativeID="grandgrandchild"
2258
+ style={{width: 2.5, height: 2.5, marginTop: 2.5}}
2259
+ />
2260
+ </View>
2261
+ </View>
2262
+ </View>
2263
+ </View>
2264
+ </ScrollView>,
2265
+ );
2266
+ });
2267
+
2268
+ expect(root.takeMountingManagerLogs()).toEqual([
2269
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
2270
+ 'Update {type: "View", nativeID: (N/A)}',
2271
+ 'Update {type: "View", nativeID: "child"}',
2272
+ 'Remove {type: "View", parentNativeID: (N/A), index: 0, nativeID: "child"}',
2273
+ 'Create {type: "View", nativeID: "unflattened"}',
2274
+ 'Remove {type: "View", parentNativeID: "grandchild", index: 0, nativeID: "grandgrandchild"}',
2275
+ 'Delete {type: "View", nativeID: "grandgrandchild"}',
2276
+ 'Update {type: "View", nativeID: "grandchild"}',
2277
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "unflattened"}',
2278
+ 'Insert {type: "View", parentNativeID: "unflattened", index: 0, nativeID: "child"}',
2279
+ ]);
2280
+
2281
+ Fantom.scrollTo(nodeRef, {
2282
+ x: 0,
2283
+ y: 50,
2284
+ });
2285
+
2286
+ expect(root.takeMountingManagerLogs()).toEqual([
2287
+ 'Update {type: "ScrollView", nativeID: (N/A)}',
2288
+ 'Create {type: "View", nativeID: "grandgrandchild"}',
2289
+ 'Insert {type: "View", parentNativeID: "grandchild", index: 0, nativeID: "grandgrandchild"}',
2290
+ ]);
2291
+ });
2292
+
2293
+ test('parent-child flattening with deep hierarchy', () => {
2294
+ function renderTree(root: Fantom.Root, isFinal: boolean) {
2295
+ Fantom.runTask(() => {
2296
+ root.render(
2297
+ <ScrollView
2298
+ style={{height: 100, width: 100}}
2299
+ contentOffset={{x: 0, y: 52}}>
2300
+ <View
2301
+ style={{
2302
+ marginTop: isFinal ? 92 : 100,
2303
+ opacity: isFinal ? 0 : undefined,
2304
+ }}>
2305
+ <View
2306
+ style={{
2307
+ marginTop: 50,
2308
+ opacity: isFinal ? 0 : undefined,
2309
+ }}>
2310
+ <View collapsable={false} style={{height: 10, width: 10}}>
2311
+ <View
2312
+ collapsable={false}
2313
+ style={{height: 5, width: 5, marginTop: 5}}>
2314
+ <View
2315
+ nativeID="child"
2316
+ style={{height: 2.5, width: 2.5, marginTop: 2.5}}
2317
+ />
2318
+ </View>
2319
+ </View>
2320
+ </View>
2321
+ </View>
2322
+ </ScrollView>,
2323
+ );
2324
+ });
2325
+ }
2326
+
2327
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2328
+
2329
+ renderTree(root, false);
2330
+
2331
+ expect(root.takeMountingManagerLogs()).not.toContain(
2332
+ 'Create {type: "View", nativeID: "child"}',
2333
+ );
2334
+
2335
+ renderTree(root, true);
2336
+
2337
+ expect(root.takeMountingManagerLogs()).toContain(
2338
+ 'Create {type: "View", nativeID: "child"}',
2339
+ );
2340
+
2341
+ const finalRoot = Fantom.createRoot({
2342
+ viewportWidth: 100,
2343
+ viewportHeight: 100,
2344
+ });
2345
+
2346
+ renderTree(finalRoot, true);
2347
+
2348
+ expect(root.getRenderedOutput().toJSON).toEqual(
2349
+ finalRoot.getRenderedOutput().toJSON,
2350
+ );
2351
+ });
2352
+
2353
+ test('parent-child unflattening with deep hierarchy', () => {
2354
+ function renderTree(root: Fantom.Root, isFinal: boolean) {
2355
+ Fantom.runTask(() => {
2356
+ root.render(
2357
+ <ScrollView
2358
+ style={{height: 100, width: 100}}
2359
+ contentOffset={{x: 0, y: 52}}>
2360
+ <View
2361
+ style={{
2362
+ marginTop: isFinal ? 92 : 100,
2363
+ opacity: isFinal ? undefined : 0,
2364
+ }}>
2365
+ <View
2366
+ style={{
2367
+ marginTop: 50,
2368
+ opacity: isFinal ? undefined : 0,
2369
+ }}>
2370
+ <View collapsable={false} style={{height: 10, width: 10}}>
2371
+ <View
2372
+ collapsable={false}
2373
+ style={{height: 5, width: 5, marginTop: 5}}>
2374
+ <View
2375
+ nativeID="child"
2376
+ style={{height: 2.5, width: 2.5, marginTop: 2.5}}
2377
+ />
2378
+ </View>
2379
+ </View>
2380
+ </View>
2381
+ </View>
2382
+ </ScrollView>,
2383
+ );
2384
+ });
2385
+ }
2386
+
2387
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2388
+
2389
+ renderTree(root, false);
2390
+
2391
+ expect(root.takeMountingManagerLogs()).not.toContain(
2392
+ 'Create {type: "View", nativeID: "child"}',
2393
+ );
2394
+
2395
+ renderTree(root, true);
2396
+
2397
+ expect(root.takeMountingManagerLogs()).toContain(
2398
+ 'Create {type: "View", nativeID: "child"}',
2399
+ );
2400
+
2401
+ const finalRoot = Fantom.createRoot({
2402
+ viewportWidth: 100,
2403
+ viewportHeight: 100,
2404
+ });
2405
+
2406
+ renderTree(finalRoot, true);
2407
+
2408
+ expect(root.getRenderedOutput().toJSON).toEqual(
2409
+ finalRoot.getRenderedOutput().toJSON,
2410
+ );
2411
+ });
2412
+ });
2413
+
2414
+ describe('opt out mechanism - Unstable_uncullableView & Unstable_uncullableTrace', () => {
2415
+ test('modal is still rendered even though it is in culling region', () => {
2416
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2417
+ const nodeRef = createRef<HostInstance>();
2418
+
2419
+ Fantom.runTask(() => {
2420
+ root.render(
2421
+ <ScrollView style={{height: 100, width: 100}}>
2422
+ <View nativeID="modal parent" style={{marginTop: 101}}>
2423
+ <Modal ref={nodeRef}>
2424
+ <View nativeID="child" style={{height: 10, width: 10}} />
2425
+ </Modal>
2426
+ </View>
2427
+ </ScrollView>,
2428
+ );
2429
+ });
2430
+
2431
+ Fantom.runOnUIThread(() => {
2432
+ Fantom.enqueueModalSizeUpdate(nodeRef, {
2433
+ width: 100,
2434
+ height: 100,
2435
+ });
2436
+ });
2437
+ Fantom.runWorkLoop();
2438
+
2439
+ const logs = root.takeMountingManagerLogs();
2440
+ expect(logs).toContain('Create {type: "View", nativeID: "child"}');
2441
+ expect(logs).toContain('Create {type: "View", nativeID: "modal parent"}');
2442
+
2443
+ // Modal is unmounted. Views that were only mounted because of its existence must be unmounted.
2444
+ Fantom.runTask(() => {
2445
+ root.render(
2446
+ <ScrollView style={{height: 100, width: 100}}>
2447
+ <View nativeID="modal parent" style={{marginTop: 101}} />
2448
+ </ScrollView>,
2449
+ );
2450
+ });
2451
+
2452
+ expect(root.takeMountingManagerLogs()).toContain(
2453
+ 'Delete {type: "View", nativeID: "modal parent"}',
2454
+ );
2455
+ });
2456
+
2457
+ test('modal is mounted in second update', () => {
2458
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2459
+
2460
+ Fantom.runTask(() => {
2461
+ root.render(
2462
+ <ScrollView style={{height: 100, width: 100}}>
2463
+ <View style={{marginTop: 101}} />
2464
+ </ScrollView>,
2465
+ );
2466
+ });
2467
+
2468
+ const nodeRef = createRef<HostInstance>();
2469
+
2470
+ // Adding modal to view hierarchy.
2471
+ Fantom.runTask(() => {
2472
+ root.render(
2473
+ <ScrollView style={{height: 100, width: 100}}>
2474
+ <View style={{marginTop: 101}}>
2475
+ <Modal ref={nodeRef}>
2476
+ <View nativeID="child" style={{height: 10, width: 10}} />
2477
+ </Modal>
2478
+ </View>
2479
+ </ScrollView>,
2480
+ );
2481
+ });
2482
+
2483
+ Fantom.runOnUIThread(() => {
2484
+ Fantom.enqueueModalSizeUpdate(nodeRef, {
2485
+ width: 100,
2486
+ height: 100,
2487
+ });
2488
+ });
2489
+ Fantom.runWorkLoop();
2490
+
2491
+ expect(root.takeMountingManagerLogs()).toContain(
2492
+ 'Create {type: "View", nativeID: "child"}',
2493
+ );
2494
+ });
2495
+ });
2496
+
2497
+ describe('culling inside ScrollView with overflow visible', () => {
2498
+ it('shows view outside of bounds', () => {
2499
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2500
+
2501
+ Fantom.runTask(() => {
2502
+ root.render(
2503
+ <ScrollView style={{height: 100, width: 100, overflow: 'visible'}}>
2504
+ <View
2505
+ nativeID={'child'}
2506
+ style={{height: 10, width: 10, marginTop: 145}} // 145 is below the viewport
2507
+ />
2508
+ </ScrollView>,
2509
+ );
2510
+ });
2511
+
2512
+ // Child is not culled because overflow:visible.
2513
+ expect(root.takeMountingManagerLogs()).toContain(
2514
+ 'Create {type: "View", nativeID: "child"}',
2515
+ );
2516
+ });
2517
+ });
2518
+
2519
+ describe('horizontal ScrollView in RTL script', () => {
2520
+ it('renders item 1', () => {
2521
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2522
+
2523
+ Fantom.runTask(() => {
2524
+ root.render(
2525
+ <ScrollView
2526
+ style={{direction: 'rtl', height: 100, width: 100}}
2527
+ horizontal={true}>
2528
+ <View nativeID={'item1'} style={{height: 90, width: 90, margin: 5}} />
2529
+ <View nativeID={'item2'} style={{height: 90, width: 90, margin: 5}} />
2530
+ </ScrollView>,
2531
+ );
2532
+ });
2533
+
2534
+ expect(root.takeMountingManagerLogs()).toEqual([
2535
+ 'Update {type: "RootView", nativeID: (root)}',
2536
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2537
+ 'Create {type: "AndroidHorizontalScrollContentView", nativeID: (N/A)}',
2538
+ 'Create {type: "View", nativeID: "item1"}',
2539
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "item1"}',
2540
+ 'Insert {type: "AndroidHorizontalScrollContentView", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2541
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2542
+ ]);
2543
+ });
2544
+
2545
+ it('takes contentOffset into account', () => {
2546
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2547
+
2548
+ Fantom.runTask(() => {
2549
+ root.render(
2550
+ <ScrollView
2551
+ style={{direction: 'rtl', height: 100, width: 100}}
2552
+ horizontal={true}
2553
+ contentOffset={{x: 100, y: 0}}>
2554
+ <View nativeID={'item1'} style={{height: 90, width: 90, margin: 5}} />
2555
+ <View nativeID={'item2'} style={{height: 90, width: 90, margin: 5}} />
2556
+ </ScrollView>,
2557
+ );
2558
+ });
2559
+
2560
+ expect(root.takeMountingManagerLogs()).toEqual([
2561
+ 'Update {type: "RootView", nativeID: (root)}',
2562
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2563
+ 'Create {type: "AndroidHorizontalScrollContentView", nativeID: (N/A)}',
2564
+ 'Create {type: "View", nativeID: "item2"}',
2565
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "item2"}',
2566
+ 'Insert {type: "AndroidHorizontalScrollContentView", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2567
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2568
+ ]);
2569
+ });
2570
+ });
2571
+
2572
+ describe('Views with no layout', () => {
2573
+ it('are not culled', () => {
2574
+ const root = Fantom.createRoot({viewportWidth: 100, viewportHeight: 100});
2575
+
2576
+ Fantom.runTask(() => {
2577
+ root.render(
2578
+ <ScrollView style={{height: 100, width: 100}}>
2579
+ <View nativeID={'viewWithLayout'} style={{height: 100, width: 100}} />
2580
+ <View style={{height: 1000, width: 100}} />
2581
+ <View
2582
+ nativeID={'culledViewWithLayout'}
2583
+ style={{height: 100, width: 100}}
2584
+ />
2585
+ <View nativeID={'viewWithoutLayout'} style={{height: 0, width: 0}} />
2586
+ </ScrollView>,
2587
+ );
2588
+ });
2589
+
2590
+ expect(root.takeMountingManagerLogs()).toEqual([
2591
+ 'Update {type: "RootView", nativeID: (root)}',
2592
+ 'Create {type: "ScrollView", nativeID: (N/A)}',
2593
+ 'Create {type: "View", nativeID: (N/A)}',
2594
+ 'Create {type: "View", nativeID: "viewWithLayout"}',
2595
+ 'Create {type: "View", nativeID: "viewWithoutLayout"}',
2596
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: "viewWithLayout"}',
2597
+ 'Insert {type: "View", parentNativeID: (N/A), index: 1, nativeID: "viewWithoutLayout"}',
2598
+ 'Insert {type: "View", parentNativeID: (N/A), index: 0, nativeID: (N/A)}',
2599
+ 'Insert {type: "ScrollView", parentNativeID: (root), index: 0, nativeID: (N/A)}',
2600
+ ]);
2601
+ });
2602
+ });