react-native 0.0.0-17be3a003 → 0.0.0-18697adec

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 (993) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/AnimatedImplementation.js +0 -2
  5. package/Libraries/Animated/AnimatedMock.js +1 -8
  6. package/Libraries/Animated/NativeAnimatedHelper.js +3 -3
  7. package/Libraries/Animated/animations/Animation.js +1 -0
  8. package/Libraries/Animated/animations/DecayAnimation.js +2 -0
  9. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  10. package/Libraries/Animated/animations/TimingAnimation.js +3 -0
  11. package/Libraries/Animated/createAnimatedComponent.js +6 -18
  12. package/Libraries/Animated/createAnimatedComponentInjection.js +48 -0
  13. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +48 -0
  14. package/Libraries/Animated/nodes/AnimatedProps.js +0 -1
  15. package/Libraries/Animated/nodes/AnimatedValue.js +20 -1
  16. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -0
  17. package/Libraries/Animated/useAnimatedProps.js +211 -0
  18. package/Libraries/BatchedBridge/MessageQueue.js +15 -10
  19. package/Libraries/BatchedBridge/NativeModules.js +5 -1
  20. package/Libraries/Blob/FileReader.js +1 -1
  21. package/Libraries/Blob/RCTBlobManager.h +2 -1
  22. package/Libraries/Blob/RCTBlobManager.mm +1 -3
  23. package/Libraries/Blob/RCTBlobPlugins.mm +4 -3
  24. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  25. package/Libraries/Blob/URL.js +2 -2
  26. package/Libraries/BugReporting/BugReporting.js +2 -0
  27. package/Libraries/BugReporting/getReactData.js +1 -1
  28. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -6
  29. package/Libraries/Components/Button.js +27 -12
  30. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -5
  31. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +50 -12
  32. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +1 -0
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  34. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  36. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +3 -3
  37. package/Libraries/Components/Pressable/useAndroidRippleForView.js +18 -15
  38. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +4 -5
  39. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +2 -3
  40. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  41. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -2
  42. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -2
  43. package/Libraries/Components/ScrollView/ScrollView.js +22 -5
  44. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +3 -2
  45. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -0
  46. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -9
  47. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +2 -0
  48. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +4 -5
  49. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +14 -6
  50. package/Libraries/Components/Slider/Slider.js +19 -6
  51. package/Libraries/Components/StatusBar/StatusBar.js +10 -19
  52. package/Libraries/Components/Switch/Switch.js +98 -114
  53. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -6
  54. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +2 -1
  55. package/Libraries/Components/TextInput/InputAccessoryView.js +6 -6
  56. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +5 -13
  57. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +5 -13
  58. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -2
  59. package/Libraries/Components/TextInput/TextInput.js +53 -19
  60. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -2
  62. package/Libraries/Components/Touchable/PooledClass.js +1 -2
  63. package/Libraries/Components/Touchable/Position.js +1 -2
  64. package/Libraries/Components/Touchable/Touchable.js +20 -6
  65. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  66. package/Libraries/Components/Touchable/TouchableOpacity.js +11 -2
  67. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +2 -3
  68. package/Libraries/Components/View/ReactNativeStyleAttributes.js +133 -68
  69. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -2
  70. package/Libraries/Components/View/ReactNativeViewViewConfig.js +1 -1
  71. package/Libraries/Components/View/ViewAccessibility.js +3 -0
  72. package/Libraries/Core/Devtools/parseErrorStack.js +0 -10
  73. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  74. package/Libraries/Core/ExceptionsManager.js +51 -41
  75. package/Libraries/Core/ExtendedError.js +19 -0
  76. package/Libraries/Core/InitializeCore.js +1 -0
  77. package/Libraries/Core/ReactFiberErrorDialog.js +44 -34
  78. package/Libraries/Core/ReactNativeVersion.js +1 -1
  79. package/Libraries/Core/Timers/JSTimers.js +37 -28
  80. package/Libraries/Core/Timers/immediateShim.js +67 -0
  81. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  82. package/Libraries/Core/polyfillPromise.js +1 -1
  83. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  84. package/Libraries/Core/setUpGlobals.js +2 -0
  85. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  86. package/Libraries/Core/setUpTimers.js +65 -6
  87. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.android.js +131 -0
  88. package/Libraries/DeprecatedPropTypes/{DeprecatedImagePropType.js → DeprecatedImagePropType.ios.js} +0 -0
  89. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +5 -5
  90. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +2 -0
  91. package/Libraries/EventEmitter/NativeEventEmitter.js +22 -1
  92. package/Libraries/EventEmitter/RCTEventEmitter.js +5 -1
  93. package/Libraries/FBLazyVector/BUCK +5 -1
  94. package/Libraries/Image/Image.android.js +22 -131
  95. package/Libraries/Image/Image.ios.js +16 -8
  96. package/Libraries/Image/ImageBackground.js +10 -8
  97. package/Libraries/Image/ImageInjection.js +28 -0
  98. package/Libraries/Image/ImageProps.js +28 -0
  99. package/Libraries/Image/ImageSource.js +108 -65
  100. package/Libraries/Image/NativeImageLoaderIOS.js +2 -1
  101. package/Libraries/Image/RCTImageLoader.h +2 -2
  102. package/Libraries/Image/RCTImageLoader.mm +6 -6
  103. package/Libraries/Image/RCTImagePlugins.mm +4 -3
  104. package/Libraries/Image/React-RCTImage.podspec +1 -1
  105. package/Libraries/Inspector/Inspector.js +6 -0
  106. package/Libraries/Interaction/InteractionManager.js +3 -0
  107. package/Libraries/Interaction/PanResponder.js +1 -1
  108. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +4 -3
  109. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  110. package/Libraries/Lists/CellRenderMask.js +145 -0
  111. package/Libraries/Lists/FlatList.js +43 -26
  112. package/Libraries/Lists/VirtualizedList.js +14 -17
  113. package/Libraries/Lists/VirtualizedSectionList.js +159 -136
  114. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  115. package/Libraries/LogBox/Data/LogBoxData.js +21 -19
  116. package/Libraries/LogBox/LogBox.js +114 -47
  117. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  118. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  119. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  120. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  121. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  122. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  123. package/Libraries/Modal/Modal.js +8 -0
  124. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +8 -2
  125. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  126. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +4 -3
  127. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  128. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +1 -1
  129. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m +1 -1
  130. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +32 -28
  131. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  132. package/Libraries/Network/RCTHTTPRequestHandler.h +5 -0
  133. package/Libraries/Network/RCTHTTPRequestHandler.mm +19 -7
  134. package/Libraries/Network/RCTNetworkPlugins.mm +4 -3
  135. package/Libraries/Network/RCTNetworking.h +1 -1
  136. package/Libraries/Network/RCTNetworking.mm +3 -3
  137. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  138. package/Libraries/Network/XMLHttpRequest.js +4 -1
  139. package/Libraries/NewAppScreen/components/Header.js +1 -0
  140. package/Libraries/NewAppScreen/components/HermesBadge.js +4 -1
  141. package/Libraries/NewAppScreen/components/logo.png +0 -0
  142. package/Libraries/Performance/QuickPerformanceLogger.js +3 -1
  143. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -1
  144. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +6 -0
  145. package/Libraries/Pressability/Pressability.js +1 -0
  146. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  147. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  148. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +4 -3
  149. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  150. package/Libraries/RCTRequired/BUCK +4 -1
  151. package/Libraries/ReactNative/AppContainer.js +3 -8
  152. package/Libraries/ReactNative/AppRegistry.js +7 -2
  153. package/Libraries/ReactNative/DisplayMode.js +4 -5
  154. package/Libraries/ReactNative/DummyUIManager.js +7 -2
  155. package/Libraries/ReactNative/FabricUIManager.js +4 -3
  156. package/Libraries/ReactNative/I18nManager.js +12 -3
  157. package/Libraries/ReactNative/NativeUIManager.js +2 -1
  158. package/Libraries/ReactNative/PaperUIManager.js +3 -1
  159. package/Libraries/ReactNative/RootTag.js +2 -2
  160. package/Libraries/ReactNative/UIManager.js +2 -1
  161. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +32 -0
  162. package/Libraries/ReactNative/renderApplication.js +12 -5
  163. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -3
  164. package/Libraries/Reliability/UserFlow.js +7 -0
  165. package/Libraries/Renderer/REVISION +1 -1
  166. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +6364 -5120
  167. package/Libraries/Renderer/implementations/ReactFabric-dev.js +7877 -6935
  168. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2488 -2118
  169. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2112 -1937
  170. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2922 -2418
  171. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2568 -2244
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +6086 -4942
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5736 -4864
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1624 -1394
  175. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2275 -2120
  176. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +2279 -1921
  177. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +2565 -2259
  178. package/Libraries/Renderer/shims/ReactFabric.js +5 -4
  179. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  180. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  181. package/Libraries/Renderer/shims/ReactNativeTypes.js +7 -4
  182. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  183. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  184. package/Libraries/Settings/RCTSettingsPlugins.mm +4 -3
  185. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  186. package/Libraries/Settings/Settings.ios.js +4 -0
  187. package/Libraries/Storage/AsyncStorage.js +1 -0
  188. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +16 -1
  189. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +8 -1
  190. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +2 -0
  191. package/Libraries/StyleSheet/StyleSheet.js +3 -5
  192. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  193. package/Libraries/SurfaceHostingComponent/RCTSurfaceHostingComponent.mm +1 -1
  194. package/Libraries/Text/Text.js +17 -0
  195. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +10 -12
  196. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  197. package/Libraries/Text/TextProps.js +7 -7
  198. package/Libraries/TurboModule/RCTExport.js +1 -1
  199. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -10
  200. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  201. package/Libraries/{Components/Picker/PickerAndroid.ios.js → Types/RootTagTypes.js} +2 -3
  202. package/Libraries/UTFSequence.js +1 -1
  203. package/Libraries/Utilities/Dimensions.js +9 -14
  204. package/Libraries/Utilities/FeatureDetection.js +31 -0
  205. package/Libraries/Utilities/HMRClient.js +15 -8
  206. package/Libraries/Utilities/MatrixMath.js +1 -1
  207. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  208. package/Libraries/Utilities/PerformanceLoggerContext.js +8 -2
  209. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -0
  210. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  211. package/Libraries/Utilities/useMergeRefs.js +44 -0
  212. package/Libraries/Utilities/useRefEffect.js +45 -0
  213. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  214. package/Libraries/Vibration/RCTVibrationPlugins.mm +4 -3
  215. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  216. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -0
  217. package/Libraries/promiseRejectionTrackingOptions.js +2 -0
  218. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  219. package/README.md +5 -5
  220. package/React/Base/RCTAssert.h +23 -13
  221. package/React/Base/RCTAssert.m +35 -9
  222. package/React/Base/RCTBridge+Private.h +8 -2
  223. package/React/Base/RCTBridge.h +19 -3
  224. package/React/Base/RCTBridge.m +33 -12
  225. package/React/Base/RCTBridgeModule.h +62 -12
  226. package/React/Base/RCTBundleManager.m +78 -0
  227. package/React/Base/RCTBundleURLProvider.h +36 -8
  228. package/React/Base/RCTBundleURLProvider.mm +91 -12
  229. package/React/Base/RCTCallableJSModules.m +47 -0
  230. package/React/Base/RCTConstants.h +6 -13
  231. package/React/Base/RCTConstants.m +12 -27
  232. package/React/Base/RCTConvert.h +1 -1
  233. package/React/Base/RCTConvert.m +31 -7
  234. package/React/Base/RCTCxxConvert.h +1 -1
  235. package/React/Base/RCTDefines.h +12 -3
  236. package/React/Base/RCTEventDispatcherProtocol.h +3 -2
  237. package/React/{Views/RCTPickerManager.h → Base/RCTInitializing.h} +4 -2
  238. package/React/Base/RCTJSThread.h +29 -0
  239. package/React/Base/RCTJSThread.m +19 -0
  240. package/React/Base/RCTModuleData.h +11 -3
  241. package/React/Base/RCTModuleData.mm +66 -1
  242. package/React/Base/RCTMultipartStreamReader.m +0 -2
  243. package/React/Base/RCTRootView.h +15 -0
  244. package/React/Base/RCTRootView.m +15 -0
  245. package/React/Base/RCTTouchHandler.m +4 -9
  246. package/React/Base/RCTUtils.h +3 -0
  247. package/React/Base/RCTUtils.m +14 -7
  248. package/React/Base/RCTVersion.m +1 -1
  249. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +12 -0
  250. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +46 -2
  251. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -0
  252. package/React/CoreModules/BUCK +4 -3
  253. package/React/CoreModules/CoreModulesPlugins.mm +4 -3
  254. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  255. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  256. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  257. package/React/CoreModules/RCTDevLoadingView.mm +10 -23
  258. package/React/CoreModules/RCTDevMenu.mm +22 -25
  259. package/React/CoreModules/RCTDevSettings.h +2 -1
  260. package/React/CoreModules/RCTDevSettings.mm +76 -75
  261. package/React/CoreModules/RCTDevSplitBundleLoader.mm +3 -8
  262. package/React/CoreModules/RCTDeviceInfo.mm +4 -5
  263. package/React/CoreModules/RCTEventDispatcher.h +2 -1
  264. package/React/CoreModules/RCTEventDispatcher.mm +17 -25
  265. package/React/CoreModules/RCTKeyboardObserver.mm +1 -1
  266. package/React/CoreModules/RCTLogBox.mm +14 -10
  267. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  268. package/React/CoreModules/RCTRedBox.mm +3 -12
  269. package/React/CoreModules/RCTSourceCode.mm +2 -1
  270. package/React/CoreModules/RCTTiming.h +2 -1
  271. package/React/CoreModules/RCTTiming.mm +1 -3
  272. package/React/CoreModules/React-CoreModules.podspec +1 -1
  273. package/React/CxxBridge/RCTCxxBridge.mm +81 -12
  274. package/React/CxxModule/RCTNativeModule.mm +3 -1
  275. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  276. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  277. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  278. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +3 -0
  279. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.h +3 -6
  280. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +41 -26
  281. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +0 -1
  282. package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +0 -1
  283. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +101 -85
  284. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h +7 -0
  285. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm +5 -1
  286. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm +12 -9
  287. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +1 -0
  288. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +53 -17
  289. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  290. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +110 -8
  291. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  292. package/React/Fabric/Mounting/RCTMountingManager.h +6 -1
  293. package/React/Fabric/Mounting/RCTMountingManager.mm +25 -4
  294. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  295. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  296. package/React/Fabric/RCTConversions.h +3 -0
  297. package/React/Fabric/RCTScheduler.h +3 -1
  298. package/React/Fabric/RCTScheduler.mm +26 -8
  299. package/React/Fabric/RCTSurfacePresenter.mm +33 -33
  300. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +4 -2
  301. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +1 -1
  302. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  303. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  304. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  305. package/React/Modules/RCTEventEmitter.h +1 -2
  306. package/React/Modules/RCTEventEmitter.m +8 -11
  307. package/React/Modules/RCTI18nUtil.h +14 -6
  308. package/React/Modules/RCTI18nUtil.m +1 -47
  309. package/React/Modules/RCTUIManager.m +2 -0
  310. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  311. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  312. package/React/React-RCTFabric.podspec +3 -3
  313. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +63 -0
  314. package/React/Views/RCTDatePickerManager.m +33 -0
  315. package/React/Views/RCTFont.mm +54 -38
  316. package/React/Views/RCTModalHostView.h +5 -1
  317. package/React/Views/RCTModalHostView.m +52 -20
  318. package/React/Views/RCTModalHostViewManager.m +5 -0
  319. package/React/Views/RCTModalManager.h +0 -7
  320. package/React/Views/RCTModalManager.m +0 -9
  321. package/React/Views/RCTView.h +7 -7
  322. package/React/Views/RCTView.m +32 -49
  323. package/React/Views/RCTViewManager.m +22 -4
  324. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  325. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  326. package/React/Views/ScrollView/RCTScrollView.m +123 -36
  327. package/React/Views/ScrollView/RCTScrollViewManager.m +4 -7
  328. package/React/Views/UIView+React.m +2 -11
  329. package/React/third-party.xcconfig +1 -1
  330. package/React-Core.podspec +2 -2
  331. package/ReactAndroid/Android-prebuilt.mk +8 -0
  332. package/ReactAndroid/README.md +2 -2
  333. package/ReactAndroid/build.gradle +132 -20
  334. package/ReactAndroid/gradle.properties +7 -5
  335. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  336. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  337. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  338. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  339. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -2
  340. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  341. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  342. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -12
  343. package/ReactAndroid/src/androidTest/js/UIManagerTestModule.js +7 -6
  344. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  345. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  346. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  347. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  348. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/BUCK +2 -2
  349. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -0
  350. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  351. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +5 -0
  352. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  353. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +124 -66
  354. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  356. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +25 -3
  357. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  358. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +4 -7
  359. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +5 -5
  360. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  361. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -1
  363. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  364. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  365. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +26 -6
  366. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  367. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  368. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +3 -1
  369. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  370. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  371. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  372. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  373. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  374. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/BUCK +3 -0
  375. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.java +7 -8
  376. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBufferSoLoader.java +33 -0
  377. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +2 -1
  378. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/ReadableMapBuffer.cpp +23 -9
  379. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/react/common/mapbuffer/ReadableMapBuffer.h +8 -5
  380. package/ReactAndroid/src/main/java/com/facebook/react/config/BUCK +2 -1
  381. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +54 -29
  382. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  383. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +275 -0
  384. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  386. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +163 -328
  387. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  388. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  389. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxHandler.java +1 -1
  390. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +1 -1
  391. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  392. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  393. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +8 -59
  394. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +154 -74
  395. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +36 -1
  396. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +14 -2
  397. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -2
  398. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  399. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  400. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -2
  401. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +171 -53
  402. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +21 -2
  403. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp +0 -6
  404. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +22 -2
  405. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +4 -0
  406. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +53 -7
  407. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +35 -13
  408. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +136 -35
  409. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +3 -2
  410. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +5 -5
  411. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  412. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  413. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  414. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  415. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  416. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  417. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  418. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +35 -7
  419. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  420. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  421. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  422. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  423. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  424. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  425. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  426. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  427. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  428. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  429. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  430. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  431. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  432. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  433. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  434. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  435. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  436. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  437. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  438. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  439. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  440. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  441. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  442. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  443. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  444. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  445. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  446. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  447. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  448. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -2
  449. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -9
  450. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  451. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  452. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  453. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  454. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +14 -5
  455. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +2 -4
  456. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +10 -13
  457. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  458. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +11 -5
  459. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingProhibitedView.java +26 -0
  460. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroupHelper.java +5 -1
  461. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  462. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  463. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -4
  464. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +28 -19
  465. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -1
  466. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  467. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +2 -3
  468. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  469. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +53 -19
  470. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +236 -0
  471. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +8 -0
  472. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +20 -6
  473. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +34 -5
  474. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  475. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/interfaces/ViewProps.java +9 -2
  476. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  477. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.cpp +2 -1
  478. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/ComponentNameResolverManager.h +10 -15
  479. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  480. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.java +0 -6
  481. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +0 -6
  482. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +0 -6
  483. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +0 -6
  484. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +10 -5
  485. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  486. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +6 -0
  487. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  488. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  489. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  490. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +17 -1
  491. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  492. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +101 -8
  493. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +18 -3
  494. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  495. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +9 -7
  496. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  497. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderEvent.java +0 -5
  498. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  499. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSlidingCompleteEvent.java +0 -5
  500. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  501. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  502. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.java +0 -6
  503. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +3 -10
  504. package/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java +6 -8
  505. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +59 -44
  506. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  507. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +31 -3
  508. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +19 -0
  509. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +1 -1
  510. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.java +41 -59
  511. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -51
  512. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +39 -15
  513. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +38 -10
  514. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TypefaceStyle.java +72 -0
  515. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  516. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +16 -6
  517. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  518. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +117 -62
  519. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  520. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  521. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +49 -2
  522. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +2 -7
  523. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJTypesVanilla.h +8 -4
  524. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  525. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  526. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  527. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  528. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  529. package/{ReactCommon/react/renderer/components/picker/iospicker/primitives.h → ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h} +6 -10
  530. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  531. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  532. package/{ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerComponentDescriptor.h → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +8 -7
  533. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  534. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  535. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +1 -0
  536. package/ReactAndroid/src/main/jni/third-party/boost/Android.mk +7 -2
  537. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/jump_arm_aapcs_elf_gas.S +86 -0
  538. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/make_arm_aapcs_elf_gas.S +79 -0
  539. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm/ontop_arm_aapcs_elf_gas.S +91 -0
  540. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/jump_arm64_aapcs_elf_gas.S +114 -0
  541. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/make_arm64_aapcs_elf_gas.S +85 -0
  542. package/ReactAndroid/src/main/jni/third-party/boost/asm/arm64/ontop_arm64_aapcs_elf_gas.S +113 -0
  543. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/jump_i386_sysv_elf_gas.S +78 -0
  544. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/make_i386_sysv_elf_gas.S +106 -0
  545. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86/ontop_i386_sysv_elf_gas.S +85 -0
  546. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/jump_x86_64_sysv_elf_gas.S +76 -0
  547. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/make_x86_64_sysv_elf_gas.S +81 -0
  548. package/ReactAndroid/src/main/jni/third-party/boost/asm/x86_64/ontop_x86_64_sysv_elf_gas.S +79 -0
  549. package/ReactAndroid/src/main/jni/third-party/fmt/Android.mk +15 -0
  550. package/ReactAndroid/src/main/jni/third-party/folly/Android.mk +36 -16
  551. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +36 -0
  552. package/ReactAndroid/src/main/jni/third-party/libevent/evconfig-private.h +49 -0
  553. package/ReactAndroid/src/main/jni/third-party/libevent/event-config.h +340 -0
  554. package/ReactAndroid/src/main/libraries/fresco/fresco-react-native/BUCK +26 -26
  555. package/ReactAndroid/src/main/libraries/soloader/java/com/facebook/soloader/BUCK +5 -5
  556. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -1
  557. package/ReactAndroid/src/main/res/views/uimanager/values/strings_unlocalized.xml +0 -8
  558. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  559. package/ReactAndroid/src/main/third-party/java/infer-annotations/BUCK +2 -2
  560. package/ReactAndroid/src/main/third-party/java/okhttp/BUCK +4 -4
  561. package/ReactAndroid/src/main/third-party/java/okio/BUCK +2 -2
  562. package/ReactAndroid/src/main/third-party/java/robolectric/{4.4/BUCK → BUCK} +0 -0
  563. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  564. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +2 -2
  565. package/ReactAndroid/src/test/java/com/facebook/react/bridge/BUCK +1 -1
  566. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  567. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  568. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  569. package/ReactAndroid/src/test/java/com/facebook/react/views/image/ReactImagePropertyTest.java +8 -0
  570. package/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.java +4 -0
  571. package/ReactCommon/React-Fabric.podspec +11 -11
  572. package/ReactCommon/ReactCommon.podspec +3 -2
  573. package/ReactCommon/callinvoker/BUCK +2 -2
  574. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  575. package/ReactCommon/cxxreact/Android.mk +2 -1
  576. package/ReactCommon/cxxreact/BUCK +1 -3
  577. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  578. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  579. package/ReactCommon/cxxreact/Instance.cpp +21 -1
  580. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +0 -21
  581. package/ReactCommon/cxxreact/NativeToJsBridge.h +0 -6
  582. package/ReactCommon/cxxreact/React-cxxreact.podspec +4 -3
  583. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  584. package/ReactCommon/hermes/React-hermes.podspec +4 -4
  585. package/ReactCommon/hermes/executor/Android.mk +4 -4
  586. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  587. package/ReactCommon/hermes/inspector/chrome/Connection.cpp +74 -0
  588. package/ReactCommon/hermes/inspector/chrome/MessageTypes.cpp +100 -1
  589. package/ReactCommon/hermes/inspector/chrome/MessageTypes.h +49 -1
  590. package/ReactCommon/hermes/inspector/chrome/tests/ConnectionTests.cpp +81 -0
  591. package/ReactCommon/hermes/inspector/tools/message_types.txt +2 -0
  592. package/ReactCommon/hermes/inspector/tools/msggen/package.json +8 -5
  593. package/ReactCommon/hermes/inspector/tools/msggen/src/Property.js +1 -0
  594. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +2246 -1419
  595. package/ReactCommon/jsi/Android.mk +1 -1
  596. package/ReactCommon/jsi/BUCK +0 -2
  597. package/ReactCommon/jsi/JSCRuntime.cpp +7 -0
  598. package/ReactCommon/jsi/React-jsi.podspec +3 -3
  599. package/ReactCommon/jsi/jsi/decorator.h +7 -0
  600. package/ReactCommon/jsi/jsi/jsi.h +29 -0
  601. package/ReactCommon/jsi/jsi/jsilib-posix.cpp +1 -11
  602. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  603. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +2 -2
  604. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +35 -2
  605. package/ReactCommon/logger/Android.mk +23 -0
  606. package/ReactCommon/logger/BUCK +43 -0
  607. package/ReactCommon/logger/React-logger.podspec +40 -0
  608. package/ReactCommon/logger/react_native_log.cpp +52 -0
  609. package/ReactCommon/logger/react_native_log.h +33 -0
  610. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  611. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  612. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  613. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  614. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  615. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  616. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  617. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  618. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -17
  619. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +73 -40
  620. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.h +0 -1
  621. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +111 -107
  622. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  623. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  624. package/ReactCommon/react/nativemodule/samples/platform/ios/RCTSampleTurboModule.mm +0 -2
  625. package/ReactCommon/react/renderer/animations/BUCK +2 -0
  626. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  627. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  628. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  629. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1231 -1401
  630. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +90 -241
  631. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  632. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  633. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +544 -0
  634. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  635. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  636. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  637. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  638. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  639. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  640. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  641. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  642. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  643. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  644. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  645. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +12 -6
  646. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  647. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  648. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  649. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  650. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  651. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  652. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  653. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  654. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  655. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  656. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  657. package/ReactCommon/react/renderer/components/root/BUCK +1 -0
  658. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  659. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  660. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +7 -1
  661. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  662. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +35 -3
  663. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  664. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  665. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +54 -4
  666. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +10 -5
  667. package/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.cpp +4 -3
  668. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +5 -2
  669. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  670. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  671. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  672. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  673. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +2 -3
  674. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  675. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  676. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  677. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +3 -3
  678. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  679. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  680. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +36 -2
  681. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  682. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  683. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +23 -0
  684. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  685. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  686. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  687. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  688. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  689. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +19 -7
  690. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  691. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  692. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  693. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  694. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  695. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  696. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +28 -0
  697. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  698. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +4 -1
  699. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  700. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  701. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  702. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +19 -5
  703. package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +2 -1
  704. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  705. package/ReactCommon/react/renderer/components/view/ViewEventEmitter.cpp +1 -1
  706. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  707. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  708. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +5 -10
  709. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -12
  710. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  711. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  712. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  713. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  714. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  715. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +78 -7
  716. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  717. package/ReactCommon/react/renderer/components/view/primitives.h +5 -4
  718. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  719. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  720. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  721. package/ReactCommon/react/renderer/core/BUCK +1 -0
  722. package/ReactCommon/react/renderer/core/BatchedEventQueue.cpp +2 -34
  723. package/ReactCommon/react/renderer/core/BatchedEventQueue.h +2 -9
  724. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  725. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  726. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  727. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +9 -15
  728. package/ReactCommon/react/renderer/core/EventDispatcher.h +5 -10
  729. package/ReactCommon/react/renderer/core/EventEmitter.cpp +22 -12
  730. package/ReactCommon/react/renderer/core/EventEmitter.h +7 -2
  731. package/ReactCommon/react/renderer/core/EventPipe.h +2 -0
  732. package/ReactCommon/react/renderer/core/EventPriority.h +1 -1
  733. package/ReactCommon/react/renderer/core/EventQueue.cpp +39 -36
  734. package/ReactCommon/react/renderer/core/EventQueue.h +14 -8
  735. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +82 -0
  736. package/ReactCommon/react/renderer/core/EventQueueProcessor.h +36 -0
  737. package/ReactCommon/react/renderer/core/LayoutConstraints.h +6 -0
  738. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +1 -1
  739. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  740. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  741. package/ReactCommon/react/renderer/core/Props.h +6 -1
  742. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  743. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  744. package/ReactCommon/react/renderer/core/RawEvent.h +40 -3
  745. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  746. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  747. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  748. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +1 -1
  749. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -1
  750. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  751. package/ReactCommon/react/renderer/core/ReactEventPriority.h +43 -0
  752. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  753. package/ReactCommon/react/renderer/core/ShadowNode.cpp +9 -12
  754. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  755. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  756. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +17 -1
  757. package/ReactCommon/react/renderer/core/propsConversions.h +19 -9
  758. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  759. package/ReactCommon/react/renderer/core/tests/ConcreteShadowNodeTest.cpp +1 -1
  760. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +134 -0
  761. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +97 -29
  762. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  763. package/ReactCommon/react/renderer/core/tests/traitCastTest.cpp +31 -0
  764. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +9 -9
  765. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  766. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  767. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +3 -2
  768. package/ReactCommon/react/renderer/graphics/Transform.cpp +2 -2
  769. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  770. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  771. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  772. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.cpp +8 -0
  773. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +1 -0
  774. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  775. package/ReactCommon/react/renderer/graphics/platform/ios/Color.cpp +8 -0
  776. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +43 -1
  777. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  778. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  779. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  780. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  781. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  782. package/ReactCommon/react/renderer/leakchecker/LeakChecker.cpp +6 -9
  783. package/ReactCommon/react/renderer/leakchecker/LeakChecker.h +1 -4
  784. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  785. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +34 -31
  786. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +10 -9
  787. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +50 -35
  788. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +13 -13
  789. package/ReactCommon/react/renderer/mapbuffer/primitives.h +18 -19
  790. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +13 -1
  791. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  792. package/ReactCommon/react/renderer/mounting/BUCK +1 -0
  793. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +392 -519
  794. package/ReactCommon/react/renderer/mounting/Differentiator.h +1 -2
  795. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +1 -7
  796. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
  797. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  798. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +7 -5
  799. package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -1
  800. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +2 -0
  801. package/ReactCommon/react/renderer/mounting/ShadowView.h +2 -1
  802. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  803. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  804. package/ReactCommon/react/renderer/mounting/StubViewTree.cpp +10 -3
  805. package/ReactCommon/react/renderer/mounting/TelemetryController.cpp +1 -1
  806. package/ReactCommon/react/renderer/mounting/stubs.cpp +3 -3
  807. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +23 -22
  808. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +49 -10
  809. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +2 -2
  810. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -3
  811. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  812. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  813. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +78 -16
  814. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +60 -8
  815. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +17 -7
  816. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +8 -5
  817. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  818. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  819. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  820. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  821. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +20 -25
  822. package/ReactCommon/react/renderer/runtimescheduler/Task.h +16 -15
  823. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  824. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +297 -11
  825. package/ReactCommon/react/renderer/runtimescheduler/tests/StubQueue.h +6 -0
  826. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.cpp +13 -12
  827. package/ReactCommon/react/renderer/scheduler/AsynchronousEventBeat.h +4 -4
  828. package/ReactCommon/react/renderer/{components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.cpp → scheduler/InspectorData.h} +10 -2
  829. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +64 -40
  830. package/ReactCommon/react/renderer/scheduler/Scheduler.h +18 -3
  831. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +9 -1
  832. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +1 -6
  833. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -35
  834. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -12
  835. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  836. package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.cpp +11 -4
  837. package/ReactCommon/react/renderer/scheduler/SynchronousEventBeat.h +4 -1
  838. package/ReactCommon/react/renderer/telemetry/BUCK +1 -0
  839. package/ReactCommon/react/renderer/telemetry/tests/TransactionTelemetryTest.cpp +1 -19
  840. package/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +5 -5
  841. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.cpp +2 -1
  842. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  843. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  844. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  845. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +32 -28
  846. package/ReactCommon/react/renderer/uimanager/UIManager.h +3 -4
  847. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  848. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +61 -17
  849. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +13 -1
  850. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +10 -2
  851. package/ReactCommon/react/{renderer/components/picker/iospicker → test_utils}/BUCK +12 -14
  852. package/ReactCommon/react/{renderer/mounting/tests → test_utils}/Entropy.h +0 -0
  853. package/ReactCommon/react/test_utils/MockClock.h +29 -0
  854. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  855. package/ReactCommon/react/{renderer/mounting/tests → test_utils}/shadowTreeGeneration.h +18 -4
  856. package/ReactCommon/react/utils/Android.mk +3 -1
  857. package/ReactCommon/react/utils/BUCK +1 -0
  858. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  859. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  860. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  861. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  862. package/ReactCommon/yoga/yoga/Yoga.cpp +2 -6
  863. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar +0 -0
  864. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  865. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  866. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  867. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  868. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module +272 -0
  869. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  870. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  871. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  872. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  873. package/android/com/facebook/react/react-native/{0.0.0-17be3a003/react-native-0.0.0-17be3a003.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +22 -11
  874. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  875. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  876. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  877. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  878. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -3
  879. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  880. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  881. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -0
  882. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -0
  883. package/flow/HermesInternalType.js +114 -0
  884. package/flow/global.js +68 -0
  885. package/flow-typed/npm/react-test-renderer_v16.x.x.js +79 -0
  886. package/index.js +67 -42
  887. package/jest/preprocessor.js +75 -7
  888. package/jest/renderer.js +3 -7
  889. package/jest/setup.js +3 -2
  890. package/package.json +59 -20
  891. package/react.gradle +22 -22
  892. package/scripts/find-node.sh +6 -0
  893. package/scripts/generate-specs-cli.js +20 -2
  894. package/scripts/ios-configure-glog.sh +4 -0
  895. package/scripts/react-native-xcode.sh +5 -1
  896. package/scripts/react_native_pods.rb +213 -43
  897. package/template/_flowconfig +3 -4
  898. package/template/_gitignore +1 -0
  899. package/template/android/app/build.gradle +12 -7
  900. package/template/android/app/src/main/res/values/styles.xml +0 -1
  901. package/template/android/build.gradle +5 -6
  902. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  903. package/template/android/gradle.properties +1 -1
  904. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  905. package/template/ios/Podfile +1 -0
  906. package/template/package.json +3 -4
  907. package/third-party-podspecs/RCT-Folly.podspec +31 -11
  908. package/third-party-podspecs/boost.podspec +23 -0
  909. package/Libraries/BUCK +0 -24
  910. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  911. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  912. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  913. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -83
  914. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -82
  915. package/Libraries/Components/Picker/Picker.js +0 -169
  916. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -143
  917. package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
  918. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -162
  919. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -86
  920. package/Libraries/Components/ScrollView/ScrollViewStickyHeaderInjection.js +0 -17
  921. package/Libraries/Components/StaticContainer.react.js +0 -51
  922. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  923. package/Libraries/Components/Switch/SwitchInjection.js +0 -17
  924. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
  925. package/Libraries/Interaction/InteractionMixin.js +0 -53
  926. package/Libraries/Lists/VirtualizedListInjection.js +0 -15
  927. package/Libraries/Lists/VirtualizedSectionListInjection.js +0 -17
  928. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  929. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -100
  930. package/Libraries/Text/TextInjection.js +0 -15
  931. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -34
  932. package/React/Base/RCTBundleHolderModule.h +0 -16
  933. package/React/Base/RCTJSInvokerModule.h +0 -18
  934. package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.h +0 -19
  935. package/React/Fabric/Mounting/ComponentViews/Picker/RCTPickerComponentView.mm +0 -206
  936. package/React/Views/RCTPicker.h +0 -23
  937. package/React/Views/RCTPicker.m +0 -122
  938. package/React/Views/RCTPickerManager.m +0 -59
  939. package/ReactAndroid/release.gradle +0 -87
  940. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  941. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ReactPickerTestCase.java +0 -196
  942. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  943. package/ReactAndroid/src/androidTest/js/PickerAndroidTestModule.js +0 -89
  944. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java +0 -82
  945. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  946. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  947. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -147
  948. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  949. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  950. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerDelegate.java +0 -48
  951. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDialogPickerManagerInterface.java +0 -23
  952. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerDelegate.java +0 -48
  953. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDropdownPickerManagerInterface.java +0 -22
  954. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/BUCK +0 -30
  955. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDialogPickerManager.java +0 -51
  956. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactDropdownPickerManager.java +0 -50
  957. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPicker.java +0 -196
  958. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerAdapter.java +0 -95
  959. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerItem.java +0 -43
  960. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/ReactPickerManager.java +0 -99
  961. package/ReactAndroid/src/main/java/com/facebook/react/views/picker/events/PickerItemSelectEvent.java +0 -42
  962. package/ReactCommon/react/renderer/components/picker/Android.mk +0 -37
  963. package/ReactCommon/react/renderer/components/picker/BUCK +0 -98
  964. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.cpp +0 -23
  965. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerEventEmitter.h +0 -27
  966. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.cpp +0 -28
  967. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerProps.h +0 -77
  968. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDialogPickerShadowNode.h +0 -29
  969. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerComponentDescriptor.h +0 -21
  970. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.cpp +0 -23
  971. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerEventEmitter.h +0 -27
  972. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.cpp +0 -28
  973. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerProps.h +0 -77
  974. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.cpp +0 -17
  975. package/ReactCommon/react/renderer/components/picker/androidpicker/react/renderer/components/androidpicker/AndroidDropdownPickerShadowNode.h +0 -29
  976. package/ReactCommon/react/renderer/components/picker/iospicker/PickerComponentDescriptor.h +0 -26
  977. package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.cpp +0 -23
  978. package/ReactCommon/react/renderer/components/picker/iospicker/PickerEventEmitter.h +0 -28
  979. package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.cpp +0 -46
  980. package/ReactCommon/react/renderer/components/picker/iospicker/PickerProps.h +0 -36
  981. package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.cpp +0 -16
  982. package/ReactCommon/react/renderer/components/picker/iospicker/PickerShadowNode.h +0 -33
  983. package/ReactCommon/react/renderer/components/picker/iospicker/PickerState.h +0 -19
  984. package/ReactCommon/react/renderer/components/picker/iospicker/conversions.h +0 -48
  985. package/ReactCommon/react/renderer/core/Constants.cpp +0 -24
  986. package/ReactCommon/react/renderer/mounting/DifferentiatorFlatteningClassic.cpp +0 -1564
  987. package/ReactCommon/react/renderer/mounting/DifferentiatorFlatteningClassic.h +0 -45
  988. package/android/com/facebook/react/react-native/0.0.0-17be3a003/react-native-0.0.0-17be3a003.aar +0 -0
  989. package/android/com/facebook/react/react-native/0.0.0-17be3a003/react-native-0.0.0-17be3a003.aar.md5 +0 -1
  990. package/android/com/facebook/react/react-native/0.0.0-17be3a003/react-native-0.0.0-17be3a003.aar.sha1 +0 -1
  991. package/android/com/facebook/react/react-native/0.0.0-17be3a003/react-native-0.0.0-17be3a003.pom.md5 +0 -1
  992. package/android/com/facebook/react/react-native/0.0.0-17be3a003/react-native-0.0.0-17be3a003.pom.sha1 +0 -1
  993. package/scripts/generate-specs.sh +0 -100
@@ -12,9 +12,10 @@ import android.graphics.Paint;
12
12
  import android.graphics.Typeface;
13
13
  import android.text.TextPaint;
14
14
  import android.text.style.MetricAffectingSpan;
15
- import androidx.annotation.NonNull;
16
15
  import androidx.annotation.Nullable;
16
+ import com.facebook.infer.annotation.Nullsafe;
17
17
 
18
+ @Nullsafe(Nullsafe.Mode.LOCAL)
18
19
  public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan {
19
20
 
20
21
  /**
@@ -40,7 +41,7 @@ public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan {
40
41
  int fontWeight,
41
42
  @Nullable String fontFeatureSettings,
42
43
  @Nullable String fontFamily,
43
- @NonNull AssetManager assetManager) {
44
+ AssetManager assetManager) {
44
45
  mStyle = fontStyle;
45
46
  mWeight = fontWeight;
46
47
  mFeatureSettings = fontFeatureSettings;
@@ -54,21 +55,18 @@ public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan {
54
55
  }
55
56
 
56
57
  @Override
57
- public void updateMeasureState(@NonNull TextPaint paint) {
58
+ public void updateMeasureState(TextPaint paint) {
58
59
  apply(paint, mStyle, mWeight, mFeatureSettings, mFontFamily, mAssetManager);
59
60
  }
60
61
 
61
- /** Returns {@link Typeface#NORMAL} or {@link Typeface#ITALIC}. */
62
62
  public int getStyle() {
63
- return (mStyle == ReactTextShadowNode.UNSET ? 0 : mStyle);
63
+ return mStyle == ReactBaseTextShadowNode.UNSET ? Typeface.NORMAL : mStyle;
64
64
  }
65
65
 
66
- /** Returns {@link Typeface#NORMAL} or {@link Typeface#BOLD}. */
67
66
  public int getWeight() {
68
- return (mWeight == ReactTextShadowNode.UNSET ? 0 : mWeight);
67
+ return mWeight == ReactBaseTextShadowNode.UNSET ? TypefaceStyle.NORMAL : mWeight;
69
68
  }
70
69
 
71
- /** Returns the font family set for this StyleSpan. */
72
70
  public @Nullable String getFontFamily() {
73
71
  return mFontFamily;
74
72
  }
@@ -10,31 +10,39 @@ package com.facebook.react.views.text;
10
10
  import android.content.Context;
11
11
  import android.content.res.AssetManager;
12
12
  import android.graphics.Typeface;
13
- import android.os.Build;
14
13
  import android.util.SparseArray;
15
- import androidx.annotation.NonNull;
16
14
  import androidx.annotation.Nullable;
17
15
  import androidx.core.content.res.ResourcesCompat;
16
+ import com.facebook.infer.annotation.Nullsafe;
18
17
  import java.util.HashMap;
19
18
  import java.util.Map;
20
19
 
21
20
  /**
22
- * Class responsible to load and cache Typeface objects. It will first try to load typefaces inside
23
- * the assets/fonts folder and if it doesn't find the right Typeface in that folder will fall back
24
- * on the best matching system Typeface The supported custom fonts extensions are .ttf and .otf. For
25
- * each font family the bold, italic and bold_italic variants are supported. Given a "family" font
26
- * family the files in the assets/fonts folder need to be family.ttf(.otf) family_bold.ttf(.otf)
27
- * family_italic.ttf(.otf) and family_bold_italic.ttf(.otf)
21
+ * Responsible for loading and caching Typeface objects.
22
+ *
23
+ * <p>This will first try to load a typeface from the assets/fonts folder. If one is not found in
24
+ * that folder, this will fallback to the best matching system typeface.
25
+ *
26
+ * <p>Custom fonts support the extensions `.ttf` and `.otf` and the variants `bold`, `italic`, and
27
+ * `bold_italic`. For example, given a font named "ExampleFontFamily", the following are supported:
28
+ *
29
+ * <ul>
30
+ * <li>ExampleFontFamily.ttf (or .otf)
31
+ * <li>ExampleFontFamily_bold.ttf (or .otf)
32
+ * <li>ExampleFontFamily_italic.ttf (or .otf)
33
+ * <li>ExampleFontFamily_bold_italic.ttf (or .otf)
28
34
  */
35
+ @Nullsafe(Nullsafe.Mode.LOCAL)
29
36
  public class ReactFontManager {
30
37
 
38
+ // NOTE: Indices in `EXTENSIONS` correspond to the `TypeFace` style constants.
31
39
  private static final String[] EXTENSIONS = {"", "_bold", "_italic", "_bold_italic"};
32
40
  private static final String[] FILE_EXTENSIONS = {".ttf", ".otf"};
33
41
  private static final String FONTS_ASSET_PATH = "fonts/";
34
42
 
35
43
  private static ReactFontManager sReactFontManagerInstance;
36
44
 
37
- private final Map<String, FontFamily> mFontCache;
45
+ private final Map<String, AssetFontFamily> mFontCache;
38
46
  private final Map<String, Typeface> mCustomTypefaceCache;
39
47
 
40
48
  private ReactFontManager() {
@@ -49,36 +57,43 @@ public class ReactFontManager {
49
57
  return sReactFontManagerInstance;
50
58
  }
51
59
 
52
- public @Nullable Typeface getTypeface(
53
- String fontFamilyName, int style, AssetManager assetManager) {
54
- return getTypeface(fontFamilyName, style, 0, assetManager);
60
+ public Typeface getTypeface(String fontFamilyName, int style, AssetManager assetManager) {
61
+ return getTypeface(fontFamilyName, new TypefaceStyle(style), assetManager);
55
62
  }
56
63
 
57
- public @Nullable Typeface getTypeface(
64
+ public Typeface getTypeface(
65
+ String fontFamilyName, int weight, boolean italic, AssetManager assetManager) {
66
+ return getTypeface(fontFamilyName, new TypefaceStyle(weight, italic), assetManager);
67
+ }
68
+
69
+ public Typeface getTypeface(
58
70
  String fontFamilyName, int style, int weight, AssetManager assetManager) {
71
+ return getTypeface(fontFamilyName, new TypefaceStyle(style, weight), assetManager);
72
+ }
73
+
74
+ public Typeface getTypeface(
75
+ String fontFamilyName, TypefaceStyle typefaceStyle, AssetManager assetManager) {
59
76
  if (mCustomTypefaceCache.containsKey(fontFamilyName)) {
60
- Typeface typeface = mCustomTypefaceCache.get(fontFamilyName);
61
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && weight >= 100 && weight <= 1000) {
62
- return Typeface.create(typeface, weight, (style & Typeface.ITALIC) != 0);
63
- }
64
- return Typeface.create(typeface, style);
77
+ // Apply `typefaceStyle` because custom fonts configure variants using `app:fontStyle` and
78
+ // `app:fontWeight` in their resource XML configuration file.
79
+ return typefaceStyle.apply(mCustomTypefaceCache.get(fontFamilyName));
65
80
  }
66
81
 
67
- FontFamily fontFamily = mFontCache.get(fontFamilyName);
68
- if (fontFamily == null) {
69
- fontFamily = new FontFamily();
70
- mFontCache.put(fontFamilyName, fontFamily);
82
+ AssetFontFamily assetFontFamily = mFontCache.get(fontFamilyName);
83
+ if (assetFontFamily == null) {
84
+ assetFontFamily = new AssetFontFamily();
85
+ mFontCache.put(fontFamilyName, assetFontFamily);
71
86
  }
72
87
 
73
- Typeface typeface = fontFamily.getTypeface(style);
74
- if (typeface == null) {
75
- typeface = createTypeface(fontFamilyName, style, assetManager);
76
- if (typeface != null) {
77
- fontFamily.setTypeface(style, typeface);
78
- }
79
- }
88
+ int style = typefaceStyle.getNearestStyle();
80
89
 
81
- return typeface;
90
+ Typeface assetTypeface = assetFontFamily.getTypefaceForStyle(style);
91
+ if (assetTypeface == null) {
92
+ assetTypeface = createAssetTypeface(fontFamilyName, style, assetManager);
93
+ assetFontFamily.setTypefaceForStyle(style, assetTypeface);
94
+ }
95
+ // Do not apply `typefaceStyle` because asset font files already incorporate the style.
96
+ return assetTypeface;
82
97
  }
83
98
 
84
99
  /*
@@ -88,7 +103,7 @@ public class ReactFontManager {
88
103
  *
89
104
  * ReactFontManager.getInstance().addCustomFont(this, "Srisakdi", R.font.srisakdi);
90
105
  */
91
- public void addCustomFont(@NonNull Context context, @NonNull String fontFamily, int fontId) {
106
+ public void addCustomFont(Context context, String fontFamily, int fontId) {
92
107
  Typeface font = ResourcesCompat.getFont(context, fontId);
93
108
  if (font != null) {
94
109
  mCustomTypefaceCache.put(fontFamily, font);
@@ -106,16 +121,16 @@ public class ReactFontManager {
106
121
  */
107
122
  public void setTypeface(String fontFamilyName, int style, Typeface typeface) {
108
123
  if (typeface != null) {
109
- FontFamily fontFamily = mFontCache.get(fontFamilyName);
110
- if (fontFamily == null) {
111
- fontFamily = new FontFamily();
112
- mFontCache.put(fontFamilyName, fontFamily);
124
+ AssetFontFamily assetFontFamily = mFontCache.get(fontFamilyName);
125
+ if (assetFontFamily == null) {
126
+ assetFontFamily = new AssetFontFamily();
127
+ mFontCache.put(fontFamilyName, assetFontFamily);
113
128
  }
114
- fontFamily.setTypeface(style, typeface);
129
+ assetFontFamily.setTypefaceForStyle(style, typeface);
115
130
  }
116
131
  }
117
132
 
118
- private static @Nullable Typeface createTypeface(
133
+ private static Typeface createAssetTypeface(
119
134
  String fontFamilyName, int style, AssetManager assetManager) {
120
135
  String extension = EXTENSIONS[style];
121
136
  for (String fileExtension : FILE_EXTENSIONS) {
@@ -129,27 +144,27 @@ public class ReactFontManager {
129
144
  try {
130
145
  return Typeface.createFromAsset(assetManager, fileName);
131
146
  } catch (RuntimeException e) {
132
- // unfortunately Typeface.createFromAsset throws an exception instead of returning null
133
- // if the typeface doesn't exist
147
+ // If the typeface asset does not exist, try another extension.
148
+ continue;
134
149
  }
135
150
  }
136
-
137
151
  return Typeface.create(fontFamilyName, style);
138
152
  }
139
153
 
140
- private static class FontFamily {
154
+ /** Responsible for caching typefaces for each custom font family. */
155
+ private static class AssetFontFamily {
141
156
 
142
157
  private SparseArray<Typeface> mTypefaceSparseArray;
143
158
 
144
- private FontFamily() {
159
+ private AssetFontFamily() {
145
160
  mTypefaceSparseArray = new SparseArray<>(4);
146
161
  }
147
162
 
148
- public Typeface getTypeface(int style) {
163
+ public @Nullable Typeface getTypefaceForStyle(int style) {
149
164
  return mTypefaceSparseArray.get(style);
150
165
  }
151
166
 
152
- public void setTypeface(int style, Typeface typeface) {
167
+ public void setTypefaceForStyle(int style, Typeface typeface) {
153
168
  mTypefaceSparseArray.put(style, typeface);
154
169
  }
155
170
  }
@@ -110,10 +110,6 @@ public abstract class ReactTextAnchorViewManager<T extends View, C extends React
110
110
  view.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NONE);
111
111
  } else if (frequency.equals("full")) {
112
112
  view.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL);
113
- } else if (frequency.equals("balanced")) {
114
- view.setHyphenationFrequency(Layout.BREAK_STRATEGY_BALANCED);
115
- } else if (frequency.equals("high")) {
116
- view.setHyphenationFrequency(Layout.BREAK_STRATEGY_HIGH_QUALITY);
117
113
  } else if (frequency.equals("normal")) {
118
114
  view.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL);
119
115
  } else {
@@ -21,7 +21,7 @@ import androidx.annotation.Nullable;
21
21
  import com.facebook.infer.annotation.Assertions;
22
22
  import com.facebook.react.bridge.Arguments;
23
23
  import com.facebook.react.bridge.ReactNoCrashSoftException;
24
- import com.facebook.react.bridge.ReactSoftException;
24
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
25
25
  import com.facebook.react.bridge.WritableArray;
26
26
  import com.facebook.react.bridge.WritableMap;
27
27
  import com.facebook.react.uimanager.NativeViewHierarchyOptimizer;
@@ -32,6 +32,7 @@ import com.facebook.react.uimanager.ThemedReactContext;
32
32
  import com.facebook.react.uimanager.UIViewOperationQueue;
33
33
  import com.facebook.react.uimanager.annotations.ReactProp;
34
34
  import com.facebook.react.uimanager.events.RCTEventEmitter;
35
+ import com.facebook.yoga.YogaBaselineFunction;
35
36
  import com.facebook.yoga.YogaConstants;
36
37
  import com.facebook.yoga.YogaDirection;
37
38
  import com.facebook.yoga.YogaMeasureFunction;
@@ -116,7 +117,7 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
116
117
  .getJSModule(RCTEventEmitter.class)
117
118
  .receiveEvent(getReactTag(), "topTextLayout", event);
118
119
  } else {
119
- ReactSoftException.logSoftException(
120
+ ReactSoftExceptionLogger.logSoftException(
120
121
  "ReactTextShadowNode",
121
122
  new ReactNoCrashSoftException("Cannot get RCTEventEmitter, no CatalystInstance"));
122
123
  }
@@ -159,6 +160,20 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
159
160
  }
160
161
  };
161
162
 
163
+ private final YogaBaselineFunction mTextBaselineFunction =
164
+ new YogaBaselineFunction() {
165
+ @Override
166
+ public float baseline(YogaNode node, float width, float height) {
167
+ Spannable text =
168
+ Assertions.assertNotNull(
169
+ mPreparedSpannableText,
170
+ "Spannable element has not been prepared in onBeforeLayout");
171
+
172
+ Layout layout = measureSpannedText(text, width, YogaMeasureMode.EXACTLY);
173
+ return layout.getLineBaseline(layout.getLineCount() - 1);
174
+ }
175
+ };
176
+
162
177
  public ReactTextShadowNode() {
163
178
  this(null);
164
179
  }
@@ -171,6 +186,7 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
171
186
  private void initMeasureFunction() {
172
187
  if (!isVirtual()) {
173
188
  setMeasureFunction(mTextMeasureFunction);
189
+ setBaselineFunction(mTextBaselineFunction);
174
190
  }
175
191
  }
176
192
 
@@ -231,7 +247,14 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
231
247
  // than the width of the text.
232
248
  layout =
233
249
  BoringLayout.make(
234
- text, textPaint, boring.width, alignment, 1.f, 0.f, boring, mIncludeFontPadding);
250
+ text,
251
+ textPaint,
252
+ Math.max(boring.width, 0),
253
+ alignment,
254
+ 1.f,
255
+ 0.f,
256
+ boring,
257
+ mIncludeFontPadding);
235
258
  } else {
236
259
  // Is used for multiline, boring text and the width is known.
237
260
 
@@ -320,6 +343,11 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
320
343
  mJustificationMode);
321
344
  uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), reactTextUpdate);
322
345
  }
346
+
347
+ if (mAdjustsFontSizeToFit) {
348
+ // Nodes with `adjustsFontSizeToFit` enabled need to be remeasured on every relayout.
349
+ markUpdated();
350
+ }
323
351
  }
324
352
 
325
353
  @ReactProp(name = "onTextLayout")
@@ -56,6 +56,7 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
56
56
  private boolean mAdjustsFontSizeToFit = false;
57
57
  private int mLinkifyMaskType = 0;
58
58
  private boolean mNotifyOnInlineViewLayout;
59
+ private boolean mTextIsSelectable = false;
59
60
 
60
61
  private ReactViewBackgroundManager mReactBackgroundManager;
61
62
  private Spannable mSpanned;
@@ -124,6 +125,17 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
124
125
 
125
126
  Spanned text = (Spanned) getText();
126
127
  Layout layout = getLayout();
128
+ if (layout == null) {
129
+ // Text layout is calculated during pre-draw phase, so in some cases it can be empty during
130
+ // layout phase, which usually happens before drawing.
131
+ // The text layout is created by private {@link assumeLayout} method, which we can try to
132
+ // invoke directly through reflection or indirectly through some methods that compute it
133
+ // (e.g. {@link getExtendedPaddingTop}).
134
+ // It is safer, however, to just early return here, as next measure/layout passes are way more
135
+ // likely to have the text layout computed.
136
+ return;
137
+ }
138
+
127
139
  TextInlineViewPlaceholderSpan[] placeholders =
128
140
  text.getSpans(0, text.length(), TextInlineViewPlaceholderSpan.class);
129
141
  ArrayList inlineViewInfoArray =
@@ -422,9 +434,16 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
422
434
  }
423
435
  }
424
436
 
437
+ @Override
438
+ public void setTextIsSelectable(boolean selectable) {
439
+ mTextIsSelectable = selectable;
440
+ super.setTextIsSelectable(selectable);
441
+ }
442
+
425
443
  @Override
426
444
  public void onAttachedToWindow() {
427
445
  super.onAttachedToWindow();
446
+ setTextIsSelectable(mTextIsSelectable);
428
447
  if (mContainsImages && getText() instanceof Spanned) {
429
448
  Spanned text = (Spanned) getText();
430
449
  TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
@@ -95,7 +95,7 @@ public class ReactTextViewManager
95
95
  return null;
96
96
  }
97
97
 
98
- if (ReactFeatureFlags.mapBufferSerializationEnabled) {
98
+ if (ReactFeatureFlags.isMapBufferSerializationEnabled()) {
99
99
  ReadableMapBuffer stateMapBuffer = stateWrapper.getStatDataMapBuffer();
100
100
  if (stateMapBuffer != null) {
101
101
  return getReactTextUpdate(view, props, stateMapBuffer);
@@ -11,33 +11,52 @@ import android.content.res.AssetManager;
11
11
  import android.graphics.Typeface;
12
12
  import android.text.TextUtils;
13
13
  import androidx.annotation.Nullable;
14
+ import com.facebook.infer.annotation.Nullsafe;
14
15
  import com.facebook.react.bridge.ReadableArray;
15
16
  import java.util.ArrayList;
16
17
  import java.util.List;
17
18
 
19
+ @Nullsafe(Nullsafe.Mode.LOCAL)
18
20
  public class ReactTypefaceUtils {
19
- public static final int UNSET = -1;
20
21
 
21
22
  public static int parseFontWeight(@Nullable String fontWeightString) {
22
- int fontWeightNumeric =
23
- fontWeightString != null ? parseNumericFontWeight(fontWeightString) : UNSET;
24
- int fontWeight = fontWeightNumeric != UNSET ? fontWeightNumeric : Typeface.NORMAL;
25
-
26
- if (fontWeight == 700 || "bold".equals(fontWeightString)) fontWeight = Typeface.BOLD;
27
- else if (fontWeight == 400 || "normal".equals(fontWeightString)) fontWeight = Typeface.NORMAL;
28
-
29
- return fontWeight;
23
+ if (fontWeightString != null) {
24
+ switch (fontWeightString) {
25
+ case "100":
26
+ return 100;
27
+ case "200":
28
+ return 200;
29
+ case "300":
30
+ return 300;
31
+ case "normal":
32
+ case "400":
33
+ return 400;
34
+ case "500":
35
+ return 500;
36
+ case "600":
37
+ return 600;
38
+ case "bold":
39
+ case "700":
40
+ return 700;
41
+ case "800":
42
+ return 800;
43
+ case "900":
44
+ return 900;
45
+ }
46
+ }
47
+ return ReactBaseTextShadowNode.UNSET;
30
48
  }
31
49
 
32
50
  public static int parseFontStyle(@Nullable String fontStyleString) {
33
- int fontStyle = UNSET;
34
- if ("italic".equals(fontStyleString)) {
35
- fontStyle = Typeface.ITALIC;
36
- } else if ("normal".equals(fontStyleString)) {
37
- fontStyle = Typeface.NORMAL;
51
+ if (fontStyleString != null) {
52
+ if ("italic".equals(fontStyleString)) {
53
+ return Typeface.ITALIC;
54
+ }
55
+ if ("normal".equals(fontStyleString)) {
56
+ return Typeface.NORMAL;
57
+ }
38
58
  }
39
-
40
- return fontStyle;
59
+ return ReactBaseTextShadowNode.UNSET;
41
60
  }
42
61
 
43
62
  public static @Nullable String parseFontVariant(@Nullable ReadableArray fontVariantArray) {
@@ -77,51 +96,14 @@ public class ReactTypefaceUtils {
77
96
  @Nullable Typeface typeface,
78
97
  int style,
79
98
  int weight,
80
- @Nullable String family,
99
+ @Nullable String fontFamilyName,
81
100
  AssetManager assetManager) {
82
- int oldStyle;
83
- if (typeface == null) {
84
- oldStyle = 0;
85
- } else {
86
- oldStyle = typeface.getStyle();
87
- }
88
-
89
- int want = 0;
90
- if ((weight == Typeface.BOLD)
91
- || ((oldStyle & Typeface.BOLD) != 0 && weight == ReactTextShadowNode.UNSET)) {
92
- want |= Typeface.BOLD;
93
- }
94
-
95
- if ((style == Typeface.ITALIC)
96
- || ((oldStyle & Typeface.ITALIC) != 0 && style == ReactTextShadowNode.UNSET)) {
97
- want |= Typeface.ITALIC;
98
- }
99
-
100
- if (family != null) {
101
- typeface = ReactFontManager.getInstance().getTypeface(family, want, weight, assetManager);
102
- } else if (typeface != null) {
103
- // TODO(t9055065): Fix custom fonts getting applied to text children with different style
104
- typeface = Typeface.create(typeface, want);
105
- }
106
-
107
- if (typeface != null) {
108
- return typeface;
101
+ TypefaceStyle typefaceStyle = new TypefaceStyle(style, weight);
102
+ if (fontFamilyName == null) {
103
+ return typefaceStyle.apply(typeface == null ? Typeface.DEFAULT : typeface);
109
104
  } else {
110
- return Typeface.defaultFromStyle(want);
105
+ return ReactFontManager.getInstance()
106
+ .getTypeface(fontFamilyName, typefaceStyle, assetManager);
111
107
  }
112
108
  }
113
-
114
- /**
115
- * Return -1 if the input string is not a valid numeric fontWeight (100, 200, ..., 900), otherwise
116
- * return the weight.
117
- */
118
- private static int parseNumericFontWeight(String fontWeightString) {
119
- // This should be much faster than using regex to verify input and Integer.parseInt
120
- return fontWeightString.length() == 3
121
- && fontWeightString.endsWith("00")
122
- && fontWeightString.charAt(0) <= '9'
123
- && fontWeightString.charAt(0) >= '1'
124
- ? 100 * (fontWeightString.charAt(0) - '0')
125
- : UNSET;
126
- }
127
109
  }
@@ -7,7 +7,6 @@
7
7
 
8
8
  package com.facebook.react.views.text;
9
9
 
10
- import android.graphics.Typeface;
11
10
  import android.os.Build;
12
11
  import android.text.Layout;
13
12
  import android.text.TextUtils;
@@ -69,9 +68,10 @@ public class TextAttributeProps {
69
68
  private static final int DEFAULT_TEXT_SHADOW_COLOR = 0x55000000;
70
69
  private static final int DEFAULT_JUSTIFICATION_MODE =
71
70
  (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) ? 0 : Layout.JUSTIFICATION_MODE_NONE;
72
-
73
71
  private static final int DEFAULT_BREAK_STRATEGY =
74
72
  (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) ? 0 : Layout.BREAK_STRATEGY_HIGH_QUALITY;
73
+ private static final int DEFAULT_HYPHENATION_FREQUENCY =
74
+ (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) ? 0 : Layout.HYPHENATION_FREQUENCY_NONE;
75
75
 
76
76
  protected float mLineHeight = Float.NaN;
77
77
  protected boolean mIsColorSet = false;
@@ -104,12 +104,7 @@ public class TextAttributeProps {
104
104
  protected @Nullable ReactAccessibilityDelegate.AccessibilityRole mAccessibilityRole = null;
105
105
  protected boolean mIsAccessibilityRoleSet = false;
106
106
 
107
- /**
108
- * mFontStyle can be {@link Typeface#NORMAL} or {@link Typeface#ITALIC}. mFontWeight can be {@link
109
- * Typeface#NORMAL} or {@link Typeface#BOLD}.
110
- */
111
107
  protected int mFontStyle = UNSET;
112
-
113
108
  protected int mFontWeight = UNSET;
114
109
  /**
115
110
  * NB: If a font family is used that does not have a style in a certain Android version (ie.
@@ -460,39 +455,12 @@ public class TextAttributeProps {
460
455
  mFontFeatureSettings = TextUtils.join(", ", features);
461
456
  }
462
457
 
463
- /**
464
- * /* This code is duplicated in ReactTextInputManager /* TODO: Factor into a common place they
465
- * can both use
466
- */
467
458
  private void setFontWeight(@Nullable String fontWeightString) {
468
- int fontWeightNumeric =
469
- fontWeightString != null ? parseNumericFontWeight(fontWeightString) : -1;
470
- int fontWeight = UNSET;
471
- if (fontWeightNumeric >= 500 || "bold".equals(fontWeightString)) {
472
- fontWeight = Typeface.BOLD;
473
- } else if ("normal".equals(fontWeightString)
474
- || (fontWeightNumeric != -1 && fontWeightNumeric < 500)) {
475
- fontWeight = Typeface.NORMAL;
476
- }
477
- if (fontWeight != mFontWeight) {
478
- mFontWeight = fontWeight;
479
- }
459
+ mFontWeight = ReactTypefaceUtils.parseFontWeight(fontWeightString);
480
460
  }
481
461
 
482
- /**
483
- * /* This code is duplicated in ReactTextInputManager /* TODO: Factor into a common place they
484
- * can both use
485
- */
486
462
  private void setFontStyle(@Nullable String fontStyleString) {
487
- int fontStyle = UNSET;
488
- if ("italic".equals(fontStyleString)) {
489
- fontStyle = Typeface.ITALIC;
490
- } else if ("normal".equals(fontStyleString)) {
491
- fontStyle = Typeface.NORMAL;
492
- }
493
- if (fontStyle != mFontStyle) {
494
- mFontStyle = fontStyle;
495
- }
463
+ mFontStyle = ReactTypefaceUtils.parseFontStyle(fontStyleString);
496
464
  }
497
465
 
498
466
  private void setIncludeFontPadding(boolean includepad) {
@@ -602,20 +570,21 @@ public class TextAttributeProps {
602
570
  return androidTextBreakStrategy;
603
571
  }
604
572
 
605
- /**
606
- * Return -1 if the input string is not a valid numeric fontWeight (100, 200, ..., 900), otherwise
607
- * return the weight.
608
- *
609
- * <p>This code is duplicated in ReactTextInputManager TODO: Factor into a common place they can
610
- * both use
611
- */
612
- private static int parseNumericFontWeight(String fontWeightString) {
613
- // This should be much faster than using regex to verify input and Integer.parseInt
614
- return fontWeightString.length() == 3
615
- && fontWeightString.endsWith("00")
616
- && fontWeightString.charAt(0) <= '9'
617
- && fontWeightString.charAt(0) >= '1'
618
- ? 100 * (fontWeightString.charAt(0) - '0')
619
- : -1;
573
+ public static int getHyphenationFrequency(@Nullable String hyphenationFrequency) {
574
+ int androidHyphenationFrequency = DEFAULT_HYPHENATION_FREQUENCY;
575
+ if (hyphenationFrequency != null) {
576
+ switch (hyphenationFrequency) {
577
+ case "none":
578
+ androidHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NONE;
579
+ break;
580
+ case "normal":
581
+ androidHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NORMAL;
582
+ break;
583
+ default:
584
+ androidHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_FULL;
585
+ break;
586
+ }
587
+ }
588
+ return androidHyphenationFrequency;
620
589
  }
621
590
  }