react-native-tvos 0.64.2-2 → 0.66.3-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1783) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +0 -2
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +0 -2
  3. package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +2 -2
  4. package/Libraries/Alert/Alert.js +3 -5
  5. package/Libraries/Alert/NativeAlertManager.js +0 -2
  6. package/Libraries/Alert/RCTAlertManager.android.js +0 -2
  7. package/Libraries/Alert/RCTAlertManager.ios.js +0 -2
  8. package/Libraries/Animated/Animated.js +0 -2
  9. package/Libraries/Animated/AnimatedEvent.js +4 -3
  10. package/Libraries/Animated/AnimatedImplementation.js +0 -2
  11. package/Libraries/Animated/AnimatedMock.js +1 -8
  12. package/Libraries/Animated/AnimatedWeb.js +6 -3
  13. package/Libraries/Animated/NativeAnimatedHelper.js +9 -6
  14. package/Libraries/Animated/NativeAnimatedModule.js +0 -2
  15. package/Libraries/Animated/NativeAnimatedTurboModule.js +0 -2
  16. package/Libraries/Animated/animations/Animation.js +1 -0
  17. package/Libraries/Animated/animations/DecayAnimation.js +2 -0
  18. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  19. package/Libraries/Animated/animations/TimingAnimation.js +3 -0
  20. package/Libraries/Animated/components/AnimatedFlatList.js +0 -2
  21. package/Libraries/Animated/components/AnimatedImage.js +3 -5
  22. package/Libraries/Animated/components/AnimatedScrollView.js +3 -5
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -3
  24. package/Libraries/Animated/components/AnimatedText.js +3 -5
  25. package/Libraries/Animated/components/AnimatedView.js +3 -3
  26. package/Libraries/Animated/createAnimatedComponent.js +48 -29
  27. package/Libraries/Animated/createAnimatedComponentInjection.js +48 -0
  28. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +48 -0
  29. package/Libraries/Animated/nodes/AnimatedInterpolation.js +21 -22
  30. package/Libraries/Animated/nodes/AnimatedProps.js +0 -1
  31. package/Libraries/Animated/nodes/AnimatedValue.js +24 -5
  32. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -0
  33. package/Libraries/Animated/useAnimatedProps.js +211 -0
  34. package/Libraries/AppState/AppState.js +116 -132
  35. package/Libraries/AppState/NativeAppState.js +0 -2
  36. package/Libraries/BatchedBridge/MessageQueue.js +19 -14
  37. package/Libraries/BatchedBridge/NativeModules.js +5 -1
  38. package/Libraries/Blob/BlobManager.js +0 -2
  39. package/Libraries/Blob/FileReader.js +1 -3
  40. package/Libraries/Blob/NativeBlobModule.js +0 -2
  41. package/Libraries/Blob/NativeFileReaderModule.js +0 -2
  42. package/Libraries/Blob/RCTBlobManager.h +2 -1
  43. package/Libraries/Blob/RCTBlobManager.mm +10 -12
  44. package/Libraries/Blob/RCTBlobPlugins.mm +4 -3
  45. package/Libraries/Blob/RCTFileReaderModule.mm +3 -9
  46. package/Libraries/Blob/React-RCTBlob.podspec +3 -3
  47. package/Libraries/Blob/URL.js +17 -19
  48. package/Libraries/BugReporting/BugReporting.js +2 -2
  49. package/Libraries/BugReporting/getReactData.js +2 -2
  50. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +350 -0
  51. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +4 -2
  52. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +0 -2
  53. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +35 -0
  54. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  55. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +22 -21
  56. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +0 -2
  57. package/Libraries/Components/AppleTV/TVFocusGuideView.js +24 -1
  58. package/Libraries/Components/Button.js +42 -15
  59. package/Libraries/Components/Clipboard/Clipboard.js +0 -2
  60. package/Libraries/Components/Clipboard/NativeClipboard.js +0 -2
  61. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -5
  62. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +48 -9
  63. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +1 -2
  64. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -2
  65. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -2
  66. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +0 -2
  67. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +0 -2
  68. package/Libraries/Components/Keyboard/Keyboard.js +52 -57
  69. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +17 -22
  70. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +0 -2
  71. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +3 -3
  72. package/Libraries/Components/Pressable/Pressable.js +22 -8
  73. package/Libraries/Components/Pressable/useAndroidRippleForView.js +18 -17
  74. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +15 -13
  75. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +0 -2
  76. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +4 -5
  77. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +2 -5
  78. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -2
  79. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -12
  80. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +9 -3
  81. package/Libraries/Components/RefreshControl/RefreshControl.js +7 -26
  82. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  83. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +0 -2
  84. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -1
  85. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +9 -26
  86. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +31 -45
  87. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +12 -26
  88. package/Libraries/Components/ScrollView/ScrollView.js +786 -232
  89. package/Libraries/Components/ScrollView/ScrollViewContext.js +3 -3
  90. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +75 -21
  91. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +5 -12
  92. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +256 -242
  93. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +13 -5
  94. package/Libraries/Components/ScrollView/processDecelerationRate.js +0 -2
  95. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -2
  96. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +4 -5
  97. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +17 -11
  98. package/Libraries/Components/Slider/Slider.js +20 -9
  99. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -2
  100. package/Libraries/Components/Sound/NativeSoundManager.js +0 -2
  101. package/Libraries/Components/Sound/SoundManager.js +0 -1
  102. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +0 -2
  103. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +0 -2
  104. package/Libraries/Components/StatusBar/StatusBar.js +10 -21
  105. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +0 -2
  106. package/Libraries/Components/Switch/Switch.js +102 -122
  107. package/Libraries/Components/Switch/SwitchNativeComponent.js +0 -2
  108. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +14 -20
  109. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +7 -5
  110. package/Libraries/Components/TextInput/InputAccessoryView.js +6 -8
  111. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +0 -2
  112. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +6 -5
  113. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -16
  114. package/Libraries/Components/TextInput/{RCTSinglelineTextInputViewConfig.js → RCTTextInputViewConfig.js} +3 -5
  115. package/Libraries/Components/TextInput/TextInput.js +289 -227
  116. package/Libraries/Components/TextInput/TextInputNativeCommands.js +0 -2
  117. package/Libraries/Components/TextInput/TextInputState.js +1 -3
  118. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +0 -2
  119. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +0 -1
  120. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -2
  121. package/Libraries/Components/Touchable/PooledClass.js +1 -2
  122. package/Libraries/Components/Touchable/Position.js +1 -2
  123. package/Libraries/Components/Touchable/Touchable.js +30 -59
  124. package/Libraries/Components/Touchable/TouchableBounce.js +0 -2
  125. package/Libraries/Components/Touchable/TouchableHighlight.js +23 -7
  126. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +16 -5
  127. package/Libraries/Components/Touchable/TouchableOpacity.js +19 -8
  128. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +13 -4
  129. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +1 -2
  130. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +0 -2
  131. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +2 -3
  132. package/Libraries/Components/View/ReactNativeStyleAttributes.js +133 -68
  133. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -2
  134. package/Libraries/Components/View/ReactNativeViewViewConfig.js +13 -11
  135. package/Libraries/Components/View/View.js +2 -4
  136. package/Libraries/Components/View/ViewAccessibility.js +3 -0
  137. package/Libraries/Components/View/ViewNativeComponent.js +17 -62
  138. package/Libraries/Core/Devtools/getDevServer.js +0 -2
  139. package/Libraries/Core/Devtools/parseErrorStack.js +0 -9
  140. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  141. package/Libraries/Core/ExceptionsManager.js +48 -40
  142. package/Libraries/Core/ExtendedError.js +19 -0
  143. package/Libraries/Core/InitializeCore.js +1 -0
  144. package/Libraries/Core/NativeExceptionsManager.js +0 -2
  145. package/Libraries/Core/ReactFiberErrorDialog.js +44 -34
  146. package/Libraries/Core/ReactNativeVersion.js +2 -2
  147. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  148. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +0 -2
  149. package/Libraries/Core/Timers/JSTimers.js +41 -58
  150. package/Libraries/Core/Timers/NativeTiming.js +0 -2
  151. package/Libraries/Core/Timers/immediateShim.js +67 -0
  152. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  153. package/Libraries/Core/polyfillPromise.js +1 -1
  154. package/Libraries/Core/setUpDeveloperTools.js +53 -58
  155. package/Libraries/Core/setUpReactDevTools.js +18 -1
  156. package/Libraries/Core/setUpReactRefresh.js +3 -1
  157. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  158. package/Libraries/Core/setUpTimers.js +64 -5
  159. package/Libraries/Core/setUpXHR.js +4 -4
  160. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.android.js +131 -0
  161. package/Libraries/DeprecatedPropTypes/{DeprecatedImagePropType.js → DeprecatedImagePropType.ios.js} +0 -0
  162. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +5 -5
  163. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +2 -0
  164. package/Libraries/EventEmitter/NativeEventEmitter.js +100 -47
  165. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -70
  166. package/Libraries/EventEmitter/RCTEventEmitter.js +5 -1
  167. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +0 -2
  168. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +31 -8
  169. package/Libraries/FBLazyVector/BUCK +5 -1
  170. package/Libraries/FBLazyVector/FBLazyVector.podspec +2 -2
  171. package/Libraries/HeapCapture/HeapCapture.js +0 -2
  172. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -2
  173. package/Libraries/Image/AssetSourceResolver.js +8 -16
  174. package/Libraries/Image/AssetUtils.js +48 -0
  175. package/Libraries/Image/Image.android.js +43 -132
  176. package/Libraries/Image/Image.ios.js +58 -29
  177. package/Libraries/Image/ImageAnalyticsTagContext.js +4 -2
  178. package/Libraries/Image/ImageBackground.js +2 -2
  179. package/Libraries/Image/ImageInjection.js +28 -0
  180. package/Libraries/Image/ImagePickerIOS.js +0 -2
  181. package/Libraries/Image/ImageSource.js +57 -14
  182. package/Libraries/Image/ImageViewNativeComponent.js +70 -27
  183. package/Libraries/Image/NativeImageEditor.js +0 -2
  184. package/Libraries/Image/NativeImageLoaderAndroid.js +0 -2
  185. package/Libraries/Image/NativeImageLoaderIOS.js +6 -2
  186. package/Libraries/Image/NativeImagePickerIOS.js +0 -2
  187. package/Libraries/Image/NativeImageStoreAndroid.js +0 -2
  188. package/Libraries/Image/NativeImageStoreIOS.js +0 -2
  189. package/Libraries/Image/RCTAnimatedImage.m +6 -3
  190. package/Libraries/Image/RCTGIFImageDecoder.mm +6 -0
  191. package/Libraries/Image/RCTImageBlurUtils.m +17 -11
  192. package/Libraries/Image/RCTImageEditingManager.mm +4 -4
  193. package/Libraries/Image/RCTImageLoader.h +2 -2
  194. package/Libraries/Image/RCTImageLoader.mm +31 -30
  195. package/Libraries/Image/RCTImageLoaderWithAttributionProtocol.h +0 -5
  196. package/Libraries/Image/RCTImagePlugins.mm +4 -3
  197. package/Libraries/Image/RCTImageStoreManager.mm +5 -5
  198. package/Libraries/Image/RCTImageURLLoaderWithAttribution.h +1 -0
  199. package/Libraries/Image/RCTLocalAssetImageLoader.mm +5 -0
  200. package/Libraries/Image/React-RCTImage.podspec +3 -3
  201. package/Libraries/Image/TextInlineImageNativeComponent.js +84 -2
  202. package/Libraries/Image/nativeImageSource.js +0 -2
  203. package/Libraries/Image/resolveAssetSource.js +2 -1
  204. package/Libraries/Inspector/ElementProperties.js +1 -1
  205. package/Libraries/Inspector/Inspector.js +13 -4
  206. package/Libraries/Inspector/InspectorPanel.js +1 -1
  207. package/Libraries/Interaction/FrameRateLogger.js +0 -2
  208. package/Libraries/Interaction/InteractionManager.js +7 -6
  209. package/Libraries/Interaction/InteractionMixin.js +1 -2
  210. package/Libraries/Interaction/PanResponder.js +1 -1
  211. package/Libraries/LayoutAnimation/LayoutAnimation.js +53 -17
  212. package/Libraries/Linking/Linking.js +19 -10
  213. package/Libraries/Linking/NativeIntentAndroid.js +0 -2
  214. package/Libraries/Linking/NativeLinkingManager.js +0 -2
  215. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +4 -3
  216. package/Libraries/LinkingIOS/React-RCTLinking.podspec +3 -3
  217. package/Libraries/Lists/CellRenderMask.js +145 -0
  218. package/Libraries/Lists/FillRateHelper.js +1 -1
  219. package/Libraries/Lists/FlatList.js +80 -52
  220. package/Libraries/Lists/SectionList.js +20 -23
  221. package/Libraries/Lists/SectionListModern.js +249 -0
  222. package/Libraries/Lists/ViewabilityHelper.js +9 -9
  223. package/Libraries/Lists/VirtualizeUtils.js +18 -20
  224. package/Libraries/Lists/VirtualizedList.js +190 -132
  225. package/Libraries/Lists/VirtualizedListContext.js +3 -2
  226. package/Libraries/Lists/VirtualizedSectionList.js +247 -209
  227. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +6 -6
  228. package/Libraries/LogBox/Data/LogBoxData.js +21 -19
  229. package/Libraries/LogBox/Data/LogBoxLog.js +0 -2
  230. package/Libraries/LogBox/Data/LogBoxSymbolication.js +0 -2
  231. package/Libraries/LogBox/Data/parseLogBoxLog.js +0 -2
  232. package/Libraries/LogBox/LogBox.js +114 -49
  233. package/Libraries/LogBox/LogBoxInspectorContainer.js +0 -2
  234. package/Libraries/LogBox/LogBoxNotificationContainer.js +0 -2
  235. package/Libraries/LogBox/UI/LogBoxButton.js +0 -2
  236. package/Libraries/LogBox/UI/LogBoxInspector.js +0 -2
  237. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +0 -2
  238. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +0 -2
  239. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +0 -2
  240. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +0 -2
  241. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +0 -2
  242. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +0 -2
  243. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +4 -5
  244. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +0 -2
  245. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -3
  246. package/Libraries/LogBox/UI/LogBoxMessage.js +0 -2
  247. package/Libraries/LogBox/UI/LogBoxNotification.js +3 -4
  248. package/Libraries/LogBox/UI/LogBoxStyle.js +0 -2
  249. package/Libraries/Modal/Modal.js +46 -21
  250. package/Libraries/{Components/Picker/PickerIOS.android.js → Modal/ModalInjection.js} +5 -4
  251. package/Libraries/Modal/NativeModalManager.js +0 -2
  252. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +8 -4
  253. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +4 -3
  254. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +7 -2
  255. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +1 -1
  256. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m +1 -1
  257. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +2 -1
  258. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +31 -23
  259. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +4 -4
  260. package/Libraries/NativeComponent/NativeComponentRegistry.js +157 -0
  261. package/Libraries/NativeComponent/ViewConfig.js +50 -0
  262. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -2
  263. package/Libraries/NativeModules/specs/NativeDevMenu.js +0 -2
  264. package/Libraries/NativeModules/specs/NativeDevSettings.js +0 -2
  265. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +0 -2
  266. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +0 -2
  267. package/Libraries/NativeModules/specs/NativeLogBox.js +0 -2
  268. package/Libraries/NativeModules/specs/NativeRedBox.js +0 -2
  269. package/Libraries/NativeModules/specs/NativeSourceCode.js +0 -2
  270. package/Libraries/Network/NativeNetworkingAndroid.js +0 -2
  271. package/Libraries/Network/NativeNetworkingIOS.js +0 -2
  272. package/Libraries/Network/RCTDataRequestHandler.mm +6 -0
  273. package/Libraries/Network/RCTFileRequestHandler.mm +6 -0
  274. package/Libraries/Network/RCTHTTPRequestHandler.h +5 -0
  275. package/Libraries/Network/RCTHTTPRequestHandler.mm +27 -9
  276. package/Libraries/Network/RCTNetworkPlugins.mm +4 -3
  277. package/Libraries/Network/RCTNetworking.android.js +8 -4
  278. package/Libraries/Network/RCTNetworking.h +1 -1
  279. package/Libraries/Network/RCTNetworking.ios.js +63 -20
  280. package/Libraries/Network/RCTNetworking.mm +13 -3
  281. package/Libraries/Network/React-RCTNetwork.podspec +3 -3
  282. package/Libraries/Network/XMLHttpRequest.js +5 -3
  283. package/Libraries/Network/convertRequestBody.js +2 -1
  284. package/Libraries/NewAppScreen/components/Colors.js +0 -2
  285. package/Libraries/NewAppScreen/components/Header.js +1 -1
  286. package/Libraries/NewAppScreen/components/HermesBadge.js +7 -4
  287. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -1
  288. package/Libraries/NewAppScreen/index.js +0 -2
  289. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -2
  290. package/Libraries/Performance/QuickPerformanceLogger.js +4 -4
  291. package/Libraries/Performance/Systrace.js +3 -5
  292. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -3
  293. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +10 -5
  294. package/Libraries/Pressability/HoverState.js +0 -2
  295. package/Libraries/Pressability/Pressability.js +24 -22
  296. package/Libraries/Pressability/PressabilityDebug.js +9 -4
  297. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +47 -0
  298. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  299. package/Libraries/Pressability/usePressability.js +0 -2
  300. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +3 -0
  301. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +43 -4
  302. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +13 -0
  303. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +4 -3
  304. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +3 -3
  305. package/Libraries/RCTRequired/BUCK +4 -1
  306. package/Libraries/RCTRequired/RCTRequired.podspec +2 -2
  307. package/Libraries/ReactNative/AppContainer.js +3 -25
  308. package/Libraries/ReactNative/AppRegistry.js +48 -7
  309. package/Libraries/ReactNative/DisplayMode.js +32 -0
  310. package/Libraries/ReactNative/DummyUIManager.js +9 -1
  311. package/Libraries/ReactNative/FabricUIManager.js +6 -5
  312. package/Libraries/ReactNative/HeadlessJsTaskError.js +0 -2
  313. package/Libraries/ReactNative/I18nManager.js +23 -9
  314. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +0 -2
  315. package/Libraries/ReactNative/NativeI18nManager.js +1 -2
  316. package/Libraries/ReactNative/NativeUIManager.js +2 -3
  317. package/Libraries/ReactNative/PaperUIManager.js +69 -42
  318. package/Libraries/ReactNative/RootTag.js +6 -4
  319. package/Libraries/ReactNative/UIManager.js +7 -4
  320. package/Libraries/{Text/TextInjection.js → ReactNative/UIManagerInjection.js} +2 -6
  321. package/Libraries/ReactNative/UIManagerProperties.js +1 -0
  322. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +32 -0
  323. package/Libraries/ReactNative/getNativeComponentAttributes.js +2 -1
  324. package/Libraries/ReactNative/renderApplication.js +24 -6
  325. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -4
  326. package/Libraries/Reliability/UserFlow.js +26 -4
  327. package/Libraries/Renderer/REVISION +1 -1
  328. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +8933 -7603
  329. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5810 -4905
  330. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2893 -2551
  331. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2114 -1953
  332. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +3309 -2815
  333. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2576 -2266
  334. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +9064 -7879
  335. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5675 -4840
  336. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +2701 -2490
  337. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2279 -2138
  338. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +3068 -2709
  339. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +2574 -2282
  340. package/Libraries/Renderer/shims/ReactFabric.js +5 -3
  341. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -0
  342. package/Libraries/Renderer/shims/ReactNative.js +3 -0
  343. package/Libraries/Renderer/shims/ReactNativeTypes.js +104 -63
  344. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -11
  345. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +5 -3
  346. package/Libraries/Settings/NativeSettingsManager.js +0 -2
  347. package/Libraries/Settings/RCTSettingsManager.mm +2 -2
  348. package/Libraries/Settings/RCTSettingsPlugins.mm +4 -3
  349. package/Libraries/Settings/React-RCTSettings.podspec +3 -3
  350. package/Libraries/Settings/Settings.ios.js +4 -2
  351. package/Libraries/Share/NativeShareModule.js +0 -2
  352. package/Libraries/Share/Share.js +0 -2
  353. package/Libraries/Storage/AsyncStorage.js +68 -49
  354. package/Libraries/Storage/NativeAsyncLocalStorage.js +10 -9
  355. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +10 -9
  356. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +0 -2
  357. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +16 -3
  358. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +8 -3
  359. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +2 -2
  360. package/Libraries/StyleSheet/Rect.js +0 -2
  361. package/Libraries/StyleSheet/StyleSheet.js +3 -5
  362. package/Libraries/StyleSheet/StyleSheetTypes.js +5 -0
  363. package/Libraries/StyleSheet/flattenStyle.js +5 -7
  364. package/Libraries/StyleSheet/normalizeColor.js +0 -2
  365. package/Libraries/StyleSheet/processColorArray.js +16 -6
  366. package/Libraries/StyleSheet/processTransform.js +6 -6
  367. package/Libraries/StyleSheet/splitLayoutProps.js +50 -48
  368. package/Libraries/SurfaceHostingComponent/RCTSurfaceHostingComponent.mm +1 -1
  369. package/Libraries/Text/React-RCTText.podspec +2 -2
  370. package/Libraries/Text/Text.js +187 -235
  371. package/Libraries/Text/TextAncestor.js +7 -1
  372. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +0 -2
  373. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +12 -2
  374. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +8 -0
  375. package/Libraries/Text/TextNativeComponent.js +4 -3
  376. package/Libraries/Text/TextProps.js +6 -0
  377. package/Libraries/TurboModule/RCTExport.js +1 -1
  378. package/Libraries/TurboModule/TurboModuleRegistry.js +4 -27
  379. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +2 -2
  380. package/Libraries/TypeSafety/RCTTypeSafety.podspec +3 -3
  381. package/Libraries/Types/CodegenTypes.js +2 -1
  382. package/Libraries/Types/CoreEventTypes.js +1 -3
  383. package/Libraries/{Components/Picker/PickerAndroid.ios.js → Types/RootTagTypes.js} +2 -3
  384. package/Libraries/UTFSequence.js +1 -1
  385. package/Libraries/Utilities/Appearance.js +22 -8
  386. package/Libraries/Utilities/BackHandler.android.js +0 -2
  387. package/Libraries/Utilities/DebugEnvironment.js +1 -3
  388. package/Libraries/Utilities/DevSettings.js +51 -56
  389. package/Libraries/Utilities/DeviceInfo.js +0 -2
  390. package/Libraries/Utilities/Dimensions.js +21 -20
  391. package/Libraries/Utilities/FeatureDetection.js +31 -0
  392. package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -2
  393. package/Libraries/Utilities/HMRClient.js +15 -10
  394. package/Libraries/Utilities/JSDevSupportModule.js +0 -2
  395. package/Libraries/Utilities/LoadingView.android.js +0 -2
  396. package/Libraries/Utilities/LoadingView.ios.js +0 -2
  397. package/Libraries/Utilities/MatrixMath.js +1 -1
  398. package/Libraries/Utilities/NativeAppearance.js +0 -2
  399. package/Libraries/Utilities/NativeDevLoadingView.js +0 -2
  400. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -2
  401. package/Libraries/Utilities/NativeDeviceInfo.js +1 -3
  402. package/Libraries/Utilities/NativeJSDevSupport.js +0 -2
  403. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +0 -2
  404. package/Libraries/Utilities/NativePlatformConstantsIOS.js +0 -2
  405. package/Libraries/Utilities/PerformanceLoggerContext.js +11 -4
  406. package/Libraries/Utilities/Platform.android.js +6 -5
  407. package/Libraries/Utilities/Platform.ios.js +1 -2
  408. package/Libraries/Utilities/ReactNativeTestTools.js +12 -19
  409. package/Libraries/Utilities/codegenNativeCommands.js +1 -3
  410. package/Libraries/Utilities/codegenNativeComponent.js +0 -2
  411. package/Libraries/Utilities/createPerformanceLogger.js +0 -2
  412. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -0
  413. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  414. package/Libraries/Utilities/deprecatedPropType.js +3 -5
  415. package/Libraries/Utilities/stringifySafe.js +1 -3
  416. package/Libraries/Utilities/useColorScheme.js +4 -4
  417. package/Libraries/Utilities/useMergeRefs.js +44 -0
  418. package/Libraries/Utilities/useRefEffect.js +45 -0
  419. package/Libraries/Utilities/useWindowDimensions.js +9 -6
  420. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +22 -28
  421. package/Libraries/Vibration/NativeVibration.js +0 -2
  422. package/Libraries/Vibration/RCTVibrationPlugins.mm +4 -3
  423. package/Libraries/Vibration/React-RCTVibration.podspec +3 -3
  424. package/Libraries/Vibration/Vibration.js +0 -2
  425. package/Libraries/WebSocket/NativeWebSocketModule.js +0 -2
  426. package/Libraries/WebSocket/WebSocket.js +27 -14
  427. package/Libraries/WebSocket/WebSocketInterceptor.js +6 -3
  428. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -0
  429. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -2
  430. package/Libraries/promiseRejectionTrackingOptions.js +2 -2
  431. package/Libraries/vendor/emitter/EventEmitter.js +37 -4
  432. package/Libraries/vendor/emitter/EventSubscription.js +19 -0
  433. package/Libraries/vendor/emitter/_EmitterSubscription.js +16 -15
  434. package/Libraries/vendor/emitter/_EventEmitter.js +51 -41
  435. package/Libraries/vendor/emitter/_EventSubscription.js +11 -7
  436. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +21 -14
  437. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +125 -0
  438. package/README.md +7 -1
  439. package/React/AccessibilityResources/en.lproj/Localizable.strings +1 -1
  440. package/React/Base/RCTAssert.h +35 -18
  441. package/React/Base/RCTAssert.m +52 -0
  442. package/React/Base/RCTBridge.h +15 -3
  443. package/React/Base/RCTBridge.m +14 -5
  444. package/React/Base/RCTBridgeModule.h +104 -0
  445. package/React/Base/RCTBundleManager.m +78 -0
  446. package/React/Base/RCTBundleURLProvider.h +35 -9
  447. package/React/Base/RCTBundleURLProvider.mm +87 -24
  448. package/React/Base/RCTCallableJSModules.m +47 -0
  449. package/React/Base/RCTConstants.h +9 -10
  450. package/React/Base/RCTConstants.m +18 -18
  451. package/React/Base/RCTConvert.m +31 -7
  452. package/React/Base/RCTCxxConvert.h +1 -1
  453. package/React/Base/RCTDefines.h +10 -0
  454. package/React/Base/RCTEventDispatcherProtocol.h +1 -2
  455. package/React/{Views/RCTPickerManager.h → Base/RCTInitializing.h} +4 -2
  456. package/React/Base/RCTJavaScriptLoader.mm +1 -0
  457. package/React/Base/RCTModuleData.h +20 -3
  458. package/React/Base/RCTModuleData.mm +121 -3
  459. package/React/Base/RCTModuleRegistry.m +48 -0
  460. package/React/Base/RCTMultipartStreamReader.m +0 -2
  461. package/React/Base/RCTRootView.h +10 -1
  462. package/React/Base/RCTRootView.m +15 -37
  463. package/React/Base/RCTTVRemoteHandler.h +5 -2
  464. package/React/Base/RCTTVRemoteHandler.m +173 -70
  465. package/React/Base/RCTTouchHandler.m +12 -1
  466. package/React/Base/RCTUtils.m +6 -2
  467. package/React/Base/RCTVersion.m +2 -2
  468. package/React/Base/RCTViewRegistry.m +45 -0
  469. package/React/Base/Surface/RCTSurfaceStage.h +6 -11
  470. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +1 -0
  471. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +11 -1
  472. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -0
  473. package/React/CoreModules/BUCK +6 -5
  474. package/React/CoreModules/CoreModulesPlugins.mm +4 -3
  475. package/React/CoreModules/RCTAccessibilityManager.mm +17 -10
  476. package/React/CoreModules/RCTActionSheetManager.mm +17 -13
  477. package/React/CoreModules/RCTAlertController.h +2 -1
  478. package/React/CoreModules/RCTAlertController.m +5 -0
  479. package/React/CoreModules/RCTAlertManager.mm +3 -0
  480. package/React/CoreModules/RCTAppearance.mm +3 -1
  481. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  482. package/React/CoreModules/RCTDevLoadingView.mm +20 -23
  483. package/React/CoreModules/RCTDevMenu.h +0 -5
  484. package/React/CoreModules/RCTDevMenu.mm +43 -71
  485. package/React/CoreModules/RCTDevSettings.h +12 -2
  486. package/React/CoreModules/RCTDevSettings.mm +100 -56
  487. package/React/CoreModules/RCTDevSplitBundleLoader.mm +2 -7
  488. package/React/CoreModules/RCTDeviceInfo.mm +26 -22
  489. package/React/CoreModules/RCTEventDispatcher.h +2 -1
  490. package/React/CoreModules/RCTEventDispatcher.mm +18 -25
  491. package/React/CoreModules/RCTExceptionsManager.mm +7 -23
  492. package/React/CoreModules/RCTKeyboardObserver.mm +1 -1
  493. package/React/CoreModules/RCTLogBox.mm +15 -10
  494. package/React/CoreModules/RCTPerfMonitor.mm +11 -5
  495. package/React/CoreModules/RCTRedBox.mm +5 -8
  496. package/React/CoreModules/RCTSourceCode.mm +2 -1
  497. package/React/CoreModules/RCTTVNavigationEventEmitter.h +7 -0
  498. package/React/CoreModules/RCTTiming.h +2 -1
  499. package/React/CoreModules/RCTTiming.mm +1 -3
  500. package/React/CoreModules/RCTWebSocketExecutor.mm +6 -0
  501. package/React/CoreModules/React-CoreModules.podspec +3 -3
  502. package/React/CxxBridge/RCTCxxBridge.mm +99 -8
  503. package/React/CxxModule/RCTNativeModule.mm +3 -1
  504. package/React/DevSupport/RCTPackagerConnection.mm +12 -5
  505. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +21 -0
  506. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +12 -1
  507. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +3 -3
  508. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.h +2 -1
  509. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +28 -36
  510. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +8 -7
  511. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +13 -9
  512. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +1 -3
  513. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +7 -0
  514. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.h +3 -1
  515. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +71 -26
  516. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +0 -1
  517. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +0 -1
  518. package/React/Fabric/Mounting/ComponentViews/SafeAreaView/RCTSafeAreaViewComponentView.mm +34 -19
  519. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.h +6 -0
  520. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +24 -3
  521. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +186 -99
  522. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h +23 -0
  523. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm +22 -0
  524. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm +14 -9
  525. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +118 -30
  526. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +109 -28
  527. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +48 -2
  528. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +143 -19
  529. package/React/Fabric/Mounting/RCTComponentViewFactory.h +10 -2
  530. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +83 -46
  531. package/React/Fabric/Mounting/RCTComponentViewProtocol.h +3 -0
  532. package/React/Fabric/Mounting/RCTComponentViewRegistry.mm +1 -1
  533. package/React/Fabric/Mounting/RCTMountingManager.h +28 -1
  534. package/React/Fabric/Mounting/RCTMountingManager.mm +71 -3
  535. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +4 -0
  536. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +30 -4
  537. package/React/Fabric/RCTConversions.h +20 -16
  538. package/React/Fabric/RCTScheduler.h +11 -16
  539. package/React/Fabric/RCTScheduler.mm +29 -46
  540. package/React/Fabric/RCTSurfacePresenter.h +8 -16
  541. package/React/Fabric/RCTSurfacePresenter.mm +62 -165
  542. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +4 -2
  543. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +1 -1
  544. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  545. package/React/Fabric/RCTSurfaceTouchHandler.mm +39 -7
  546. package/React/Fabric/Surface/RCTFabricSurface.h +9 -6
  547. package/React/Fabric/Surface/RCTFabricSurface.mm +139 -127
  548. package/React/Modules/RCTEventEmitter.h +3 -2
  549. package/React/Modules/RCTEventEmitter.m +8 -11
  550. package/React/Modules/RCTI18nUtil.h +14 -6
  551. package/React/Modules/RCTI18nUtil.m +1 -47
  552. package/React/Modules/RCTTVMenuBridge.m +3 -0
  553. package/React/Modules/RCTUIManager.m +19 -9
  554. package/React/Profiler/RCTProfile.m +9 -8
  555. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  556. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  557. package/React/React-RCTFabric.podspec +5 -5
  558. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +72 -0
  559. package/React/Views/RCTBorderDrawing.m +28 -25
  560. package/React/Views/RCTComponentData.h +10 -1
  561. package/React/Views/RCTComponentData.m +23 -8
  562. package/React/Views/RCTConvert+CoreLocation.m +2 -2
  563. package/React/Views/RCTDatePickerManager.m +33 -0
  564. package/React/Views/RCTLayout.m +25 -21
  565. package/React/Views/RCTModalHostView.h +4 -1
  566. package/React/Views/RCTModalHostView.m +58 -31
  567. package/React/Views/RCTModalHostViewManager.m +4 -3
  568. package/React/Views/RCTShadowView+Layout.m +15 -12
  569. package/React/Views/RCTShadowView.m +3 -2
  570. package/React/Views/RCTTVFocusGuideView.m +1 -1
  571. package/React/Views/RCTView.h +7 -7
  572. package/React/Views/RCTView.m +31 -43
  573. package/React/Views/RCTViewManager.m +19 -2
  574. package/React/Views/RCTWeakViewHolder.h +19 -0
  575. package/React/Views/RefreshControl/RCTRefreshControl.m +22 -1
  576. package/React/Views/RefreshControl/RCTRefreshControlManager.m +1 -0
  577. package/React/Views/ScrollView/RCTScrollContentView.m +1 -1
  578. package/React/Views/ScrollView/RCTScrollView.h +1 -7
  579. package/React/Views/ScrollView/RCTScrollView.m +17 -63
  580. package/React/Views/ScrollView/RCTScrollViewManager.m +3 -0
  581. package/React/third-party.xcconfig +1 -1
  582. package/React-Core.podspec +4 -15
  583. package/React.podspec +2 -2
  584. package/ReactAndroid/Android-prebuilt.mk +82 -3
  585. package/ReactAndroid/README.md +2 -2
  586. package/ReactAndroid/build.gradle +145 -34
  587. package/ReactAndroid/gradle.properties +7 -5
  588. package/ReactAndroid/proguard-rules.pro +1 -7
  589. package/ReactAndroid/src/androidTest/buck-runner/BUCK +1 -0
  590. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +2 -1
  591. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  592. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +2 -1
  593. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/ReactIdleDetectionUtil.java +1 -1
  594. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/network/BUCK +1 -0
  595. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +6 -5
  596. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +1 -1
  597. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/TextInputTestCase.java +1 -2
  598. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +6 -5
  599. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  600. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -5
  601. package/ReactAndroid/src/androidTest/js/UIManagerTestModule.js +7 -6
  602. package/ReactAndroid/src/main/java/com/facebook/BUCK +1 -0
  603. package/ReactAndroid/src/main/java/com/facebook/debug/debugoverlay/model/BUCK +1 -0
  604. package/ReactAndroid/src/main/java/com/facebook/debug/holder/BUCK +1 -0
  605. package/ReactAndroid/src/main/java/com/facebook/debug/tags/BUCK +1 -0
  606. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  607. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -0
  608. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  609. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/BUCK +2 -0
  610. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  611. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  612. package/ReactAndroid/src/main/java/com/facebook/hermes/unicode/BUCK +1 -0
  613. package/ReactAndroid/src/main/java/com/facebook/perftest/BUCK +1 -0
  614. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/BUCK +3 -2
  615. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/proguard_annotations.pro +1 -0
  616. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +4 -1
  617. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +3 -2
  618. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
  619. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +10 -3
  620. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  621. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +145 -67
  622. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +9 -1
  623. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +8 -1
  624. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule/core/ReactPackageTurboModuleManagerDelegate.java → ReactPackageTurboModuleManagerDelegate.java} +18 -6
  625. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +92 -42
  626. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +2 -1
  627. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +10 -2
  628. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +66 -33
  629. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.java +4 -0
  630. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BUCK +2 -0
  631. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  632. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +7 -5
  633. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +7 -3
  634. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.java +4 -1
  635. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java +4 -0
  636. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  637. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +1 -1
  638. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +8 -1
  639. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +26 -0
  640. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +46 -8
  641. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +2 -3
  642. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +13 -3
  643. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  644. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.java +52 -2
  645. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  646. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +37 -2
  647. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +3 -0
  648. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.java +1 -0
  649. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/BUCK +29 -0
  650. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.java +347 -0
  651. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBufferSoLoader.java +33 -0
  652. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/Android.mk +39 -0
  653. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +34 -0
  654. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/OnLoad.cpp +15 -0
  655. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/ReadableMapBuffer.cpp +76 -0
  656. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/ReadableMapBuffer.h +51 -0
  657. package/ReactAndroid/src/main/java/com/facebook/react/common/network/BUCK +1 -0
  658. package/ReactAndroid/src/main/java/com/facebook/react/config/BUCK +3 -1
  659. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +50 -38
  660. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +3 -1
  661. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +275 -0
  662. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevLoadingViewController.java +2 -2
  663. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +17 -60
  664. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +176 -344
  665. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +8 -8
  666. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +13 -1
  667. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +1 -1
  668. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  669. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{ReactInstanceManagerDevHelper.java → ReactInstanceDevHelper.java} +3 -2
  670. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxHandler.java +2 -16
  671. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/BundleLoadCallback.java +12 -0
  672. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +6 -1
  673. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/ErrorType.java +23 -0
  674. package/ReactAndroid/src/main/java/com/facebook/react/fabric/BUCK +2 -1
  675. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -1
  676. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  677. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +17 -71
  678. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +466 -616
  679. package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +37 -24
  680. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandler.java +50 -0
  681. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.java +131 -0
  682. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +36 -1
  683. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +27 -7
  684. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +4 -5
  685. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +4 -5
  686. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +300 -615
  687. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +34 -13
  688. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp +3 -6
  689. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +22 -2
  690. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +4 -0
  691. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/OnLoad.cpp +2 -0
  692. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.cpp +15 -28
  693. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.h +3 -1
  694. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/SurfaceHandlerBinding.cpp +122 -0
  695. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/SurfaceHandlerBinding.h +68 -0
  696. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +406 -0
  697. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +271 -658
  698. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +1008 -0
  699. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchIntCommandMountItem.java +9 -2
  700. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchStringCommandMountItem.java +9 -2
  701. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +39 -34
  702. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItem.java +4 -0
  703. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +21 -23
  704. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +11 -4
  705. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  706. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +1 -0
  707. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/BUCK +1 -0
  708. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +3 -3
  709. package/ReactAndroid/src/main/java/com/facebook/react/module/annotations/BUCK +1 -0
  710. package/ReactAndroid/src/main/java/com/facebook/react/module/model/BUCK +1 -0
  711. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java +21 -4
  712. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +2 -1
  713. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
  714. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +2 -1
  715. package/ReactAndroid/src/main/java/com/facebook/react/modules/appregistry/BUCK +1 -0
  716. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.java +11 -1
  717. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +2 -1
  718. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +2 -1
  719. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +35 -7
  720. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  721. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +1 -1
  722. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BlobCollector.cpp +1 -0
  723. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +2 -1
  724. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +2 -1
  725. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +1 -0
  726. package/ReactAndroid/src/main/java/com/facebook/react/modules/common/BUCK +1 -0
  727. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +2 -1
  728. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactAndroidHWInputDeviceHelper.java +138 -0
  729. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +5 -2
  730. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +2 -1
  731. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +19 -13
  732. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java +1 -1
  733. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +3 -1
  734. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +2 -1
  735. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +19 -8
  736. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +2 -1
  737. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +12 -4
  738. package/ReactAndroid/src/main/java/com/facebook/react/modules/fabric/BUCK +1 -0
  739. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/BUCK +1 -0
  740. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +10 -0
  741. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +3 -1
  742. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +12 -12
  743. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +2 -1
  744. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +2 -1
  745. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +2 -1
  746. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +1 -1
  747. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java +1 -18
  748. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +2 -1
  749. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +2 -1
  750. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +2 -1
  751. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +2 -1
  752. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java +1 -1
  753. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +2 -1
  754. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +4 -2
  755. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  756. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +2 -1
  757. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +2 -1
  758. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +2 -1
  759. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/BUCK +1 -0
  760. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +3 -1
  761. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/BUCK +1 -0
  762. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/Android.mk +1 -1
  763. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +1 -1
  764. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +20 -0
  765. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +39 -0
  766. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +34 -0
  767. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +35 -0
  768. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +15 -0
  769. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +46 -0
  770. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +40 -0
  771. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +1 -1
  772. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -4
  773. package/ReactAndroid/src/main/java/com/facebook/react/surface/BUCK +1 -0
  774. package/ReactAndroid/src/main/java/com/facebook/react/touch/BUCK +1 -0
  775. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/BUCK +2 -1
  776. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +11 -10
  777. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManagerDelegate.java +3 -0
  778. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModulePerfLogger.java +2 -0
  779. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/BUCK +1 -0
  780. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.java +4 -4
  781. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk +4 -4
  782. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +3 -2
  783. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +115 -86
  784. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +14 -5
  785. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BUCK +6 -1
  786. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +15 -1
  787. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolver.java +17 -0
  788. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolverManager.java +41 -0
  789. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  790. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +5 -19
  791. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +27 -0
  792. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +4 -13
  793. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +10 -13
  794. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/OnLayoutEvent.java +17 -6
  795. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  796. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +16 -10
  797. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingProhibitedView.java +26 -0
  798. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroupHelper.java +5 -49
  799. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  800. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRoot.java +14 -0
  801. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.java +18 -0
  802. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/StateWrapper.java +24 -4
  803. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +35 -7
  804. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +101 -68
  805. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +46 -5
  806. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementationProvider.java +35 -13
  807. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +69 -17
  808. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +55 -54
  809. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +1 -2
  810. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +13 -6
  811. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +15 -13
  812. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +2 -2
  813. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.java +26 -0
  814. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  815. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/BUCK +1 -0
  816. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/BUCK +1 -1
  817. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.java +3 -0
  818. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.java +8 -3
  819. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +134 -6
  820. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +3 -0
  821. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +8 -3
  822. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +236 -0
  823. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +10 -0
  824. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +32 -0
  825. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +80 -25
  826. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +66 -5
  827. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +7 -4
  828. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/interfaces/BUCK +21 -0
  829. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{BaseViewManagerDelegate.java → interfaces/BaseViewManagerDelegate.java} +0 -0
  830. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{BaseViewManagerInterface.java → interfaces/BaseViewManagerInterface.java} +0 -0
  831. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{FloatUtil.java → interfaces/FloatUtil.java} +0 -0
  832. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{Spacing.java → interfaces/Spacing.java} +0 -0
  833. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ViewManagerDelegate.java → interfaces/ViewManagerDelegate.java} +0 -0
  834. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ViewProps.java → interfaces/ViewProps.java} +10 -2
  835. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/Android.mk +37 -0
  836. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +41 -0
  837. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.cpp +77 -0
  838. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.h +54 -0
  839. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/OnLoad.cpp +16 -0
  840. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/BUCK +1 -0
  841. package/ReactAndroid/src/main/java/com/facebook/react/util/BUCK +1 -0
  842. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +1 -0
  843. package/ReactAndroid/src/main/java/com/facebook/react/views/common/BUCK +1 -0
  844. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +3 -2
  845. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +17 -8
  846. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.java +9 -10
  847. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +9 -10
  848. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +7 -13
  849. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +7 -13
  850. package/ReactAndroid/src/main/java/com/facebook/react/views/image/BUCK +2 -0
  851. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageLoadEvent.java +45 -19
  852. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactCallerContextFactory.java +2 -2
  853. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +12 -7
  854. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java +75 -26
  855. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/BUCK +2 -0
  856. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.java +17 -0
  857. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +5 -2
  858. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +13 -3
  859. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +56 -20
  860. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java +12 -4
  861. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ShowEvent.java +12 -4
  862. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +3 -2
  863. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +2 -0
  864. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +15 -0
  865. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +185 -28
  866. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +9 -4
  867. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +110 -16
  868. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +20 -3
  869. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +10 -5
  870. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +41 -14
  871. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +3 -2
  872. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderEvent.java +0 -5
  873. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +22 -27
  874. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSlidingCompleteEvent.java +13 -16
  875. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +3 -2
  876. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.java +12 -4
  877. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java +14 -11
  878. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +3 -2
  879. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitch.java +13 -0
  880. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.java +9 -13
  881. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +6 -10
  882. package/ReactAndroid/src/main/java/com/facebook/react/views/text/BUCK +2 -0
  883. package/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java +6 -8
  884. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +6 -9
  885. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactClickableSpan.java +2 -1
  886. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +59 -44
  887. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -4
  888. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +11 -0
  889. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +48 -1
  890. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +41 -59
  891. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +213 -141
  892. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +33 -51
  893. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +596 -0
  894. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TypefaceStyle.java +72 -0
  895. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/BUCK +1 -0
  896. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +2 -0
  897. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java +10 -7
  898. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +34 -20
  899. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +5 -6
  900. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.java +9 -7
  901. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputBlurEvent.java +9 -7
  902. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEndEditingEvent.java +9 -7
  903. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEvent.java +10 -7
  904. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputFocusEvent.java +14 -12
  905. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +15 -14
  906. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +154 -70
  907. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSelectionEvent.java +10 -7
  908. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSubmitEditingEvent.java +14 -12
  909. package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/BUCK +1 -0
  910. package/ReactAndroid/src/main/java/com/facebook/react/views/view/BUCK +1 -0
  911. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +1 -5
  912. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  913. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +63 -65
  914. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +3 -1
  915. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ViewGroupClickEvent.java +11 -4
  916. package/ReactAndroid/src/main/java/com/facebook/systrace/BUCK +1 -0
  917. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +13 -7
  918. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +24 -2
  919. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +151 -0
  920. package/ReactAndroid/src/main/jni/first-party/fb/BUCK +4 -0
  921. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +1 -1
  922. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +1 -1
  923. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +2 -7
  924. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJTypesVanilla.h +8 -4
  925. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -7
  926. package/ReactAndroid/src/main/jni/react/jni/BUCK +3 -2
  927. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +56 -1
  928. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +4 -0
  929. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  930. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  931. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  932. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -94
  933. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.h +0 -30
  934. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +1 -0
  935. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeMap.cpp +7 -6
  936. package/ReactAndroid/src/main/jni/third-party/boost/Android.mk +7 -2
  937. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/jump_arm_aapcs_elf_gas.S +86 -0
  938. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/make_arm_aapcs_elf_gas.S +79 -0
  939. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/ontop_arm_aapcs_elf_gas.S +91 -0
  940. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/jump_arm64_aapcs_elf_gas.S +114 -0
  941. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/make_arm64_aapcs_elf_gas.S +85 -0
  942. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/ontop_arm64_aapcs_elf_gas.S +113 -0
  943. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/jump_i386_sysv_elf_gas.S +78 -0
  944. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/make_i386_sysv_elf_gas.S +106 -0
  945. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/ontop_i386_sysv_elf_gas.S +85 -0
  946. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/jump_x86_64_sysv_elf_gas.S +76 -0
  947. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/make_x86_64_sysv_elf_gas.S +81 -0
  948. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/ontop_x86_64_sysv_elf_gas.S +79 -0
  949. package/ReactAndroid/src/main/jni/third-party/fmt/Android.mk +15 -0
  950. package/ReactAndroid/src/main/jni/third-party/folly/Android.mk +36 -16
  951. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +36 -0
  952. package/ReactAndroid/src/main/jni/third-party/libevent/evconfig-private.h +49 -0
  953. package/{third-party-podspecs/libevent.podspec → ReactAndroid/src/main/jni/third-party/libevent/event-config.h} +141 -366
  954. package/ReactAndroid/src/main/libraries/fbcore/src/main/java/com/facebook/common/logging/BUCK +1 -0
  955. package/ReactAndroid/src/main/libraries/fbjni/BUCK +2 -2
  956. package/ReactAndroid/src/main/libraries/fresco/fresco-react-native/BUCK +93 -14
  957. package/ReactAndroid/src/main/libraries/soloader/java/com/facebook/soloader/BUCK +5 -5
  958. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -1
  959. package/ReactAndroid/src/main/res/views/uimanager/values/strings_unlocalized.xml +4 -8
  960. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +61 -0
  961. package/ReactAndroid/src/main/third-party/java/asm/BUCK +1 -0
  962. package/ReactAndroid/src/main/third-party/java/fest/BUCK +1 -0
  963. package/ReactAndroid/src/main/third-party/java/infer-annotations/BUCK +2 -2
  964. package/ReactAndroid/src/main/third-party/java/junit/BUCK +1 -0
  965. package/ReactAndroid/src/main/third-party/java/mockito/BUCK +1 -0
  966. package/ReactAndroid/src/main/third-party/java/mockito2/BUCK +1 -0
  967. package/ReactAndroid/src/main/third-party/java/okhttp/BUCK +29 -9
  968. package/ReactAndroid/src/main/third-party/java/okio/BUCK +15 -5
  969. package/ReactAndroid/src/main/third-party/java/robolectric/{4.4/BUCK → BUCK} +1 -0
  970. package/ReactAndroid/src/main/third-party/java/sqlite/BUCK +1 -0
  971. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  972. package/ReactAndroid/src/main/third-party/kotlin/BUCK +91 -0
  973. package/ReactAndroid/src/test/java/com/facebook/common/logging/BUCK +1 -0
  974. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +8 -3
  975. package/ReactAndroid/src/test/java/com/facebook/react/animated/NativeAnimatedNodeTraversalTest.java +1 -1
  976. package/ReactAndroid/src/test/java/com/facebook/react/bridge/BUCK +2 -1
  977. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  978. package/ReactAndroid/src/test/java/com/facebook/react/devsupport/JSDebuggerWebSocketClientTest.java +3 -1
  979. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  980. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  981. package/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java +1 -1
  982. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/NetworkingModuleTest.java +10 -10
  983. package/ReactAndroid/src/test/java/com/facebook/react/modules/timing/TimingModuleTest.java +1 -1
  984. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerTest.java +32 -0
  985. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/SimpleViewPropertyTest.java +8 -2
  986. package/ReactAndroid/src/test/java/com/facebook/react/views/image/ReactImagePropertyTest.java +8 -0
  987. package/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.java +4 -0
  988. package/ReactAndroid/src/test/java/org/mockito/configuration/BUCK +1 -0
  989. package/ReactCommon/React-Fabric.podspec +50 -15
  990. package/ReactCommon/ReactCommon.podspec +9 -4
  991. package/ReactCommon/better/Android.mk +1 -1
  992. package/ReactCommon/better/BUCK +2 -2
  993. package/ReactCommon/callinvoker/Android.mk +1 -1
  994. package/ReactCommon/callinvoker/BUCK +1 -1
  995. package/ReactCommon/callinvoker/React-callinvoker.podspec +3 -3
  996. package/ReactCommon/cxxreact/Android.mk +2 -1
  997. package/ReactCommon/cxxreact/BUCK +2 -4
  998. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  999. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  1000. package/ReactCommon/cxxreact/Instance.cpp +33 -1
  1001. package/ReactCommon/cxxreact/Instance.h +1 -0
  1002. package/ReactCommon/cxxreact/JSBundleType.cpp +5 -0
  1003. package/ReactCommon/cxxreact/JSBundleType.h +1 -0
  1004. package/ReactCommon/cxxreact/JsArgumentHelpers-inl.h +3 -3
  1005. package/ReactCommon/cxxreact/JsArgumentHelpers.h +2 -2
  1006. package/ReactCommon/cxxreact/MethodCall.cpp +2 -2
  1007. package/ReactCommon/cxxreact/ModuleRegistry.cpp +5 -0
  1008. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +0 -21
  1009. package/ReactCommon/cxxreact/NativeToJsBridge.h +0 -6
  1010. package/ReactCommon/cxxreact/React-cxxreact.podspec +6 -5
  1011. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  1012. package/ReactCommon/cxxreact/SystraceSection.h +2 -2
  1013. package/ReactCommon/hermes/React-hermes.podspec +53 -0
  1014. package/ReactCommon/hermes/executor/Android.mk +4 -4
  1015. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  1016. package/ReactCommon/hermes/inspector/BUCK +8 -5
  1017. package/ReactCommon/hermes/inspector/Inspector.cpp +2 -3
  1018. package/ReactCommon/hermes/inspector/Inspector.h +6 -5
  1019. package/ReactCommon/hermes/inspector/InspectorState.cpp +8 -6
  1020. package/ReactCommon/hermes/inspector/chrome/Connection.cpp +115 -0
  1021. package/ReactCommon/hermes/inspector/chrome/MessageTypes.cpp +215 -1
  1022. package/ReactCommon/hermes/inspector/chrome/MessageTypes.h +115 -1
  1023. package/ReactCommon/hermes/inspector/chrome/cli/main.cpp +6 -5
  1024. package/ReactCommon/hermes/inspector/chrome/tests/ConnectionTests.cpp +144 -0
  1025. package/ReactCommon/hermes/inspector/tools/message_types.txt +4 -0
  1026. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/CommandTest.js +1 -3
  1027. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/EventTest.js +1 -3
  1028. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/GraphTest.js +1 -3
  1029. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/HeaderWriterTest.js +1 -3
  1030. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/ImplementationWriterTest.js +1 -3
  1031. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/PropertyTest.js +1 -3
  1032. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/TypeTest.js +1 -3
  1033. package/ReactCommon/hermes/inspector/tools/msggen/package.json +1 -1
  1034. package/ReactCommon/hermes/inspector/tools/msggen/src/Command.js +0 -2
  1035. package/ReactCommon/hermes/inspector/tools/msggen/src/Converters.js +0 -2
  1036. package/ReactCommon/hermes/inspector/tools/msggen/src/Event.js +0 -2
  1037. package/ReactCommon/hermes/inspector/tools/msggen/src/Graph.js +0 -2
  1038. package/ReactCommon/hermes/inspector/tools/msggen/src/HeaderWriter.js +0 -2
  1039. package/ReactCommon/hermes/inspector/tools/msggen/src/ImplementationWriter.js +0 -2
  1040. package/ReactCommon/hermes/inspector/tools/msggen/src/Property.js +1 -2
  1041. package/ReactCommon/hermes/inspector/tools/msggen/src/TestHelpers.js +1 -3
  1042. package/ReactCommon/hermes/inspector/tools/msggen/src/Type.js +0 -2
  1043. package/ReactCommon/hermes/inspector/tools/msggen/src/index.js +1 -3
  1044. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +2218 -1389
  1045. package/ReactCommon/jsi/Android.mk +4 -4
  1046. package/ReactCommon/jsi/BUCK +1 -5
  1047. package/ReactCommon/jsi/JSCRuntime.cpp +7 -0
  1048. package/ReactCommon/jsi/React-jsi.podspec +5 -5
  1049. package/ReactCommon/jsi/jsi/CMakeLists.txt +1 -1
  1050. package/ReactCommon/jsi/jsi/decorator.h +15 -0
  1051. package/ReactCommon/jsi/jsi/instrumentation.h +13 -0
  1052. package/ReactCommon/jsi/jsi/jsi.cpp +3 -0
  1053. package/ReactCommon/jsi/jsi/jsi.h +32 -3
  1054. package/ReactCommon/jsi/jsi/jsilib-posix.cpp +1 -11
  1055. package/ReactCommon/jsi/jsi/test/testlib.cpp +1 -0
  1056. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  1057. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +4 -4
  1058. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +36 -3
  1059. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +2 -0
  1060. package/ReactCommon/jsinspector/BUCK +2 -0
  1061. package/ReactCommon/jsinspector/React-jsinspector.podspec +2 -2
  1062. package/ReactCommon/libraries/fbcore/src/test/java/com/facebook/powermock/BUCK +2 -0
  1063. package/ReactCommon/logger/Android.mk +23 -0
  1064. package/ReactCommon/logger/BUCK +43 -0
  1065. package/ReactCommon/logger/React-logger.podspec +40 -0
  1066. package/ReactCommon/logger/react_native_log.cpp +52 -0
  1067. package/ReactCommon/logger/react_native_log.h +33 -0
  1068. package/ReactCommon/react/config/Android.mk +1 -1
  1069. package/ReactCommon/react/config/BUCK +1 -1
  1070. package/ReactCommon/react/debug/Android.mk +31 -0
  1071. package/ReactCommon/react/debug/BUCK +69 -0
  1072. package/ReactCommon/react/debug/flags.h +19 -0
  1073. package/ReactCommon/react/debug/react_native_assert.cpp +45 -0
  1074. package/ReactCommon/react/debug/react_native_assert.h +64 -0
  1075. package/ReactCommon/react/nativemodule/core/Android.mk +3 -3
  1076. package/ReactCommon/react/nativemodule/core/BUCK +4 -3
  1077. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  1078. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  1079. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp +1 -1
  1080. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +2 -2
  1081. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +49 -8
  1082. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +11 -3
  1083. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +55 -1
  1084. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +119 -109
  1085. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +12 -8
  1086. package/ReactCommon/react/nativemodule/core/platform/ios/RCTBlockGuard.h +24 -0
  1087. package/ReactCommon/react/nativemodule/core/platform/ios/RCTBlockGuard.mm +28 -0
  1088. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -15
  1089. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +97 -48
  1090. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.h +0 -6
  1091. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +147 -70
  1092. package/ReactCommon/react/nativemodule/samples/BUCK +6 -6
  1093. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +2 -2
  1094. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +3 -0
  1095. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +10 -0
  1096. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTNativeSampleTurboModuleSpec.h +1 -0
  1097. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTNativeSampleTurboModuleSpec.mm +11 -0
  1098. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTSampleTurboCxxModule.mm +12 -0
  1099. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTSampleTurboModule.mm +5 -3
  1100. package/ReactCommon/react/nativemodule/samples/platform/ios/SampleTurboCxxModuleLegacyImpl.cpp +11 -0
  1101. package/ReactCommon/react/nativemodule/samples/platform/ios/SampleTurboCxxModuleLegacyImpl.h +1 -0
  1102. package/ReactCommon/react/renderer/animations/Android.mk +3 -2
  1103. package/ReactCommon/react/renderer/animations/BUCK +5 -3
  1104. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +19 -130
  1105. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +1 -4
  1106. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +675 -391
  1107. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +75 -58
  1108. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +544 -0
  1109. package/ReactCommon/react/renderer/attributedstring/Android.mk +4 -2
  1110. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +28 -6
  1111. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +2 -2
  1112. package/ReactCommon/react/renderer/attributedstring/BUCK +9 -4
  1113. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  1114. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  1115. package/ReactCommon/react/renderer/attributedstring/conversions.h +666 -308
  1116. package/ReactCommon/react/renderer/attributedstring/primitives.h +16 -0
  1117. package/ReactCommon/react/renderer/attributedstring/tests/AttributedStringBoxTest.cpp +105 -0
  1118. package/ReactCommon/react/renderer/attributedstring/tests/AttributedStringTest.cpp +17 -20
  1119. package/ReactCommon/react/renderer/attributedstring/tests/ParagraphAttributesTest.cpp +7 -12
  1120. package/ReactCommon/react/renderer/attributedstring/tests/TextAttributesTest.cpp +13 -15
  1121. package/ReactCommon/react/renderer/componentregistry/Android.mk +3 -2
  1122. package/ReactCommon/react/renderer/componentregistry/BUCK +5 -4
  1123. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProvider.h +5 -4
  1124. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  1125. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  1126. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +20 -70
  1127. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  1128. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +73 -0
  1129. package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.cpp → componentregistry/componentNameByReactViewName.h} +7 -2
  1130. package/ReactCommon/react/renderer/componentregistry/native/Android.mk +29 -0
  1131. package/ReactCommon/react/renderer/componentregistry/native/BUCK +58 -0
  1132. package/ReactCommon/react/renderer/componentregistry/native/NativeComponentRegistryBinding.cpp +68 -0
  1133. package/ReactCommon/react/renderer/componentregistry/native/NativeComponentRegistryBinding.h +61 -0
  1134. package/ReactCommon/react/renderer/components/image/Android.mk +5 -3
  1135. package/ReactCommon/react/renderer/components/image/BUCK +7 -3
  1136. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +3 -2
  1137. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  1138. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  1139. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +5 -5
  1140. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -1
  1141. package/ReactCommon/react/renderer/components/image/conversions.h +29 -18
  1142. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +4 -3
  1143. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +5 -3
  1144. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +3 -3
  1145. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +1 -1
  1146. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +17 -4
  1147. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +6 -1
  1148. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  1149. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +1 -1
  1150. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +74 -15
  1151. package/ReactCommon/react/renderer/components/modal/Android.mk +4 -3
  1152. package/ReactCommon/react/renderer/components/modal/BUCK +6 -2
  1153. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +5 -3
  1154. package/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +9 -2
  1155. package/ReactCommon/react/renderer/components/progressbar/Android.mk +3 -3
  1156. package/ReactCommon/react/renderer/components/progressbar/BUCK +4 -3
  1157. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +4 -2
  1158. package/{ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni → ReactCommon}/react/renderer/components/rncore/ComponentDescriptors.h +1 -0
  1159. package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h.bak +32 -0
  1160. package/{ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni → ReactCommon}/react/renderer/components/rncore/EventEmitters.cpp +1 -0
  1161. package/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp.bak +149 -0
  1162. package/{ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni → ReactCommon}/react/renderer/components/rncore/EventEmitters.h +8 -0
  1163. package/ReactCommon/react/renderer/components/rncore/EventEmitters.h.bak +237 -0
  1164. package/ReactCommon/react/renderer/components/rncore/Props.cpp +218 -0
  1165. package/ReactCommon/react/renderer/components/rncore/Props.cpp.bak +218 -0
  1166. package/{ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni → ReactCommon}/react/renderer/components/rncore/Props.h +74 -27
  1167. package/ReactCommon/react/renderer/components/rncore/Props.h.bak +576 -0
  1168. package/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h +273 -0
  1169. package/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h.bak +273 -0
  1170. package/{ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni → ReactCommon}/react/renderer/components/rncore/ShadowNodes.cpp +1 -0
  1171. package/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp.bak +29 -0
  1172. package/{ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni → ReactCommon}/react/renderer/components/rncore/ShadowNodes.h +9 -0
  1173. package/ReactCommon/react/renderer/components/rncore/ShadowNodes.h.bak +126 -0
  1174. package/ReactCommon/react/renderer/components/root/Android.mk +4 -3
  1175. package/ReactCommon/react/renderer/components/root/BUCK +4 -3
  1176. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  1177. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  1178. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +7 -1
  1179. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  1180. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +35 -3
  1181. package/ReactCommon/react/renderer/components/safeareaview/BUCK +4 -3
  1182. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h +5 -3
  1183. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h +7 -0
  1184. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h +1 -3
  1185. package/ReactCommon/react/renderer/components/scrollview/Android.mk +5 -3
  1186. package/ReactCommon/react/renderer/components/scrollview/BUCK +6 -3
  1187. package/ReactCommon/react/renderer/components/scrollview/RCTComponentViewHelpers.h +38 -0
  1188. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +59 -6
  1189. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +10 -5
  1190. package/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.cpp +23 -2
  1191. package/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h +1 -0
  1192. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.cpp +1 -1
  1193. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +15 -4
  1194. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  1195. package/ReactCommon/react/renderer/components/slider/Android.mk +4 -3
  1196. package/ReactCommon/react/renderer/components/slider/BUCK +5 -3
  1197. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +4 -2
  1198. package/ReactCommon/react/renderer/components/slider/SliderShadowNode.h +9 -8
  1199. package/ReactCommon/react/renderer/components/slider/SliderState.h +8 -0
  1200. package/ReactCommon/react/renderer/components/slider/platform/ios/SliderMeasurementsManager.cpp +3 -1
  1201. package/ReactCommon/react/renderer/components/switch/Android.mk +3 -3
  1202. package/ReactCommon/react/renderer/components/switch/BUCK +3 -3
  1203. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +4 -2
  1204. package/ReactCommon/react/renderer/components/text/Android.mk +5 -3
  1205. package/ReactCommon/react/renderer/components/text/BUCK +10 -4
  1206. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  1207. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  1208. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +2 -3
  1209. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +6 -9
  1210. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +15 -6
  1211. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  1212. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +13 -19
  1213. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +7 -6
  1214. package/ReactCommon/react/renderer/components/text/ParagraphState.cpp +4 -0
  1215. package/ReactCommon/react/renderer/components/text/ParagraphState.h +8 -3
  1216. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  1217. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  1218. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +36 -2
  1219. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  1220. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  1221. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +23 -0
  1222. package/ReactCommon/react/renderer/components/text/conversions.h +22 -0
  1223. package/ReactCommon/react/renderer/components/text/tests/ParagraphLocalDataTest.cpp +8 -5
  1224. package/ReactCommon/react/renderer/components/textinput/Android.mk +5 -3
  1225. package/ReactCommon/react/renderer/components/textinput/BUCK +8 -4
  1226. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +8 -5
  1227. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  1228. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  1229. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +13 -18
  1230. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +5 -5
  1231. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -3
  1232. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputState.h +5 -8
  1233. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +5 -4
  1234. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +4 -4
  1235. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  1236. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  1237. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputShadowNode.cpp +3 -2
  1238. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputShadowNode.h +7 -6
  1239. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputState.h +2 -0
  1240. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +19 -7
  1241. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  1242. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  1243. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +4 -3
  1244. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +4 -3
  1245. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +8 -3
  1246. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  1247. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  1248. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +28 -0
  1249. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  1250. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +4 -1
  1251. package/ReactCommon/react/renderer/components/view/Android.mk +5 -3
  1252. package/ReactCommon/react/renderer/components/view/BUCK +5 -3
  1253. package/ReactCommon/react/renderer/components/view/Touch.h +32 -1
  1254. package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
  1255. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +31 -9
  1256. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +2 -1
  1257. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +10 -1
  1258. package/ReactCommon/react/renderer/components/view/ViewEventEmitter.cpp +62 -20
  1259. package/ReactCommon/react/renderer/components/view/ViewEventEmitter.h +28 -4
  1260. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  1261. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  1262. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +5 -7
  1263. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +4 -17
  1264. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +177 -87
  1265. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +4 -9
  1266. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  1267. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  1268. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +95 -24
  1269. package/ReactCommon/react/renderer/components/view/conversions.h +96 -50
  1270. package/ReactCommon/react/renderer/components/view/primitives.h +5 -4
  1271. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  1272. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +15 -5
  1273. package/ReactCommon/react/renderer/core/Android.mk +4 -2
  1274. package/ReactCommon/react/renderer/core/BUCK +7 -4
  1275. package/ReactCommon/react/renderer/core/BatchedEventQueue.cpp +5 -21
  1276. package/ReactCommon/react/renderer/core/BatchedEventQueue.h +4 -8
  1277. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +6 -3
  1278. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +23 -22
  1279. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +10 -7
  1280. package/ReactCommon/react/renderer/core/ConcreteState.h +16 -49
  1281. package/ReactCommon/react/renderer/core/Constants.cpp +24 -0
  1282. package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerComponentDescriptor.h → core/Constants.h} +8 -6
  1283. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +35 -0
  1284. package/ReactCommon/react/renderer/{components/picker/iospicker/PickerState.h → core/DynamicPropsUtilities.h} +5 -4
  1285. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +9 -15
  1286. package/ReactCommon/react/renderer/core/EventDispatcher.h +5 -10
  1287. package/ReactCommon/react/renderer/core/EventEmitter.cpp +22 -12
  1288. package/ReactCommon/react/renderer/core/EventEmitter.h +7 -2
  1289. package/ReactCommon/react/renderer/core/EventPipe.h +2 -0
  1290. package/ReactCommon/react/renderer/core/EventPriority.h +1 -1
  1291. package/ReactCommon/react/renderer/core/EventQueue.cpp +39 -40
  1292. package/ReactCommon/react/renderer/core/EventQueue.h +15 -9
  1293. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +82 -0
  1294. package/ReactCommon/react/renderer/core/EventQueueProcessor.h +36 -0
  1295. package/ReactCommon/react/renderer/core/EventTarget.cpp +4 -2
  1296. package/ReactCommon/react/renderer/core/LayoutConstraints.h +9 -2
  1297. package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +65 -0
  1298. package/ReactCommon/react/renderer/core/LayoutMetrics.h +38 -4
  1299. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +14 -6
  1300. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +1 -8
  1301. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +2 -22
  1302. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  1303. package/ReactCommon/react/renderer/core/Props.h +5 -1
  1304. package/ReactCommon/react/renderer/core/PropsParserContext.h +28 -0
  1305. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  1306. package/ReactCommon/react/renderer/core/RawEvent.h +40 -3
  1307. package/ReactCommon/react/renderer/core/RawProps.cpp +5 -3
  1308. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  1309. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -7
  1310. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +8 -6
  1311. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +10 -7
  1312. package/ReactCommon/react/renderer/core/RawPropsParser.h +13 -4
  1313. package/ReactCommon/react/renderer/core/RawValue.h +9 -7
  1314. package/ReactCommon/react/renderer/core/ReactEventPriority.h +43 -0
  1315. package/ReactCommon/react/renderer/core/ReactPrimitives.h +34 -0
  1316. package/ReactCommon/react/renderer/core/Sealable.cpp +4 -3
  1317. package/ReactCommon/react/renderer/core/Sealable.h +5 -1
  1318. package/ReactCommon/react/renderer/core/ShadowNode.cpp +45 -13
  1319. package/ReactCommon/react/renderer/core/ShadowNode.h +14 -4
  1320. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +2 -1
  1321. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -1
  1322. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +31 -6
  1323. package/ReactCommon/react/renderer/core/State.h +4 -3
  1324. package/ReactCommon/react/renderer/core/StateData.h +3 -0
  1325. package/ReactCommon/react/renderer/core/StateUpdate.h +0 -2
  1326. package/ReactCommon/react/renderer/core/UnbatchedEventQueue.cpp +0 -2
  1327. package/ReactCommon/react/renderer/core/conversions.h +11 -0
  1328. package/ReactCommon/react/renderer/core/propsConversions.h +19 -9
  1329. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  1330. package/ReactCommon/react/renderer/core/tests/ConcreteShadowNodeTest.cpp +1 -1
  1331. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +66 -0
  1332. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +134 -0
  1333. package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +21 -12
  1334. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +99 -30
  1335. package/ReactCommon/react/renderer/core/tests/TestComponent.h +11 -7
  1336. package/ReactCommon/react/renderer/core/tests/traitCastTest.cpp +31 -0
  1337. package/ReactCommon/react/renderer/debug/Android.mk +1 -1
  1338. package/ReactCommon/react/renderer/debug/BUCK +4 -6
  1339. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +11 -25
  1340. package/ReactCommon/react/renderer/debug/SystraceSection.h +2 -2
  1341. package/ReactCommon/react/renderer/debug/flags.h +50 -0
  1342. package/ReactCommon/react/renderer/element/BUCK +3 -3
  1343. package/ReactCommon/react/renderer/element/ComponentBuilder.cpp +4 -3
  1344. package/ReactCommon/react/renderer/graphics/Android.mk +6 -2
  1345. package/ReactCommon/react/renderer/graphics/BUCK +16 -4
  1346. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +5 -4
  1347. package/ReactCommon/react/renderer/graphics/Rect.h +4 -3
  1348. package/ReactCommon/react/renderer/graphics/RectangleCorners.h +2 -2
  1349. package/ReactCommon/react/renderer/graphics/RectangleEdges.h +16 -13
  1350. package/ReactCommon/react/renderer/graphics/Transform.cpp +4 -3
  1351. package/ReactCommon/react/renderer/graphics/conversions.h +102 -44
  1352. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  1353. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.cpp +19 -10
  1354. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +2 -0
  1355. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  1356. package/ReactCommon/react/renderer/graphics/platform/ios/Color.cpp +19 -10
  1357. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +44 -1
  1358. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  1359. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  1360. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  1361. package/ReactCommon/react/renderer/graphics/rounding.h +9 -6
  1362. package/ReactCommon/react/renderer/graphics/tests/TransformTest.cpp +1 -0
  1363. package/ReactCommon/react/renderer/imagemanager/Android.mk +3 -2
  1364. package/ReactCommon/react/renderer/imagemanager/BUCK +5 -4
  1365. package/ReactCommon/react/renderer/imagemanager/ImageRequest.h +1 -3
  1366. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +5 -4
  1367. package/ReactCommon/react/renderer/imagemanager/ImageTelemetry.cpp +0 -6
  1368. package/ReactCommon/react/renderer/imagemanager/ImageTelemetry.h +5 -10
  1369. package/ReactCommon/react/renderer/imagemanager/platform/ios/ImageRequest.cpp +6 -1
  1370. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTImageManager.mm +0 -1
  1371. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTImagePrimitivesConversions.h +8 -6
  1372. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  1373. package/ReactCommon/react/renderer/leakchecker/Android.mk +29 -0
  1374. package/ReactCommon/react/renderer/{components/picker/iospicker → leakchecker}/BUCK +8 -12
  1375. package/ReactCommon/react/renderer/leakchecker/LeakChecker.cpp +60 -0
  1376. package/ReactCommon/react/renderer/leakchecker/LeakChecker.h +39 -0
  1377. package/ReactCommon/react/renderer/leakchecker/WeakFamilyRegistry.cpp +37 -0
  1378. package/ReactCommon/react/renderer/leakchecker/WeakFamilyRegistry.h +39 -0
  1379. package/ReactCommon/react/renderer/mapbuffer/Android.mk +9 -6
  1380. package/ReactCommon/react/renderer/mapbuffer/BUCK +16 -6
  1381. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +133 -2
  1382. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +41 -3
  1383. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +226 -0
  1384. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +94 -0
  1385. package/ReactCommon/react/renderer/mapbuffer/primitives.h +91 -0
  1386. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +144 -2
  1387. package/ReactCommon/react/renderer/mounting/Android.mk +4 -2
  1388. package/ReactCommon/react/renderer/mounting/BUCK +6 -3
  1389. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +809 -998
  1390. package/ReactCommon/react/renderer/mounting/Differentiator.h +38 -12
  1391. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +17 -15
  1392. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +7 -11
  1393. package/ReactCommon/react/renderer/mounting/MountingTransaction.h +2 -2
  1394. package/ReactCommon/react/renderer/mounting/MountingTransactionMetadata.h +1 -1
  1395. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +70 -27
  1396. package/ReactCommon/react/renderer/mounting/ShadowTree.h +38 -15
  1397. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +11 -0
  1398. package/ReactCommon/react/renderer/mounting/ShadowTreeRegistry.cpp +3 -1
  1399. package/ReactCommon/react/renderer/mounting/ShadowTreeRevision.h +1 -1
  1400. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +19 -1
  1401. package/ReactCommon/react/renderer/mounting/ShadowView.h +46 -2
  1402. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +19 -5
  1403. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -4
  1404. package/ReactCommon/react/renderer/mounting/StubView.cpp +38 -4
  1405. package/ReactCommon/react/renderer/mounting/StubView.h +6 -0
  1406. package/ReactCommon/react/renderer/mounting/StubViewTree.cpp +219 -91
  1407. package/ReactCommon/react/renderer/mounting/StubViewTree.h +15 -3
  1408. package/ReactCommon/react/renderer/mounting/TelemetryController.cpp +1 -1
  1409. package/ReactCommon/react/renderer/mounting/TelemetryController.h +1 -1
  1410. package/ReactCommon/react/renderer/mounting/stubs.cpp +49 -11
  1411. package/ReactCommon/react/renderer/mounting/stubs.h +13 -1
  1412. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +99 -96
  1413. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +242 -40
  1414. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +787 -0
  1415. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +34 -23
  1416. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +27 -0
  1417. package/ReactCommon/react/renderer/runtimescheduler/BUCK +77 -0
  1418. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +116 -0
  1419. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +103 -0
  1420. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +170 -0
  1421. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +42 -0
  1422. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +22 -0
  1423. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +64 -0
  1424. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +35 -0
  1425. package/ReactCommon/react/renderer/runtimescheduler/Task.h +46 -0
  1426. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +39 -0
  1427. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +472 -0
  1428. package/ReactCommon/react/renderer/runtimescheduler/tests/SchedulerPriorityTest.cpp +46 -0
  1429. package/ReactCommon/react/renderer/runtimescheduler/tests/StubClock.h +41 -0
  1430. package/ReactCommon/react/renderer/runtimescheduler/tests/StubQueue.h +38 -0
  1431. package/ReactCommon/react/renderer/scheduler/Android.mk +4 -2
  1432. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.cpp +16 -13
  1433. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.h +4 -4
  1434. package/ReactCommon/react/renderer/scheduler/BUCK +5 -3
  1435. package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.cpp → scheduler/InspectorData.h} +10 -3
  1436. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +108 -148
  1437. package/ReactCommon/react/renderer/scheduler/Scheduler.h +37 -39
  1438. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +16 -10
  1439. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +10 -0
  1440. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +317 -0
  1441. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +209 -0
  1442. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +104 -0
  1443. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +67 -0
  1444. package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.cpp +14 -5
  1445. package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.h +4 -1
  1446. package/ReactCommon/react/renderer/telemetry/Android.mk +31 -0
  1447. package/ReactCommon/react/renderer/telemetry/BUCK +84 -0
  1448. package/ReactCommon/react/renderer/{mounting → telemetry}/SurfaceTelemetry.cpp +5 -0
  1449. package/ReactCommon/react/renderer/{mounting → telemetry}/SurfaceTelemetry.h +3 -1
  1450. package/ReactCommon/react/renderer/telemetry/TransactionTelemetry.cpp +163 -0
  1451. package/ReactCommon/react/renderer/{mounting → telemetry}/TransactionTelemetry.h +11 -0
  1452. package/ReactCommon/react/renderer/telemetry/tests/TransactionTelemetryTest.cpp +176 -0
  1453. package/ReactCommon/react/renderer/templateprocessor/Android.mk +1 -1
  1454. package/ReactCommon/react/renderer/templateprocessor/BUCK +3 -3
  1455. package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +5 -5
  1456. package/ReactCommon/react/renderer/templateprocessor/tests/UITemplateProcessorTest.cpp +5 -5
  1457. package/ReactCommon/react/renderer/textlayoutmanager/Android.mk +5 -2
  1458. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +5 -3
  1459. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.cpp +12 -9
  1460. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +145 -83
  1461. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +17 -1
  1462. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +16 -2
  1463. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +10 -7
  1464. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +16 -11
  1465. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTTextLayoutManager.mm +14 -11
  1466. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/TextLayoutManager.mm +25 -3
  1467. package/ReactCommon/react/renderer/{components/picker → timeline}/BUCK +20 -34
  1468. package/ReactCommon/react/renderer/timeline/Timeline.cpp +120 -0
  1469. package/ReactCommon/react/renderer/timeline/Timeline.h +63 -0
  1470. package/ReactCommon/react/renderer/timeline/TimelineController.cpp +77 -0
  1471. package/ReactCommon/react/renderer/timeline/TimelineController.h +80 -0
  1472. package/ReactCommon/react/renderer/timeline/TimelineFrame.cpp +25 -0
  1473. package/ReactCommon/react/renderer/timeline/TimelineFrame.h +46 -0
  1474. package/ReactCommon/react/renderer/timeline/TimelineHandler.cpp +97 -0
  1475. package/ReactCommon/react/renderer/timeline/TimelineHandler.h +80 -0
  1476. package/ReactCommon/react/renderer/timeline/TimelineSnapshot.cpp +30 -0
  1477. package/ReactCommon/react/renderer/timeline/TimelineSnapshot.h +36 -0
  1478. package/ReactCommon/react/renderer/uimanager/Android.mk +4 -2
  1479. package/ReactCommon/react/renderer/uimanager/BUCK +5 -3
  1480. package/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h +2 -4
  1481. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +172 -81
  1482. package/ReactCommon/react/renderer/uimanager/UIManager.h +63 -29
  1483. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +2 -4
  1484. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +298 -135
  1485. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +35 -6
  1486. package/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h +43 -0
  1487. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +23 -13
  1488. package/ReactCommon/react/renderer/uimanager/primitives.h +57 -9
  1489. package/ReactCommon/react/test_utils/BUCK +54 -0
  1490. package/ReactCommon/react/{renderer/mounting/tests → test_utils}/Entropy.h +4 -0
  1491. package/ReactCommon/react/test_utils/MockClock.h +29 -0
  1492. package/ReactCommon/react/{renderer/mounting/tests → test_utils}/shadowTreeGeneration.h +64 -7
  1493. package/ReactCommon/react/utils/Android.mk +8 -3
  1494. package/ReactCommon/react/utils/BUCK +9 -2
  1495. package/ReactCommon/react/utils/CalledOnceMovableOnlyFunction.h +6 -4
  1496. package/ReactCommon/react/utils/ContextContainer.h +14 -7
  1497. package/ReactCommon/react/utils/LayoutManager.h +150 -0
  1498. package/ReactCommon/react/utils/ManagedObjectWrapper.h +3 -1
  1499. package/ReactCommon/react/utils/RunLoopObserver.cpp +5 -4
  1500. package/ReactCommon/reactperflogger/Android.mk +1 -1
  1501. package/ReactCommon/reactperflogger/BUCK +1 -1
  1502. package/ReactCommon/reactperflogger/React-perflogger.podspec +3 -3
  1503. package/ReactCommon/runtimeexecutor/Android.mk +1 -1
  1504. package/ReactCommon/runtimeexecutor/BUCK +2 -2
  1505. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +3 -3
  1506. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +14 -2
  1507. package/ReactCommon/yoga/Yoga.podspec +2 -2
  1508. package/ReactCommon/yoga/yoga/BitUtils.h +3 -2
  1509. package/ReactCommon/yoga/yoga/CompactValue.h +2 -2
  1510. package/ReactCommon/yoga/yoga/Utils.cpp +1 -1
  1511. package/ReactCommon/yoga/yoga/YGNode.cpp +111 -110
  1512. package/ReactCommon/yoga/yoga/YGNode.h +11 -0
  1513. package/ReactCommon/yoga/yoga/YGNodePrint.cpp +7 -4
  1514. package/ReactCommon/yoga/yoga/Yoga-internal.h +4 -5
  1515. package/ReactCommon/yoga/yoga/Yoga.cpp +116 -161
  1516. package/ReactCommon/yoga/yoga/Yoga.h +1 -1
  1517. package/android/com/facebook/react/react-native/{0.64.2-2/react-native-0.64.2-2.aar → 0.66.3-0/react-native-0.66.3-0.aar} +0 -0
  1518. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.aar.md5 +1 -0
  1519. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.aar.sha1 +1 -0
  1520. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.aar.sha256 +1 -0
  1521. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.aar.sha512 +1 -0
  1522. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.module +273 -0
  1523. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.module.md5 +1 -0
  1524. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.module.sha1 +1 -0
  1525. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.module.sha256 +1 -0
  1526. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.module.sha512 +1 -0
  1527. package/android/com/facebook/react/react-native/{0.64.2-2/react-native-0.64.2-2.pom → 0.66.3-0/react-native-0.66.3-0.pom} +28 -11
  1528. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.pom.md5 +1 -0
  1529. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.pom.sha1 +1 -0
  1530. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.pom.sha256 +1 -0
  1531. package/android/com/facebook/react/react-native/0.66.3-0/react-native-0.66.3-0.pom.sha512 +1 -0
  1532. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -3
  1533. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  1534. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  1535. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -0
  1536. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -0
  1537. package/flow/HermesInternalType.js +114 -0
  1538. package/flow/global.js +23 -0
  1539. package/flow-typed/npm/promise_v8.x.x.js +3 -3
  1540. package/flow-typed/npm/react-test-renderer_v16.x.x.js +79 -0
  1541. package/index.js +107 -50
  1542. package/interface.js +0 -8
  1543. package/jest/mockNativeComponent.js +36 -0
  1544. package/jest/preprocessor.js +3 -2
  1545. package/jest/renderer.js +3 -9
  1546. package/jest/setup.js +35 -39
  1547. package/local-cli/cli.js +0 -0
  1548. package/package.json +62 -22
  1549. package/react.gradle +32 -17
  1550. package/readme.diff +305 -0
  1551. package/scripts/find-node.sh +8 -6
  1552. package/scripts/generate-specs-cli.js +20 -13
  1553. package/scripts/generate-specs.sh +31 -23
  1554. package/scripts/ios-configure-glog.sh +1 -1
  1555. package/scripts/launchPackager.bat +12 -12
  1556. package/scripts/react-native-xcode.sh +12 -2
  1557. package/scripts/react_native_pods.rb +75 -126
  1558. package/template/_flowconfig +3 -4
  1559. package/template/_gitignore +1 -0
  1560. package/template/android/app/build.gradle +12 -7
  1561. package/template/android/app/src/main/res/values/styles.xml +0 -1
  1562. package/template/android/build.gradle +7 -7
  1563. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  1564. package/template/android/gradle.properties +1 -1
  1565. package/template/ios/HelloWorld/AppDelegate.m +5 -6
  1566. package/template/ios/Podfile +3 -4
  1567. package/template/package.json +4 -4
  1568. package/third-party-podspecs/DoubleConversion.podspec +3 -1
  1569. package/third-party-podspecs/RCT-Folly.podspec +30 -11
  1570. package/third-party-podspecs/boost.podspec +23 -0
  1571. package/third-party-podspecs/fmt.podspec +24 -0
  1572. package/third-party-podspecs/glog.podspec +1 -1
  1573. package/Libraries/.npmignore +0 -1
  1574. package/Libraries/BUCK +0 -36
  1575. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -158
  1576. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -273
  1577. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -82
  1578. package/Libraries/Components/Picker/AndroidDialogPickerViewConfig.js +0 -30
  1579. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -69
  1580. package/Libraries/Components/Picker/Picker.js +0 -165
  1581. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -145
  1582. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
  1583. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -72
  1584. package/Libraries/Components/Picker/RCTPickerViewConfig.js +0 -41
  1585. package/Libraries/Components/ScrollResponder.js +0 -796
  1586. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -21
  1587. package/Libraries/Image/ImageViewViewConfig.js +0 -68
  1588. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -100
  1589. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -83
  1590. package/Libraries/promiseRejectionIsError.js +0 -24
  1591. package/React/Base/RCTJSInvokerModule.h +0 -18
  1592. package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.h +0 -19
  1593. package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.mm +0 -205
  1594. package/React/Views/RCTPicker.h +0 -23
  1595. package/React/Views/RCTPicker.m +0 -121
  1596. package/React/Views/RCTPickerManager.m +0 -68
  1597. package/ReactAndroid/.npmignore +0 -3
  1598. package/ReactAndroid/build.gradle.orig +0 -479
  1599. package/ReactAndroid/release.gradle +0 -142
  1600. package/ReactAndroid/src/androidTest/assets/AndroidTestBundle.js +0 -107023
  1601. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ReactPickerTestCase.java +0 -196
  1602. package/ReactAndroid/src/androidTest/js/PickerAndroidTestModule.js +0 -89
  1603. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +0 -98
  1604. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragmentActivity.java +0 -15
  1605. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java +0 -82
  1606. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/BatchMountItem.java +0 -117
  1607. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/CreateMountItem.java +0 -68
  1608. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/InsertMountItem.java +0 -47
  1609. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/RemoveDeleteMultiMountItem.java +0 -90
  1610. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/UpdateEventEmitterMountItem.java +0 -33
  1611. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/UpdateLayoutMountItem.java +0 -90
  1612. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/UpdatePaddingMountItem.java +0 -53
  1613. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/UpdatePropsMountItem.java +0 -42
  1614. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/UpdateStateMountItem.java +0 -43
  1615. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ActivityIndicatorViewManagerDelegate.java +0 -42
  1616. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ActivityIndicatorViewManagerInterface.java +0 -20
  1617. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerDelegate.java +0 -48
  1618. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerInterface.java +0 -23
  1619. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDrawerLayoutManagerDelegate.java +0 -61
  1620. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDrawerLayoutManagerInterface.java +0 -24
  1621. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerDelegate.java +0 -48
  1622. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerInterface.java +0 -22
  1623. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidProgressBarManagerDelegate.java +0 -51
  1624. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidProgressBarManagerInterface.java +0 -23
  1625. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwipeRefreshLayoutManagerDelegate.java +0 -58
  1626. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwipeRefreshLayoutManagerInterface.java +0 -24
  1627. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwitchManagerDelegate.java +0 -67
  1628. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwitchManagerInterface.java +0 -26
  1629. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/MaskedViewManagerDelegate.java +0 -26
  1630. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/MaskedViewManagerInterface.java +0 -16
  1631. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ModalHostViewManagerDelegate.java +0 -54
  1632. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ModalHostViewManagerInterface.java +0 -25
  1633. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ProgressViewManagerDelegate.java +0 -49
  1634. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ProgressViewManagerInterface.java +0 -23
  1635. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SafeAreaViewManagerDelegate.java +0 -32
  1636. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SafeAreaViewManagerInterface.java +0 -16
  1637. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SegmentedControlManagerDelegate.java +0 -52
  1638. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SegmentedControlManagerInterface.java +0 -24
  1639. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SliderManagerDelegate.java +0 -73
  1640. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SliderManagerInterface.java +0 -31
  1641. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/UnimplementedNativeViewManagerDelegate.java +0 -32
  1642. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/UnimplementedNativeViewManagerInterface.java +0 -17
  1643. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/Android.mk +0 -29
  1644. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.cpp +0 -191
  1645. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/BUCK +0 -29
  1646. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDialogPickerManager.java +0 -51
  1647. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDropdownPickerManager.java +0 -50
  1648. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPicker.java +0 -196
  1649. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerAdapter.java +0 -95
  1650. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerItem.java +0 -43
  1651. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerManager.java +0 -97
  1652. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/events/PickerItemSelectEvent.java +0 -40
  1653. package/ReactAndroid/src/main/jni/first-party/fbjni/.gitignore +0 -2
  1654. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libc++_shared.so +0 -0
  1655. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libfb.so +0 -0
  1656. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libfbjni.so +0 -0
  1657. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libfolly_futures.so +0 -0
  1658. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libfolly_json.so +0 -0
  1659. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libglog.so +0 -0
  1660. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libglog_init.so +0 -0
  1661. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libhermes-executor-common-debug.so +0 -0
  1662. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libhermes-executor-common-release.so +0 -0
  1663. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libhermes-executor-debug.so +0 -0
  1664. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libhermes-executor-release.so +0 -0
  1665. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libhermes-inspector.so +0 -0
  1666. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libjscexecutor.so +0 -0
  1667. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libjsijniprofiler.so +0 -0
  1668. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libjsinspector.so +0 -0
  1669. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libreact_codegen_reactandroidspec.so +0 -0
  1670. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libreact_nativemodule_core.so +0 -0
  1671. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libreactnativeblob.so +0 -0
  1672. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libreactnativejni.so +0 -0
  1673. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libreactnativeutilsjni.so +0 -0
  1674. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libreactperfloggerjni.so +0 -0
  1675. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libturbomodulejsijni.so +0 -0
  1676. package/ReactAndroid/src/main/jni/prebuilt/lib/arm64-v8a/libyoga.so +0 -0
  1677. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libc++_shared.so +0 -0
  1678. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libfb.so +0 -0
  1679. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libfbjni.so +0 -0
  1680. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libfolly_futures.so +0 -0
  1681. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libfolly_json.so +0 -0
  1682. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libglog.so +0 -0
  1683. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libglog_init.so +0 -0
  1684. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libhermes-executor-common-debug.so +0 -0
  1685. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libhermes-executor-common-release.so +0 -0
  1686. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libhermes-executor-debug.so +0 -0
  1687. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libhermes-executor-release.so +0 -0
  1688. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libhermes-inspector.so +0 -0
  1689. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libjscexecutor.so +0 -0
  1690. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libjsijniprofiler.so +0 -0
  1691. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libjsinspector.so +0 -0
  1692. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libreact_codegen_reactandroidspec.so +0 -0
  1693. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libreact_nativemodule_core.so +0 -0
  1694. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libreactnativeblob.so +0 -0
  1695. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libreactnativejni.so +0 -0
  1696. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libreactnativeutilsjni.so +0 -0
  1697. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libreactperfloggerjni.so +0 -0
  1698. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libturbomodulejsijni.so +0 -0
  1699. package/ReactAndroid/src/main/jni/prebuilt/lib/armeabi-v7a/libyoga.so +0 -0
  1700. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libc++_shared.so +0 -0
  1701. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libfb.so +0 -0
  1702. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libfbjni.so +0 -0
  1703. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libfolly_futures.so +0 -0
  1704. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libfolly_json.so +0 -0
  1705. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libglog.so +0 -0
  1706. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libglog_init.so +0 -0
  1707. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libhermes-executor-common-debug.so +0 -0
  1708. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libhermes-executor-common-release.so +0 -0
  1709. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libhermes-executor-debug.so +0 -0
  1710. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libhermes-executor-release.so +0 -0
  1711. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libhermes-inspector.so +0 -0
  1712. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libjscexecutor.so +0 -0
  1713. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libjsijniprofiler.so +0 -0
  1714. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libjsinspector.so +0 -0
  1715. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libreact_codegen_reactandroidspec.so +0 -0
  1716. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libreact_nativemodule_core.so +0 -0
  1717. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libreactnativeblob.so +0 -0
  1718. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libreactnativejni.so +0 -0
  1719. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libreactnativeutilsjni.so +0 -0
  1720. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libreactperfloggerjni.so +0 -0
  1721. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libturbomodulejsijni.so +0 -0
  1722. package/ReactAndroid/src/main/jni/prebuilt/lib/x86/libyoga.so +0 -0
  1723. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libc++_shared.so +0 -0
  1724. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libfb.so +0 -0
  1725. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libfbjni.so +0 -0
  1726. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libfolly_futures.so +0 -0
  1727. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libfolly_json.so +0 -0
  1728. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libglog.so +0 -0
  1729. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libglog_init.so +0 -0
  1730. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libhermes-executor-common-debug.so +0 -0
  1731. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libhermes-executor-common-release.so +0 -0
  1732. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libhermes-executor-debug.so +0 -0
  1733. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libhermes-executor-release.so +0 -0
  1734. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libhermes-inspector.so +0 -0
  1735. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libjscexecutor.so +0 -0
  1736. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libjsijniprofiler.so +0 -0
  1737. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libjsinspector.so +0 -0
  1738. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libreact_codegen_reactandroidspec.so +0 -0
  1739. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libreact_nativemodule_core.so +0 -0
  1740. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libreactnativeblob.so +0 -0
  1741. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libreactnativejni.so +0 -0
  1742. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libreactnativeutilsjni.so +0 -0
  1743. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libreactperfloggerjni.so +0 -0
  1744. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libturbomodulejsijni.so +0 -0
  1745. package/ReactAndroid/src/main/jni/prebuilt/lib/x86_64/libyoga.so +0 -0
  1746. package/ReactAndroid/src/main/third-party/android/support/v4/BUCK +0 -685
  1747. package/ReactAndroid/src/main/third-party/android/support/v7/appcompat/BUCK +0 -62
  1748. package/ReactAndroid/src/main/third-party/android/support/v7/appcompat/aar-unpacker.py +0 -20
  1749. package/ReactCommon/cxxreact/re_worker_requirements +0 -6
  1750. package/ReactCommon/hermes/inspector/tools/msggen/.gitignore +0 -3
  1751. package/ReactCommon/react/renderer/components/picker/Android.mk +0 -37
  1752. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.cpp +0 -23
  1753. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.h +0 -27
  1754. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.cpp +0 -28
  1755. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.h +0 -77
  1756. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.h +0 -29
  1757. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerComponentDescriptor.h +0 -21
  1758. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.cpp +0 -23
  1759. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.h +0 -27
  1760. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.cpp +0 -28
  1761. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.h +0 -77
  1762. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.h +0 -29
  1763. package/ReactCommon/react/renderer/components/picker/iospicker/PickerComponentDescriptor.h +0 -26
  1764. package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.cpp +0 -23
  1765. package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.h +0 -28
  1766. package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.cpp +0 -46
  1767. package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.h +0 -36
  1768. package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.cpp +0 -16
  1769. package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.h +0 -33
  1770. package/ReactCommon/react/renderer/components/picker/iospicker/conversions.h +0 -47
  1771. package/ReactCommon/react/renderer/components/picker/iospicker/primitives.h +0 -29
  1772. package/ReactCommon/react/renderer/core/ConcreteStateTeller.h +0 -152
  1773. package/ReactCommon/react/renderer/mounting/TransactionTelemetry.cpp +0 -142
  1774. package/ReactCommon/react/renderer/mounting/tests/TransactionTelemetryTest.cpp +0 -125
  1775. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2-sources.jar +0 -0
  1776. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2-sources.jar.md5 +0 -1
  1777. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2-sources.jar.sha1 +0 -1
  1778. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2.aar.md5 +0 -1
  1779. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2.aar.sha1 +0 -1
  1780. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2.pom.md5 +0 -1
  1781. package/android/com/facebook/react/react-native/0.64.2-2/react-native-0.64.2-2.pom.sha1 +0 -1
  1782. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  1783. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
@@ -10,13 +10,16 @@
10
10
  #include <algorithm>
11
11
  #include <chrono>
12
12
 
13
+ #include <react/debug/flags.h>
14
+ #include <react/debug/react_native_assert.h>
15
+
13
16
  #include <react/renderer/componentregistry/ComponentDescriptorFactory.h>
14
- #include <react/renderer/components/root/RootShadowNode.h>
15
17
  #include <react/renderer/components/view/ViewProps.h>
16
18
  #include <react/renderer/core/ComponentDescriptor.h>
17
19
  #include <react/renderer/core/LayoutMetrics.h>
18
20
  #include <react/renderer/core/LayoutableShadowNode.h>
19
21
  #include <react/renderer/core/Props.h>
22
+ #include <react/renderer/core/PropsParserContext.h>
20
23
  #include <react/renderer/core/RawValue.h>
21
24
  #include <react/renderer/mounting/MountingCoordinator.h>
22
25
  #include <react/renderer/mounting/ShadowViewMutation.h>
@@ -57,8 +60,19 @@ static std::string GetMutationInstructionString(
57
60
  void PrintMutationInstruction(
58
61
  std::string message,
59
62
  ShadowViewMutation const &mutation) {
60
- LOG(ERROR) << message
61
- << " Mutation: " << GetMutationInstructionString(mutation);
63
+ [&](std::ostream &stream) -> std::ostream & {
64
+ stream << message
65
+ << " Mutation: " << GetMutationInstructionString(mutation);
66
+ if (mutation.oldChildShadowView.tag != 0) {
67
+ stream << " old hash: ##"
68
+ << std::hash<ShadowView>{}(mutation.oldChildShadowView);
69
+ }
70
+ if (mutation.newChildShadowView.tag != 0) {
71
+ stream << " new hash: ##"
72
+ << std::hash<ShadowView>{}(mutation.newChildShadowView);
73
+ }
74
+ return stream;
75
+ }(LOG(ERROR));
62
76
  }
63
77
  void PrintMutationInstructionRelative(
64
78
  std::string message,
@@ -73,22 +87,22 @@ void PrintMutationInstructionRelative(
73
87
 
74
88
  static better::optional<AnimationType> parseAnimationType(std::string param) {
75
89
  if (param == "spring") {
76
- return better::optional<AnimationType>(AnimationType::Spring);
90
+ return AnimationType::Spring;
77
91
  }
78
92
  if (param == "linear") {
79
- return better::optional<AnimationType>(AnimationType::Linear);
93
+ return AnimationType::Linear;
80
94
  }
81
95
  if (param == "easeInEaseOut") {
82
- return better::optional<AnimationType>(AnimationType::EaseInEaseOut);
96
+ return AnimationType::EaseInEaseOut;
83
97
  }
84
98
  if (param == "easeIn") {
85
- return better::optional<AnimationType>(AnimationType::EaseIn);
99
+ return AnimationType::EaseIn;
86
100
  }
87
101
  if (param == "easeOut") {
88
- return better::optional<AnimationType>(AnimationType::EaseOut);
102
+ return AnimationType::EaseOut;
89
103
  }
90
104
  if (param == "keyboard") {
91
- return better::optional<AnimationType>(AnimationType::Keyboard);
105
+ return AnimationType::Keyboard;
92
106
  }
93
107
 
94
108
  LOG(ERROR) << "Error parsing animation type: " << param;
@@ -98,16 +112,16 @@ static better::optional<AnimationType> parseAnimationType(std::string param) {
98
112
  static better::optional<AnimationProperty> parseAnimationProperty(
99
113
  std::string param) {
100
114
  if (param == "opacity") {
101
- return better::optional<AnimationProperty>(AnimationProperty::Opacity);
115
+ return AnimationProperty::Opacity;
102
116
  }
103
117
  if (param == "scaleX") {
104
- return better::optional<AnimationProperty>(AnimationProperty::ScaleX);
118
+ return AnimationProperty::ScaleX;
105
119
  }
106
120
  if (param == "scaleY") {
107
- return better::optional<AnimationProperty>(AnimationProperty::ScaleY);
121
+ return AnimationProperty::ScaleY;
108
122
  }
109
123
  if (param == "scaleXY") {
110
- return better::optional<AnimationProperty>(AnimationProperty::ScaleXY);
124
+ return AnimationProperty::ScaleXY;
111
125
  }
112
126
 
113
127
  LOG(ERROR) << "Error parsing animation property: " << param;
@@ -119,13 +133,13 @@ static better::optional<AnimationConfig> parseAnimationConfig(
119
133
  double defaultDuration,
120
134
  bool parsePropertyType) {
121
135
  if (config.empty() || !config.isObject()) {
122
- return better::optional<AnimationConfig>(
123
- AnimationConfig{AnimationType::Linear,
124
- AnimationProperty::NotApplicable,
125
- defaultDuration,
126
- 0,
127
- 0,
128
- 0});
136
+ return AnimationConfig{
137
+ AnimationType::Linear,
138
+ AnimationProperty::NotApplicable,
139
+ defaultDuration,
140
+ 0,
141
+ 0,
142
+ 0};
129
143
  }
130
144
 
131
145
  auto const typeIt = config.find("type");
@@ -220,12 +234,13 @@ static better::optional<AnimationConfig> parseAnimationConfig(
220
234
  }
221
235
  }
222
236
 
223
- return better::optional<AnimationConfig>(AnimationConfig{*animationType,
224
- animationProperty,
225
- duration,
226
- delay,
227
- springDamping,
228
- initialVelocity});
237
+ return better::optional<AnimationConfig>(AnimationConfig{
238
+ *animationType,
239
+ animationProperty,
240
+ duration,
241
+ delay,
242
+ springDamping,
243
+ initialVelocity});
229
244
  }
230
245
 
231
246
  // Parse animation config from JS
@@ -292,14 +307,14 @@ void LayoutAnimationKeyFrameManager::uiManagerDidConfigureNextLayoutAnimation(
292
307
  if (layoutAnimationConfig) {
293
308
  std::lock_guard<std::mutex> lock(currentAnimationMutex_);
294
309
 
295
- currentAnimation_ = better::optional<LayoutAnimation>{
296
- LayoutAnimation{-1,
297
- 0,
298
- false,
299
- *layoutAnimationConfig,
300
- successCallback,
301
- failureCallback,
302
- {}}};
310
+ uiManagerDidConfigureNextLayoutAnimation(LayoutAnimation{
311
+ -1,
312
+ 0,
313
+ false,
314
+ *layoutAnimationConfig,
315
+ successCallback,
316
+ failureCallback,
317
+ {}});
303
318
  } else {
304
319
  LOG(ERROR) << "Parsing LayoutAnimationConfig failed: "
305
320
  << (folly::dynamic)config;
@@ -308,6 +323,11 @@ void LayoutAnimationKeyFrameManager::uiManagerDidConfigureNextLayoutAnimation(
308
323
  }
309
324
  }
310
325
 
326
+ void LayoutAnimationKeyFrameManager::uiManagerDidConfigureNextLayoutAnimation(
327
+ LayoutAnimation layoutAnimation) const {
328
+ currentAnimation_ = better::optional<LayoutAnimation>{layoutAnimation};
329
+ }
330
+
311
331
  void LayoutAnimationKeyFrameManager::setLayoutAnimationStatusDelegate(
312
332
  LayoutAnimationStatusDelegate *delegate) const {
313
333
  std::lock_guard<std::mutex> lock(layoutAnimationStatusDelegateMutex_);
@@ -324,9 +344,7 @@ void LayoutAnimationKeyFrameManager::stopSurface(SurfaceId surfaceId) {
324
344
  }
325
345
 
326
346
  bool LayoutAnimationKeyFrameManager::shouldAnimateFrame() const {
327
- // There is potentially a race here between getting and setting
328
- // `currentMutation_`. We don't want to lock around this because then we're
329
- // creating contention between pullTransaction and the JS thread.
347
+ std::lock_guard<std::mutex> lock(currentAnimationMutex_);
330
348
  return currentAnimation_ || !inflightAnimations_.empty();
331
349
  }
332
350
 
@@ -375,8 +393,9 @@ LayoutAnimationKeyFrameManager::calculateAnimationProgress(
375
393
  } else if (mutationConfig.animationType == AnimationType::EaseInEaseOut) {
376
394
  // This is a combination of accelerate+decelerate.
377
395
  // The animation starts and ends slowly, and speeds up in the middle.
378
- return {linearTimeProgression,
379
- cos((linearTimeProgression + 1.0) * PI) / 2 + 0.5};
396
+ return {
397
+ linearTimeProgression,
398
+ cos((linearTimeProgression + 1.0) * PI) / 2 + 0.5};
380
399
  } else if (mutationConfig.animationType == AnimationType::Spring) {
381
400
  // Using mSpringDamping in this equation is not really the exact
382
401
  // mathematical springDamping, but a good approximation We need to replace
@@ -400,10 +419,11 @@ void LayoutAnimationKeyFrameManager::
400
419
  bool skipLastAnimation,
401
420
  bool lastAnimationOnly) const {
402
421
  bool isRemoveMutation = mutation.type == ShadowViewMutation::Type::Remove;
403
- assert(isRemoveMutation || mutation.type == ShadowViewMutation::Type::Insert);
422
+ react_native_assert(
423
+ isRemoveMutation || mutation.type == ShadowViewMutation::Type::Insert);
404
424
 
405
425
  // TODO: turn all of this into a lambda and share code?
406
- if (mutatedViewIsVirtual(mutation)) {
426
+ if (mutation.mutatedViewIsVirtual()) {
407
427
  PrintMutationInstruction(
408
428
  "[IndexAdjustment] Not calling adjustImmediateMutationIndicesForDelayedMutations, is virtual, for:",
409
429
  mutation);
@@ -440,34 +460,30 @@ void LayoutAnimationKeyFrameManager::
440
460
  }
441
461
 
442
462
  // Detect if they're in the same view hierarchy, but not equivalent
443
- // (We've already detected direct conflicts and handled them above)
463
+ // We've already detected direct conflicts and removed them.
444
464
  if (animatedKeyFrame.parentView.tag != mutation.parentShadowView.tag) {
445
465
  continue;
446
466
  }
447
467
 
448
- if (!animatedKeyFrame.finalMutationForKeyFrame.has_value()) {
449
- continue;
450
- }
451
-
452
- auto &delayedMutation = *animatedKeyFrame.finalMutationForKeyFrame;
468
+ for (auto &delayedMutation : animatedKeyFrame.finalMutationsForKeyFrame) {
469
+ if (delayedMutation.type != ShadowViewMutation::Type::Remove) {
470
+ continue;
471
+ }
472
+ if (delayedMutation.mutatedViewIsVirtual()) {
473
+ continue;
474
+ }
475
+ if (delayedMutation.oldChildShadowView.tag ==
476
+ (isRemoveMutation ? mutation.oldChildShadowView.tag
477
+ : mutation.newChildShadowView.tag)) {
478
+ continue;
479
+ }
453
480
 
454
- if (delayedMutation.type != ShadowViewMutation::Type::Remove) {
455
- continue;
456
- }
457
- if (mutatedViewIsVirtual(delayedMutation)) {
458
- continue;
481
+ PrintMutationInstructionRelative(
482
+ "[IndexAdjustment] adjustImmediateMutationIndicesForDelayedMutations CANDIDATE for:",
483
+ mutation,
484
+ delayedMutation);
485
+ candidateMutations.push_back(&delayedMutation);
459
486
  }
460
- if (delayedMutation.oldChildShadowView.tag ==
461
- (isRemoveMutation ? mutation.oldChildShadowView.tag
462
- : mutation.newChildShadowView.tag)) {
463
- continue;
464
- }
465
-
466
- PrintMutationInstructionRelative(
467
- "[IndexAdjustment] adjustImmediateMutationIndicesForDelayedMutations CANDIDATE for:",
468
- mutation,
469
- delayedMutation);
470
- candidateMutations.push_back(&delayedMutation);
471
487
  }
472
488
 
473
489
  if (lastAnimationOnly) {
@@ -486,7 +502,8 @@ void LayoutAnimationKeyFrameManager::
486
502
  std::remove_if(
487
503
  candidateMutations.begin(),
488
504
  candidateMutations.end(),
489
- [&](ShadowViewMutation *candidateMutation) {
505
+ [&changed, &mutation, &adjustedDelta, &isRemoveMutation](
506
+ ShadowViewMutation *candidateMutation) {
490
507
  bool indexConflicts =
491
508
  (candidateMutation->index < mutation.index ||
492
509
  (isRemoveMutation &&
@@ -513,9 +530,11 @@ void LayoutAnimationKeyFrameManager::adjustDelayedMutationIndicesForMutation(
513
530
  bool skipLastAnimation) const {
514
531
  bool isRemoveMutation = mutation.type == ShadowViewMutation::Type::Remove;
515
532
  bool isInsertMutation = mutation.type == ShadowViewMutation::Type::Insert;
516
- assert(isRemoveMutation || isInsertMutation);
533
+ auto tag = isRemoveMutation ? mutation.oldChildShadowView.tag
534
+ : mutation.newChildShadowView.tag;
535
+ react_native_assert(isRemoveMutation || isInsertMutation);
517
536
 
518
- if (mutatedViewIsVirtual(mutation)) {
537
+ if (mutation.mutatedViewIsVirtual()) {
519
538
  PrintMutationInstruction(
520
539
  "[IndexAdjustment] Not calling adjustDelayedMutationIndicesForMutation, is virtual, for:",
521
540
  mutation);
@@ -554,31 +573,25 @@ void LayoutAnimationKeyFrameManager::adjustDelayedMutationIndicesForMutation(
554
573
  continue;
555
574
  }
556
575
 
557
- if (!animatedKeyFrame.finalMutationForKeyFrame.has_value()) {
558
- continue;
559
- }
560
- ShadowViewMutation &finalAnimationMutation =
561
- *animatedKeyFrame.finalMutationForKeyFrame;
576
+ for (auto &finalAnimationMutation :
577
+ animatedKeyFrame.finalMutationsForKeyFrame) {
578
+ if (finalAnimationMutation.oldChildShadowView.tag == tag) {
579
+ continue;
580
+ }
562
581
 
563
- if (finalAnimationMutation.oldChildShadowView.tag ==
564
- (isRemoveMutation ? mutation.oldChildShadowView.tag
565
- : mutation.newChildShadowView.tag)) {
566
- continue;
567
- }
582
+ if (finalAnimationMutation.type != ShadowViewMutation::Type::Remove) {
583
+ continue;
584
+ }
585
+ if (finalAnimationMutation.mutatedViewIsVirtual()) {
586
+ continue;
587
+ }
568
588
 
569
- if (finalAnimationMutation.type != ShadowViewMutation::Type::Remove) {
570
- continue;
571
- }
572
- if (mutatedViewIsVirtual(*animatedKeyFrame.finalMutationForKeyFrame)) {
573
- continue;
589
+ PrintMutationInstructionRelative(
590
+ "[IndexAdjustment] adjustDelayedMutationIndicesForMutation: CANDIDATE:",
591
+ mutation,
592
+ finalAnimationMutation);
593
+ candidateMutations.push_back(&finalAnimationMutation);
574
594
  }
575
-
576
- PrintMutationInstructionRelative(
577
- "[IndexAdjustment] adjustDelayedMutationIndicesForMutation: CANDIDATE:",
578
- mutation,
579
- *animatedKeyFrame.finalMutationForKeyFrame);
580
- candidateMutations.push_back(
581
- animatedKeyFrame.finalMutationForKeyFrame.get_pointer());
582
595
  }
583
596
  }
584
597
 
@@ -628,25 +641,21 @@ void LayoutAnimationKeyFrameManager::adjustDelayedMutationIndicesForMutation(
628
641
  }
629
642
  }
630
643
 
631
- std::vector<std::tuple<AnimationKeyFrame, AnimationConfig, LayoutAnimation *>>
632
- LayoutAnimationKeyFrameManager::getAndEraseConflictingAnimations(
644
+ void LayoutAnimationKeyFrameManager::getAndEraseConflictingAnimations(
633
645
  SurfaceId surfaceId,
634
- ShadowViewMutationList &mutations,
635
- bool deletesOnly) const {
636
- std::vector<std::tuple<AnimationKeyFrame, AnimationConfig, LayoutAnimation *>>
637
- conflictingAnimations{};
638
-
639
- for (auto &mutation : mutations) {
640
- if (deletesOnly && mutation.type != ShadowViewMutation::Type::Delete) {
641
- continue;
642
- }
643
- PrintMutationInstruction("getAndEraseConflictingAnimations of: ", mutation);
644
-
646
+ ShadowViewMutationList const &mutations,
647
+ std::vector<AnimationKeyFrame> &conflictingAnimations) const {
648
+ ShadowViewMutationList localConflictingMutations{};
649
+ for (auto const &mutation : mutations) {
650
+ bool mutationIsCreateOrDelete =
651
+ mutation.type == ShadowViewMutation::Type::Create ||
652
+ mutation.type == ShadowViewMutation::Type::Delete;
645
653
  auto const &baselineShadowView =
646
654
  (mutation.type == ShadowViewMutation::Type::Insert ||
647
655
  mutation.type == ShadowViewMutation::Type::Create)
648
656
  ? mutation.newChildShadowView
649
657
  : mutation.oldChildShadowView;
658
+ auto baselineTag = baselineShadowView.tag;
650
659
 
651
660
  for (auto &inflightAnimation : inflightAnimations_) {
652
661
  if (inflightAnimation.surfaceId != surfaceId) {
@@ -664,53 +673,53 @@ LayoutAnimationKeyFrameManager::getAndEraseConflictingAnimations(
664
673
  continue;
665
674
  }
666
675
 
667
- bool conflicting = animatedKeyFrame.tag == baselineShadowView.tag ||
668
- ((mutation.type == ShadowViewMutation::Type::Delete ||
669
- mutation.type == ShadowViewMutation::Type::Create) &&
670
- animatedKeyFrame.parentView.tag == baselineShadowView.tag) /* ||
671
- finalMutationTag == baselineShadowView.tag*/
672
- ;
676
+ // A conflict is when either: the animated node itself is mutated
677
+ // directly; or, the parent of the node is created or deleted. In cases
678
+ // of reparenting - say, the parent is deleted but the node was moved to
679
+ // a different parent first - the reparenting (remove/insert) conflict
680
+ // will be detected before we process the parent DELETE.
681
+ // Parent deletion is important because deleting a parent recursively
682
+ // deletes all children. If we previously deferred deletion of a child,
683
+ // we need to force deletion/removal to happen immediately.
684
+ bool conflicting = animatedKeyFrame.tag == baselineTag ||
685
+ (mutationIsCreateOrDelete &&
686
+ animatedKeyFrame.parentView.tag == baselineTag &&
687
+ animatedKeyFrame.parentView.tag != 0);
673
688
 
674
689
  // Conflicting animation detected: if we're mutating a tag under
675
690
  // animation, or deleting the parent of a tag under animation, or
676
691
  // reparenting.
677
692
  if (conflicting) {
678
- auto const layoutAnimationConfig =
679
- inflightAnimation.layoutAnimationConfig;
680
-
681
- auto const mutationConfig =
682
- (animatedKeyFrame.type == AnimationConfigurationType::Delete
683
- ? layoutAnimationConfig.deleteConfig
684
- : (animatedKeyFrame.type ==
685
- AnimationConfigurationType::Create
686
- ? layoutAnimationConfig.createConfig
687
- : layoutAnimationConfig.updateConfig));
688
-
689
693
  animatedKeyFrame.invalidated = true;
690
694
 
691
695
  // We construct a list of all conflicting animations, whether or not
692
696
  // they have a "final mutation" to execute. This is important with,
693
697
  // for example, "insert" mutations where the final update needs to set
694
698
  // opacity to "1", even if there's no final ShadowNode update.
695
- if (!(animatedKeyFrame.finalMutationForKeyFrame.has_value() &&
696
- mutatedViewIsVirtual(
697
- *animatedKeyFrame.finalMutationForKeyFrame))) {
698
- conflictingAnimations.push_back(std::make_tuple(
699
- animatedKeyFrame, *mutationConfig, &inflightAnimation));
700
- }
699
+ // TODO: don't animate virtual views in the first place?
700
+ bool isVirtual = false;
701
+ for (const auto &finalMutationForKeyFrame :
702
+ animatedKeyFrame.finalMutationsForKeyFrame) {
703
+ isVirtual =
704
+ isVirtual || finalMutationForKeyFrame.mutatedViewIsVirtual();
701
705
 
702
706
  #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
703
- if (animatedKeyFrame.finalMutationForKeyFrame.has_value()) {
704
707
  PrintMutationInstructionRelative(
705
708
  "Found mutation that conflicts with existing in-flight animation:",
706
709
  mutation,
707
- *animatedKeyFrame.finalMutationForKeyFrame);
708
- } else {
709
- PrintMutationInstruction(
710
- "Found mutation that conflicts with existing in-flight animation (no final mutation):",
711
- mutation);
712
- }
710
+ finalMutationForKeyFrame);
713
711
  #endif
712
+ }
713
+
714
+ conflictingAnimations.push_back(animatedKeyFrame);
715
+ for (const auto &finalMutationForKeyFrame :
716
+ animatedKeyFrame.finalMutationsForKeyFrame) {
717
+ if (!isVirtual ||
718
+ finalMutationForKeyFrame.type ==
719
+ ShadowViewMutation::Type::Delete) {
720
+ localConflictingMutations.push_back(finalMutationForKeyFrame);
721
+ }
722
+ }
714
723
 
715
724
  // Delete from existing animation
716
725
  it = inflightAnimation.keyFrames.erase(it);
@@ -721,7 +730,17 @@ LayoutAnimationKeyFrameManager::getAndEraseConflictingAnimations(
721
730
  }
722
731
  }
723
732
 
724
- return conflictingAnimations;
733
+ // Recurse, in case conflicting mutations conflict with other existing
734
+ // animations
735
+ if (!localConflictingMutations.empty()) {
736
+ getAndEraseConflictingAnimations(
737
+ surfaceId, localConflictingMutations, conflictingAnimations);
738
+ }
739
+ }
740
+
741
+ void LayoutAnimationKeyFrameManager::setClockNow(
742
+ std::function<uint64_t()> now) {
743
+ now_ = now;
725
744
  }
726
745
 
727
746
  better::optional<MountingTransaction>
@@ -731,10 +750,7 @@ LayoutAnimationKeyFrameManager::pullTransaction(
731
750
  TransactionTelemetry const &telemetry,
732
751
  ShadowViewMutationList mutations) const {
733
752
  // Current time in milliseconds
734
- uint64_t now =
735
- std::chrono::duration_cast<std::chrono::milliseconds>(
736
- std::chrono::high_resolution_clock::now().time_since_epoch())
737
- .count();
753
+ uint64_t now = now_();
738
754
 
739
755
  bool inflightAnimationsExistInitially = !inflightAnimations_.empty();
740
756
 
@@ -785,7 +801,7 @@ LayoutAnimationKeyFrameManager::pullTransaction(
785
801
  LOG(ERROR) << "BEGINNING DISPLAYING ONGOING inflightAnimations_!";
786
802
  int i = 0;
787
803
  int j = 0;
788
- for (auto &inflightAnimation : inflightAnimations_) {
804
+ for (auto const &inflightAnimation : inflightAnimations_) {
789
805
  i++;
790
806
  j = 0;
791
807
  if (inflightAnimation.completed) {
@@ -796,20 +812,31 @@ LayoutAnimationKeyFrameManager::pullTransaction(
796
812
  if (keyframe.invalidated) {
797
813
  continue;
798
814
  }
799
- if (keyframe.finalMutationForKeyFrame &&
800
- !mutatedViewIsVirtual(*keyframe.finalMutationForKeyFrame)) {
801
- std::string msg = "Animation " + std::to_string(i) + " keyframe " +
802
- std::to_string(j) + ": Final Animation";
803
- PrintMutationInstruction(msg, *keyframe.finalMutationForKeyFrame);
804
- } else {
805
- LOG(ERROR) << "Animation " << i << " keyframe " << j << ": on tag: ["
806
- << keyframe.viewStart.tag << "]";
815
+ for (const auto &finalMutationForKeyFrame :
816
+ keyframe.finalMutationsForKeyFrame) {
817
+ if (finalMutationForKeyFrame.mutatedViewIsVirtual()) {
818
+ std::string msg = "Animation " + std::to_string(i) + " keyframe " +
819
+ std::to_string(j) + ": Final Animation";
820
+ PrintMutationInstruction(msg, finalMutationForKeyFrame);
821
+ } else {
822
+ LOG(ERROR) << "Animation " << i << " keyframe " << j
823
+ << ": on tag: [" << keyframe.viewStart.tag << "]";
824
+ }
807
825
  }
808
826
  }
809
827
  }
810
828
  LOG(ERROR) << "BEGINNING DONE DISPLAYING ONGOING inflightAnimations_!";
811
829
  #endif
812
830
 
831
+ // Stub PropsParserContext used for cloneProps.
832
+ // This is/should be safe because cloning doesn't actually need to
833
+ // parse props, and just copies them; therefore there should be no
834
+ // need to actually use anything in the PropsParserContext.
835
+ // If this ever changes, the LayoutAnimations API will need to change
836
+ // to pass in a real PropsParserContext.
837
+ ContextContainer contextContainer{};
838
+ PropsParserContext propsParserContext{surfaceId, contextContainer};
839
+
813
840
  // What to do if we detect a conflict? Get current value and make
814
841
  // that the baseline of the next animation. Scale the remaining time
815
842
  // in the animation
@@ -823,10 +850,9 @@ LayoutAnimationKeyFrameManager::pullTransaction(
823
850
  // current mutations then these deleted mutations will serve as the baseline
824
851
  // for the next animation. If not, the current mutations are executed
825
852
  // immediately without issues.
826
- std::vector<
827
- std::tuple<AnimationKeyFrame, AnimationConfig, LayoutAnimation *>>
828
- conflictingAnimations =
829
- getAndEraseConflictingAnimations(surfaceId, mutations);
853
+ std::vector<AnimationKeyFrame> conflictingAnimations{};
854
+ getAndEraseConflictingAnimations(
855
+ surfaceId, mutations, conflictingAnimations);
830
856
 
831
857
  // Are we animating this list of mutations?
832
858
  better::optional<LayoutAnimation> currentAnimation{};
@@ -885,23 +911,25 @@ LayoutAnimationKeyFrameManager::pullTransaction(
885
911
  std::vector<AnimationKeyFrame> keyFramesToAnimate;
886
912
  std::vector<AnimationKeyFrame> movesToAnimate;
887
913
  auto const layoutAnimationConfig = animation.layoutAnimationConfig;
888
- for (auto &mutation : mutations) {
914
+ for (auto const &mutation : mutations) {
889
915
  ShadowView baselineShadowView =
890
916
  (mutation.type == ShadowViewMutation::Type::Delete ||
891
- mutation.type == ShadowViewMutation::Type::Remove
917
+ mutation.type == ShadowViewMutation::Type::Remove ||
918
+ mutation.type == ShadowViewMutation::Type::Update
892
919
  ? mutation.oldChildShadowView
893
920
  : mutation.newChildShadowView);
921
+ react_native_assert(baselineShadowView.tag > 0);
894
922
  bool haveComponentDescriptor =
895
923
  hasComponentDescriptorForShadowView(baselineShadowView);
896
924
 
897
- bool executeMutationImmediately = false;
925
+ // Immediately execute any mutations on a root node
926
+ if (baselineShadowView.traits.check(
927
+ ShadowNodeTraits::Trait::RootNodeKind)) {
928
+ immediateMutations.push_back(mutation);
929
+ continue;
930
+ }
898
931
 
899
- auto mutationConfig =
900
- (mutation.type == ShadowViewMutation::Type::Delete
901
- ? layoutAnimationConfig.deleteConfig
902
- : (mutation.type == ShadowViewMutation::Type::Insert
903
- ? layoutAnimationConfig.createConfig
904
- : layoutAnimationConfig.updateConfig));
932
+ better::optional<ShadowViewMutation> executeMutationImmediately{};
905
933
 
906
934
  bool isRemoveReinserted =
907
935
  mutation.type == ShadowViewMutation::Type::Remove &&
@@ -927,7 +955,7 @@ LayoutAnimationKeyFrameManager::pullTransaction(
927
955
  // Inserts that follow a "remove" of the same tag should be treated as
928
956
  // an update (move) animation.
929
957
  bool wasInsertedTagRemoved = false;
930
- bool haveConfiguration = mutationConfig.has_value();
958
+ auto movedIt = movedTags.end();
931
959
  if (mutation.type == ShadowViewMutation::Type::Insert) {
932
960
  // If this is a move, we actually don't want to copy this insert
933
961
  // instruction to animated instructions - we want to
@@ -935,22 +963,30 @@ LayoutAnimationKeyFrameManager::pullTransaction(
935
963
  // the layout.
936
964
  // The corresponding Remove and Insert instructions will instead
937
965
  // be treated as "immediate" instructions.
938
- auto movedIt = movedTags.find(mutation.newChildShadowView.tag);
966
+ movedIt = movedTags.find(mutation.newChildShadowView.tag);
939
967
  wasInsertedTagRemoved = movedIt != movedTags.end();
940
- if (wasInsertedTagRemoved) {
941
- mutationConfig = layoutAnimationConfig.updateConfig;
942
- }
943
- haveConfiguration = mutationConfig.has_value();
944
-
945
- if (wasInsertedTagRemoved && haveConfiguration) {
946
- movesToAnimate.push_back(
947
- AnimationKeyFrame{{},
948
- AnimationConfigurationType::Update,
949
- mutation.newChildShadowView.tag,
950
- mutation.parentShadowView,
951
- movedIt->second.oldChildShadowView,
952
- mutation.newChildShadowView});
953
- }
968
+ }
969
+
970
+ auto const &mutationConfig =
971
+ (mutation.type == ShadowViewMutation::Type::Delete ||
972
+ (mutation.type == ShadowViewMutation::Type::Remove &&
973
+ !wasInsertedTagRemoved)
974
+ ? layoutAnimationConfig.deleteConfig
975
+ : (mutation.type == ShadowViewMutation::Type::Insert &&
976
+ !wasInsertedTagRemoved
977
+ ? layoutAnimationConfig.createConfig
978
+ : layoutAnimationConfig.updateConfig));
979
+ bool haveConfiguration =
980
+ mutationConfig.animationType != AnimationType::None;
981
+
982
+ if (wasInsertedTagRemoved && haveConfiguration) {
983
+ movesToAnimate.push_back(AnimationKeyFrame{
984
+ {},
985
+ AnimationConfigurationType::Update,
986
+ mutation.newChildShadowView.tag,
987
+ mutation.parentShadowView,
988
+ movedIt->second.oldChildShadowView,
989
+ mutation.newChildShadowView});
954
990
  }
955
991
 
956
992
  // Creates and inserts should also be executed immediately.
@@ -959,7 +995,72 @@ LayoutAnimationKeyFrameManager::pullTransaction(
959
995
  if (isRemoveReinserted || !haveConfiguration || isReparented ||
960
996
  mutation.type == ShadowViewMutation::Type::Create ||
961
997
  mutation.type == ShadowViewMutation::Type::Insert) {
962
- executeMutationImmediately = true;
998
+ executeMutationImmediately = mutation;
999
+
1000
+ // It is possible, especially in the case of "moves", that we have a
1001
+ // sequence of operations like:
1002
+ // UPDATE X
1003
+ // REMOVE X
1004
+ // INSERT X
1005
+ // In these cases, we will have queued up an animation for the UPDATE
1006
+ // and delayed its execution; the REMOVE and INSERT will be executed
1007
+ // first; and then the UPDATE will be animating to/from ShadowViews
1008
+ // that are out-of-sync with what's on the mounting layer. Thus, for
1009
+ // any UPDATE animations already queued up for this tag, we adjust the
1010
+ // "previous" ShadowView.
1011
+ if (mutation.type == ShadowViewMutation::Type::Insert) {
1012
+ for (auto &keyframe : keyFramesToAnimate) {
1013
+ if (keyframe.tag == baselineShadowView.tag) {
1014
+ // If there's already an animation queued up, followed by this
1015
+ // Insert, it *must* be an Update mutation animation. Other
1016
+ // sequences should not be possible.
1017
+ react_native_assert(
1018
+ keyframe.type == AnimationConfigurationType::Update);
1019
+
1020
+ // The mutation is an "insert", so it must have a
1021
+ // "newChildShadowView"
1022
+ react_native_assert(mutation.newChildShadowView.tag > 0);
1023
+
1024
+ // Those asserts don't run in prod. If there's some edge-case
1025
+ // that we haven't caught yet, we'd crash in debug; make sure we
1026
+ // don't mutate the prevView in prod.
1027
+ if (keyframe.type == AnimationConfigurationType::Update &&
1028
+ mutation.newChildShadowView.tag > 0) {
1029
+ keyframe.viewPrev = mutation.newChildShadowView;
1030
+ }
1031
+ }
1032
+ }
1033
+ } else if (mutation.type == ShadowViewMutation::Type::Remove) {
1034
+ for (auto &keyframe : keyFramesToAnimate) {
1035
+ if (keyframe.tag == baselineShadowView.tag) {
1036
+ // If there's already an animation queued up, followed by this
1037
+ // Insert, it *must* be an Update mutation animation. Other
1038
+ // sequences should not be possible.
1039
+ react_native_assert(
1040
+ keyframe.type == AnimationConfigurationType::Update);
1041
+
1042
+ // The mutation is a "remove", so it must have a
1043
+ // "oldChildShadowView"
1044
+ react_native_assert(mutation.oldChildShadowView.tag > 0);
1045
+
1046
+ // Those asserts don't run in prod. If there's some edge-case
1047
+ // that we haven't caught yet, we'd crash in debug; make sure we
1048
+ // don't mutate the prevView in prod.
1049
+ // Since normally the UPDATE would have been executed first and
1050
+ // now it's deferred, we need to change the `oldChildShadowView`
1051
+ // that is being referenced by the REMOVE mutation.
1052
+ if (keyframe.type == AnimationConfigurationType::Update &&
1053
+ mutation.oldChildShadowView.tag > 0) {
1054
+ executeMutationImmediately = ShadowViewMutation{
1055
+ mutation.type,
1056
+ mutation.parentShadowView,
1057
+ keyframe.viewPrev,
1058
+ {},
1059
+ mutation.index};
1060
+ }
1061
+ }
1062
+ }
1063
+ }
963
1064
  }
964
1065
 
965
1066
  // Deletes, non-move inserts, updates get animated
@@ -970,112 +1071,126 @@ LayoutAnimationKeyFrameManager::pullTransaction(
970
1071
  mutation.type == ShadowViewMutation::Type::Insert
971
1072
  ? mutation.newChildShadowView
972
1073
  : mutation.oldChildShadowView);
1074
+ react_native_assert(viewStart.tag > 0);
973
1075
  ShadowView viewFinal = ShadowView(
974
1076
  mutation.type == ShadowViewMutation::Type::Update
975
1077
  ? mutation.newChildShadowView
976
1078
  : viewStart);
1079
+ react_native_assert(viewFinal.tag > 0);
977
1080
  ShadowView parent = mutation.parentShadowView;
1081
+ react_native_assert(
1082
+ parent.tag > 0 ||
1083
+ mutation.type == ShadowViewMutation::Type::Update ||
1084
+ mutation.type == ShadowViewMutation::Type::Delete);
978
1085
  Tag tag = viewStart.tag;
979
1086
 
980
1087
  AnimationKeyFrame keyFrame{};
981
1088
  if (mutation.type == ShadowViewMutation::Type::Insert) {
982
- if (mutationConfig->animationProperty ==
1089
+ if (mutationConfig.animationProperty ==
983
1090
  AnimationProperty::Opacity &&
984
1091
  haveComponentDescriptor) {
985
1092
  auto props =
986
1093
  getComponentDescriptorForShadowView(baselineShadowView)
987
- .cloneProps(viewStart.props, {});
1094
+ .cloneProps(propsParserContext, viewStart.props, {});
1095
+
1096
+ // Dynamic cast, because - we don't know the type of this
1097
+ // ShadowNode, it could be Image or Text or something else with
1098
+ // different base props.
988
1099
  const auto viewProps =
989
1100
  dynamic_cast<const ViewProps *>(props.get());
990
1101
  if (viewProps != nullptr) {
991
1102
  const_cast<ViewProps *>(viewProps)->opacity = 0;
992
1103
  }
993
- viewStart.props = props;
994
- }
995
- bool isScaleX = mutationConfig->animationProperty ==
996
- AnimationProperty::ScaleX ||
997
- mutationConfig->animationProperty == AnimationProperty::ScaleXY;
998
- bool isScaleY = mutationConfig->animationProperty ==
999
- AnimationProperty::ScaleY ||
1000
- mutationConfig->animationProperty == AnimationProperty::ScaleXY;
1001
- if ((isScaleX || isScaleY) && haveComponentDescriptor) {
1002
- auto props =
1003
- getComponentDescriptorForShadowView(baselineShadowView)
1004
- .cloneProps(viewStart.props, {});
1005
- const auto viewProps =
1006
- dynamic_cast<const ViewProps *>(props.get());
1007
- if (viewProps != nullptr) {
1008
- const_cast<ViewProps *>(viewProps)->transform =
1009
- Transform::Scale(isScaleX ? 0 : 1, isScaleY ? 0 : 1, 1);
1010
- }
1011
- viewStart.props = props;
1012
- }
1013
1104
 
1014
- keyFrame = AnimationKeyFrame{{},
1015
- AnimationConfigurationType::Create,
1016
- tag,
1017
- parent,
1018
- viewStart,
1019
- viewFinal,
1020
- 0};
1021
- } else if (mutation.type == ShadowViewMutation::Type::Delete) {
1022
- if (mutationConfig->animationProperty ==
1023
- AnimationProperty::Opacity &&
1024
- haveComponentDescriptor) {
1025
- auto props =
1026
- getComponentDescriptorForShadowView(baselineShadowView)
1027
- .cloneProps(viewFinal.props, {});
1028
- const auto viewProps =
1029
- dynamic_cast<const ViewProps *>(props.get());
1030
- if (viewProps != nullptr) {
1031
- const_cast<ViewProps *>(viewProps)->opacity = 0;
1105
+ react_native_assert(props != nullptr);
1106
+ if (props != nullptr) {
1107
+ viewStart.props = props;
1032
1108
  }
1033
- viewFinal.props = props;
1034
1109
  }
1035
- bool isScaleX = mutationConfig->animationProperty ==
1036
- AnimationProperty::ScaleX ||
1037
- mutationConfig->animationProperty == AnimationProperty::ScaleXY;
1038
- bool isScaleY = mutationConfig->animationProperty ==
1039
- AnimationProperty::ScaleY ||
1040
- mutationConfig->animationProperty == AnimationProperty::ScaleXY;
1110
+ bool isScaleX =
1111
+ mutationConfig.animationProperty == AnimationProperty::ScaleX ||
1112
+ mutationConfig.animationProperty == AnimationProperty::ScaleXY;
1113
+ bool isScaleY =
1114
+ mutationConfig.animationProperty == AnimationProperty::ScaleY ||
1115
+ mutationConfig.animationProperty == AnimationProperty::ScaleXY;
1041
1116
  if ((isScaleX || isScaleY) && haveComponentDescriptor) {
1042
1117
  auto props =
1043
1118
  getComponentDescriptorForShadowView(baselineShadowView)
1044
- .cloneProps(viewFinal.props, {});
1119
+ .cloneProps(propsParserContext, viewStart.props, {});
1120
+
1121
+ // Dynamic cast, because - we don't know the type of this
1122
+ // ShadowNode, it could be Image or Text or something else with
1123
+ // different base props.
1045
1124
  const auto viewProps =
1046
1125
  dynamic_cast<const ViewProps *>(props.get());
1047
1126
  if (viewProps != nullptr) {
1048
1127
  const_cast<ViewProps *>(viewProps)->transform =
1049
1128
  Transform::Scale(isScaleX ? 0 : 1, isScaleY ? 0 : 1, 1);
1050
1129
  }
1051
- viewFinal.props = props;
1130
+
1131
+ react_native_assert(props != nullptr);
1132
+ if (props != nullptr) {
1133
+ viewStart.props = props;
1134
+ }
1052
1135
  }
1053
1136
 
1137
+ PrintMutationInstruction(
1138
+ "Setting up animation KeyFrame for INSERT mutation (Create animation)",
1139
+ mutation);
1140
+
1054
1141
  keyFrame = AnimationKeyFrame{
1055
- better::optional<ShadowViewMutation>(mutation),
1056
- AnimationConfigurationType::Delete,
1142
+ {},
1143
+ AnimationConfigurationType::Create,
1057
1144
  tag,
1058
1145
  parent,
1059
1146
  viewStart,
1060
1147
  viewFinal,
1148
+ baselineShadowView,
1061
1149
  0};
1150
+ } else if (mutation.type == ShadowViewMutation::Type::Delete) {
1151
+ // This is just for assertion purposes.
1152
+ // The NDEBUG check here is to satisfy the compiler in certain environments
1153
+ // complaining about correspondingRemoveIt being unused.
1154
+ #ifdef REACT_NATIVE_DEBUG
1155
+ #ifndef NDEBUG
1156
+ // This block is temporarily disabled to fix some internal builds.
1157
+ // In some build configurations, we get a compiler error that
1158
+ // `correspondingRemoveIt` is unused.
1159
+ /* Tag deleteTag = mutation.oldChildShadowView.tag;
1160
+ auto correspondingRemoveIt = std::find_if(
1161
+ mutations.begin(),
1162
+ mutations.end(),
1163
+ [&deleteTag](auto &mutation) {
1164
+ return mutation.type == ShadowViewMutation::Type::Remove &&
1165
+ mutation.oldChildShadowView.tag == deleteTag;
1166
+ });
1167
+ react_native_assert(correspondingRemoveIt != mutations.end());
1168
+ */
1169
+ #endif
1170
+ #endif
1171
+ continue;
1062
1172
  } else if (mutation.type == ShadowViewMutation::Type::Update) {
1063
1173
  viewFinal = ShadowView(mutation.newChildShadowView);
1064
1174
 
1175
+ PrintMutationInstruction(
1176
+ "Setting up animation KeyFrame for UPDATE mutation (Update animation)",
1177
+ mutation);
1178
+
1065
1179
  keyFrame = AnimationKeyFrame{
1066
- better::optional<ShadowViewMutation>(mutation),
1180
+ {mutation},
1067
1181
  AnimationConfigurationType::Update,
1068
1182
  tag,
1069
1183
  parent,
1070
1184
  viewStart,
1071
1185
  viewFinal,
1186
+ baselineShadowView,
1072
1187
  0};
1073
1188
  } else {
1074
1189
  // This should just be "Remove" instructions that are not animated
1075
1190
  // (either this is a "move", or there's a corresponding "Delete"
1076
- // that is animated). We configure it as a Noop animation so it is
1077
- // executed when all the other animations are completed.
1078
- assert(mutation.type == ShadowViewMutation::Type::Remove);
1191
+ // that is animated).
1192
+ react_native_assert(
1193
+ mutation.type == ShadowViewMutation::Type::Remove);
1079
1194
 
1080
1195
  Tag removeTag = mutation.oldChildShadowView.tag;
1081
1196
  auto correspondingInsertIt = std::find_if(
@@ -1086,14 +1201,81 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1086
1201
  mutation.newChildShadowView.tag == removeTag;
1087
1202
  });
1088
1203
  if (correspondingInsertIt == mutations.end()) {
1089
- PrintMutationInstruction("Queueing Delayed", mutation);
1204
+ // This is a REMOVE not paired with an INSERT (move), so it must
1205
+ // be paired with a DELETE.
1206
+ auto correspondingDeleteIt = std::find_if(
1207
+ mutations.begin(),
1208
+ mutations.end(),
1209
+ [&removeTag](auto &mutation) {
1210
+ return mutation.type == ShadowViewMutation::Type::Delete &&
1211
+ mutation.oldChildShadowView.tag == removeTag;
1212
+ });
1213
+ react_native_assert(correspondingDeleteIt != mutations.end());
1214
+
1215
+ auto deleteMutation = *correspondingDeleteIt;
1216
+
1217
+ if (mutationConfig.animationProperty ==
1218
+ AnimationProperty::Opacity &&
1219
+ haveComponentDescriptor) {
1220
+ auto props =
1221
+ getComponentDescriptorForShadowView(baselineShadowView)
1222
+ .cloneProps(propsParserContext, viewFinal.props, {});
1223
+
1224
+ // Dynamic cast, because - we don't know the type of this
1225
+ // ShadowNode, it could be Image or Text or something else with
1226
+ // different base props.
1227
+ const auto viewProps =
1228
+ dynamic_cast<const ViewProps *>(props.get());
1229
+ if (viewProps != nullptr) {
1230
+ const_cast<ViewProps *>(viewProps)->opacity = 0;
1231
+ }
1232
+
1233
+ react_native_assert(props != nullptr);
1234
+ if (props != nullptr) {
1235
+ viewFinal.props = props;
1236
+ }
1237
+ }
1238
+ bool isScaleX = mutationConfig.animationProperty ==
1239
+ AnimationProperty::ScaleX ||
1240
+ mutationConfig.animationProperty ==
1241
+ AnimationProperty::ScaleXY;
1242
+ bool isScaleY = mutationConfig.animationProperty ==
1243
+ AnimationProperty::ScaleY ||
1244
+ mutationConfig.animationProperty ==
1245
+ AnimationProperty::ScaleXY;
1246
+ if ((isScaleX || isScaleY) && haveComponentDescriptor) {
1247
+ auto props =
1248
+ getComponentDescriptorForShadowView(baselineShadowView)
1249
+ .cloneProps(propsParserContext, viewFinal.props, {});
1250
+
1251
+ // Dynamic cast, because - we don't know the type of this
1252
+ // ShadowNode, it could be Image or Text or something else with
1253
+ // different base props.
1254
+ const auto viewProps =
1255
+ dynamic_cast<const ViewProps *>(props.get());
1256
+ if (viewProps != nullptr) {
1257
+ const_cast<ViewProps *>(viewProps)->transform =
1258
+ Transform::Scale(isScaleX ? 0 : 1, isScaleY ? 0 : 1, 1);
1259
+ }
1260
+
1261
+ react_native_assert(props != nullptr);
1262
+ if (props != nullptr) {
1263
+ viewFinal.props = props;
1264
+ }
1265
+ }
1266
+
1267
+ PrintMutationInstruction(
1268
+ "Setting up animation KeyFrame for REMOVE mutation (Delete animation)",
1269
+ mutation);
1270
+
1090
1271
  keyFrame = AnimationKeyFrame{
1091
- better::optional<ShadowViewMutation>(mutation),
1092
- AnimationConfigurationType::Noop,
1272
+ {mutation, deleteMutation},
1273
+ AnimationConfigurationType::Delete,
1093
1274
  tag,
1094
1275
  parent,
1095
- {},
1096
- {},
1276
+ viewStart,
1277
+ viewFinal,
1278
+ baselineShadowView,
1097
1279
  0};
1098
1280
  } else {
1099
1281
  PrintMutationInstruction(
@@ -1105,37 +1287,33 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1105
1287
  }
1106
1288
 
1107
1289
  // Handle conflicting animations
1108
- for (auto &conflictingKeyframeTuple : conflictingAnimations) {
1109
- auto &conflictingKeyFrame = std::get<0>(conflictingKeyframeTuple);
1290
+ for (auto &conflictingKeyFrame : conflictingAnimations) {
1110
1291
  auto const &conflictingMutationBaselineShadowView =
1111
1292
  conflictingKeyFrame.viewStart;
1112
1293
 
1113
1294
  // We've found a conflict.
1114
1295
  if (conflictingMutationBaselineShadowView.tag == tag) {
1115
- // What's the progress of this ongoing animation?
1116
- double conflictingAnimationProgress =
1117
- calculateAnimationProgress(
1118
- now,
1119
- *std::get<2>(conflictingKeyframeTuple),
1120
- std::get<1>(conflictingKeyframeTuple))
1121
- .first;
1122
-
1123
- // Get a baseline ShadowView at the current progress of the
1124
- // inflight animation. TODO: handle multiple properties being
1125
- // animated separately?
1126
- auto interpolatedInflightShadowView =
1127
- createInterpolatedShadowView(
1128
- conflictingAnimationProgress,
1129
- conflictingKeyFrame.viewStart,
1130
- conflictingKeyFrame.viewEnd);
1296
+ conflictingKeyFrame.generateFinalSyntheticMutations = false;
1297
+
1298
+ // Do NOT update viewStart for a CREATE animation.
1299
+ if (keyFrame.type == AnimationConfigurationType::Create) {
1300
+ break;
1301
+ }
1131
1302
 
1303
+ #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
1304
+ LOG(ERROR)
1305
+ << "Due to conflict, replacing 'viewStart' of animated keyframe: ["
1306
+ << conflictingKeyFrame.viewPrev.tag << "] with ##"
1307
+ << std::hash<ShadowView>{}(conflictingKeyFrame.viewPrev);
1308
+ #endif
1132
1309
  // Pick a Prop or layout property, depending on the current
1133
1310
  // animation configuration. Figure out how much progress we've
1134
1311
  // already made in the current animation, and start the animation
1135
1312
  // from this point.
1136
- keyFrame.viewStart = interpolatedInflightShadowView;
1137
- keyFrame.initialProgress = getProgressThroughAnimation(
1138
- keyFrame, &animation, interpolatedInflightShadowView);
1313
+ keyFrame.viewPrev = conflictingKeyFrame.viewPrev;
1314
+ keyFrame.viewStart = conflictingKeyFrame.viewPrev;
1315
+ react_native_assert(keyFrame.viewStart.tag > 0);
1316
+ keyFrame.initialProgress = 0;
1139
1317
 
1140
1318
  // We're guaranteed that a tag only has one animation associated
1141
1319
  // with it, so we can break here. If we support multiple
@@ -1145,11 +1323,22 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1145
1323
  }
1146
1324
  }
1147
1325
 
1326
+ #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
1327
+ LOG(ERROR) << "Checking validity of keyframe: ["
1328
+ << keyFrame.viewStart.tag << "] [" << keyFrame.viewEnd.tag
1329
+ << "] [" << keyFrame.viewPrev.tag
1330
+ << "] animation type: " << (int)keyFrame.type;
1331
+ #endif
1332
+ react_native_assert(keyFrame.viewStart.tag > 0);
1333
+ react_native_assert(keyFrame.viewEnd.tag > 0);
1334
+ react_native_assert(keyFrame.viewPrev.tag > 0);
1148
1335
  keyFramesToAnimate.push_back(keyFrame);
1149
1336
  }
1150
1337
 
1151
- if (executeMutationImmediately) {
1152
- immediateMutations.push_back(mutation);
1338
+ if (executeMutationImmediately.hasValue()) {
1339
+ PrintMutationInstruction(
1340
+ "Queue Up For Immediate Execution", *executeMutationImmediately);
1341
+ immediateMutations.push_back(*executeMutationImmediately);
1153
1342
  }
1154
1343
  }
1155
1344
 
@@ -1169,11 +1358,12 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1169
1358
  {
1170
1359
  int idx = 0;
1171
1360
  for (const auto &keyframe : keyFramesToAnimate) {
1172
- if (keyframe.finalMutationForKeyFrame.has_value()) {
1361
+ for (const auto &finalMutationForKeyFrame :
1362
+ keyframe.finalMutationsForKeyFrame) {
1173
1363
  PrintMutationInstruction(
1174
1364
  std::string("FINAL list: ") + std::to_string(idx) + "/" +
1175
1365
  std::to_string(keyFramesToAnimate.size()),
1176
- *keyframe.finalMutationForKeyFrame);
1366
+ finalMutationForKeyFrame);
1177
1367
  }
1178
1368
  idx++;
1179
1369
  }
@@ -1182,46 +1372,64 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1182
1372
  #endif
1183
1373
 
1184
1374
  auto finalConflictingMutations = ShadowViewMutationList{};
1185
- for (auto &conflictingKeyframeTuple : conflictingAnimations) {
1186
- auto &keyFrame = std::get<0>(conflictingKeyframeTuple);
1187
- if (keyFrame.finalMutationForKeyFrame.hasValue()) {
1188
- auto &mutation = *keyFrame.finalMutationForKeyFrame;
1189
- if (mutation.type == ShadowViewMutation::Type::Update) {
1190
- const auto &mutationInstruction =
1191
- ShadowViewMutation::UpdateMutation(
1192
- mutation.parentShadowView,
1193
- {},
1194
- mutation.newChildShadowView,
1195
- mutation.index);
1196
- PrintMutationInstruction(
1197
- "Queueing up final mutation instruction - update:",
1198
- mutationInstruction);
1199
- finalConflictingMutations.push_back(std::move(mutationInstruction));
1200
- } else {
1201
- PrintMutationInstruction(
1202
- "Queueing up final mutation instruction - non-update",
1203
- mutation);
1204
- finalConflictingMutations.push_back(mutation);
1375
+ for (auto &keyFrame : conflictingAnimations) {
1376
+ // Special-case: if we have some (1) ongoing UPDATE animation,
1377
+ // (2) it conflicted with a new MOVE operation (REMOVE+INSERT)
1378
+ // without another corresponding UPDATE, we should re-queue the
1379
+ // keyframe so that its position/props don't suddenly "jump".
1380
+ if (keyFrame.type == AnimationConfigurationType::Update) {
1381
+ auto movedIt = movedTags.find(keyFrame.tag);
1382
+ if (movedIt != movedTags.end()) {
1383
+ auto newKeyFrameForUpdate = std::find_if(
1384
+ keyFramesToAnimate.begin(),
1385
+ keyFramesToAnimate.end(),
1386
+ [&](auto const &newKeyFrame) {
1387
+ return newKeyFrame.type ==
1388
+ AnimationConfigurationType::Update &&
1389
+ newKeyFrame.tag == keyFrame.tag;
1390
+ });
1391
+ if (newKeyFrameForUpdate == keyFramesToAnimate.end()) {
1392
+ keyFrame.invalidated = false;
1393
+
1394
+ // The animation will continue from the current position - we
1395
+ // restart viewStart to make sure there are no sudden jumps
1396
+ keyFrame.viewStart = keyFrame.viewPrev;
1397
+
1398
+ // Find the insert mutation that conflicted with this update
1399
+ for (auto &mutation : immediateMutations) {
1400
+ if (mutation.newChildShadowView.tag == keyFrame.tag &&
1401
+ (mutation.type == ShadowViewMutation::Insert ||
1402
+ mutation.type == ShadowViewMutation::Create)) {
1403
+ keyFrame.viewPrev = mutation.newChildShadowView;
1404
+ keyFrame.viewEnd = mutation.newChildShadowView;
1405
+ }
1406
+ }
1407
+ keyFramesToAnimate.push_back(keyFrame);
1408
+ continue;
1409
+ }
1205
1410
  }
1206
- } else {
1207
- // If there's no final mutation associated, create a mutation that
1208
- // corresponds to the animation being 100% complete. This is important
1209
- // for, for example, INSERT mutations being animated from opacity 0
1210
- // to 1. If the animation is interrupted we must force the View to be
1211
- // at opacity 1.
1212
- auto mutatedShadowView = createInterpolatedShadowView(
1213
- 1, keyFrame.viewStart, keyFrame.viewEnd);
1214
- auto generatedMutation = ShadowViewMutation::UpdateMutation(
1215
- keyFrame.parentView,
1216
- keyFrame.viewStart,
1217
- std::move(mutatedShadowView),
1218
- -1);
1219
- PrintMutationInstruction(
1220
- "Queueing up final mutation instruction - synthetic",
1221
- generatedMutation);
1222
- // Create the mutation instruction
1223
- finalConflictingMutations.push_back(generatedMutation);
1224
1411
  }
1412
+
1413
+ // If the "final" mutation is already accounted for, by previously
1414
+ // setting the correct "viewPrev" of the next conflicting animation, we
1415
+ // don't want to queue up any final UPDATE mutations here.
1416
+ bool shouldGenerateSyntheticMutations =
1417
+ keyFrame.generateFinalSyntheticMutations;
1418
+ bool numFinalMutations = keyFrame.finalMutationsForKeyFrame.size();
1419
+ bool onlyMutationIsUpdate =
1420
+ (numFinalMutations == 1 &&
1421
+ keyFrame.finalMutationsForKeyFrame[0].type ==
1422
+ ShadowViewMutation::Update);
1423
+ if (!shouldGenerateSyntheticMutations &&
1424
+ (numFinalMutations == 0 || onlyMutationIsUpdate)) {
1425
+ continue;
1426
+ }
1427
+
1428
+ queueFinalMutationsForCompletedKeyFrame(
1429
+ keyFrame,
1430
+ finalConflictingMutations,
1431
+ true,
1432
+ "KeyFrameManager: Finished Conflicting Keyframe");
1225
1433
  }
1226
1434
 
1227
1435
  // Make sure that all operations execute in the proper order, since
@@ -1243,8 +1451,8 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1243
1451
  // Knowledge Graph:
1244
1452
  // [ImmediateMutations] -> assumes [FinalConflicting], [FrameDelayed],
1245
1453
  // [Delayed] already executed [FrameDelayed] -> assumes
1246
- // [FinalConflicting], [Delayed] already executed [FinalConflicting] -> is
1247
- // adjusted based on [Delayed], no dependency on [FinalConflicting],
1454
+ // [FinalConflicting], [Delayed] already executed [FinalConflicting] ->
1455
+ // is adjusted based on [Delayed], no dependency on [FinalConflicting],
1248
1456
  // [FrameDelayed] [Delayed] -> assumes [FinalConflicting],
1249
1457
  // [ImmediateMutations] not executed yet
1250
1458
 
@@ -1252,8 +1460,8 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1252
1460
  // Knowledge Graph:
1253
1461
  // [ImmediateMutations] -> assumes [FinalConflicting], [FrameDelayed],
1254
1462
  // [Delayed] already executed [FrameDelayed] -> assumes
1255
- // [FinalConflicting], [Delayed] already executed [FinalConflicting] -> is
1256
- // adjusted based on [Delayed], no dependency on [FinalConflicting],
1463
+ // [FinalConflicting], [Delayed] already executed [FinalConflicting] ->
1464
+ // is adjusted based on [Delayed], no dependency on [FinalConflicting],
1257
1465
  // [FrameDelayed] [Delayed] -> adjusted for [FinalConflicting]; assumes
1258
1466
  // [ImmediateMutations] not executed yet
1259
1467
  #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
@@ -1271,22 +1479,21 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1271
1479
  // [ImmediateExecutions] -> assumes [FinalConflicting], [Delayed],
1272
1480
  // [FrameDelayed] already executed [FrameDelayed] -> adjusted for
1273
1481
  // [Delayed]; assumes [FinalConflicting] already executed
1274
- // [FinalConflicting] -> is adjusted based on [Delayed], no dependency on
1275
- // [FinalConflicting], [FrameDelayed] [Delayed] -> adjusted for
1482
+ // [FinalConflicting] -> is adjusted based on [Delayed], no dependency
1483
+ // on [FinalConflicting], [FrameDelayed] [Delayed] -> adjusted for
1276
1484
  // [FinalConflicting]; assumes [ImmediateExecutions] not executed yet
1277
1485
  #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
1278
1486
  LOG(ERROR) << "Adjust [FrameDelayed] based on [Delayed]";
1279
1487
  #endif
1280
1488
  for (auto &keyframe : inflightAnimations_.back().keyFrames) {
1281
- if (keyframe.finalMutationForKeyFrame.has_value()) {
1282
- auto &mutation = *keyframe.finalMutationForKeyFrame;
1283
- if (mutation.type == ShadowViewMutation::Type::Insert ||
1284
- mutation.type == ShadowViewMutation::Type::Remove) {
1489
+ for (auto &finalMutation : keyframe.finalMutationsForKeyFrame) {
1490
+ if (finalMutation.type == ShadowViewMutation::Type::Insert ||
1491
+ finalMutation.type == ShadowViewMutation::Type::Remove) {
1285
1492
  // When adjusting, skip adjusting against last animation - because
1286
1493
  // all `mutation`s here come from the last animation, so we can't
1287
1494
  // adjust a batch against itself.
1288
1495
  adjustImmediateMutationIndicesForDelayedMutations(
1289
- surfaceId, mutation, true);
1496
+ surfaceId, finalMutation, true);
1290
1497
  }
1291
1498
  }
1292
1499
  }
@@ -1294,21 +1501,21 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1294
1501
  // Adjust [ImmediateExecutions] based on [Delayed]
1295
1502
  // Knowledge Graph:
1296
1503
  // [ImmediateExecutions] -> adjusted for [FrameDelayed], [Delayed];
1297
- // assumes [FinalConflicting] already executed [FrameDelayed] -> adjusted
1298
- // for [Delayed]; assumes [FinalConflicting] already executed
1299
- // [FinalConflicting] -> is adjusted based on [Delayed], no dependency on
1300
- // [FinalConflicting], [FrameDelayed] [Delayed] -> adjusted for
1504
+ // assumes [FinalConflicting] already executed [FrameDelayed] ->
1505
+ // adjusted for [Delayed]; assumes [FinalConflicting] already executed
1506
+ // [FinalConflicting] -> is adjusted based on [Delayed], no dependency
1507
+ // on [FinalConflicting], [FrameDelayed] [Delayed] -> adjusted for
1301
1508
  // [FinalConflicting]; assumes [ImmediateExecutions] not executed yet
1302
1509
  //
1303
1510
  // THEN,
1304
- // Adjust [Delayed] based on [ImmediateExecutions] and [FinalConflicting]
1305
- // Knowledge Graph:
1306
- // [ImmediateExecutions] -> adjusted for [FrameDelayed], [Delayed];
1307
- // assumes [FinalConflicting] already executed [FrameDelayed] -> adjusted
1308
- // for [Delayed]; assumes [FinalConflicting] already executed
1309
- // [FinalConflicting] -> is adjusted based on [Delayed], no dependency on
1310
- // [FinalConflicting], [FrameDelayed] [Delayed] -> adjusted for
1311
- // [FinalConflicting], [ImmediateExecutions]
1511
+ // Adjust [Delayed] based on [ImmediateExecutions] and
1512
+ // [FinalConflicting] Knowledge Graph: [ImmediateExecutions] -> adjusted
1513
+ // for [FrameDelayed], [Delayed]; assumes [FinalConflicting] already
1514
+ // executed [FrameDelayed] -> adjusted for [Delayed]; assumes
1515
+ // [FinalConflicting] already executed [FinalConflicting] -> is adjusted
1516
+ // based on [Delayed], no dependency on [FinalConflicting],
1517
+ // [FrameDelayed] [Delayed] -> adjusted for [FinalConflicting],
1518
+ // [ImmediateExecutions]
1312
1519
  //
1313
1520
  // We do these in the same loop because each immediate execution is
1314
1521
  // impacted by each delayed mutation, and also can impact each delayed
@@ -1320,9 +1527,9 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1320
1527
  for (auto &mutation : immediateMutations) {
1321
1528
  // Note: when adjusting [ImmediateExecutions] based on [FrameDelayed],
1322
1529
  // we need only adjust Inserts. Since inserts are executed
1323
- // highest-index-first, lower indices being delayed does not impact the
1324
- // higher-index removals; and conversely, higher indices being delayed
1325
- // cannot impact lower index removal, regardless of order.
1530
+ // highest-index-first, lower indices being delayed does not impact
1531
+ // the higher-index removals; and conversely, higher indices being
1532
+ // delayed cannot impact lower index removal, regardless of order.
1326
1533
  if (mutation.type == ShadowViewMutation::Type::Insert ||
1327
1534
  mutation.type == ShadowViewMutation::Type::Remove) {
1328
1535
  adjustImmediateMutationIndicesForDelayedMutations(
@@ -1336,56 +1543,36 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1336
1543
  }
1337
1544
  }
1338
1545
 
1339
- // If the knowledge graph progression above is correct, it is now safe to
1340
- // execute finalConflictingMutations and immediateMutations in that order,
1341
- // and to queue the delayed animations from this frame.
1546
+ // If the knowledge graph progression above is correct, it is now safe
1547
+ // to execute finalConflictingMutations and immediateMutations in that
1548
+ // order, and to queue the delayed animations from this frame.
1342
1549
  //
1343
1550
  // Execute the conflicting, delayed operations immediately. Any UPDATE
1344
1551
  // operations that smoothly transition into another animation will be
1345
1552
  // overridden by generated UPDATE operations at the end of the list, and
1346
1553
  // we want any REMOVE or DELETE operations to execute immediately.
1347
- // Additionally, this should allow us to avoid performing index adjustment
1348
- // between this list of conflicting animations and the batch we're about
1349
- // to execute.
1554
+ // Additionally, this should allow us to avoid performing index
1555
+ // adjustment between this list of conflicting animations and the batch
1556
+ // we're about to execute.
1350
1557
  finalConflictingMutations.insert(
1351
1558
  finalConflictingMutations.end(),
1352
1559
  immediateMutations.begin(),
1353
1560
  immediateMutations.end());
1354
1561
  mutations = finalConflictingMutations;
1355
- } /* if (currentAnimation) */ else {
1562
+ } /* if (currentAnimation) */
1563
+ else {
1356
1564
  // If there's no "next" animation, make sure we queue up "final"
1357
1565
  // operations from all ongoing, conflicting animations.
1358
1566
  #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
1359
1567
  LOG(ERROR) << "No Animation: Queue up final conflicting animations";
1360
1568
  #endif
1361
1569
  ShadowViewMutationList finalMutationsForConflictingAnimations{};
1362
- for (auto &conflictingKeyframeTuple : conflictingAnimations) {
1363
- auto &keyFrame = std::get<0>(conflictingKeyframeTuple);
1364
- if (keyFrame.finalMutationForKeyFrame.hasValue()) {
1365
- PrintMutationInstruction(
1366
- "No Animation: Queueing final mutation instruction",
1367
- *keyFrame.finalMutationForKeyFrame);
1368
- finalMutationsForConflictingAnimations.push_back(
1369
- *keyFrame.finalMutationForKeyFrame);
1370
- } else {
1371
- // If there's no final mutation associated, create a mutation that
1372
- // corresponds to the animation being 100% complete. This is important
1373
- // for, for example, INSERT mutations being animated from opacity 0
1374
- // to 1. If the animation is interrupted we must force the View to be
1375
- // at opacity 1.
1376
- auto mutatedShadowView = createInterpolatedShadowView(
1377
- 1, keyFrame.viewStart, keyFrame.viewEnd);
1378
- auto generatedMutation = ShadowViewMutation::UpdateMutation(
1379
- keyFrame.parentView,
1380
- keyFrame.viewStart,
1381
- std::move(mutatedShadowView),
1382
- -1);
1383
- PrintMutationInstruction(
1384
- "Queueing up final mutation instruction - synthetic",
1385
- generatedMutation);
1386
- // Create the mutation instruction
1387
- finalMutationsForConflictingAnimations.push_back(generatedMutation);
1388
- }
1570
+ for (auto const &keyFrame : conflictingAnimations) {
1571
+ queueFinalMutationsForCompletedKeyFrame(
1572
+ keyFrame,
1573
+ finalMutationsForConflictingAnimations,
1574
+ true,
1575
+ "Conflict with non-animated mutation");
1389
1576
  }
1390
1577
 
1391
1578
  // Make sure that all operations execute in the proper order.
@@ -1399,17 +1586,17 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1399
1586
  LOG(ERROR)
1400
1587
  << "No Animation: Adjust delayed mutations based on all finalMutationsForConflictingAnimations";
1401
1588
  #endif
1402
- for (auto &mutation : finalMutationsForConflictingAnimations) {
1589
+ for (auto const &mutation : finalMutationsForConflictingAnimations) {
1403
1590
  if (mutation.type == ShadowViewMutation::Type::Remove ||
1404
1591
  mutation.type == ShadowViewMutation::Type::Insert) {
1405
1592
  adjustDelayedMutationIndicesForMutation(surfaceId, mutation);
1406
1593
  }
1407
1594
  }
1408
1595
 
1409
- // The ShadowTree layer doesn't realize that certain operations have been
1410
- // delayed, so we must adjust all Remove and Insert operations based on
1411
- // what else has been deferred, whether we are executing this immediately
1412
- // or later.
1596
+ // The ShadowTree layer doesn't realize that certain operations have
1597
+ // been delayed, so we must adjust all Remove and Insert operations
1598
+ // based on what else has been deferred, whether we are executing this
1599
+ // immediately or later.
1413
1600
  #ifdef LAYOUT_ANIMATION_VERBOSE_LOGGING
1414
1601
  LOG(ERROR)
1415
1602
  << "No Animation: Adjust mutations based on remaining delayed mutations / adjust delayed, based on each";
@@ -1463,7 +1650,7 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1463
1650
  LOG(ERROR) << "FINISHING DISPLAYING ONGOING inflightAnimations_!";
1464
1651
  int i = 0;
1465
1652
  int j = 0;
1466
- for (auto &inflightAnimation : inflightAnimations_) {
1653
+ for (auto const &inflightAnimation : inflightAnimations_) {
1467
1654
  i++;
1468
1655
  j = 0;
1469
1656
  if (inflightAnimation.completed) {
@@ -1474,14 +1661,12 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1474
1661
  if (keyframe.invalidated) {
1475
1662
  continue;
1476
1663
  }
1477
- if (keyframe.finalMutationForKeyFrame &&
1478
- !mutatedViewIsVirtual(*keyframe.finalMutationForKeyFrame)) {
1479
- std::string msg = "Animation " + std::to_string(i) + " keyframe " +
1480
- std::to_string(j) + ": Final Animation";
1481
- PrintMutationInstruction(msg, *keyframe.finalMutationForKeyFrame);
1482
- } else {
1483
- LOG(ERROR) << "Animation " << i << " keyframe " << j << ": on tag: ["
1484
- << keyframe.viewStart.tag << "]";
1664
+ for (auto const &finalMutation : keyframe.finalMutationsForKeyFrame) {
1665
+ if (!finalMutation.mutatedViewIsVirtual()) {
1666
+ std::string msg = "Animation " + std::to_string(i) + " keyframe " +
1667
+ std::to_string(j) + ": Final Animation";
1668
+ PrintMutationInstruction(msg, finalMutation);
1669
+ }
1485
1670
  }
1486
1671
  }
1487
1672
  }
@@ -1507,21 +1692,6 @@ LayoutAnimationKeyFrameManager::pullTransaction(
1507
1692
  surfaceId, transactionNumber, std::move(mutations), telemetry};
1508
1693
  }
1509
1694
 
1510
- bool LayoutAnimationKeyFrameManager::mutatedViewIsVirtual(
1511
- ShadowViewMutation const &mutation) const {
1512
- bool viewIsVirtual = false;
1513
-
1514
- // TODO: extract this into an Android platform-specific class?
1515
- // Explanation: for "Insert" mutations, oldChildShadowView is always empty.
1516
- // for "Remove" mutations, newChildShadowView is always empty.
1517
- #ifdef ANDROID
1518
- viewIsVirtual =
1519
- mutation.newChildShadowView.layoutMetrics == EmptyLayoutMetrics &&
1520
- mutation.oldChildShadowView.layoutMetrics == EmptyLayoutMetrics;
1521
- #endif
1522
- return viewIsVirtual;
1523
- }
1524
-
1525
1695
  bool LayoutAnimationKeyFrameManager::hasComponentDescriptorForShadowView(
1526
1696
  ShadowView const &shadowView) const {
1527
1697
  return componentDescriptorRegistry_->hasComponentDescriptorAt(
@@ -1552,20 +1722,50 @@ ShadowView LayoutAnimationKeyFrameManager::createInterpolatedShadowView(
1552
1722
  double progress,
1553
1723
  ShadowView startingView,
1554
1724
  ShadowView finalView) const {
1725
+ react_native_assert(startingView.tag > 0);
1726
+ react_native_assert(finalView.tag > 0);
1555
1727
  if (!hasComponentDescriptorForShadowView(startingView)) {
1728
+ LOG(ERROR) << "No ComponentDescriptor for ShadowView being animated: ["
1729
+ << startingView.tag << "]";
1730
+ react_native_assert(false);
1556
1731
  return finalView;
1557
1732
  }
1733
+
1734
+ // Stub PropsParserContext used for interpolateProps.
1735
+ // This is/should be safe because interpolating doesn't actually need to
1736
+ // parse props, and just copies them; therefore there should be no
1737
+ // need to actually use anything in the PropsParserContext.
1738
+ // If this ever changes, the LayoutAnimations API will need to change
1739
+ // to pass in a real PropsParserContext.
1740
+ ContextContainer contextContainer{};
1741
+ PropsParserContext propsParserContext{-1, contextContainer};
1742
+
1558
1743
  ComponentDescriptor const &componentDescriptor =
1559
1744
  getComponentDescriptorForShadowView(startingView);
1560
- auto mutatedShadowView = ShadowView(startingView);
1561
1745
 
1746
+ // Base the mutated view on the finalView, so that the following stay
1747
+ // consistent:
1748
+ // - state
1749
+ // - eventEmitter
1750
+ // For now, we do not allow interpolation of state. And we probably never
1751
+ // will, so make sure we always keep the mounting layer consistent with the
1752
+ // "final" state.
1753
+ auto mutatedShadowView = ShadowView(finalView);
1754
+ react_native_assert(mutatedShadowView.tag > 0);
1755
+
1756
+ react_native_assert(startingView.props != nullptr);
1757
+ react_native_assert(finalView.props != nullptr);
1562
1758
  if (startingView.props == nullptr || finalView.props == nullptr) {
1563
1759
  return finalView;
1564
1760
  }
1565
1761
 
1566
1762
  // Animate opacity or scale/transform
1567
1763
  mutatedShadowView.props = componentDescriptor.interpolateProps(
1568
- progress, startingView.props, finalView.props);
1764
+ propsParserContext, progress, startingView.props, finalView.props);
1765
+ react_native_assert(mutatedShadowView.props != nullptr);
1766
+ if (mutatedShadowView.props == nullptr) {
1767
+ return finalView;
1768
+ }
1569
1769
 
1570
1770
  // Interpolate LayoutMetrics
1571
1771
  LayoutMetrics const &finalLayoutMetrics = finalView.layoutMetrics;
@@ -1592,6 +1792,90 @@ ShadowView LayoutAnimationKeyFrameManager::createInterpolatedShadowView(
1592
1792
  return mutatedShadowView;
1593
1793
  }
1594
1794
 
1795
+ void LayoutAnimationKeyFrameManager::queueFinalMutationsForCompletedKeyFrame(
1796
+ AnimationKeyFrame const &keyframe,
1797
+ ShadowViewMutation::List &mutationsList,
1798
+ bool interrupted,
1799
+ std::string logPrefix) const {
1800
+ if (keyframe.finalMutationsForKeyFrame.size() > 0) {
1801
+ // TODO: modularize this segment, it is repeated 2x in KeyFrameManager
1802
+ // as well.
1803
+ ShadowView prev = keyframe.viewPrev;
1804
+ for (auto const &finalMutation : keyframe.finalMutationsForKeyFrame) {
1805
+ PrintMutationInstruction(
1806
+ logPrefix + ": Queuing up Final Mutation:", finalMutation);
1807
+ // Copy so that if something else mutates the inflight animations,
1808
+ // it won't change this mutation after this point.
1809
+ auto mutation = ShadowViewMutation{
1810
+ finalMutation.type,
1811
+ finalMutation.parentShadowView,
1812
+ prev,
1813
+ finalMutation.newChildShadowView,
1814
+ finalMutation.index};
1815
+ react_native_assert(mutation.oldChildShadowView.tag > 0);
1816
+ react_native_assert(
1817
+ mutation.newChildShadowView.tag > 0 ||
1818
+ finalMutation.type == ShadowViewMutation::Remove ||
1819
+ finalMutation.type == ShadowViewMutation::Delete);
1820
+ mutationsList.push_back(mutation);
1821
+ if (finalMutation.newChildShadowView.tag > 0) {
1822
+ prev = finalMutation.newChildShadowView;
1823
+ }
1824
+ }
1825
+ } else {
1826
+ // If there's no final mutation associated, create a mutation that
1827
+ // corresponds to the animation being 100% complete. This is
1828
+ // important for, for example, INSERT mutations being animated from
1829
+ // opacity 0 to 1. If the animation is interrupted we must force the
1830
+ // View to be at opacity 1. For Android - since it passes along only
1831
+ // deltas, not an entire bag of props - generate an "animation"
1832
+ // frame corresponding to a final update for this view. Only then,
1833
+ // generate an update that will cause the ShadowTree to be
1834
+ // consistent with the Mounting layer by passing viewEnd,
1835
+ // unmodified, to the mounting layer. This helps with, for example,
1836
+ // opacity animations.
1837
+ // This is necessary for INSERT (create) and UPDATE (update) mutations, but
1838
+ // not REMOVE/DELETE mutations ("delete" animations).
1839
+ if (interrupted) {
1840
+ auto mutatedShadowView =
1841
+ createInterpolatedShadowView(1, keyframe.viewStart, keyframe.viewEnd);
1842
+ auto generatedPenultimateMutation = ShadowViewMutation::UpdateMutation(
1843
+ keyframe.viewPrev, mutatedShadowView);
1844
+ react_native_assert(
1845
+ generatedPenultimateMutation.oldChildShadowView.tag > 0);
1846
+ react_native_assert(
1847
+ generatedPenultimateMutation.newChildShadowView.tag > 0);
1848
+ PrintMutationInstruction(
1849
+ "Queueing up penultimate mutation instruction - synthetic",
1850
+ generatedPenultimateMutation);
1851
+ mutationsList.push_back(generatedPenultimateMutation);
1852
+
1853
+ auto generatedMutation = ShadowViewMutation::UpdateMutation(
1854
+ mutatedShadowView, keyframe.viewEnd);
1855
+ react_native_assert(generatedMutation.oldChildShadowView.tag > 0);
1856
+ react_native_assert(generatedMutation.newChildShadowView.tag > 0);
1857
+ PrintMutationInstruction(
1858
+ "Queueing up final mutation instruction - synthetic",
1859
+ generatedMutation);
1860
+ mutationsList.push_back(generatedMutation);
1861
+ } else {
1862
+ auto mutation = ShadowViewMutation{
1863
+ ShadowViewMutation::Type::Update,
1864
+ keyframe.parentView,
1865
+ keyframe.viewPrev,
1866
+ keyframe.viewEnd,
1867
+ -1};
1868
+ PrintMutationInstruction(
1869
+ logPrefix +
1870
+ "Animation Complete: Queuing up Final Synthetic Mutation:",
1871
+ mutation);
1872
+ react_native_assert(mutation.oldChildShadowView.tag > 0);
1873
+ react_native_assert(mutation.newChildShadowView.tag > 0);
1874
+ mutationsList.push_back(mutation);
1875
+ }
1876
+ }
1877
+ }
1878
+
1595
1879
  void LayoutAnimationKeyFrameManager::callCallback(
1596
1880
  const LayoutAnimationCallbackWrapper &callback) const {
1597
1881
  if (callback.readyForCleanup()) {
@@ -1622,8 +1906,8 @@ void LayoutAnimationKeyFrameManager::callCallback(
1622
1906
  callbackWrappersPending_.end());
1623
1907
 
1624
1908
  // Hold onto a reference to the callback, only while
1625
- // LayoutAnimationKeyFrameManager is alive and the callback hasn't completed
1626
- // yet.
1909
+ // LayoutAnimationKeyFrameManager is alive and the callback hasn't
1910
+ // completed yet.
1627
1911
  callbackWrappersPending_.push_back(std::move(copiedCallback));
1628
1912
  }
1629
1913
  }