react-native 0.0.0-201c10733 → 0.0.0-268efb102

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 (1486) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -3
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -2
  3. package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +1 -1
  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 +26 -7
  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 +10 -7
  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 +0 -2
  22. package/Libraries/Animated/components/AnimatedScrollView.js +0 -2
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -3
  24. package/Libraries/Animated/components/AnimatedText.js +0 -2
  25. package/Libraries/Animated/components/AnimatedView.js +0 -2
  26. package/Libraries/Animated/createAnimatedComponent.js +25 -19
  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 +90 -164
  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 +1 -3
  44. package/Libraries/Blob/RCTBlobPlugins.mm +4 -3
  45. package/Libraries/Blob/React-RCTBlob.podspec +3 -3
  46. package/Libraries/Blob/URL.js +18 -20
  47. package/Libraries/BugReporting/BugReporting.js +2 -2
  48. package/Libraries/BugReporting/getReactData.js +2 -2
  49. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +350 -0
  50. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +4 -2
  51. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +0 -2
  52. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +35 -0
  53. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  54. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -8
  55. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +0 -2
  56. package/Libraries/Components/Button.js +45 -15
  57. package/Libraries/Components/Clipboard/Clipboard.js +0 -2
  58. package/Libraries/Components/Clipboard/NativeClipboard.js +0 -2
  59. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -5
  60. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +50 -14
  61. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +1 -2
  62. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -2
  63. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +0 -2
  64. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -9
  65. package/Libraries/Components/Keyboard/Keyboard.js +16 -17
  66. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +17 -22
  67. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +0 -2
  68. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +3 -3
  69. package/Libraries/Components/Pressable/Pressable.js +20 -7
  70. package/Libraries/Components/Pressable/useAndroidRippleForView.js +18 -17
  71. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +0 -2
  72. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +0 -2
  73. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +4 -5
  74. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +2 -5
  75. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -2
  76. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +0 -2
  77. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +9 -3
  78. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -7
  79. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  80. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +0 -2
  81. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -1
  82. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +11 -15
  83. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -4
  84. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -4
  85. package/Libraries/Components/ScrollView/ScrollView.js +754 -170
  86. package/Libraries/Components/ScrollView/ScrollViewContext.js +0 -2
  87. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +3 -4
  88. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -0
  89. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +31 -10
  90. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +2 -0
  91. package/Libraries/Components/ScrollView/processDecelerationRate.js +0 -2
  92. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -2
  93. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +4 -5
  94. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +17 -11
  95. package/Libraries/Components/Slider/Slider.js +19 -8
  96. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -2
  97. package/Libraries/Components/Sound/NativeSoundManager.js +0 -2
  98. package/Libraries/Components/Sound/SoundManager.js +0 -1
  99. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +0 -2
  100. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +0 -2
  101. package/Libraries/Components/StatusBar/StatusBar.js +10 -21
  102. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +0 -2
  103. package/Libraries/Components/Switch/Switch.js +98 -118
  104. package/Libraries/Components/Switch/SwitchNativeComponent.js +0 -2
  105. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -8
  106. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +2 -3
  107. package/Libraries/Components/TextInput/InputAccessoryView.js +6 -8
  108. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +0 -2
  109. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +6 -5
  110. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -16
  111. package/Libraries/Components/TextInput/{RCTSinglelineTextInputViewConfig.js → RCTTextInputViewConfig.js} +3 -5
  112. package/Libraries/Components/TextInput/TextInput.js +128 -69
  113. package/Libraries/Components/TextInput/TextInputNativeCommands.js +0 -2
  114. package/Libraries/Components/TextInput/TextInputState.js +1 -3
  115. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +0 -2
  116. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +0 -1
  117. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -2
  118. package/Libraries/Components/Touchable/PooledClass.js +1 -2
  119. package/Libraries/Components/Touchable/Position.js +1 -2
  120. package/Libraries/Components/Touchable/Touchable.js +26 -55
  121. package/Libraries/Components/Touchable/TouchableBounce.js +0 -2
  122. package/Libraries/Components/Touchable/TouchableHighlight.js +22 -6
  123. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +16 -5
  124. package/Libraries/Components/Touchable/TouchableOpacity.js +19 -8
  125. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +13 -4
  126. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +0 -2
  127. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +2 -3
  128. package/Libraries/Components/View/ReactNativeStyleAttributes.js +133 -68
  129. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -2
  130. package/Libraries/Components/View/ReactNativeViewViewConfig.js +1 -3
  131. package/Libraries/Components/View/View.js +2 -4
  132. package/Libraries/Components/View/ViewAccessibility.js +3 -0
  133. package/Libraries/Components/View/ViewNativeComponent.js +0 -2
  134. package/Libraries/Core/Devtools/getDevServer.js +0 -2
  135. package/Libraries/Core/Devtools/parseErrorStack.js +0 -9
  136. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  137. package/Libraries/Core/ExceptionsManager.js +51 -41
  138. package/Libraries/Core/ExtendedError.js +19 -0
  139. package/Libraries/Core/InitializeCore.js +1 -0
  140. package/Libraries/Core/NativeExceptionsManager.js +0 -2
  141. package/Libraries/Core/ReactFiberErrorDialog.js +44 -34
  142. package/Libraries/Core/ReactNativeVersion.js +1 -1
  143. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  144. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +0 -2
  145. package/Libraries/Core/Timers/JSTimers.js +41 -31
  146. package/Libraries/Core/Timers/NativeTiming.js +0 -2
  147. package/Libraries/Core/Timers/immediateShim.js +67 -0
  148. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  149. package/Libraries/Core/polyfillPromise.js +1 -1
  150. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  151. package/Libraries/Core/setUpDeveloperTools.js +53 -58
  152. package/Libraries/Core/setUpGlobals.js +2 -0
  153. package/Libraries/Core/setUpReactDevTools.js +18 -1
  154. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  155. package/Libraries/Core/setUpTimers.js +65 -6
  156. package/Libraries/Core/setUpXHR.js +4 -4
  157. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.android.js +131 -0
  158. package/Libraries/DeprecatedPropTypes/{DeprecatedImagePropType.js → DeprecatedImagePropType.ios.js} +0 -0
  159. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +5 -5
  160. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +2 -0
  161. package/Libraries/EventEmitter/NativeEventEmitter.js +100 -51
  162. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -77
  163. package/Libraries/EventEmitter/RCTEventEmitter.js +5 -1
  164. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +0 -2
  165. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +31 -10
  166. package/Libraries/FBLazyVector/BUCK +5 -1
  167. package/Libraries/FBLazyVector/FBLazyVector.podspec +1 -1
  168. package/Libraries/HeapCapture/HeapCapture.js +0 -2
  169. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -2
  170. package/Libraries/Image/AssetUtils.js +0 -2
  171. package/Libraries/Image/Image.android.js +22 -133
  172. package/Libraries/Image/Image.ios.js +39 -33
  173. package/Libraries/Image/ImageAnalyticsTagContext.js +0 -2
  174. package/Libraries/Image/ImageBackground.js +10 -8
  175. package/Libraries/Image/ImageInjection.js +28 -0
  176. package/Libraries/Image/ImagePickerIOS.js +0 -2
  177. package/Libraries/Image/ImageProps.js +28 -0
  178. package/Libraries/Image/ImageSource.js +57 -14
  179. package/Libraries/Image/ImageViewNativeComponent.js +0 -2
  180. package/Libraries/Image/NativeImageEditor.js +0 -2
  181. package/Libraries/Image/NativeImageLoaderAndroid.js +0 -2
  182. package/Libraries/Image/NativeImageLoaderIOS.js +2 -3
  183. package/Libraries/Image/NativeImagePickerIOS.js +0 -2
  184. package/Libraries/Image/NativeImageStoreAndroid.js +0 -2
  185. package/Libraries/Image/NativeImageStoreIOS.js +0 -2
  186. package/Libraries/Image/RCTGIFImageDecoder.mm +6 -0
  187. package/Libraries/Image/RCTImageLoader.h +2 -2
  188. package/Libraries/Image/RCTImageLoader.mm +6 -18
  189. package/Libraries/Image/RCTImageLoaderWithAttributionProtocol.h +0 -5
  190. package/Libraries/Image/RCTImagePlugins.mm +4 -3
  191. package/Libraries/Image/RCTImageStoreManager.mm +5 -5
  192. package/Libraries/Image/RCTLocalAssetImageLoader.mm +5 -0
  193. package/Libraries/Image/React-RCTImage.podspec +3 -3
  194. package/Libraries/Image/TextInlineImageNativeComponent.js +84 -2
  195. package/Libraries/Image/nativeImageSource.js +0 -2
  196. package/Libraries/Inspector/ElementProperties.js +1 -1
  197. package/Libraries/Inspector/Inspector.js +13 -4
  198. package/Libraries/Inspector/InspectorPanel.js +1 -1
  199. package/Libraries/Interaction/FrameRateLogger.js +0 -2
  200. package/Libraries/Interaction/InteractionManager.js +3 -5
  201. package/Libraries/Interaction/PanResponder.js +1 -1
  202. package/Libraries/LayoutAnimation/LayoutAnimation.js +53 -17
  203. package/Libraries/Linking/Linking.js +5 -7
  204. package/Libraries/Linking/NativeIntentAndroid.js +0 -2
  205. package/Libraries/Linking/NativeLinkingManager.js +0 -2
  206. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +4 -3
  207. package/Libraries/LinkingIOS/React-RCTLinking.podspec +3 -3
  208. package/Libraries/Lists/CellRenderMask.js +145 -0
  209. package/Libraries/Lists/FillRateHelper.js +1 -1
  210. package/Libraries/Lists/FlatList.js +77 -53
  211. package/Libraries/Lists/SectionList.js +20 -23
  212. package/Libraries/Lists/SectionListModern.js +249 -0
  213. package/Libraries/Lists/ViewabilityHelper.js +9 -9
  214. package/Libraries/Lists/VirtualizeUtils.js +18 -20
  215. package/Libraries/Lists/VirtualizedList.js +176 -132
  216. package/Libraries/Lists/VirtualizedListContext.js +0 -2
  217. package/Libraries/Lists/VirtualizedSectionList.js +247 -209
  218. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +6 -6
  219. package/Libraries/LogBox/Data/LogBoxData.js +21 -19
  220. package/Libraries/LogBox/Data/LogBoxLog.js +0 -2
  221. package/Libraries/LogBox/Data/LogBoxSymbolication.js +0 -2
  222. package/Libraries/LogBox/Data/parseLogBoxLog.js +0 -2
  223. package/Libraries/LogBox/LogBox.js +114 -49
  224. package/Libraries/LogBox/LogBoxInspectorContainer.js +0 -2
  225. package/Libraries/LogBox/LogBoxNotificationContainer.js +0 -2
  226. package/Libraries/LogBox/UI/LogBoxButton.js +0 -2
  227. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  228. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  229. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  230. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  231. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  232. package/Libraries/LogBox/UI/LogBoxInspector.js +0 -2
  233. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +0 -2
  234. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +0 -2
  235. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +0 -2
  236. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +0 -2
  237. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +0 -2
  238. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +0 -2
  239. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +4 -5
  240. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +0 -2
  241. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -3
  242. package/Libraries/LogBox/UI/LogBoxMessage.js +0 -2
  243. package/Libraries/LogBox/UI/LogBoxNotification.js +3 -4
  244. package/Libraries/LogBox/UI/LogBoxStyle.js +0 -2
  245. package/Libraries/Modal/Modal.js +42 -21
  246. package/Libraries/{Text/TextInjection.js → Modal/ModalInjection.js} +3 -5
  247. package/Libraries/Modal/NativeModalManager.js +0 -2
  248. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +8 -4
  249. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  250. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +4 -3
  251. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  252. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +1 -1
  253. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m +1 -1
  254. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +32 -28
  255. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +3 -3
  256. package/Libraries/NativeComponent/NativeComponentRegistry.js +34 -2
  257. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -2
  258. package/Libraries/NativeModules/specs/NativeDevMenu.js +0 -2
  259. package/Libraries/NativeModules/specs/NativeDevSettings.js +0 -2
  260. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +0 -2
  261. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +0 -2
  262. package/Libraries/NativeModules/specs/NativeLogBox.js +0 -2
  263. package/Libraries/NativeModules/specs/NativeRedBox.js +0 -2
  264. package/Libraries/NativeModules/specs/NativeSourceCode.js +0 -2
  265. package/Libraries/Network/NativeNetworkingAndroid.js +0 -2
  266. package/Libraries/Network/NativeNetworkingIOS.js +0 -2
  267. package/Libraries/Network/RCTDataRequestHandler.mm +6 -0
  268. package/Libraries/Network/RCTFileRequestHandler.mm +6 -0
  269. package/Libraries/Network/RCTHTTPRequestHandler.h +5 -0
  270. package/Libraries/Network/RCTHTTPRequestHandler.mm +25 -7
  271. package/Libraries/Network/RCTNetworkPlugins.mm +4 -3
  272. package/Libraries/Network/RCTNetworking.android.js +6 -3
  273. package/Libraries/Network/RCTNetworking.h +1 -1
  274. package/Libraries/Network/RCTNetworking.ios.js +63 -21
  275. package/Libraries/Network/RCTNetworking.mm +3 -3
  276. package/Libraries/Network/React-RCTNetwork.podspec +2 -2
  277. package/Libraries/Network/XMLHttpRequest.js +5 -3
  278. package/Libraries/Network/convertRequestBody.js +2 -1
  279. package/Libraries/NewAppScreen/components/Colors.js +0 -2
  280. package/Libraries/NewAppScreen/components/Header.js +1 -1
  281. package/Libraries/NewAppScreen/components/HermesBadge.js +4 -1
  282. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -1
  283. package/Libraries/NewAppScreen/components/logo.png +0 -0
  284. package/Libraries/NewAppScreen/index.js +0 -2
  285. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -2
  286. package/Libraries/Performance/QuickPerformanceLogger.js +4 -4
  287. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -3
  288. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +10 -5
  289. package/Libraries/Pressability/HoverState.js +0 -2
  290. package/Libraries/Pressability/Pressability.js +18 -13
  291. package/Libraries/Pressability/PressabilityDebug.js +9 -4
  292. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +48 -0
  293. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  294. package/Libraries/Pressability/usePressability.js +0 -2
  295. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +3 -0
  296. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +18 -3
  297. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +13 -1
  298. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +4 -3
  299. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +3 -3
  300. package/Libraries/RCTRequired/BUCK +4 -1
  301. package/Libraries/RCTRequired/RCTRequired.podspec +2 -2
  302. package/Libraries/ReactNative/AppContainer.js +3 -25
  303. package/Libraries/ReactNative/AppRegistry.js +48 -7
  304. package/Libraries/ReactNative/DisplayMode.js +32 -0
  305. package/Libraries/ReactNative/DummyUIManager.js +7 -2
  306. package/Libraries/ReactNative/FabricUIManager.js +6 -5
  307. package/Libraries/ReactNative/HeadlessJsTaskError.js +0 -2
  308. package/Libraries/ReactNative/I18nManager.js +23 -9
  309. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +0 -2
  310. package/Libraries/ReactNative/NativeI18nManager.js +1 -2
  311. package/Libraries/ReactNative/NativeUIManager.js +2 -3
  312. package/Libraries/ReactNative/PaperUIManager.js +13 -7
  313. package/Libraries/ReactNative/RootTag.js +2 -4
  314. package/Libraries/ReactNative/UIManager.js +2 -3
  315. package/Libraries/ReactNative/UIManagerInjection.js +0 -2
  316. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +32 -0
  317. package/Libraries/ReactNative/renderApplication.js +24 -6
  318. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -3
  319. package/Libraries/Reliability/UserFlow.js +7 -0
  320. package/Libraries/Renderer/REVISION +1 -1
  321. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +9484 -7643
  322. package/Libraries/Renderer/implementations/ReactFabric-dev.js +7877 -6935
  323. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +3038 -2506
  324. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2112 -1937
  325. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +3375 -2693
  326. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2568 -2244
  327. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +9638 -7942
  328. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5736 -4864
  329. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +2865 -2464
  330. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2275 -2120
  331. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +3190 -2643
  332. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +2565 -2259
  333. package/Libraries/Renderer/shims/ReactFabric.js +5 -3
  334. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -0
  335. package/Libraries/Renderer/shims/ReactNative.js +3 -0
  336. package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -15
  337. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -0
  338. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -0
  339. package/Libraries/Settings/NativeSettingsManager.js +0 -2
  340. package/Libraries/Settings/RCTSettingsPlugins.mm +4 -3
  341. package/Libraries/Settings/React-RCTSettings.podspec +2 -2
  342. package/Libraries/Settings/Settings.ios.js +4 -2
  343. package/Libraries/Share/NativeShareModule.js +0 -2
  344. package/Libraries/Share/Share.js +0 -2
  345. package/Libraries/Storage/AsyncStorage.js +1 -2
  346. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -2
  347. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -2
  348. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +0 -2
  349. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +16 -3
  350. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +8 -3
  351. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +2 -2
  352. package/Libraries/StyleSheet/Rect.js +0 -2
  353. package/Libraries/StyleSheet/StyleSheet.js +3 -5
  354. package/Libraries/StyleSheet/normalizeColor.js +2 -4
  355. package/Libraries/StyleSheet/processColorArray.js +16 -6
  356. package/Libraries/StyleSheet/processTransform.js +6 -6
  357. package/Libraries/StyleSheet/splitLayoutProps.js +0 -4
  358. package/Libraries/SurfaceHostingComponent/RCTSurfaceHostingComponent.mm +1 -1
  359. package/Libraries/Text/React-RCTText.podspec +2 -2
  360. package/Libraries/Text/Text.js +187 -235
  361. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +0 -2
  362. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +12 -2
  363. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +10 -12
  364. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  365. package/Libraries/Text/TextNativeComponent.js +0 -2
  366. package/Libraries/Text/TextProps.js +7 -7
  367. package/Libraries/TurboModule/RCTExport.js +1 -1
  368. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -5
  369. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +0 -2
  370. package/Libraries/TypeSafety/RCTTypeSafety.podspec +3 -3
  371. package/Libraries/Types/CoreEventTypes.js +0 -2
  372. package/Libraries/{Components/Picker/PickerAndroid.ios.js → Types/RootTagTypes.js} +2 -3
  373. package/Libraries/UTFSequence.js +1 -1
  374. package/Libraries/Utilities/Appearance.js +13 -7
  375. package/Libraries/Utilities/BackHandler.android.js +0 -2
  376. package/Libraries/Utilities/DebugEnvironment.js +0 -2
  377. package/Libraries/Utilities/DevSettings.js +48 -58
  378. package/Libraries/Utilities/DeviceInfo.js +0 -2
  379. package/Libraries/Utilities/Dimensions.js +19 -20
  380. package/Libraries/Utilities/FeatureDetection.js +31 -0
  381. package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -2
  382. package/Libraries/Utilities/HMRClient.js +15 -10
  383. package/Libraries/Utilities/JSDevSupportModule.js +0 -2
  384. package/Libraries/Utilities/LoadingView.android.js +0 -2
  385. package/Libraries/Utilities/LoadingView.ios.js +0 -2
  386. package/Libraries/Utilities/MatrixMath.js +1 -1
  387. package/Libraries/Utilities/NativeAppearance.js +0 -2
  388. package/Libraries/Utilities/NativeDevLoadingView.js +0 -2
  389. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -2
  390. package/Libraries/Utilities/NativeDeviceInfo.js +1 -3
  391. package/Libraries/Utilities/NativeJSDevSupport.js +0 -2
  392. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +0 -2
  393. package/Libraries/Utilities/NativePlatformConstantsIOS.js +0 -2
  394. package/Libraries/Utilities/PerformanceLoggerContext.js +8 -4
  395. package/Libraries/Utilities/Platform.android.js +0 -2
  396. package/Libraries/Utilities/Platform.ios.js +0 -2
  397. package/Libraries/Utilities/ReactNativeTestTools.js +12 -19
  398. package/Libraries/Utilities/codegenNativeCommands.js +1 -3
  399. package/Libraries/Utilities/codegenNativeComponent.js +0 -2
  400. package/Libraries/Utilities/createPerformanceLogger.js +0 -2
  401. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -0
  402. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  403. package/Libraries/Utilities/deprecatedPropType.js +2 -4
  404. package/Libraries/Utilities/stringifySafe.js +1 -3
  405. package/Libraries/Utilities/useColorScheme.js +4 -4
  406. package/Libraries/Utilities/useMergeRefs.js +44 -0
  407. package/Libraries/Utilities/useRefEffect.js +45 -0
  408. package/Libraries/Utilities/useWindowDimensions.js +9 -6
  409. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -2
  410. package/Libraries/Vibration/NativeVibration.js +0 -2
  411. package/Libraries/Vibration/RCTVibrationPlugins.mm +4 -3
  412. package/Libraries/Vibration/React-RCTVibration.podspec +2 -2
  413. package/Libraries/Vibration/Vibration.js +0 -2
  414. package/Libraries/WebSocket/NativeWebSocketModule.js +0 -2
  415. package/Libraries/WebSocket/WebSocket.js +12 -12
  416. package/Libraries/WebSocket/WebSocketInterceptor.js +6 -3
  417. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -0
  418. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -2
  419. package/Libraries/promiseRejectionTrackingOptions.js +2 -2
  420. package/Libraries/vendor/emitter/EventEmitter.js +36 -2
  421. package/Libraries/vendor/emitter/EventSubscription.js +19 -0
  422. package/Libraries/vendor/emitter/_EmitterSubscription.js +7 -7
  423. package/Libraries/vendor/emitter/_EventEmitter.js +28 -42
  424. package/Libraries/vendor/emitter/_EventSubscription.js +4 -2
  425. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  426. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -2
  427. package/README.md +5 -5
  428. package/React/Base/RCTAssert.h +29 -11
  429. package/React/Base/RCTAssert.m +52 -0
  430. package/React/Base/RCTBridge+Private.h +8 -0
  431. package/React/Base/RCTBridge.h +20 -0
  432. package/React/Base/RCTBridge.m +39 -7
  433. package/React/Base/RCTBridgeModule.h +62 -12
  434. package/React/Base/RCTBundleManager.m +78 -0
  435. package/React/Base/RCTBundleURLProvider.h +35 -9
  436. package/React/Base/RCTBundleURLProvider.mm +90 -25
  437. package/React/Base/RCTCallableJSModules.m +47 -0
  438. package/React/Base/RCTConstants.h +3 -16
  439. package/React/Base/RCTConstants.m +6 -36
  440. package/React/Base/RCTConvert.h +1 -1
  441. package/React/Base/RCTConvert.m +31 -7
  442. package/React/Base/RCTCxxConvert.h +1 -1
  443. package/React/Base/RCTDefines.h +22 -3
  444. package/React/Base/RCTEventDispatcherProtocol.h +3 -2
  445. package/React/{Views/RCTPickerManager.h → Base/RCTInitializing.h} +4 -2
  446. package/React/Base/RCTJSThread.h +29 -0
  447. package/React/Base/RCTJSThread.m +19 -0
  448. package/React/Base/RCTModuleData.h +11 -3
  449. package/React/Base/RCTModuleData.mm +66 -1
  450. package/React/Base/RCTMultipartStreamReader.m +0 -2
  451. package/React/Base/RCTRootView.h +25 -1
  452. package/React/Base/RCTRootView.m +27 -4
  453. package/React/Base/RCTTouchHandler.m +3 -0
  454. package/React/Base/RCTUtils.h +3 -0
  455. package/React/Base/RCTUtils.m +14 -7
  456. package/React/Base/RCTVersion.m +1 -1
  457. package/React/Base/Surface/RCTSurfaceStage.h +6 -11
  458. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +12 -0
  459. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +46 -2
  460. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -0
  461. package/React/CoreModules/BUCK +4 -3
  462. package/React/CoreModules/CoreModulesPlugins.mm +4 -3
  463. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  464. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  465. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  466. package/React/CoreModules/RCTDevLoadingView.mm +25 -33
  467. package/React/CoreModules/RCTDevMenu.h +0 -5
  468. package/React/CoreModules/RCTDevMenu.mm +29 -60
  469. package/React/CoreModules/RCTDevSettings.h +12 -2
  470. package/React/CoreModules/RCTDevSettings.mm +96 -53
  471. package/React/CoreModules/RCTDevSplitBundleLoader.mm +3 -8
  472. package/React/CoreModules/RCTDeviceInfo.mm +4 -5
  473. package/React/CoreModules/RCTEventDispatcher.h +2 -1
  474. package/React/CoreModules/RCTEventDispatcher.mm +23 -25
  475. package/React/CoreModules/RCTKeyboardObserver.mm +1 -1
  476. package/React/CoreModules/RCTLogBox.mm +14 -10
  477. package/React/CoreModules/RCTPerfMonitor.mm +15 -4
  478. package/React/CoreModules/RCTRedBox.mm +3 -12
  479. package/React/CoreModules/RCTSourceCode.mm +2 -1
  480. package/React/CoreModules/RCTTiming.h +2 -1
  481. package/React/CoreModules/RCTTiming.mm +1 -3
  482. package/React/CoreModules/RCTWebSocketExecutor.mm +6 -0
  483. package/React/CoreModules/React-CoreModules.podspec +3 -3
  484. package/React/CxxBridge/RCTCxxBridge.mm +93 -33
  485. package/React/CxxModule/RCTNativeModule.mm +3 -1
  486. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  487. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  488. package/{Libraries → React}/FBReactNativeSpec/FBReactNativeSpec.podspec +15 -8
  489. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.h +2 -1
  490. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +5 -10
  491. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +4 -2
  492. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +1 -3
  493. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +7 -0
  494. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.h +3 -1
  495. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +62 -20
  496. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +0 -1
  497. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +0 -1
  498. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +5 -0
  499. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +135 -87
  500. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h +23 -0
  501. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm +22 -0
  502. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm +14 -9
  503. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +104 -16
  504. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +53 -17
  505. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +48 -2
  506. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  507. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +122 -8
  508. package/React/Fabric/Mounting/RCTComponentViewFactory.h +10 -2
  509. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +83 -46
  510. package/React/Fabric/Mounting/RCTComponentViewProtocol.h +3 -0
  511. package/React/Fabric/Mounting/RCTComponentViewRegistry.mm +1 -12
  512. package/React/Fabric/Mounting/RCTMountingManager.h +22 -1
  513. package/React/Fabric/Mounting/RCTMountingManager.mm +57 -3
  514. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +4 -0
  515. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +30 -4
  516. package/React/Fabric/RCTConversions.h +3 -0
  517. package/React/Fabric/RCTScheduler.h +8 -16
  518. package/React/Fabric/RCTScheduler.mm +36 -54
  519. package/React/Fabric/RCTSurfacePresenter.h +8 -16
  520. package/React/Fabric/RCTSurfacePresenter.mm +49 -170
  521. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +4 -2
  522. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +1 -1
  523. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  524. package/React/Fabric/Surface/RCTFabricSurface.h +2 -6
  525. package/React/Fabric/Surface/RCTFabricSurface.mm +132 -129
  526. package/React/Modules/RCTEventEmitter.h +1 -2
  527. package/React/Modules/RCTEventEmitter.m +8 -11
  528. package/React/Modules/RCTI18nUtil.h +14 -6
  529. package/React/Modules/RCTI18nUtil.m +1 -47
  530. package/React/Modules/RCTUIManager.m +8 -2
  531. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  532. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  533. package/React/React-RCTFabric.podspec +5 -5
  534. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +63 -0
  535. package/React/Views/RCTComponentData.h +10 -1
  536. package/React/Views/RCTComponentData.m +23 -8
  537. package/React/Views/RCTDatePickerManager.m +33 -0
  538. package/React/Views/RCTFont.mm +54 -38
  539. package/React/Views/RCTModalHostView.h +5 -1
  540. package/React/Views/RCTModalHostView.m +52 -20
  541. package/React/Views/RCTModalHostViewManager.m +5 -0
  542. package/React/Views/RCTView.h +7 -7
  543. package/React/Views/RCTView.m +32 -49
  544. package/React/Views/RCTViewManager.m +22 -4
  545. package/React/Views/RCTWeakViewHolder.h +19 -0
  546. package/React/Views/RefreshControl/RCTRefreshControl.m +26 -0
  547. package/React/Views/RefreshControl/RCTRefreshControlManager.m +1 -0
  548. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  549. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  550. package/React/Views/ScrollView/RCTScrollView.m +123 -36
  551. package/React/Views/ScrollView/RCTScrollViewManager.m +4 -7
  552. package/React/Views/UIView+React.m +2 -11
  553. package/React/third-party.xcconfig +1 -1
  554. package/React-Core.podspec +5 -4
  555. package/React.podspec +2 -2
  556. package/ReactAndroid/Android-prebuilt.mk +19 -3
  557. package/ReactAndroid/README.md +2 -2
  558. package/ReactAndroid/build.gradle +137 -25
  559. package/ReactAndroid/gradle.properties +7 -5
  560. package/ReactAndroid/src/androidTest/buck-runner/BUCK +1 -0
  561. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  562. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  563. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  564. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/ReactIdleDetectionUtil.java +1 -1
  565. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  566. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -2
  567. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  568. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  569. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -12
  570. package/ReactAndroid/src/androidTest/js/UIManagerTestModule.js +7 -6
  571. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  572. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  573. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  574. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  575. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/BUCK +2 -2
  576. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/proguard_annotations.pro +1 -0
  577. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +2 -1
  578. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +3 -2
  579. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  580. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +5 -0
  581. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  582. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +184 -92
  583. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +37 -1
  584. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +21 -1
  585. package/ReactAndroid/src/main/java/com/facebook/react/{turbomodule/core/ReactPackageTurboModuleManagerDelegate.java → ReactPackageTurboModuleManagerDelegate.java} +2 -3
  586. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +40 -28
  587. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  588. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +10 -2
  589. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +5 -5
  590. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  591. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +7 -5
  592. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  593. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -3
  594. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.java +4 -1
  595. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java +4 -0
  596. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  597. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +1 -1
  598. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +8 -1
  599. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +26 -0
  600. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +46 -8
  601. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +2 -3
  602. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  603. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +7 -3
  604. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  605. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  606. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  607. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  608. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +3 -2
  609. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/BUCK +29 -0
  610. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.java +347 -0
  611. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBufferSoLoader.java +33 -0
  612. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/Android.mk +39 -0
  613. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +34 -0
  614. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/OnLoad.cpp +15 -0
  615. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/ReadableMapBuffer.cpp +76 -0
  616. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/ReadableMapBuffer.h +51 -0
  617. package/ReactAndroid/src/main/java/com/facebook/react/config/BUCK +2 -1
  618. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +61 -29
  619. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  620. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +275 -0
  621. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  622. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevLoadingViewController.java +2 -2
  623. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  624. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +189 -352
  625. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +4 -73
  626. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +13 -1
  627. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +1 -1
  628. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  629. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{ReactInstanceManagerDevHelper.java → ReactInstanceDevHelper.java} +3 -2
  630. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxHandler.java +2 -16
  631. package/ReactAndroid/src/main/java/com/facebook/react/{modules/datepicker/DatePickerMode.java → devsupport/interfaces/BundleLoadCallback.java} +3 -6
  632. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +6 -1
  633. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/ErrorType.java +23 -0
  634. package/ReactAndroid/src/main/java/com/facebook/react/fabric/BUCK +1 -1
  635. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +15 -1
  636. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  637. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +9 -64
  638. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +317 -393
  639. package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +40 -1
  640. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandler.java +50 -0
  641. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.java +131 -0
  642. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +36 -1
  643. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +14 -2
  644. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +5 -3
  645. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  646. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  647. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +4 -4
  648. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +308 -103
  649. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +33 -8
  650. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp +3 -6
  651. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +22 -2
  652. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +4 -0
  653. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/OnLoad.cpp +2 -0
  654. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.cpp +16 -2
  655. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.h +3 -1
  656. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/SurfaceHandlerBinding.cpp +122 -0
  657. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/SurfaceHandlerBinding.h +68 -0
  658. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +414 -0
  659. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +134 -71
  660. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +247 -40
  661. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +4 -6
  662. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +13 -6
  663. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  664. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  665. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +3 -3
  666. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java +21 -4
  667. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  668. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  669. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.java +11 -1
  670. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  671. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  672. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +35 -7
  673. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  674. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +1 -1
  675. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  676. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  677. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  678. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  679. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  680. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +7 -4
  681. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java +1 -1
  682. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  683. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  684. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +19 -8
  685. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  686. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +12 -4
  687. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +10 -0
  688. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +2 -1
  689. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +19 -13
  690. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  691. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  692. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  693. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  694. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  695. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +1 -1
  696. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java +1 -18
  697. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  698. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  699. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  700. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  701. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java +1 -1
  702. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  703. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  704. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  705. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  706. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  707. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  708. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  709. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/Android.mk +1 -1
  710. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +1 -1
  711. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -2
  712. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -9
  713. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/BUCK +0 -1
  714. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +9 -6
  715. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManagerDelegate.java +3 -0
  716. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.java +4 -4
  717. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk +2 -2
  718. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +2 -2
  719. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +40 -7
  720. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +10 -2
  721. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BUCK +3 -0
  722. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +15 -1
  723. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolver.java +17 -0
  724. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolverManager.java +41 -0
  725. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  726. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +2 -11
  727. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +14 -5
  728. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +4 -13
  729. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +10 -13
  730. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/OnLayoutEvent.java +17 -6
  731. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  732. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +16 -10
  733. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingProhibitedView.java +26 -0
  734. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroupHelper.java +5 -1
  735. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  736. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.java +18 -0
  737. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/StateWrapper.java +21 -1
  738. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  739. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -8
  740. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementationProvider.java +1 -1
  741. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +29 -20
  742. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +15 -17
  743. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +1 -2
  744. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +13 -6
  745. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +7 -4
  746. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +2 -2
  747. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.java +26 -0
  748. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  749. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.java +8 -3
  750. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +100 -8
  751. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +236 -0
  752. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +8 -0
  753. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +21 -7
  754. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +58 -4
  755. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/interfaces/ViewProps.java +10 -2
  756. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/Android.mk +37 -0
  757. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +41 -0
  758. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.cpp +77 -0
  759. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.h +54 -0
  760. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/OnLoad.cpp +16 -0
  761. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  762. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +12 -4
  763. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.java +9 -10
  764. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +9 -10
  765. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +7 -13
  766. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +7 -13
  767. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageLoadEvent.java +2 -16
  768. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +10 -5
  769. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +2 -1
  770. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +12 -3
  771. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +23 -12
  772. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java +12 -4
  773. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ShowEvent.java +12 -4
  774. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  775. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  776. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +29 -6
  777. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +184 -24
  778. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +9 -4
  779. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +109 -12
  780. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +18 -3
  781. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +9 -4
  782. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +37 -20
  783. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  784. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderEvent.java +0 -5
  785. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +5 -7
  786. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSlidingCompleteEvent.java +13 -16
  787. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  788. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.java +12 -4
  789. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java +2 -1
  790. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  791. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitch.java +13 -0
  792. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.java +9 -13
  793. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +6 -10
  794. package/ReactAndroid/src/main/java/com/facebook/react/views/text/BUCK +1 -0
  795. package/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java +6 -8
  796. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactClickableSpan.java +2 -1
  797. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +59 -44
  798. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  799. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +32 -4
  800. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +19 -0
  801. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +48 -1
  802. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +41 -59
  803. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +230 -139
  804. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +45 -20
  805. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +616 -0
  806. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TypefaceStyle.java +72 -0
  807. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  808. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java +3 -13
  809. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +19 -8
  810. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  811. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.java +3 -13
  812. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputBlurEvent.java +3 -13
  813. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEndEditingEvent.java +3 -13
  814. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEvent.java +3 -13
  815. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputFocusEvent.java +8 -18
  816. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +9 -20
  817. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +126 -63
  818. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSelectionEvent.java +3 -13
  819. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSubmitEditingEvent.java +8 -18
  820. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  821. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  822. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +49 -2
  823. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +3 -1
  824. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ViewGroupClickEvent.java +11 -4
  825. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +13 -7
  826. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +24 -2
  827. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +151 -0
  828. package/ReactAndroid/src/main/jni/first-party/fb/BUCK +4 -0
  829. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +2 -7
  830. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJTypesVanilla.h +8 -4
  831. package/ReactAndroid/src/main/jni/react/jni/Android.mk +6 -3
  832. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  833. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  834. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  835. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  836. package/{ReactCommon/react/renderer/components/picker/iospicker/primitives.h → ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h} +6 -10
  837. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  838. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  839. package/{ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerComponentDescriptor.h → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +8 -7
  840. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  841. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  842. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -94
  843. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.h +0 -30
  844. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +1 -0
  845. package/ReactAndroid/src/main/jni/third-party/boost/Android.mk +7 -2
  846. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/jump_arm_aapcs_elf_gas.S +86 -0
  847. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/make_arm_aapcs_elf_gas.S +79 -0
  848. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/ontop_arm_aapcs_elf_gas.S +91 -0
  849. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/jump_arm64_aapcs_elf_gas.S +114 -0
  850. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/make_arm64_aapcs_elf_gas.S +85 -0
  851. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/ontop_arm64_aapcs_elf_gas.S +113 -0
  852. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/jump_i386_sysv_elf_gas.S +78 -0
  853. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/make_i386_sysv_elf_gas.S +106 -0
  854. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/ontop_i386_sysv_elf_gas.S +85 -0
  855. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/jump_x86_64_sysv_elf_gas.S +76 -0
  856. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/make_x86_64_sysv_elf_gas.S +81 -0
  857. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/ontop_x86_64_sysv_elf_gas.S +79 -0
  858. package/ReactAndroid/src/main/jni/third-party/fmt/Android.mk +15 -0
  859. package/ReactAndroid/src/main/jni/third-party/folly/Android.mk +36 -16
  860. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +36 -0
  861. package/ReactAndroid/src/main/jni/third-party/libevent/evconfig-private.h +49 -0
  862. package/{third-party-podspecs/libevent.podspec → ReactAndroid/src/main/jni/third-party/libevent/event-config.h} +141 -366
  863. package/ReactAndroid/src/main/libraries/fbjni/BUCK +2 -2
  864. package/ReactAndroid/src/main/libraries/fresco/fresco-react-native/BUCK +26 -26
  865. package/ReactAndroid/src/main/libraries/soloader/java/com/facebook/soloader/BUCK +5 -5
  866. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -1
  867. package/ReactAndroid/src/main/res/views/uimanager/values/strings_unlocalized.xml +4 -8
  868. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  869. package/ReactAndroid/src/main/third-party/java/infer-annotations/BUCK +2 -2
  870. package/ReactAndroid/src/main/third-party/java/okhttp/BUCK +29 -9
  871. package/ReactAndroid/src/main/third-party/java/okio/BUCK +15 -5
  872. package/ReactAndroid/src/main/third-party/java/robolectric/{4.4/BUCK → BUCK} +0 -0
  873. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  874. package/ReactAndroid/src/main/third-party/kotlin/BUCK +91 -0
  875. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +8 -3
  876. package/ReactAndroid/src/test/java/com/facebook/react/animated/NativeAnimatedNodeTraversalTest.java +1 -1
  877. package/ReactAndroid/src/test/java/com/facebook/react/bridge/BUCK +1 -1
  878. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  879. package/ReactAndroid/src/test/java/com/facebook/react/devsupport/JSDebuggerWebSocketClientTest.java +3 -1
  880. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  881. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  882. package/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java +1 -1
  883. package/ReactAndroid/src/test/java/com/facebook/react/modules/network/NetworkingModuleTest.java +10 -10
  884. package/ReactAndroid/src/test/java/com/facebook/react/modules/timing/TimingModuleTest.java +1 -1
  885. package/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerTest.java +32 -0
  886. package/ReactAndroid/src/test/java/com/facebook/react/views/image/ReactImagePropertyTest.java +8 -0
  887. package/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.java +4 -0
  888. package/ReactCommon/React-Fabric.podspec +58 -14
  889. package/ReactCommon/ReactCommon.podspec +8 -3
  890. package/ReactCommon/better/Android.mk +1 -1
  891. package/ReactCommon/better/BUCK +2 -2
  892. package/ReactCommon/callinvoker/Android.mk +1 -1
  893. package/ReactCommon/callinvoker/BUCK +3 -3
  894. package/ReactCommon/callinvoker/React-callinvoker.podspec +3 -3
  895. package/ReactCommon/cxxreact/Android.mk +2 -1
  896. package/ReactCommon/cxxreact/BUCK +2 -4
  897. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  898. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  899. package/ReactCommon/cxxreact/Instance.cpp +21 -1
  900. package/ReactCommon/cxxreact/MethodCall.cpp +2 -2
  901. package/ReactCommon/cxxreact/ModuleRegistry.cpp +5 -0
  902. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +0 -21
  903. package/ReactCommon/cxxreact/NativeToJsBridge.h +0 -6
  904. package/ReactCommon/cxxreact/React-cxxreact.podspec +5 -4
  905. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  906. package/ReactCommon/hermes/React-hermes.podspec +5 -5
  907. package/ReactCommon/hermes/executor/Android.mk +4 -4
  908. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  909. package/ReactCommon/hermes/inspector/BUCK +8 -5
  910. package/ReactCommon/hermes/inspector/chrome/Connection.cpp +115 -0
  911. package/ReactCommon/hermes/inspector/chrome/MessageTypes.cpp +215 -1
  912. package/ReactCommon/hermes/inspector/chrome/MessageTypes.h +115 -1
  913. package/ReactCommon/hermes/inspector/chrome/tests/ConnectionTests.cpp +144 -0
  914. package/ReactCommon/hermes/inspector/tools/message_types.txt +4 -0
  915. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/CommandTest.js +1 -3
  916. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/EventTest.js +1 -3
  917. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/GraphTest.js +1 -3
  918. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/HeaderWriterTest.js +1 -3
  919. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/ImplementationWriterTest.js +1 -3
  920. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/PropertyTest.js +1 -3
  921. package/ReactCommon/hermes/inspector/tools/msggen/__tests__/TypeTest.js +1 -3
  922. package/ReactCommon/hermes/inspector/tools/msggen/package.json +8 -5
  923. package/ReactCommon/hermes/inspector/tools/msggen/src/Command.js +0 -2
  924. package/ReactCommon/hermes/inspector/tools/msggen/src/Converters.js +0 -2
  925. package/ReactCommon/hermes/inspector/tools/msggen/src/Event.js +0 -2
  926. package/ReactCommon/hermes/inspector/tools/msggen/src/Graph.js +0 -2
  927. package/ReactCommon/hermes/inspector/tools/msggen/src/HeaderWriter.js +0 -2
  928. package/ReactCommon/hermes/inspector/tools/msggen/src/ImplementationWriter.js +0 -2
  929. package/ReactCommon/hermes/inspector/tools/msggen/src/Property.js +1 -2
  930. package/ReactCommon/hermes/inspector/tools/msggen/src/TestHelpers.js +1 -3
  931. package/ReactCommon/hermes/inspector/tools/msggen/src/Type.js +0 -2
  932. package/ReactCommon/hermes/inspector/tools/msggen/src/index.js +1 -3
  933. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +2246 -1419
  934. package/ReactCommon/jsi/Android.mk +1 -1
  935. package/ReactCommon/jsi/BUCK +1 -3
  936. package/ReactCommon/jsi/JSCRuntime.cpp +7 -0
  937. package/ReactCommon/jsi/React-jsi.podspec +4 -4
  938. package/ReactCommon/jsi/jsi/CMakeLists.txt +1 -1
  939. package/ReactCommon/jsi/jsi/decorator.h +15 -0
  940. package/ReactCommon/jsi/jsi/instrumentation.h +13 -0
  941. package/ReactCommon/jsi/jsi/jsi.cpp +3 -0
  942. package/ReactCommon/jsi/jsi/jsi.h +31 -2
  943. package/ReactCommon/jsi/jsi/jsilib-posix.cpp +1 -11
  944. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  945. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -3
  946. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +36 -3
  947. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +2 -0
  948. package/ReactCommon/jsinspector/BUCK +2 -0
  949. package/ReactCommon/jsinspector/React-jsinspector.podspec +1 -1
  950. package/ReactCommon/logger/Android.mk +23 -0
  951. package/ReactCommon/logger/BUCK +43 -0
  952. package/ReactCommon/logger/React-logger.podspec +40 -0
  953. package/ReactCommon/logger/react_native_log.cpp +52 -0
  954. package/ReactCommon/logger/react_native_log.h +33 -0
  955. package/ReactCommon/react/config/Android.mk +1 -1
  956. package/ReactCommon/react/config/BUCK +1 -1
  957. package/ReactCommon/react/debug/Android.mk +31 -0
  958. package/ReactCommon/react/debug/BUCK +69 -0
  959. package/ReactCommon/react/debug/flags.h +19 -0
  960. package/ReactCommon/react/debug/react_native_assert.cpp +45 -0
  961. package/ReactCommon/react/debug/react_native_assert.h +64 -0
  962. package/ReactCommon/react/nativemodule/core/Android.mk +3 -3
  963. package/ReactCommon/react/nativemodule/core/BUCK +3 -3
  964. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  965. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  966. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp +1 -1
  967. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  968. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  969. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +55 -1
  970. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +76 -42
  971. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -1
  972. package/ReactCommon/react/nativemodule/core/platform/ios/RCTBlockGuard.h +24 -0
  973. package/ReactCommon/react/nativemodule/core/platform/ios/RCTBlockGuard.mm +28 -0
  974. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -16
  975. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +79 -32
  976. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.h +0 -7
  977. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +123 -127
  978. package/ReactCommon/react/nativemodule/samples/BUCK +4 -5
  979. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +2 -2
  980. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTSampleTurboCxxModule.mm +12 -0
  981. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTSampleTurboModule.mm +0 -2
  982. package/ReactCommon/react/renderer/animations/Android.mk +3 -2
  983. package/ReactCommon/react/renderer/animations/BUCK +6 -3
  984. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  985. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +11 -66
  986. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -13
  987. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1117 -1147
  988. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +98 -243
  989. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  990. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  991. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +544 -0
  992. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  993. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  994. package/ReactCommon/react/renderer/attributedstring/Android.mk +4 -2
  995. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  996. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +28 -6
  997. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +2 -2
  998. package/ReactCommon/react/renderer/attributedstring/BUCK +9 -4
  999. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  1000. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  1001. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  1002. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  1003. package/ReactCommon/react/renderer/attributedstring/conversions.h +718 -305
  1004. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  1005. package/ReactCommon/react/renderer/attributedstring/tests/AttributedStringBoxTest.cpp +105 -0
  1006. package/ReactCommon/react/renderer/attributedstring/tests/AttributedStringTest.cpp +17 -20
  1007. package/ReactCommon/react/renderer/attributedstring/tests/ParagraphAttributesTest.cpp +7 -12
  1008. package/ReactCommon/react/renderer/attributedstring/tests/TextAttributesTest.cpp +13 -15
  1009. package/ReactCommon/react/renderer/componentregistry/Android.mk +3 -2
  1010. package/ReactCommon/react/renderer/componentregistry/BUCK +5 -4
  1011. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  1012. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  1013. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +17 -67
  1014. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  1015. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +73 -0
  1016. package/ReactCommon/react/renderer/{components/picker/iospicker/PickerShadowNode.cpp → componentregistry/componentNameByReactViewName.h} +7 -2
  1017. package/ReactCommon/react/renderer/componentregistry/native/Android.mk +29 -0
  1018. package/ReactCommon/react/renderer/componentregistry/native/BUCK +58 -0
  1019. package/ReactCommon/react/renderer/componentregistry/native/NativeComponentRegistryBinding.cpp +68 -0
  1020. package/ReactCommon/react/renderer/componentregistry/native/NativeComponentRegistryBinding.h +61 -0
  1021. package/ReactCommon/react/renderer/components/image/Android.mk +5 -3
  1022. package/ReactCommon/react/renderer/components/image/BUCK +7 -3
  1023. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +3 -2
  1024. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  1025. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  1026. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -1
  1027. package/ReactCommon/react/renderer/components/image/conversions.h +29 -18
  1028. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +4 -3
  1029. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +5 -3
  1030. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +3 -3
  1031. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +1 -1
  1032. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +17 -4
  1033. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +5 -10
  1034. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  1035. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +1 -1
  1036. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +69 -12
  1037. package/ReactCommon/react/renderer/components/modal/Android.mk +4 -3
  1038. package/ReactCommon/react/renderer/components/modal/BUCK +6 -2
  1039. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +5 -3
  1040. package/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +6 -0
  1041. package/ReactCommon/react/renderer/components/progressbar/Android.mk +3 -3
  1042. package/ReactCommon/react/renderer/components/progressbar/BUCK +4 -3
  1043. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +4 -2
  1044. package/ReactCommon/react/renderer/components/root/Android.mk +4 -3
  1045. package/ReactCommon/react/renderer/components/root/BUCK +4 -3
  1046. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  1047. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  1048. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +7 -1
  1049. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  1050. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +35 -3
  1051. package/ReactCommon/react/renderer/components/safeareaview/BUCK +4 -3
  1052. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h +5 -3
  1053. package/ReactCommon/react/renderer/components/scrollview/Android.mk +5 -3
  1054. package/ReactCommon/react/renderer/components/scrollview/BUCK +6 -3
  1055. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +59 -6
  1056. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +10 -5
  1057. package/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.cpp +23 -2
  1058. package/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h +1 -0
  1059. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.cpp +1 -1
  1060. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +12 -2
  1061. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  1062. package/ReactCommon/react/renderer/components/slider/Android.mk +4 -3
  1063. package/ReactCommon/react/renderer/components/slider/BUCK +5 -3
  1064. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +4 -2
  1065. package/ReactCommon/react/renderer/components/slider/SliderState.h +8 -0
  1066. package/ReactCommon/react/renderer/components/slider/platform/ios/SliderMeasurementsManager.cpp +3 -1
  1067. package/ReactCommon/react/renderer/components/switch/Android.mk +3 -3
  1068. package/ReactCommon/react/renderer/components/switch/BUCK +3 -3
  1069. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +4 -2
  1070. package/ReactCommon/react/renderer/components/text/Android.mk +5 -3
  1071. package/ReactCommon/react/renderer/components/text/BUCK +10 -4
  1072. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  1073. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  1074. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +2 -3
  1075. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +5 -24
  1076. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +15 -6
  1077. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  1078. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +9 -16
  1079. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +7 -6
  1080. package/ReactCommon/react/renderer/components/text/ParagraphState.cpp +4 -0
  1081. package/ReactCommon/react/renderer/components/text/ParagraphState.h +8 -3
  1082. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  1083. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  1084. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +36 -2
  1085. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  1086. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  1087. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +23 -0
  1088. package/ReactCommon/react/renderer/components/text/conversions.h +22 -0
  1089. package/ReactCommon/react/renderer/components/text/tests/ParagraphLocalDataTest.cpp +8 -5
  1090. package/ReactCommon/react/renderer/components/textinput/Android.mk +5 -3
  1091. package/ReactCommon/react/renderer/components/textinput/BUCK +8 -4
  1092. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +8 -5
  1093. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  1094. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  1095. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +2 -8
  1096. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +5 -5
  1097. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -3
  1098. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputState.h +5 -8
  1099. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +5 -4
  1100. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +4 -2
  1101. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  1102. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  1103. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputShadowNode.cpp +3 -2
  1104. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputShadowNode.h +6 -6
  1105. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputState.h +2 -0
  1106. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +19 -7
  1107. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  1108. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  1109. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +4 -3
  1110. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +4 -3
  1111. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +8 -3
  1112. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  1113. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  1114. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +28 -0
  1115. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  1116. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +4 -1
  1117. package/ReactCommon/react/renderer/components/view/Android.mk +6 -4
  1118. package/ReactCommon/react/renderer/components/view/BUCK +5 -3
  1119. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +19 -5
  1120. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +2 -1
  1121. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  1122. package/ReactCommon/react/renderer/components/view/ViewEventEmitter.cpp +1 -1
  1123. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  1124. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  1125. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +5 -8
  1126. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -19
  1127. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  1128. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +147 -78
  1129. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +4 -9
  1130. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  1131. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  1132. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +99 -24
  1133. package/ReactCommon/react/renderer/components/view/conversions.h +89 -45
  1134. package/ReactCommon/react/renderer/components/view/primitives.h +5 -4
  1135. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  1136. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +11 -2
  1137. package/ReactCommon/react/renderer/core/Android.mk +4 -2
  1138. package/ReactCommon/react/renderer/core/BUCK +7 -4
  1139. package/ReactCommon/react/renderer/core/BatchedEventQueue.cpp +2 -34
  1140. package/ReactCommon/react/renderer/core/BatchedEventQueue.h +2 -9
  1141. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +6 -3
  1142. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +28 -27
  1143. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +11 -5
  1144. package/ReactCommon/react/renderer/core/ConcreteState.h +7 -3
  1145. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +35 -0
  1146. package/ReactCommon/react/renderer/{components/picker/iospicker/PickerState.h → core/DynamicPropsUtilities.h} +5 -4
  1147. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +9 -15
  1148. package/ReactCommon/react/renderer/core/EventDispatcher.h +5 -10
  1149. package/ReactCommon/react/renderer/core/EventEmitter.cpp +22 -12
  1150. package/ReactCommon/react/renderer/core/EventEmitter.h +7 -2
  1151. package/ReactCommon/react/renderer/core/EventPipe.h +2 -0
  1152. package/ReactCommon/react/renderer/core/EventPriority.h +1 -1
  1153. package/ReactCommon/react/renderer/core/EventQueue.cpp +39 -36
  1154. package/ReactCommon/react/renderer/core/EventQueue.h +14 -8
  1155. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +82 -0
  1156. package/ReactCommon/react/renderer/core/EventQueueProcessor.h +36 -0
  1157. package/ReactCommon/react/renderer/core/EventTarget.cpp +4 -2
  1158. package/ReactCommon/react/renderer/core/LayoutConstraints.h +6 -0
  1159. package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +65 -0
  1160. package/ReactCommon/react/renderer/core/LayoutMetrics.h +35 -2
  1161. package/ReactCommon/react/renderer/core/LayoutPrimitives.h +14 -6
  1162. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +1 -1
  1163. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +2 -7
  1164. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  1165. package/ReactCommon/react/renderer/core/Props.h +6 -1
  1166. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  1167. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  1168. package/ReactCommon/react/renderer/core/RawEvent.h +40 -3
  1169. package/ReactCommon/react/renderer/core/RawProps.cpp +5 -3
  1170. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  1171. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +18 -7
  1172. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +8 -6
  1173. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +10 -7
  1174. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  1175. package/ReactCommon/react/renderer/core/RawValue.h +9 -7
  1176. package/ReactCommon/react/renderer/core/ReactEventPriority.h +43 -0
  1177. package/ReactCommon/react/renderer/core/ReactPrimitives.h +34 -2
  1178. package/ReactCommon/react/renderer/core/Sealable.cpp +4 -3
  1179. package/ReactCommon/react/renderer/core/Sealable.h +5 -1
  1180. package/ReactCommon/react/renderer/core/ShadowNode.cpp +42 -13
  1181. package/ReactCommon/react/renderer/core/ShadowNode.h +14 -4
  1182. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +2 -1
  1183. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +2 -1
  1184. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +17 -1
  1185. package/ReactCommon/react/renderer/core/State.h +3 -0
  1186. package/ReactCommon/react/renderer/core/StateData.h +3 -0
  1187. package/ReactCommon/react/renderer/core/propsConversions.h +19 -9
  1188. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  1189. package/ReactCommon/react/renderer/core/tests/ConcreteShadowNodeTest.cpp +1 -1
  1190. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +66 -0
  1191. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +134 -0
  1192. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +99 -30
  1193. package/ReactCommon/react/renderer/core/tests/TestComponent.h +11 -7
  1194. package/ReactCommon/react/renderer/core/tests/traitCastTest.cpp +31 -0
  1195. package/ReactCommon/react/renderer/debug/Android.mk +1 -1
  1196. package/ReactCommon/react/renderer/debug/BUCK +4 -6
  1197. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +11 -25
  1198. package/ReactCommon/react/renderer/debug/flags.h +50 -0
  1199. package/ReactCommon/react/renderer/element/BUCK +3 -3
  1200. package/ReactCommon/react/renderer/graphics/Android.mk +7 -3
  1201. package/ReactCommon/react/renderer/graphics/BUCK +16 -4
  1202. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +4 -3
  1203. package/ReactCommon/react/renderer/graphics/Transform.cpp +5 -4
  1204. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  1205. package/ReactCommon/react/renderer/graphics/conversions.h +102 -44
  1206. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  1207. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.cpp +14 -6
  1208. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +2 -0
  1209. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  1210. package/ReactCommon/react/renderer/graphics/platform/ios/Color.cpp +14 -6
  1211. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +44 -1
  1212. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  1213. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  1214. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  1215. package/ReactCommon/react/renderer/imagemanager/Android.mk +3 -2
  1216. package/ReactCommon/react/renderer/imagemanager/BUCK +5 -4
  1217. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +5 -4
  1218. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTImagePrimitivesConversions.h +8 -6
  1219. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  1220. package/ReactCommon/react/renderer/leakchecker/Android.mk +29 -0
  1221. package/ReactCommon/react/renderer/{components/picker/iospicker → leakchecker}/BUCK +8 -12
  1222. package/ReactCommon/react/renderer/leakchecker/LeakChecker.cpp +60 -0
  1223. package/ReactCommon/react/renderer/leakchecker/LeakChecker.h +39 -0
  1224. package/ReactCommon/react/renderer/leakchecker/WeakFamilyRegistry.cpp +37 -0
  1225. package/ReactCommon/react/renderer/leakchecker/WeakFamilyRegistry.h +39 -0
  1226. package/ReactCommon/react/renderer/mapbuffer/Android.mk +9 -6
  1227. package/ReactCommon/react/renderer/mapbuffer/BUCK +14 -5
  1228. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +131 -4
  1229. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +40 -4
  1230. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +226 -0
  1231. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +94 -0
  1232. package/ReactCommon/react/renderer/mapbuffer/primitives.h +91 -0
  1233. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +141 -5
  1234. package/ReactCommon/react/renderer/mounting/Android.mk +5 -2
  1235. package/ReactCommon/react/renderer/mounting/BUCK +6 -3
  1236. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +794 -620
  1237. package/ReactCommon/react/renderer/mounting/Differentiator.h +31 -4
  1238. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -2
  1239. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +1 -4
  1240. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  1241. package/ReactCommon/react/renderer/mounting/MountingTransaction.h +2 -2
  1242. package/ReactCommon/react/renderer/mounting/MountingTransactionMetadata.h +1 -1
  1243. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +19 -15
  1244. package/ReactCommon/react/renderer/mounting/ShadowTree.h +11 -4
  1245. package/ReactCommon/react/renderer/mounting/ShadowTreeRegistry.cpp +3 -1
  1246. package/ReactCommon/react/renderer/mounting/ShadowTreeRevision.h +1 -1
  1247. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +15 -1
  1248. package/ReactCommon/react/renderer/mounting/ShadowView.h +45 -2
  1249. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +28 -0
  1250. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +17 -0
  1251. package/ReactCommon/react/renderer/mounting/StubView.cpp +21 -2
  1252. package/ReactCommon/react/renderer/mounting/StubView.h +3 -0
  1253. package/ReactCommon/react/renderer/mounting/StubViewTree.cpp +204 -77
  1254. package/ReactCommon/react/renderer/mounting/TelemetryController.cpp +1 -1
  1255. package/ReactCommon/react/renderer/mounting/TelemetryController.h +1 -1
  1256. package/ReactCommon/react/renderer/mounting/stubs.cpp +5 -4
  1257. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +13 -2
  1258. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +232 -9
  1259. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +18 -8
  1260. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +28 -0
  1261. package/ReactCommon/react/renderer/runtimescheduler/BUCK +77 -0
  1262. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +118 -0
  1263. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +105 -0
  1264. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +171 -0
  1265. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +44 -0
  1266. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  1267. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  1268. package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerComponentDescriptor.h → runtimescheduler/RuntimeSchedulerClock.h} +8 -5
  1269. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +65 -0
  1270. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +37 -0
  1271. package/ReactCommon/react/renderer/runtimescheduler/Task.h +48 -0
  1272. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +41 -0
  1273. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +472 -0
  1274. package/ReactCommon/react/renderer/runtimescheduler/tests/SchedulerPriorityTest.cpp +46 -0
  1275. package/ReactCommon/react/renderer/runtimescheduler/tests/StubClock.h +41 -0
  1276. package/ReactCommon/react/renderer/runtimescheduler/tests/StubQueue.h +38 -0
  1277. package/ReactCommon/react/renderer/scheduler/Android.mk +4 -2
  1278. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.cpp +16 -13
  1279. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.h +4 -4
  1280. package/ReactCommon/react/renderer/scheduler/BUCK +5 -3
  1281. package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.cpp → scheduler/InspectorData.h} +10 -2
  1282. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +81 -132
  1283. package/ReactCommon/react/renderer/scheduler/Scheduler.h +32 -35
  1284. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +12 -10
  1285. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +2 -0
  1286. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +317 -0
  1287. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +209 -0
  1288. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +104 -0
  1289. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +67 -0
  1290. package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.cpp +14 -5
  1291. package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.h +4 -1
  1292. package/ReactCommon/react/renderer/telemetry/Android.mk +31 -0
  1293. package/ReactCommon/react/renderer/telemetry/BUCK +84 -0
  1294. package/ReactCommon/react/renderer/{mounting → telemetry}/SurfaceTelemetry.cpp +5 -0
  1295. package/ReactCommon/react/renderer/{mounting → telemetry}/SurfaceTelemetry.h +3 -1
  1296. package/ReactCommon/react/renderer/telemetry/TransactionTelemetry.cpp +163 -0
  1297. package/ReactCommon/react/renderer/{mounting → telemetry}/TransactionTelemetry.h +11 -0
  1298. package/ReactCommon/react/renderer/telemetry/tests/TransactionTelemetryTest.cpp +176 -0
  1299. package/ReactCommon/react/renderer/templateprocessor/Android.mk +1 -1
  1300. package/ReactCommon/react/renderer/templateprocessor/BUCK +3 -3
  1301. package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +5 -5
  1302. package/ReactCommon/react/renderer/textlayoutmanager/Android.mk +5 -2
  1303. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +5 -3
  1304. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.cpp +12 -9
  1305. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +132 -3
  1306. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +17 -1
  1307. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  1308. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  1309. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/TextLayoutManager.mm +25 -3
  1310. package/ReactCommon/react/renderer/{components/picker → timeline}/BUCK +14 -28
  1311. package/ReactCommon/react/renderer/timeline/Timeline.cpp +120 -0
  1312. package/ReactCommon/react/renderer/timeline/Timeline.h +63 -0
  1313. package/ReactCommon/react/renderer/timeline/TimelineController.cpp +77 -0
  1314. package/ReactCommon/react/renderer/timeline/TimelineController.h +80 -0
  1315. package/ReactCommon/react/renderer/timeline/TimelineFrame.cpp +25 -0
  1316. package/ReactCommon/react/renderer/timeline/TimelineFrame.h +46 -0
  1317. package/ReactCommon/react/renderer/timeline/TimelineHandler.cpp +97 -0
  1318. package/ReactCommon/react/renderer/timeline/TimelineHandler.h +80 -0
  1319. package/ReactCommon/react/renderer/timeline/TimelineSnapshot.cpp +30 -0
  1320. package/ReactCommon/react/renderer/timeline/TimelineSnapshot.h +36 -0
  1321. package/ReactCommon/react/renderer/uimanager/Android.mk +4 -2
  1322. package/ReactCommon/react/renderer/uimanager/BUCK +5 -3
  1323. package/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h +2 -4
  1324. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +121 -36
  1325. package/ReactCommon/react/renderer/uimanager/UIManager.h +40 -21
  1326. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +3 -5
  1327. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +201 -77
  1328. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +29 -6
  1329. package/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h +2 -4
  1330. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +16 -15
  1331. package/ReactCommon/react/renderer/uimanager/primitives.h +57 -9
  1332. package/ReactCommon/react/test_utils/BUCK +57 -0
  1333. package/ReactCommon/react/{renderer/mounting/tests → test_utils}/Entropy.h +4 -0
  1334. package/ReactCommon/react/test_utils/MockClock.h +29 -0
  1335. package/ReactCommon/react/{renderer/components/picker/iospicker/PickerEventEmitter.h → test_utils/MockSurfaceHandler.h} +6 -9
  1336. package/ReactCommon/react/{renderer/mounting/tests → test_utils}/shadowTreeGeneration.h +61 -5
  1337. package/ReactCommon/react/utils/Android.mk +8 -3
  1338. package/ReactCommon/react/utils/BUCK +9 -2
  1339. package/ReactCommon/react/utils/CalledOnceMovableOnlyFunction.h +6 -4
  1340. package/ReactCommon/react/utils/ContextContainer.h +4 -24
  1341. package/ReactCommon/react/utils/LayoutManager.h +56 -0
  1342. package/ReactCommon/react/utils/ManagedObjectWrapper.h +3 -1
  1343. package/ReactCommon/react/utils/RunLoopObserver.cpp +5 -4
  1344. package/ReactCommon/reactperflogger/Android.mk +1 -1
  1345. package/ReactCommon/reactperflogger/BUCK +1 -1
  1346. package/ReactCommon/reactperflogger/React-perflogger.podspec +2 -2
  1347. package/ReactCommon/runtimeexecutor/Android.mk +1 -1
  1348. package/ReactCommon/runtimeexecutor/BUCK +2 -2
  1349. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +2 -2
  1350. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +14 -2
  1351. package/ReactCommon/yoga/Yoga.podspec +1 -1
  1352. package/ReactCommon/yoga/yoga/BitUtils.h +3 -2
  1353. package/ReactCommon/yoga/yoga/Utils.cpp +1 -1
  1354. package/ReactCommon/yoga/yoga/YGNode.cpp +111 -110
  1355. package/ReactCommon/yoga/yoga/YGNode.h +11 -0
  1356. package/ReactCommon/yoga/yoga/YGNodePrint.cpp +7 -4
  1357. package/ReactCommon/yoga/yoga/Yoga-internal.h +4 -5
  1358. package/ReactCommon/yoga/yoga/Yoga.cpp +114 -159
  1359. package/ReactCommon/yoga/yoga/Yoga.h +1 -1
  1360. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar +0 -0
  1361. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.md5 +1 -0
  1362. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.sha1 +1 -0
  1363. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.sha256 +1 -0
  1364. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.aar.sha512 +1 -0
  1365. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module +272 -0
  1366. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.md5 +1 -0
  1367. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.sha1 +1 -0
  1368. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.sha256 +1 -0
  1369. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.module.sha512 +1 -0
  1370. package/android/com/facebook/react/react-native/{0.0.0-201c10733/react-native-0.0.0-201c10733.pom → 0.0.0-268efb102/react-native-0.0.0-268efb102.pom} +24 -13
  1371. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.md5 +1 -0
  1372. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.sha1 +1 -0
  1373. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.sha256 +1 -0
  1374. package/android/com/facebook/react/react-native/0.0.0-268efb102/react-native-0.0.0-268efb102.pom.sha512 +1 -0
  1375. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -3
  1376. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  1377. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  1378. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -0
  1379. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -0
  1380. package/flow/HermesInternalType.js +114 -0
  1381. package/flow/global.js +68 -0
  1382. package/flow-typed/npm/react-test-renderer_v16.x.x.js +79 -0
  1383. package/index.js +122 -60
  1384. package/jest/preprocessor.js +75 -7
  1385. package/jest/renderer.js +3 -9
  1386. package/jest/setup.js +21 -15
  1387. package/package.json +61 -21
  1388. package/react.gradle +47 -25
  1389. package/scripts/find-node.sh +39 -0
  1390. package/scripts/generate-specs-cli.js +20 -2
  1391. package/scripts/ios-configure-glog.sh +4 -0
  1392. package/scripts/react-native-xcode.sh +7 -23
  1393. package/scripts/react_native_pods.rb +215 -47
  1394. package/template/_flowconfig +3 -4
  1395. package/template/_gitignore +1 -0
  1396. package/template/android/app/build.gradle +12 -7
  1397. package/template/android/app/src/main/res/values/styles.xml +0 -1
  1398. package/template/android/build.gradle +7 -8
  1399. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  1400. package/template/android/gradle.properties +1 -1
  1401. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  1402. package/template/ios/Podfile +1 -0
  1403. package/template/package.json +4 -5
  1404. package/third-party-podspecs/DoubleConversion.podspec +1 -1
  1405. package/third-party-podspecs/RCT-Folly.podspec +31 -11
  1406. package/third-party-podspecs/boost.podspec +23 -0
  1407. package/third-party-podspecs/glog.podspec +1 -1
  1408. package/Libraries/BUCK +0 -56
  1409. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -169
  1410. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -280
  1411. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -89
  1412. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  1413. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  1414. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -82
  1415. package/Libraries/Components/Picker/AndroidDialogPickerViewConfig.js +0 -30
  1416. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -69
  1417. package/Libraries/Components/Picker/Picker.js +0 -165
  1418. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -145
  1419. package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
  1420. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
  1421. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -72
  1422. package/Libraries/Components/Picker/RCTPickerViewConfig.js +0 -41
  1423. package/Libraries/Components/ScrollResponder.js +0 -797
  1424. package/Libraries/Components/StaticContainer.react.js +0 -51
  1425. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -35
  1426. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
  1427. package/Libraries/Interaction/InteractionMixin.js +0 -55
  1428. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  1429. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -100
  1430. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -36
  1431. package/Libraries/promiseRejectionIsError.js +0 -24
  1432. package/React/Base/RCTJSInvokerModule.h +0 -18
  1433. package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.h +0 -19
  1434. package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.mm +0 -206
  1435. package/React/Views/RCTPicker.h +0 -23
  1436. package/React/Views/RCTPicker.m +0 -122
  1437. package/React/Views/RCTPickerManager.m +0 -68
  1438. package/ReactAndroid/release.gradle +0 -87
  1439. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  1440. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ReactPickerTestCase.java +0 -196
  1441. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  1442. package/ReactAndroid/src/androidTest/js/PickerAndroidTestModule.js +0 -89
  1443. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java +0 -82
  1444. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  1445. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  1446. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -147
  1447. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  1448. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerDelegate.java +0 -48
  1449. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerInterface.java +0 -23
  1450. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerDelegate.java +0 -48
  1451. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerInterface.java +0 -22
  1452. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/BUCK +0 -30
  1453. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDialogPickerManager.java +0 -51
  1454. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDropdownPickerManager.java +0 -50
  1455. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPicker.java +0 -196
  1456. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerAdapter.java +0 -95
  1457. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerItem.java +0 -43
  1458. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerManager.java +0 -97
  1459. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/events/PickerItemSelectEvent.java +0 -40
  1460. package/ReactCommon/cxxreact/re_worker_requirements +0 -6
  1461. package/ReactCommon/react/renderer/components/picker/Android.mk +0 -37
  1462. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.cpp +0 -23
  1463. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.h +0 -27
  1464. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.cpp +0 -28
  1465. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.h +0 -77
  1466. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.h +0 -29
  1467. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.cpp +0 -23
  1468. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.h +0 -27
  1469. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.cpp +0 -28
  1470. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.h +0 -77
  1471. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.cpp +0 -17
  1472. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.h +0 -29
  1473. package/ReactCommon/react/renderer/components/picker/iospicker/PickerComponentDescriptor.h +0 -26
  1474. package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.cpp +0 -23
  1475. package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.cpp +0 -46
  1476. package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.h +0 -36
  1477. package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.h +0 -33
  1478. package/ReactCommon/react/renderer/components/picker/iospicker/conversions.h +0 -47
  1479. package/ReactCommon/react/renderer/mounting/TransactionTelemetry.cpp +0 -142
  1480. package/ReactCommon/react/renderer/mounting/tests/TransactionTelemetryTest.cpp +0 -125
  1481. package/android/com/facebook/react/react-native/0.0.0-201c10733/react-native-0.0.0-201c10733.aar +0 -0
  1482. package/android/com/facebook/react/react-native/0.0.0-201c10733/react-native-0.0.0-201c10733.aar.md5 +0 -1
  1483. package/android/com/facebook/react/react-native/0.0.0-201c10733/react-native-0.0.0-201c10733.aar.sha1 +0 -1
  1484. package/android/com/facebook/react/react-native/0.0.0-201c10733/react-native-0.0.0-201c10733.pom.md5 +0 -1
  1485. package/android/com/facebook/react/react-native/0.0.0-201c10733/react-native-0.0.0-201c10733.pom.sha1 +0 -1
  1486. package/scripts/generate-specs.sh +0 -91
@@ -8,23 +8,24 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
11
  import AnimatedImplementation from '../../Animated/AnimatedImplementation';
12
+ import Dimensions from '../../Utilities/Dimensions';
14
13
  import Platform from '../../Utilities/Platform';
15
14
  import * as React from 'react';
16
15
  import ReactNative from '../../Renderer/shims/ReactNative';
17
16
  require('../../Renderer/shims/ReactNative'); // Force side effects to prevent T55744311
18
- import ScrollResponder from '../ScrollResponder';
19
17
  import ScrollViewStickyHeader from './ScrollViewStickyHeader';
20
18
  import StyleSheet from '../../StyleSheet/StyleSheet';
21
19
  import View from '../View/View';
20
+ import UIManager from '../../ReactNative/UIManager';
21
+ import Keyboard from '../Keyboard/Keyboard';
22
+ import FrameRateLogger from '../../Interaction/FrameRateLogger';
23
+ import TextInputState from '../TextInput/TextInputState';
22
24
 
23
25
  import dismissKeyboard from '../../Utilities/dismissKeyboard';
24
26
  import flattenStyle from '../../StyleSheet/flattenStyle';
25
27
  import invariant from 'invariant';
26
28
  import processDecelerationRate from './processDecelerationRate';
27
- import resolveAssetSource from '../../Image/resolveAssetSource';
28
29
  import splitLayoutProps from '../../StyleSheet/splitLayoutProps';
29
30
  import setAndForwardRef from '../../Utilities/setAndForwardRef';
30
31
 
@@ -38,11 +39,13 @@ import type {
38
39
  LayoutEvent,
39
40
  } from '../../Types/CoreEventTypes';
40
41
  import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
41
- import type {State as ScrollResponderState} from '../ScrollResponder';
42
42
  import type {ViewProps} from '../View/ViewPropTypes';
43
43
  import ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';
44
44
  import type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';
45
+ import type {KeyboardEvent} from '../Keyboard/Keyboard';
46
+ import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
45
47
 
48
+ import Commands from './ScrollViewCommands';
46
49
  import AndroidHorizontalScrollContentViewNativeComponent from './AndroidHorizontalScrollContentViewNativeComponent';
47
50
  import AndroidHorizontalScrollViewNativeComponent from './AndroidHorizontalScrollViewNativeComponent';
48
51
  import ScrollContentViewNativeComponent from './ScrollContentViewNativeComponent';
@@ -68,6 +71,79 @@ const {NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple} =
68
71
  ],
69
72
  };
70
73
 
74
+ /*
75
+ * iOS scroll event timing nuances:
76
+ * ===============================
77
+ *
78
+ *
79
+ * Scrolling without bouncing, if you touch down:
80
+ * -------------------------------
81
+ *
82
+ * 1. `onMomentumScrollBegin` (when animation begins after letting up)
83
+ * ... physical touch starts ...
84
+ * 2. `onTouchStartCapture` (when you press down to stop the scroll)
85
+ * 3. `onTouchStart` (same, but bubble phase)
86
+ * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)
87
+ * 5. `onMomentumScrollEnd`
88
+ *
89
+ *
90
+ * Scrolling with bouncing, if you touch down:
91
+ * -------------------------------
92
+ *
93
+ * 1. `onMomentumScrollBegin` (when animation begins after letting up)
94
+ * ... bounce begins ...
95
+ * ... some time elapses ...
96
+ * ... physical touch during bounce ...
97
+ * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)
98
+ * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)
99
+ * 4. `onTouchStart` (same, but bubble phase)
100
+ * 5. `onTouchEnd` (You could hold the touch start for a long time)
101
+ * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)
102
+ *
103
+ * So when we receive an `onTouchStart`, how can we tell if we are touching
104
+ * *during* an animation (which then causes the animation to stop)? The only way
105
+ * to tell is if the `touchStart` occurred immediately after the
106
+ * `onMomentumScrollEnd`.
107
+ *
108
+ * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if
109
+ * necessary
110
+ *
111
+ * `ScrollView` also includes logic for blurring a currently focused input
112
+ * if one is focused while scrolling. This is a natural place
113
+ * to put this logic since it can support not dismissing the keyboard while
114
+ * scrolling, unless a recognized "tap"-like gesture has occurred.
115
+ *
116
+ * The public lifecycle API includes events for keyboard interaction, responder
117
+ * interaction, and scrolling (among others). The keyboard callbacks
118
+ * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll
119
+ * responder's props so that you can guarantee that the scroll responder's
120
+ * internal state has been updated accordingly (and deterministically) by
121
+ * the time the props callbacks are invoke. Otherwise, you would always wonder
122
+ * if the scroll responder is currently in a state where it recognizes new
123
+ * keyboard positions etc. If coordinating scrolling with keyboard movement,
124
+ * *always* use these hooks instead of listening to your own global keyboard
125
+ * events.
126
+ *
127
+ * Public keyboard lifecycle API: (props callbacks)
128
+ *
129
+ * Standard Keyboard Appearance Sequence:
130
+ *
131
+ * this.props.onKeyboardWillShow
132
+ * this.props.onKeyboardDidShow
133
+ *
134
+ * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate
135
+ * tap inside the scroll responder's scrollable region was responsible
136
+ * for the dismissal of the keyboard. There are other reasons why the
137
+ * keyboard could be dismissed.
138
+ *
139
+ * this.props.onScrollResponderKeyboardDismissed
140
+ *
141
+ * Standard Keyboard Hide Sequence:
142
+ *
143
+ * this.props.onKeyboardWillHide
144
+ * this.props.onKeyboardDidHide
145
+ */
146
+
71
147
  // Public methods for ScrollView
72
148
  export type ScrollViewImperativeMethods = $ReadOnly<{|
73
149
  getScrollResponder: $PropertyType<ScrollView, 'getScrollResponder'>,
@@ -78,14 +154,9 @@ export type ScrollViewImperativeMethods = $ReadOnly<{|
78
154
  scrollTo: $PropertyType<ScrollView, 'scrollTo'>,
79
155
  scrollToEnd: $PropertyType<ScrollView, 'scrollToEnd'>,
80
156
  flashScrollIndicators: $PropertyType<ScrollView, 'flashScrollIndicators'>,
81
-
82
- // ScrollResponder.Mixin public methods
83
- scrollResponderZoomTo: $PropertyType<
84
- typeof ScrollResponder.Mixin,
85
- 'scrollResponderZoomTo',
86
- >,
157
+ scrollResponderZoomTo: $PropertyType<ScrollView, 'scrollResponderZoomTo'>,
87
158
  scrollResponderScrollNativeHandleToKeyboard: $PropertyType<
88
- typeof ScrollResponder.Mixin,
159
+ ScrollView,
89
160
  'scrollResponderScrollNativeHandleToKeyboard',
90
161
  >,
91
162
  |}>;
@@ -100,6 +171,18 @@ type IOSProps = $ReadOnly<{|
100
171
  * @platform ios
101
172
  */
102
173
  automaticallyAdjustContentInsets?: ?boolean,
174
+ /**
175
+ * Controls whether the ScrollView should automatically adjust it's contentInset
176
+ * and scrollViewInsets when the Keyboard changes it's size. The default value is false.
177
+ * @platform ios
178
+ */
179
+ automaticallyAdjustKeyboardInsets?: ?boolean,
180
+ /**
181
+ * Controls whether iOS should automatically adjust the scroll indicator
182
+ * insets. The default value is true. Available on iOS 13 and later.
183
+ * @platform ios
184
+ */
185
+ automaticallyAdjustsScrollIndicatorInsets?: ?boolean,
103
186
  /**
104
187
  * The amount by which the scroll view content is inset from the edges
105
188
  * of the scroll view. Defaults to `{top: 0, left: 0, bottom: 0, right: 0}`.
@@ -356,32 +439,15 @@ type AndroidProps = $ReadOnly<{|
356
439
  fadingEdgeLength?: ?number,
357
440
  |}>;
358
441
 
359
- type VRProps = $ReadOnly<{|
360
- /**
361
- * Optionally an image can be used for the scroll bar thumb. This will
362
- * override the color. While the image is loading or the image fails to
363
- * load the color will be used instead. Use an alpha of 0 in the color
364
- * to avoid seeing it while the image is loading.
365
- *
366
- * - `uri` - a string representing the resource identifier for the image, which
367
- * should be either a local file path or the name of a static image resource
368
- * - `number` - Opaque type returned by something like
369
- * `import IMAGE from './image.jpg'`.
370
- * @platform vr
371
- */
372
- scrollBarThumbImage?: ?($ReadOnly<{||}> | number), // Opaque type returned by import IMAGE from './image.jpg'
373
- |}>;
374
-
375
442
  type StickyHeaderComponentType = React.AbstractComponent<
376
443
  ScrollViewStickyHeaderProps,
377
- $ReadOnly<{setNextHeaderY: number => void, ...}>,
444
+ $ReadOnly<interface {setNextHeaderY: number => void}>,
378
445
  >;
379
446
 
380
447
  export type Props = $ReadOnly<{|
381
448
  ...ViewProps,
382
449
  ...IOSProps,
383
450
  ...AndroidProps,
384
- ...VRProps,
385
451
 
386
452
  /**
387
453
  * These styles will be applied to the scroll view content container which
@@ -444,10 +510,8 @@ export type Props = $ReadOnly<{|
444
510
  * On android this is not supported and it will have the same behavior as 'none'.
445
511
  */
446
512
  keyboardDismissMode?: ?// default
447
- (| 'none' // cross-platform
448
- | 'on-drag'
449
- | 'interactive'
450
- ), // ios only
513
+ // cross-platform
514
+ ('none' | 'on-drag' | 'interactive'), // ios only
451
515
  /**
452
516
  * Determines when the keyboard should stay visible after a tap.
453
517
  *
@@ -494,7 +558,10 @@ export type Props = $ReadOnly<{|
494
558
  * which this ScrollView renders.
495
559
  */
496
560
  onContentSizeChange?: (contentWidth: number, contentHeight: number) => void,
497
- onKeyboardDidShow?: (event: PressEvent) => void,
561
+ onKeyboardDidShow?: (event: KeyboardEvent) => void,
562
+ onKeyboardDidHide?: (event: KeyboardEvent) => void,
563
+ onKeyboardWillShow?: (event: KeyboardEvent) => void,
564
+ onKeyboardWillHide?: (event: KeyboardEvent) => void,
498
565
  /**
499
566
  * When true, the scroll view stops on multiples of the scroll view's size
500
567
  * when scrolling. This can be used for horizontal pagination. The default
@@ -516,6 +583,11 @@ export type Props = $ReadOnly<{|
516
583
  * The default value is true.
517
584
  */
518
585
  showsVerticalScrollIndicator?: ?boolean,
586
+ /**
587
+ * When true, Sticky header is hidden when scrolling down, and dock at the top
588
+ * when scrolling up
589
+ */
590
+ stickyHeaderHiddenOnScroll?: ?boolean,
519
591
  /**
520
592
  * An array of child indices determining which children get docked to the
521
593
  * top of the screen when scrolling. For example, passing
@@ -579,7 +651,8 @@ export type Props = $ReadOnly<{|
579
651
  *
580
652
  * See [RefreshControl](docs/refreshcontrol.html).
581
653
  */
582
- // $FlowFixMe - how to handle generic type without existential operator?
654
+ /* $FlowFixMe[unclear-type] - how to handle generic type without existential
655
+ * operator? */
583
656
  refreshControl?: ?React.Element<any>,
584
657
  children?: React.Node,
585
658
  /**
@@ -599,22 +672,9 @@ export type Props = $ReadOnly<{|
599
672
 
600
673
  type State = {|
601
674
  layoutHeight: ?number,
602
- ...ScrollResponderState,
603
675
  |};
604
676
 
605
- function createScrollResponder(
606
- node: React.ElementRef<typeof ScrollView>,
607
- ): typeof ScrollResponder.Mixin {
608
- const scrollResponder = {...ScrollResponder.Mixin};
609
-
610
- for (const key in scrollResponder) {
611
- if (typeof scrollResponder[key] === 'function') {
612
- scrollResponder[key] = scrollResponder[key].bind(node);
613
- }
614
- }
615
-
616
- return scrollResponder;
617
- }
677
+ const IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;
618
678
 
619
679
  type ScrollViewComponentStatics = $ReadOnly<{|
620
680
  Context: typeof ScrollViewContext,
@@ -657,61 +717,17 @@ type ScrollViewComponentStatics = $ReadOnly<{|
657
717
  */
658
718
  class ScrollView extends React.Component<Props, State> {
659
719
  static Context: typeof ScrollViewContext = ScrollViewContext;
660
- /**
661
- * Part 1: Removing ScrollResponder.Mixin:
662
- *
663
- * 1. Mixin methods should be flow typed. That's why we create a
664
- * copy of ScrollResponder.Mixin and attach it to this._scrollResponder.
665
- * Otherwise, we'd have to manually declare each method on the component
666
- * class and assign it a flow type.
667
- * 2. Mixin methods can call component methods, and access the component's
668
- * props and state. So, we need to bind all mixin methods to the
669
- * component instance.
670
- * 3. Continued...
671
- */
672
- _scrollResponder: typeof ScrollResponder.Mixin = createScrollResponder(this);
673
720
 
674
721
  constructor(props: Props) {
675
722
  super(props);
676
723
 
677
- /**
678
- * Part 2: Removing ScrollResponder.Mixin
679
- *
680
- * 3. Mixin methods access other mixin methods via dynamic dispatch using
681
- * this. Since mixin methods are bound to the component instance, we need
682
- * to copy all mixin methods to the component instance. This is also
683
- * necessary because getScrollResponder() is a public method that returns
684
- * an object that can be used to execute all scrollResponder methods.
685
- * Since the object returned from that method is the ScrollView instance,
686
- * we need to bind all mixin methods to the ScrollView instance.
687
- */
688
- for (const key in ScrollResponder.Mixin) {
689
- if (
690
- typeof ScrollResponder.Mixin[key] === 'function' &&
691
- key.startsWith('scrollResponder')
692
- ) {
693
- // $FlowFixMe - dynamically adding properties to a class
694
- (this: any)[key] = ScrollResponder.Mixin[key].bind(this);
695
- }
696
- }
697
-
698
- /**
699
- * Part 3: Removing ScrollResponder.Mixin
700
- *
701
- * 4. Mixins can initialize properties and use properties on the component
702
- * instance.
703
- */
704
- Object.keys(ScrollResponder.Mixin)
705
- .filter(key => typeof ScrollResponder.Mixin[key] !== 'function')
706
- .forEach(key => {
707
- // $FlowFixMe - dynamically adding properties to a class
708
- (this: any)[key] = ScrollResponder.Mixin[key];
709
- });
724
+ this._scrollAnimatedValue = new AnimatedImplementation.Value(
725
+ this.props.contentOffset?.y ?? 0,
726
+ );
727
+ this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);
710
728
  }
711
729
 
712
- _scrollAnimatedValue: AnimatedImplementation.Value = new AnimatedImplementation.Value(
713
- 0,
714
- );
730
+ _scrollAnimatedValue: AnimatedImplementation.Value;
715
731
  _scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;
716
732
  _stickyHeaderRefs: Map<
717
733
  string,
@@ -719,43 +735,95 @@ class ScrollView extends React.Component<Props, State> {
719
735
  > = new Map();
720
736
  _headerLayoutYs: Map<string, number> = new Map();
721
737
 
738
+ _keyboardWillOpenTo: ?KeyboardEvent = null;
739
+ _additionalScrollOffset: number = 0;
740
+ _isTouching: boolean = false;
741
+ _lastMomentumScrollBeginTime: number = 0;
742
+ _lastMomentumScrollEndTime: number = 0;
743
+
744
+ // Reset to false every time becomes responder. This is used to:
745
+ // - Determine if the scroll view has been scrolled and therefore should
746
+ // refuse to give up its responder lock.
747
+ // - Determine if releasing should dismiss the keyboard when we are in
748
+ // tap-to-dismiss mode (this.props.keyboardShouldPersistTaps !== 'always').
749
+ _observedScrollSinceBecomingResponder: boolean = false;
750
+ _becameResponderWhileAnimating: boolean = false;
751
+ _preventNegativeScrollOffset: ?boolean = null;
752
+
753
+ _animated = null;
754
+
755
+ _subscriptionKeyboardWillShow: ?EventSubscription = null;
756
+ _subscriptionKeyboardWillHide: ?EventSubscription = null;
757
+ _subscriptionKeyboardDidShow: ?EventSubscription = null;
758
+ _subscriptionKeyboardDidHide: ?EventSubscription = null;
759
+
722
760
  state: State = {
723
761
  layoutHeight: null,
724
- ...ScrollResponder.Mixin.scrollResponderMixinGetInitialState(),
725
762
  };
726
763
 
727
- UNSAFE_componentWillMount() {
728
- this._scrollResponder.UNSAFE_componentWillMount();
729
- this._scrollAnimatedValue = new AnimatedImplementation.Value(
730
- this.props.contentOffset?.y ?? 0,
764
+ componentDidMount() {
765
+ if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {
766
+ console.warn(
767
+ `'keyboardShouldPersistTaps={${
768
+ this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'
769
+ }}' is deprecated. ` +
770
+ `Use 'keyboardShouldPersistTaps="${
771
+ this.props.keyboardShouldPersistTaps ? 'always' : 'never'
772
+ }"' instead`,
773
+ );
774
+ }
775
+
776
+ this._keyboardWillOpenTo = null;
777
+ this._additionalScrollOffset = 0;
778
+
779
+ this._subscriptionKeyboardWillShow = Keyboard.addListener(
780
+ 'keyboardWillShow',
781
+ this.scrollResponderKeyboardWillShow,
731
782
  );
732
- this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);
733
- this._stickyHeaderRefs = new Map();
734
- this._headerLayoutYs = new Map();
783
+ this._subscriptionKeyboardWillHide = Keyboard.addListener(
784
+ 'keyboardWillHide',
785
+ this.scrollResponderKeyboardWillHide,
786
+ );
787
+ this._subscriptionKeyboardDidShow = Keyboard.addListener(
788
+ 'keyboardDidShow',
789
+ this.scrollResponderKeyboardDidShow,
790
+ );
791
+ this._subscriptionKeyboardDidHide = Keyboard.addListener(
792
+ 'keyboardDidHide',
793
+ this.scrollResponderKeyboardDidHide,
794
+ );
795
+
796
+ this._updateAnimatedNodeAttachment();
735
797
  }
736
798
 
737
- UNSAFE_componentWillReceiveProps(nextProps: Props) {
738
- const currentContentInsetTop = this.props.contentInset
739
- ? this.props.contentInset.top
799
+ componentDidUpdate(prevProps: Props) {
800
+ const prevContentInsetTop = prevProps.contentInset
801
+ ? prevProps.contentInset.top
740
802
  : 0;
741
- const nextContentInsetTop = nextProps.contentInset
742
- ? nextProps.contentInset.top
803
+ const newContentInsetTop = this.props.contentInset
804
+ ? this.props.contentInset.top
743
805
  : 0;
744
- if (currentContentInsetTop !== nextContentInsetTop) {
745
- this._scrollAnimatedValue.setOffset(nextContentInsetTop || 0);
806
+ if (prevContentInsetTop !== newContentInsetTop) {
807
+ this._scrollAnimatedValue.setOffset(newContentInsetTop || 0);
746
808
  }
747
- }
748
809
 
749
- componentDidMount() {
750
- this._updateAnimatedNodeAttachment();
751
- }
752
-
753
- componentDidUpdate() {
754
810
  this._updateAnimatedNodeAttachment();
755
811
  }
756
812
 
757
813
  componentWillUnmount() {
758
- this._scrollResponder.componentWillUnmount();
814
+ if (this._subscriptionKeyboardWillShow != null) {
815
+ this._subscriptionKeyboardWillShow.remove();
816
+ }
817
+ if (this._subscriptionKeyboardWillHide != null) {
818
+ this._subscriptionKeyboardWillHide.remove();
819
+ }
820
+ if (this._subscriptionKeyboardDidShow != null) {
821
+ this._subscriptionKeyboardDidShow.remove();
822
+ }
823
+ if (this._subscriptionKeyboardDidHide != null) {
824
+ this._subscriptionKeyboardDidHide.remove();
825
+ }
826
+
759
827
  if (this._scrollAnimatedValueAttachment) {
760
828
  this._scrollAnimatedValueAttachment.detach();
761
829
  }
@@ -784,10 +852,7 @@ class ScrollView extends React.Component<Props, State> {
784
852
  ref.scrollTo = this.scrollTo;
785
853
  ref.scrollToEnd = this.scrollToEnd;
786
854
  ref.flashScrollIndicators = this.flashScrollIndicators;
787
-
788
- // $FlowFixMe - This method was manually bound from ScrollResponder.mixin
789
855
  ref.scrollResponderZoomTo = this.scrollResponderZoomTo;
790
- // $FlowFixMe - This method was manually bound from ScrollResponder.mixin
791
856
  ref.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;
792
857
  }
793
858
  },
@@ -800,7 +865,7 @@ class ScrollView extends React.Component<Props, State> {
800
865
  * to the underlying scroll responder's methods.
801
866
  */
802
867
  getScrollResponder: () => ScrollResponderType = () => {
803
- // $FlowFixMe - overriding type to include ScrollResponder.Mixin
868
+ // $FlowFixMe[unclear-type]
804
869
  return ((this: any): ScrollResponderType);
805
870
  };
806
871
 
@@ -868,11 +933,10 @@ class ScrollView extends React.Component<Props, State> {
868
933
  x = options.x;
869
934
  animated = options.animated;
870
935
  }
871
- this._scrollResponder.scrollResponderScrollTo({
872
- x: x || 0,
873
- y: y || 0,
874
- animated: animated !== false,
875
- });
936
+ if (this._scrollViewRef == null) {
937
+ return;
938
+ }
939
+ Commands.scrollTo(this._scrollViewRef, x || 0, y || 0, animated !== false);
876
940
  };
877
941
 
878
942
  /**
@@ -888,9 +952,10 @@ class ScrollView extends React.Component<Props, State> {
888
952
  ) => {
889
953
  // Default to true
890
954
  const animated = (options && options.animated) !== false;
891
- this._scrollResponder.scrollResponderScrollToEnd({
892
- animated: animated,
893
- });
955
+ if (this._scrollViewRef == null) {
956
+ return;
957
+ }
958
+ Commands.scrollToEnd(this._scrollViewRef, animated);
894
959
  };
895
960
 
896
961
  /**
@@ -899,7 +964,150 @@ class ScrollView extends React.Component<Props, State> {
899
964
  * @platform ios
900
965
  */
901
966
  flashScrollIndicators: () => void = () => {
902
- this._scrollResponder.scrollResponderFlashScrollIndicators();
967
+ if (this._scrollViewRef == null) {
968
+ return;
969
+ }
970
+ Commands.flashScrollIndicators(this._scrollViewRef);
971
+ };
972
+
973
+ /**
974
+ * This method should be used as the callback to onFocus in a TextInputs'
975
+ * parent view. Note that any module using this mixin needs to return
976
+ * the parent view's ref in getScrollViewRef() in order to use this method.
977
+ * @param {number} nodeHandle The TextInput node handle
978
+ * @param {number} additionalOffset The scroll view's bottom "contentInset".
979
+ * Default is 0.
980
+ * @param {bool} preventNegativeScrolling Whether to allow pulling the content
981
+ * down to make it meet the keyboard's top. Default is false.
982
+ */
983
+ scrollResponderScrollNativeHandleToKeyboard: <T>(
984
+ nodeHandle: number | React.ElementRef<HostComponent<T>>,
985
+ additionalOffset?: number,
986
+ preventNegativeScrollOffset?: boolean,
987
+ ) => void = <T>(
988
+ nodeHandle: number | React.ElementRef<HostComponent<T>>,
989
+ additionalOffset?: number,
990
+ preventNegativeScrollOffset?: boolean,
991
+ ) => {
992
+ this._additionalScrollOffset = additionalOffset || 0;
993
+ this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;
994
+
995
+ if (this._innerViewRef == null) {
996
+ return;
997
+ }
998
+
999
+ if (typeof nodeHandle === 'number') {
1000
+ UIManager.measureLayout(
1001
+ nodeHandle,
1002
+ ReactNative.findNodeHandle(this),
1003
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
1004
+ this._textInputFocusError,
1005
+ this._inputMeasureAndScrollToKeyboard,
1006
+ );
1007
+ } else {
1008
+ nodeHandle.measureLayout(
1009
+ this._innerViewRef,
1010
+ this._inputMeasureAndScrollToKeyboard,
1011
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
1012
+ this._textInputFocusError,
1013
+ );
1014
+ }
1015
+ };
1016
+
1017
+ /**
1018
+ * A helper function to zoom to a specific rect in the scrollview. The argument has the shape
1019
+ * {x: number; y: number; width: number; height: number; animated: boolean = true}
1020
+ *
1021
+ * @platform ios
1022
+ */
1023
+ scrollResponderZoomTo: (
1024
+ rect: {|
1025
+ x: number,
1026
+ y: number,
1027
+ width: number,
1028
+ height: number,
1029
+ animated?: boolean,
1030
+ |},
1031
+ animated?: boolean, // deprecated, put this inside the rect argument instead
1032
+ ) => void = (
1033
+ rect: {|
1034
+ x: number,
1035
+ y: number,
1036
+ width: number,
1037
+ height: number,
1038
+ animated?: boolean,
1039
+ |},
1040
+ animated?: boolean, // deprecated, put this inside the rect argument instead
1041
+ ) => {
1042
+ invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');
1043
+ if ('animated' in rect) {
1044
+ this._animated = rect.animated;
1045
+ delete rect.animated;
1046
+ } else if (typeof animated !== 'undefined') {
1047
+ console.warn(
1048
+ '`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',
1049
+ );
1050
+ }
1051
+
1052
+ if (this._scrollViewRef == null) {
1053
+ return;
1054
+ }
1055
+ Commands.zoomToRect(this._scrollViewRef, rect, animated !== false);
1056
+ };
1057
+
1058
+ _textInputFocusError() {
1059
+ console.warn('Error measuring text field.');
1060
+ }
1061
+
1062
+ /**
1063
+ * The calculations performed here assume the scroll view takes up the entire
1064
+ * screen - even if has some content inset. We then measure the offsets of the
1065
+ * keyboard, and compensate both for the scroll view's "contentInset".
1066
+ *
1067
+ * @param {number} left Position of input w.r.t. table view.
1068
+ * @param {number} top Position of input w.r.t. table view.
1069
+ * @param {number} width Width of the text input.
1070
+ * @param {number} height Height of the text input.
1071
+ */
1072
+ _inputMeasureAndScrollToKeyboard: (
1073
+ left: number,
1074
+ top: number,
1075
+ width: number,
1076
+ height: number,
1077
+ ) => void = (left: number, top: number, width: number, height: number) => {
1078
+ let keyboardScreenY = Dimensions.get('window').height;
1079
+
1080
+ const scrollTextInputIntoVisibleRect = () => {
1081
+ if (this._keyboardWillOpenTo != null) {
1082
+ keyboardScreenY = this._keyboardWillOpenTo.endCoordinates.screenY;
1083
+ }
1084
+ let scrollOffsetY =
1085
+ top - keyboardScreenY + height + this._additionalScrollOffset;
1086
+
1087
+ // By default, this can scroll with negative offset, pulling the content
1088
+ // down so that the target component's bottom meets the keyboard's top.
1089
+ // If requested otherwise, cap the offset at 0 minimum to avoid content
1090
+ // shifting down.
1091
+ if (this._preventNegativeScrollOffset === true) {
1092
+ scrollOffsetY = Math.max(0, scrollOffsetY);
1093
+ }
1094
+ this.scrollTo({x: 0, y: scrollOffsetY, animated: true});
1095
+
1096
+ this._additionalScrollOffset = 0;
1097
+ this._preventNegativeScrollOffset = false;
1098
+ };
1099
+
1100
+ if (this._keyboardWillOpenTo == null) {
1101
+ // `_keyboardWillOpenTo` is set inside `scrollResponderKeyboardWillShow` which
1102
+ // is not guaranteed to be called before `_inputMeasureAndScrollToKeyboard` but native has already scheduled it.
1103
+ // In case it was not called before `_inputMeasureAndScrollToKeyboard`, we postpone scrolling to
1104
+ // text input.
1105
+ setTimeout(() => {
1106
+ scrollTextInputIntoVisibleRect();
1107
+ }, 0);
1108
+ } else {
1109
+ scrollTextInputIntoVisibleRect();
1110
+ }
903
1111
  };
904
1112
 
905
1113
  _getKeyForIndex(index, childArray) {
@@ -976,15 +1184,8 @@ class ScrollView extends React.Component<Props, State> {
976
1184
  );
977
1185
  }
978
1186
  }
979
- if (Platform.OS === 'android') {
980
- if (
981
- this.props.keyboardDismissMode === 'on-drag' &&
982
- this.state.isTouching
983
- ) {
984
- dismissKeyboard();
985
- }
986
- }
987
- this._scrollResponder.scrollResponderHandleScroll(e);
1187
+ this._observedScrollSinceBecomingResponder = true;
1188
+ this.props.onScroll && this.props.onScroll(e);
988
1189
  };
989
1190
 
990
1191
  _handleLayout = (e: LayoutEvent) => {
@@ -1012,6 +1213,398 @@ class ScrollView extends React.Component<Props, State> {
1012
1213
  },
1013
1214
  });
1014
1215
 
1216
+ /**
1217
+ * Warning, this may be called several times for a single keyboard opening.
1218
+ * It's best to store the information in this method and then take any action
1219
+ * at a later point (either in `keyboardDidShow` or other).
1220
+ *
1221
+ * Here's the order that events occur in:
1222
+ * - focus
1223
+ * - willShow {startCoordinates, endCoordinates} several times
1224
+ * - didShow several times
1225
+ * - blur
1226
+ * - willHide {startCoordinates, endCoordinates} several times
1227
+ * - didHide several times
1228
+ *
1229
+ * The `ScrollResponder` module callbacks for each of these events.
1230
+ * Even though any user could have easily listened to keyboard events
1231
+ * themselves, using these `props` callbacks ensures that ordering of events
1232
+ * is consistent - and not dependent on the order that the keyboard events are
1233
+ * subscribed to. This matters when telling the scroll view to scroll to where
1234
+ * the keyboard is headed - the scroll responder better have been notified of
1235
+ * the keyboard destination before being instructed to scroll to where the
1236
+ * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything
1237
+ * will work.
1238
+ *
1239
+ * WARNING: These callbacks will fire even if a keyboard is displayed in a
1240
+ * different navigation pane. Filter out the events to determine if they are
1241
+ * relevant to you. (For example, only if you receive these callbacks after
1242
+ * you had explicitly focused a node etc).
1243
+ */
1244
+
1245
+ scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (
1246
+ e: KeyboardEvent,
1247
+ ) => {
1248
+ this._keyboardWillOpenTo = e;
1249
+ this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);
1250
+ };
1251
+
1252
+ scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (
1253
+ e: KeyboardEvent,
1254
+ ) => {
1255
+ this._keyboardWillOpenTo = null;
1256
+ this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);
1257
+ };
1258
+
1259
+ scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (
1260
+ e: KeyboardEvent,
1261
+ ) => {
1262
+ // TODO(7693961): The event for DidShow is not available on iOS yet.
1263
+ // Use the one from WillShow and do not assign.
1264
+ if (e) {
1265
+ this._keyboardWillOpenTo = e;
1266
+ }
1267
+ this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);
1268
+ };
1269
+
1270
+ scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (
1271
+ e: KeyboardEvent,
1272
+ ) => {
1273
+ this._keyboardWillOpenTo = null;
1274
+ this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);
1275
+ };
1276
+
1277
+ /**
1278
+ * Invoke this from an `onMomentumScrollBegin` event.
1279
+ */
1280
+ _handleMomentumScrollBegin: (e: ScrollEvent) => void = (e: ScrollEvent) => {
1281
+ this._lastMomentumScrollBeginTime = global.performance.now();
1282
+ this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);
1283
+ };
1284
+
1285
+ /**
1286
+ * Invoke this from an `onMomentumScrollEnd` event.
1287
+ */
1288
+ _handleMomentumScrollEnd: (e: ScrollEvent) => void = (e: ScrollEvent) => {
1289
+ FrameRateLogger.endScroll();
1290
+ this._lastMomentumScrollEndTime = global.performance.now();
1291
+ this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);
1292
+ };
1293
+
1294
+ /**
1295
+ * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll
1296
+ * animation, and there's not an easy way to distinguish a drag vs. stopping
1297
+ * momentum.
1298
+ *
1299
+ * Invoke this from an `onScrollBeginDrag` event.
1300
+ */
1301
+ _handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {
1302
+ FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation
1303
+
1304
+ if (
1305
+ Platform.OS === 'android' &&
1306
+ this.props.keyboardDismissMode === 'on-drag'
1307
+ ) {
1308
+ dismissKeyboard();
1309
+ }
1310
+
1311
+ this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);
1312
+ };
1313
+
1314
+ /**
1315
+ * Invoke this from an `onScrollEndDrag` event.
1316
+ */
1317
+ _handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {
1318
+ const {velocity} = e.nativeEvent;
1319
+ // - If we are animating, then this is a "drag" that is stopping the scrollview and momentum end
1320
+ // will fire.
1321
+ // - If velocity is non-zero, then the interaction will stop when momentum scroll ends or
1322
+ // another drag starts and ends.
1323
+ // - If we don't get velocity, better to stop the interaction twice than not stop it.
1324
+ if (
1325
+ !this._isAnimating() &&
1326
+ (!velocity || (velocity.x === 0 && velocity.y === 0))
1327
+ ) {
1328
+ FrameRateLogger.endScroll();
1329
+ }
1330
+ this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);
1331
+ };
1332
+
1333
+ /**
1334
+ * A helper function for this class that lets us quickly determine if the
1335
+ * view is currently animating. This is particularly useful to know when
1336
+ * a touch has just started or ended.
1337
+ */
1338
+ _isAnimating: () => boolean = () => {
1339
+ const now = global.performance.now();
1340
+ const timeSinceLastMomentumScrollEnd =
1341
+ now - this._lastMomentumScrollEndTime;
1342
+ const isAnimating =
1343
+ timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS ||
1344
+ this._lastMomentumScrollEndTime < this._lastMomentumScrollBeginTime;
1345
+ return isAnimating;
1346
+ };
1347
+
1348
+ /**
1349
+ * Invoke this from an `onResponderGrant` event.
1350
+ */
1351
+ _handleResponderGrant: (e: PressEvent) => void = (e: PressEvent) => {
1352
+ this._observedScrollSinceBecomingResponder = false;
1353
+ this.props.onResponderGrant && this.props.onResponderGrant(e);
1354
+ this._becameResponderWhileAnimating = this._isAnimating();
1355
+ };
1356
+
1357
+ /**
1358
+ * Invoke this from an `onResponderReject` event.
1359
+ *
1360
+ * Some other element is not yielding its role as responder. Normally, we'd
1361
+ * just disable the `UIScrollView`, but a touch has already began on it, the
1362
+ * `UIScrollView` will not accept being disabled after that. The easiest
1363
+ * solution for now is to accept the limitation of disallowing this
1364
+ * altogether. To improve this, find a way to disable the `UIScrollView` after
1365
+ * a touch has already started.
1366
+ */
1367
+ _handleResponderReject: () => void = () => {};
1368
+
1369
+ /**
1370
+ * Invoke this from an `onResponderRelease` event.
1371
+ */
1372
+ _handleResponderRelease: (e: PressEvent) => void = (e: PressEvent) => {
1373
+ this._isTouching = e.nativeEvent.touches.length !== 0;
1374
+ this.props.onResponderRelease && this.props.onResponderRelease(e);
1375
+
1376
+ if (typeof e.target === 'number') {
1377
+ if (__DEV__) {
1378
+ console.error(
1379
+ 'Did not expect event target to be a number. Should have been a native component',
1380
+ );
1381
+ }
1382
+
1383
+ return;
1384
+ }
1385
+
1386
+ // By default scroll views will unfocus a textField
1387
+ // if another touch occurs outside of it
1388
+ const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();
1389
+ if (
1390
+ this.props.keyboardShouldPersistTaps !== true &&
1391
+ this.props.keyboardShouldPersistTaps !== 'always' &&
1392
+ this._keyboardIsDismissible() &&
1393
+ e.target !== currentlyFocusedTextInput &&
1394
+ !this._observedScrollSinceBecomingResponder &&
1395
+ !this._becameResponderWhileAnimating
1396
+ ) {
1397
+ TextInputState.blurTextInput(currentlyFocusedTextInput);
1398
+ }
1399
+ };
1400
+
1401
+ /**
1402
+ * We will allow the scroll view to give up its lock iff it acquired the lock
1403
+ * during an animation. This is a very useful default that happens to satisfy
1404
+ * many common user experiences.
1405
+ *
1406
+ * - Stop a scroll on the left edge, then turn that into an outer view's
1407
+ * backswipe.
1408
+ * - Stop a scroll mid-bounce at the top, continue pulling to have the outer
1409
+ * view dismiss.
1410
+ * - However, without catching the scroll view mid-bounce (while it is
1411
+ * motionless), if you drag far enough for the scroll view to become
1412
+ * responder (and therefore drag the scroll view a bit), any backswipe
1413
+ * navigation of a swipe gesture higher in the view hierarchy, should be
1414
+ * rejected.
1415
+ */
1416
+ _handleResponderTerminationRequest: () => boolean = () => {
1417
+ return !this._observedScrollSinceBecomingResponder;
1418
+ };
1419
+
1420
+ /**
1421
+ * Invoke this from an `onScroll` event.
1422
+ */
1423
+ _handleScrollShouldSetResponder: () => boolean = () => {
1424
+ // Allow any event touch pass through if the default pan responder is disabled
1425
+ if (this.props.disableScrollViewPanResponder === true) {
1426
+ return false;
1427
+ }
1428
+ return this._isTouching;
1429
+ };
1430
+
1431
+ /**
1432
+ * Merely touch starting is not sufficient for a scroll view to become the
1433
+ * responder. Being the "responder" means that the very next touch move/end
1434
+ * event will result in an action/movement.
1435
+ *
1436
+ * Invoke this from an `onStartShouldSetResponder` event.
1437
+ *
1438
+ * `onStartShouldSetResponder` is used when the next move/end will trigger
1439
+ * some UI movement/action, but when you want to yield priority to views
1440
+ * nested inside of the view.
1441
+ *
1442
+ * There may be some cases where scroll views actually should return `true`
1443
+ * from `onStartShouldSetResponder`: Any time we are detecting a standard tap
1444
+ * that gives priority to nested views.
1445
+ *
1446
+ * - If a single tap on the scroll view triggers an action such as
1447
+ * recentering a map style view yet wants to give priority to interaction
1448
+ * views inside (such as dropped pins or labels), then we would return true
1449
+ * from this method when there is a single touch.
1450
+ *
1451
+ * - Similar to the previous case, if a two finger "tap" should trigger a
1452
+ * zoom, we would check the `touches` count, and if `>= 2`, we would return
1453
+ * true.
1454
+ *
1455
+ */
1456
+ _handleStartShouldSetResponder: (e: PressEvent) => boolean = (
1457
+ e: PressEvent,
1458
+ ) => {
1459
+ // Allow any event touch pass through if the default pan responder is disabled
1460
+ if (this.props.disableScrollViewPanResponder === true) {
1461
+ return false;
1462
+ }
1463
+
1464
+ const currentlyFocusedInput = TextInputState.currentlyFocusedInput();
1465
+
1466
+ if (
1467
+ this.props.keyboardShouldPersistTaps === 'handled' &&
1468
+ this._keyboardIsDismissible() &&
1469
+ e.target !== currentlyFocusedInput
1470
+ ) {
1471
+ return true;
1472
+ }
1473
+ return false;
1474
+ };
1475
+
1476
+ /**
1477
+ * There are times when the scroll view wants to become the responder
1478
+ * (meaning respond to the next immediate `touchStart/touchEnd`), in a way
1479
+ * that *doesn't* give priority to nested views (hence the capture phase):
1480
+ *
1481
+ * - Currently animating.
1482
+ * - Tapping anywhere that is not a text input, while the keyboard is
1483
+ * up (which should dismiss the keyboard).
1484
+ *
1485
+ * Invoke this from an `onStartShouldSetResponderCapture` event.
1486
+ */
1487
+ _handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (
1488
+ e: PressEvent,
1489
+ ) => {
1490
+ // The scroll view should receive taps instead of its descendants if:
1491
+ // * it is already animating/decelerating
1492
+ if (this._isAnimating()) {
1493
+ return true;
1494
+ }
1495
+
1496
+ // Allow any event touch pass through if the default pan responder is disabled
1497
+ if (this.props.disableScrollViewPanResponder === true) {
1498
+ return false;
1499
+ }
1500
+
1501
+ // * the keyboard is up, keyboardShouldPersistTaps is 'never' (the default),
1502
+ // and a new touch starts with a non-textinput target (in which case the
1503
+ // first tap should be sent to the scroll view and dismiss the keyboard,
1504
+ // then the second tap goes to the actual interior view)
1505
+ const {keyboardShouldPersistTaps} = this.props;
1506
+ const keyboardNeverPersistTaps =
1507
+ !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';
1508
+
1509
+ if (typeof e.target === 'number') {
1510
+ if (__DEV__) {
1511
+ console.error(
1512
+ 'Did not expect event target to be a number. Should have been a native component',
1513
+ );
1514
+ }
1515
+
1516
+ return false;
1517
+ }
1518
+
1519
+ if (
1520
+ keyboardNeverPersistTaps &&
1521
+ this._keyboardIsDismissible() &&
1522
+ e.target != null &&
1523
+ !TextInputState.isTextInput(e.target)
1524
+ ) {
1525
+ return true;
1526
+ }
1527
+
1528
+ return false;
1529
+ };
1530
+
1531
+ /**
1532
+ * Do we consider there to be a dismissible soft-keyboard open?
1533
+ */
1534
+ _keyboardIsDismissible: () => boolean = () => {
1535
+ const currentlyFocusedInput = TextInputState.currentlyFocusedInput();
1536
+
1537
+ // We cannot dismiss the keyboard without an input to blur, even if a soft
1538
+ // keyboard is open (e.g. when keyboard is open due to a native component
1539
+ // not participating in TextInputState). It's also possible that the
1540
+ // currently focused input isn't a TextInput (such as by calling ref.focus
1541
+ // on a non-TextInput).
1542
+ const hasFocusedTextInput =
1543
+ currentlyFocusedInput != null &&
1544
+ TextInputState.isTextInput(currentlyFocusedInput);
1545
+
1546
+ // Even if an input is focused, we may not have a keyboard to dismiss. E.g
1547
+ // when using a physical keyboard. Ensure we have an event for an opened
1548
+ // keyboard, except on Android where setting windowSoftInputMode to
1549
+ // adjustNone leads to missing keyboard events.
1550
+ const softKeyboardMayBeOpen =
1551
+ this._keyboardWillOpenTo != null || Platform.OS === 'android';
1552
+
1553
+ return hasFocusedTextInput && softKeyboardMayBeOpen;
1554
+ };
1555
+
1556
+ /**
1557
+ * Invoke this from an `onTouchEnd` event.
1558
+ *
1559
+ * @param {PressEvent} e Event.
1560
+ */
1561
+ _handleTouchEnd: (e: PressEvent) => void = (e: PressEvent) => {
1562
+ const nativeEvent = e.nativeEvent;
1563
+ this._isTouching = nativeEvent.touches.length !== 0;
1564
+ this.props.onTouchEnd && this.props.onTouchEnd(e);
1565
+ };
1566
+
1567
+ /**
1568
+ * Invoke this from an `onTouchCancel` event.
1569
+ *
1570
+ * @param {PressEvent} e Event.
1571
+ */
1572
+ _handleTouchCancel: (e: PressEvent) => void = (e: PressEvent) => {
1573
+ this._isTouching = false;
1574
+ this.props.onTouchCancel && this.props.onTouchCancel(e);
1575
+ };
1576
+
1577
+ /**
1578
+ * Invoke this from an `onTouchStart` event.
1579
+ *
1580
+ * Since we know that the `SimpleEventPlugin` occurs later in the plugin
1581
+ * order, after `ResponderEventPlugin`, we can detect that we were *not*
1582
+ * permitted to be the responder (presumably because a contained view became
1583
+ * responder). The `onResponderReject` won't fire in that case - it only
1584
+ * fires when a *current* responder rejects our request.
1585
+ *
1586
+ * @param {PressEvent} e Touch Start event.
1587
+ */
1588
+ _handleTouchStart: (e: PressEvent) => void = (e: PressEvent) => {
1589
+ this._isTouching = true;
1590
+ this.props.onTouchStart && this.props.onTouchStart(e);
1591
+ };
1592
+
1593
+ /**
1594
+ * Invoke this from an `onTouchMove` event.
1595
+ *
1596
+ * Since we know that the `SimpleEventPlugin` occurs later in the plugin
1597
+ * order, after `ResponderEventPlugin`, we can detect that we were *not*
1598
+ * permitted to be the responder (presumably because a contained view became
1599
+ * responder). The `onResponderReject` won't fire in that case - it only
1600
+ * fires when a *current* responder rejects our request.
1601
+ *
1602
+ * @param {PressEvent} e Touch Start event.
1603
+ */
1604
+ _handleTouchMove: (e: PressEvent) => void = (e: PressEvent) => {
1605
+ this.props.onTouchMove && this.props.onTouchMove(e);
1606
+ };
1607
+
1015
1608
  render(): React.Node | React.Element<string> {
1016
1609
  const [NativeDirectionalScrollView, NativeDirectionalScrollContentView] =
1017
1610
  this.props.horizontal === true
@@ -1066,6 +1659,7 @@ class ScrollView extends React.Component<Props, State> {
1066
1659
  onLayout={event => this._onStickyHeaderLayout(index, event, key)}
1067
1660
  scrollAnimatedValue={this._scrollAnimatedValue}
1068
1661
  inverted={this.props.invertStickyHeaders}
1662
+ hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}
1069
1663
  scrollViewHeight={this.state.layoutHeight}>
1070
1664
  {child}
1071
1665
  </StickyHeaderComponent>
@@ -1125,33 +1719,23 @@ class ScrollView extends React.Component<Props, State> {
1125
1719
  // bubble up from TextInputs
1126
1720
  onContentSizeChange: null,
1127
1721
  onLayout: this._handleLayout,
1128
- onMomentumScrollBegin: this._scrollResponder
1129
- .scrollResponderHandleMomentumScrollBegin,
1130
- onMomentumScrollEnd: this._scrollResponder
1131
- .scrollResponderHandleMomentumScrollEnd,
1132
- onResponderGrant: this._scrollResponder
1133
- .scrollResponderHandleResponderGrant,
1134
- onResponderReject: this._scrollResponder
1135
- .scrollResponderHandleResponderReject,
1136
- onResponderRelease: this._scrollResponder
1137
- .scrollResponderHandleResponderRelease,
1138
- onResponderTerminationRequest: this._scrollResponder
1139
- .scrollResponderHandleTerminationRequest,
1140
- onScrollBeginDrag: this._scrollResponder
1141
- .scrollResponderHandleScrollBeginDrag,
1142
- onScrollEndDrag: this._scrollResponder.scrollResponderHandleScrollEndDrag,
1143
- onScrollShouldSetResponder: this._scrollResponder
1144
- .scrollResponderHandleScrollShouldSetResponder,
1145
- onStartShouldSetResponder: this._scrollResponder
1146
- .scrollResponderHandleStartShouldSetResponder,
1147
- onStartShouldSetResponderCapture: this._scrollResponder
1148
- .scrollResponderHandleStartShouldSetResponderCapture,
1149
- onTouchEnd: this._scrollResponder.scrollResponderHandleTouchEnd,
1150
- onTouchMove: this._scrollResponder.scrollResponderHandleTouchMove,
1151
- onTouchStart: this._scrollResponder.scrollResponderHandleTouchStart,
1152
- onTouchCancel: this._scrollResponder.scrollResponderHandleTouchCancel,
1722
+ onMomentumScrollBegin: this._handleMomentumScrollBegin,
1723
+ onMomentumScrollEnd: this._handleMomentumScrollEnd,
1724
+ onResponderGrant: this._handleResponderGrant,
1725
+ onResponderReject: this._handleResponderReject,
1726
+ onResponderRelease: this._handleResponderRelease,
1727
+ onResponderTerminationRequest: this._handleResponderTerminationRequest,
1728
+ onScrollBeginDrag: this._handleScrollBeginDrag,
1729
+ onScrollEndDrag: this._handleScrollEndDrag,
1730
+ onScrollShouldSetResponder: this._handleScrollShouldSetResponder,
1731
+ onStartShouldSetResponder: this._handleStartShouldSetResponder,
1732
+ onStartShouldSetResponderCapture: this
1733
+ ._handleStartShouldSetResponderCapture,
1734
+ onTouchEnd: this._handleTouchEnd,
1735
+ onTouchMove: this._handleTouchMove,
1736
+ onTouchStart: this._handleTouchStart,
1737
+ onTouchCancel: this._handleTouchCancel,
1153
1738
  onScroll: this._handleScroll,
1154
- scrollBarThumbImage: resolveAssetSource(this.props.scrollBarThumbImage),
1155
1739
  scrollEventThrottle: hasStickyHeaders
1156
1740
  ? 1
1157
1741
  : this.props.scrollEventThrottle,
@@ -1245,7 +1829,7 @@ function Wrapper(props, ref) {
1245
1829
  Wrapper.displayName = 'ScrollView';
1246
1830
  const ForwardedScrollView = React.forwardRef(Wrapper);
1247
1831
 
1248
- // $FlowFixMe Add static context to ForwardedScrollView
1832
+ // $FlowFixMe[prop-missing] Add static context to ForwardedScrollView
1249
1833
  ForwardedScrollView.Context = ScrollViewContext;
1250
1834
 
1251
1835
  ForwardedScrollView.displayName = 'ScrollView';