react-native 0.0.0-16bb2ae4f → 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 (616) 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/NativeAnimatedHelper.js +3 -3
  5. package/Libraries/BatchedBridge/MessageQueue.js +10 -10
  6. package/Libraries/Blob/FileReader.js +1 -1
  7. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  8. package/Libraries/Blob/URL.js +1 -1
  9. package/Libraries/Components/Button.js +3 -0
  10. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  11. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  12. package/Libraries/Components/ScrollView/ScrollView.js +14 -5
  13. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  15. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  16. package/Libraries/Components/StatusBar/StatusBar.js +6 -14
  17. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
  18. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
  19. package/Libraries/Components/TextInput/TextInput.js +27 -1
  20. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  21. package/Libraries/Components/View/ViewAccessibility.js +1 -0
  22. package/Libraries/Core/ExceptionsManager.js +3 -1
  23. package/Libraries/Core/ReactNativeVersion.js +1 -1
  24. package/Libraries/Core/Timers/JSTimers.js +37 -28
  25. package/Libraries/Core/Timers/immediateShim.js +67 -0
  26. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  27. package/Libraries/Core/polyfillPromise.js +1 -1
  28. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  29. package/Libraries/Core/setUpGlobals.js +2 -0
  30. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  31. package/Libraries/Core/setUpTimers.js +65 -6
  32. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
  33. package/Libraries/Image/Image.ios.js +6 -0
  34. package/Libraries/Image/ImageBackground.js +10 -8
  35. package/Libraries/Image/ImageProps.js +28 -0
  36. package/Libraries/Image/ImageSource.js +1 -1
  37. package/Libraries/Image/React-RCTImage.podspec +1 -1
  38. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  39. package/Libraries/Lists/FlatList.js +43 -26
  40. package/Libraries/Lists/VirtualizedList.js +3 -1
  41. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  42. package/Libraries/LogBox/Data/LogBoxData.js +18 -18
  43. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  44. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  45. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  46. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  47. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  48. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  49. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  50. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  51. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
  52. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  53. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  54. package/Libraries/Network/XMLHttpRequest.js +3 -1
  55. package/Libraries/NewAppScreen/components/logo.png +0 -0
  56. package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
  57. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  58. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  59. package/Libraries/Pressability/Pressability.js +1 -0
  60. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  61. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  62. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  63. package/Libraries/ReactNative/AppRegistry.js +1 -1
  64. package/Libraries/ReactNative/PaperUIManager.js +1 -0
  65. package/Libraries/ReactNative/renderApplication.js +1 -1
  66. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  67. package/Libraries/Reliability/UserFlow.js +7 -0
  68. package/Libraries/Renderer/REVISION +1 -1
  69. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
  70. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
  71. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
  72. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
  73. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
  74. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
  75. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  76. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  77. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  78. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  79. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  80. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  81. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  82. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  83. package/Libraries/Text/Text.js +11 -0
  84. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  85. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  86. package/Libraries/Text/TextProps.js +1 -7
  87. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  88. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  89. package/Libraries/UTFSequence.js +1 -1
  90. package/Libraries/Utilities/Dimensions.js +9 -14
  91. package/Libraries/Utilities/FeatureDetection.js +31 -0
  92. package/Libraries/Utilities/HMRClient.js +10 -6
  93. package/Libraries/Utilities/MatrixMath.js +1 -1
  94. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  95. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  96. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  97. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  98. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  99. package/React/Base/RCTBridge+Private.h +8 -0
  100. package/React/Base/RCTBridge.h +13 -0
  101. package/React/Base/RCTBridge.m +30 -7
  102. package/React/Base/RCTBridgeModule.h +3 -12
  103. package/React/Base/RCTBundleURLProvider.h +26 -1
  104. package/React/Base/RCTBundleURLProvider.mm +79 -15
  105. package/React/Base/RCTConstants.h +6 -7
  106. package/React/Base/RCTConstants.m +12 -12
  107. package/React/Base/RCTConvert.h +1 -1
  108. package/React/Base/RCTConvert.m +1 -1
  109. package/React/Base/RCTCxxConvert.h +1 -1
  110. package/React/Base/RCTDefines.h +12 -3
  111. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  112. package/React/Base/RCTJSThread.h +29 -0
  113. package/React/Base/RCTJSThread.m +19 -0
  114. package/React/Base/RCTMultipartStreamReader.m +0 -2
  115. package/React/Base/RCTRootView.h +15 -0
  116. package/React/Base/RCTRootView.m +15 -0
  117. package/React/Base/RCTTouchHandler.m +4 -9
  118. package/React/Base/RCTUtils.h +3 -0
  119. package/React/Base/RCTUtils.m +14 -7
  120. package/React/Base/RCTVersion.m +1 -1
  121. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  122. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  123. package/React/CoreModules/BUCK +3 -3
  124. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  125. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  126. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  127. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  128. package/React/CoreModules/RCTDevSettings.mm +12 -10
  129. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  130. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  131. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  132. package/React/CoreModules/RCTLogBox.mm +14 -10
  133. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  134. package/React/CoreModules/RCTRedBox.mm +1 -5
  135. package/React/CoreModules/React-CoreModules.podspec +1 -1
  136. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  137. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  138. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  139. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  140. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
  141. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
  142. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
  143. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  144. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
  145. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  146. package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
  147. package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
  148. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  149. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  150. package/React/Fabric/RCTConversions.h +3 -0
  151. package/React/Fabric/RCTScheduler.mm +12 -5
  152. package/React/Fabric/RCTSurfacePresenter.mm +6 -7
  153. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
  154. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  155. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  156. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  157. package/React/Modules/RCTI18nUtil.h +14 -6
  158. package/React/Modules/RCTI18nUtil.m +1 -47
  159. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  160. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  161. package/React/React-RCTFabric.podspec +1 -1
  162. package/React/Views/RCTFont.mm +54 -38
  163. package/React/Views/RCTModalHostView.h +1 -1
  164. package/React/Views/RCTModalHostView.m +16 -0
  165. package/React/Views/RCTModalHostViewManager.m +1 -0
  166. package/React/Views/RCTView.m +2 -7
  167. package/React/Views/RCTViewManager.m +4 -2
  168. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  169. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  170. package/React/Views/ScrollView/RCTScrollView.m +111 -36
  171. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
  172. package/React/Views/UIView+React.m +2 -11
  173. package/React-Core.podspec +1 -1
  174. package/ReactAndroid/Android-prebuilt.mk +8 -0
  175. package/ReactAndroid/README.md +1 -1
  176. package/ReactAndroid/build.gradle +12 -5
  177. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  178. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  179. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  180. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  181. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  182. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  183. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  184. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  185. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  186. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  187. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  188. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  189. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
  199. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  209. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  211. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  218. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
  219. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  220. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
  229. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
  231. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
  232. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
  233. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  234. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  253. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  254. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  256. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  258. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  260. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  262. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  264. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  266. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  267. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  269. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  271. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  272. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  273. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  283. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
  284. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
  286. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  288. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  305. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
  306. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
  307. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  308. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
  311. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  313. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
  314. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  315. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  316. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  317. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  318. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  319. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  320. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  321. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  322. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  323. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  324. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  325. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
  326. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  327. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  328. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  329. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  330. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  331. package/ReactCommon/React-Fabric.podspec +10 -1
  332. package/ReactCommon/ReactCommon.podspec +2 -1
  333. package/ReactCommon/callinvoker/BUCK +2 -2
  334. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  335. package/ReactCommon/cxxreact/Android.mk +2 -1
  336. package/ReactCommon/cxxreact/BUCK +1 -0
  337. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  338. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  339. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  341. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  342. package/ReactCommon/hermes/executor/Android.mk +4 -4
  343. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  344. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  345. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  346. package/ReactCommon/jsi/Android.mk +1 -1
  347. package/ReactCommon/jsi/BUCK +0 -2
  348. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  349. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  350. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  351. package/ReactCommon/logger/Android.mk +23 -0
  352. package/ReactCommon/logger/BUCK +43 -0
  353. package/ReactCommon/logger/React-logger.podspec +40 -0
  354. package/ReactCommon/logger/react_native_log.cpp +52 -0
  355. package/ReactCommon/logger/react_native_log.h +33 -0
  356. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  357. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  358. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  359. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  360. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  361. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  362. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  363. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  364. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
  365. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
  366. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
  367. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  368. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  369. package/ReactCommon/react/renderer/animations/BUCK +1 -0
  370. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  371. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  372. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  373. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
  374. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  375. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  376. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  377. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
  378. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  379. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  380. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  381. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  382. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  383. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  384. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  385. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  386. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  387. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  388. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  389. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
  390. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  391. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  392. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  393. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  394. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  395. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  396. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  397. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  398. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  399. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  400. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  401. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  402. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  403. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
  404. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  405. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
  406. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  407. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  408. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
  409. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
  410. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  411. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  412. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  413. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  414. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  415. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  416. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  417. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  419. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
  420. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  421. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  422. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
  423. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  424. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  425. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  426. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  427. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  428. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
  429. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  430. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  431. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  432. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  433. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  434. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  435. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
  436. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  437. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
  438. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  439. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  440. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  441. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  442. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  443. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  444. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
  445. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
  446. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  447. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  448. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  449. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  450. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  451. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
  452. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  453. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  454. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  455. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  456. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  457. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  458. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  459. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
  460. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
  461. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  462. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  463. package/ReactCommon/react/renderer/core/Props.h +6 -1
  464. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  465. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  466. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  467. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  468. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  469. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  470. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  471. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  472. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  473. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
  474. package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
  475. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  476. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
  477. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  478. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  479. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  480. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
  481. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  482. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  483. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  484. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  485. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  486. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
  487. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  488. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  489. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  490. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  491. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  492. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  493. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  494. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  495. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
  496. package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
  497. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  498. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  499. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
  500. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
  501. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
  502. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  503. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  504. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
  505. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
  506. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
  507. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  508. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  509. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  510. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  511. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  512. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
  513. package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
  514. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  515. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
  516. package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
  517. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
  518. package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
  519. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
  520. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
  521. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  522. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  523. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  524. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  525. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
  526. package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
  527. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  528. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
  529. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
  530. package/ReactCommon/react/test_utils/BUCK +3 -0
  531. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
  532. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
  533. package/ReactCommon/react/utils/Android.mk +3 -1
  534. package/ReactCommon/react/utils/BUCK +1 -0
  535. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  536. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  537. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  538. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  539. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
  540. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  541. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  542. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  543. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  544. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
  545. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  546. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  547. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  548. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  549. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
  550. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  551. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  552. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  553. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  554. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  555. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  556. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  557. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  558. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  559. package/flow/HermesInternalType.js +114 -0
  560. package/flow/global.js +68 -0
  561. package/index.js +37 -24
  562. package/jest/renderer.js +3 -7
  563. package/jest/setup.js +2 -1
  564. package/package.json +55 -16
  565. package/react.gradle +19 -13
  566. package/scripts/generate-specs-cli.js +20 -2
  567. package/scripts/ios-configure-glog.sh +4 -0
  568. package/scripts/react-native-xcode.sh +1 -1
  569. package/scripts/react_native_pods.rb +195 -38
  570. package/template/_flowconfig +1 -1
  571. package/template/android/app/build.gradle +2 -2
  572. package/template/android/build.gradle +1 -2
  573. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  574. package/template/android/gradle.properties +1 -1
  575. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  576. package/template/ios/Podfile +1 -0
  577. package/template/package.json +3 -4
  578. package/third-party-podspecs/RCT-Folly.podspec +6 -3
  579. package/Libraries/BUCK +0 -26
  580. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  581. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  582. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  583. package/Libraries/Components/StaticContainer.react.js +0 -51
  584. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  585. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  586. package/Libraries/Interaction/InteractionMixin.js +0 -54
  587. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  588. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  589. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  595. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  597. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  598. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  599. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  600. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  601. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  602. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
  603. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
  604. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
  605. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
  606. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
  607. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
  608. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
  609. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
  610. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
  611. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
  612. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
  613. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
  614. package/scripts/generate-specs.sh +0 -100
  615. package/template/_editorconfig +0 -3
  616. package/template/_gitattributes +0 -3
@@ -25,7 +25,7 @@ import androidx.annotation.NonNull;
25
25
  import androidx.annotation.Nullable;
26
26
  import com.facebook.common.logging.FLog;
27
27
  import com.facebook.react.bridge.ReactNoCrashSoftException;
28
- import com.facebook.react.bridge.ReactSoftException;
28
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
29
29
  import com.facebook.react.bridge.WritableArray;
30
30
  import com.facebook.react.common.build.ReactBuildConfig;
31
31
  import com.facebook.react.common.mapbuffer.ReadableMapBuffer;
@@ -61,6 +61,7 @@ public class TextLayoutManagerMapBuffer {
61
61
  public static final short PA_KEY_TEXT_BREAK_STRATEGY = 2;
62
62
  public static final short PA_KEY_ADJUST_FONT_SIZE_TO_FIT = 3;
63
63
  public static final short PA_KEY_INCLUDE_FONT_PADDING = 4;
64
+ public static final short PA_KEY_HYPHENATION_FREQUENCY = 5;
64
65
 
65
66
  private static final boolean ENABLE_MEASURE_LOGGING = ReactBuildConfig.DEBUG && false;
66
67
 
@@ -264,7 +265,8 @@ public class TextLayoutManagerMapBuffer {
264
265
  float width,
265
266
  YogaMeasureMode widthYogaMeasureMode,
266
267
  boolean includeFontPadding,
267
- int textBreakStrategy) {
268
+ int textBreakStrategy,
269
+ int hyphenationFrequency) {
268
270
  Layout layout;
269
271
  int spanLength = text.length();
270
272
  boolean unconstrainedWidth = widthYogaMeasureMode == YogaMeasureMode.UNDEFINED || width < 0;
@@ -295,14 +297,14 @@ public class TextLayoutManagerMapBuffer {
295
297
  .setLineSpacing(0.f, 1.f)
296
298
  .setIncludePad(includeFontPadding)
297
299
  .setBreakStrategy(textBreakStrategy)
298
- .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL)
300
+ .setHyphenationFrequency(hyphenationFrequency)
299
301
  .build();
300
302
  }
301
303
 
302
304
  } else if (boring != null && (unconstrainedWidth || boring.width <= width)) {
303
305
  int boringLayoutWidth = boring.width;
304
306
  if (boring.width < 0) {
305
- ReactSoftException.logSoftException(
307
+ ReactSoftExceptionLogger.logSoftException(
306
308
  TAG, new ReactNoCrashSoftException("Text width is invalid: " + boring.width));
307
309
  boringLayoutWidth = 0;
308
310
  }
@@ -338,7 +340,7 @@ public class TextLayoutManagerMapBuffer {
338
340
  .setLineSpacing(0.f, 1.f)
339
341
  .setIncludePad(includeFontPadding)
340
342
  .setBreakStrategy(textBreakStrategy)
341
- .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL);
343
+ .setHyphenationFrequency(hyphenationFrequency);
342
344
 
343
345
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
344
346
  builder.setUseLineSpacingFromFallbacks(true);
@@ -391,6 +393,9 @@ public class TextLayoutManagerMapBuffer {
391
393
  paragraphAttributes.hasKey(PA_KEY_INCLUDE_FONT_PADDING)
392
394
  ? paragraphAttributes.getBoolean(PA_KEY_INCLUDE_FONT_PADDING)
393
395
  : DEFAULT_INCLUDE_FONT_PADDING;
396
+ int hyphenationFrequency =
397
+ TextAttributeProps.getTextBreakStrategy(
398
+ paragraphAttributes.getString(PA_KEY_HYPHENATION_FREQUENCY));
394
399
 
395
400
  if (text == null) {
396
401
  throw new IllegalStateException("Spannable element has not been prepared in onBeforeLayout");
@@ -404,7 +409,13 @@ public class TextLayoutManagerMapBuffer {
404
409
 
405
410
  Layout layout =
406
411
  createLayout(
407
- text, boring, width, widthYogaMeasureMode, includeFontPadding, textBreakStrategy);
412
+ text,
413
+ boring,
414
+ width,
415
+ widthYogaMeasureMode,
416
+ includeFontPadding,
417
+ textBreakStrategy,
418
+ hyphenationFrequency);
408
419
 
409
420
  int maximumNumberOfLines =
410
421
  paragraphAttributes.hasKey(PA_KEY_MAX_NUMBER_OF_LINES)
@@ -514,16 +525,16 @@ public class TextLayoutManagerMapBuffer {
514
525
 
515
526
  // The attachment array returns the positions of each of the attachments as
516
527
  attachmentsPositions[attachmentPosition] =
517
- PixelUtil.toSPFromPixel(placeholderTopPosition);
528
+ PixelUtil.toDIPFromPixel(placeholderTopPosition);
518
529
  attachmentsPositions[attachmentPosition + 1] =
519
- PixelUtil.toSPFromPixel(placeholderLeftPosition);
530
+ PixelUtil.toDIPFromPixel(placeholderLeftPosition);
520
531
  attachmentIndex++;
521
532
  }
522
533
  }
523
534
  }
524
535
 
525
- float widthInSP = PixelUtil.toSPFromPixel(calculatedWidth);
526
- float heightInSP = PixelUtil.toSPFromPixel(calculatedHeight);
536
+ float widthInSP = PixelUtil.toDIPFromPixel(calculatedWidth);
537
+ float heightInSP = PixelUtil.toDIPFromPixel(calculatedHeight);
527
538
 
528
539
  if (ENABLE_MEASURE_LOGGING) {
529
540
  FLog.e(
@@ -561,10 +572,19 @@ public class TextLayoutManagerMapBuffer {
561
572
  paragraphAttributes.hasKey(PA_KEY_INCLUDE_FONT_PADDING)
562
573
  ? paragraphAttributes.getBoolean(PA_KEY_INCLUDE_FONT_PADDING)
563
574
  : DEFAULT_INCLUDE_FONT_PADDING;
575
+ int hyphenationFrequency =
576
+ TextAttributeProps.getTextBreakStrategy(
577
+ paragraphAttributes.getString(PA_KEY_HYPHENATION_FREQUENCY));
564
578
 
565
579
  Layout layout =
566
580
  createLayout(
567
- text, boring, width, YogaMeasureMode.EXACTLY, includeFontPadding, textBreakStrategy);
581
+ text,
582
+ boring,
583
+ width,
584
+ YogaMeasureMode.EXACTLY,
585
+ includeFontPadding,
586
+ textBreakStrategy,
587
+ hyphenationFrequency);
568
588
  return FontMetricsUtil.getFontMetrics(text, layout, sTextPaintInstance, context);
569
589
  }
570
590
 
@@ -15,6 +15,7 @@ rn_android_library(
15
15
  react_native_dep("libraries/fbcore/src/main/java/com/facebook/common/logging:logging"),
16
16
  react_native_dep("third-party/java/infer-annotations:infer-annotations"),
17
17
  react_native_dep("third-party/java/jsr-305:jsr-305"),
18
+ react_native_dep("third-party/android/androidx:autofill"),
18
19
  react_native_target("java/com/facebook/react/bridge:bridge"),
19
20
  react_native_target("java/com/facebook/react/common:common"),
20
21
  react_native_target("java/com/facebook/react/module/annotations:annotations"),
@@ -36,14 +36,14 @@ import android.view.inputmethod.InputConnection;
36
36
  import android.view.inputmethod.InputMethodManager;
37
37
  import androidx.annotation.Nullable;
38
38
  import androidx.appcompat.widget.AppCompatEditText;
39
- import androidx.core.view.AccessibilityDelegateCompat;
40
39
  import androidx.core.view.ViewCompat;
41
40
  import com.facebook.common.logging.FLog;
42
41
  import com.facebook.infer.annotation.Assertions;
43
42
  import com.facebook.react.bridge.ReactContext;
44
- import com.facebook.react.bridge.ReactSoftException;
43
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
45
44
  import com.facebook.react.common.build.ReactBuildConfig;
46
45
  import com.facebook.react.uimanager.FabricViewStateManager;
46
+ import com.facebook.react.uimanager.ReactAccessibilityDelegate;
47
47
  import com.facebook.react.uimanager.UIManagerModule;
48
48
  import com.facebook.react.uimanager.events.EventDispatcher;
49
49
  import com.facebook.react.views.text.CustomLetterSpacingSpan;
@@ -155,7 +155,7 @@ public class ReactEditText extends AppCompatEditText
155
155
 
156
156
  ViewCompat.setAccessibilityDelegate(
157
157
  this,
158
- new AccessibilityDelegateCompat() {
158
+ new ReactAccessibilityDelegate() {
159
159
  @Override
160
160
  public boolean performAccessibilityAction(View host, int action, Bundle args) {
161
161
  if (action == AccessibilityNodeInfo.ACTION_CLICK) {
@@ -331,10 +331,20 @@ public class ReactEditText extends AppCompatEditText
331
331
  }
332
332
 
333
333
  if (start != UNSET && end != UNSET) {
334
+ // clamp selection values for safety
335
+ start = clampToTextLength(start);
336
+ end = clampToTextLength(end);
337
+
334
338
  setSelection(start, end);
335
339
  }
336
340
  }
337
341
 
342
+ private int clampToTextLength(int value) {
343
+ int textLength = getText() == null ? 0 : getText().length();
344
+
345
+ return Math.max(0, Math.min(value, textLength));
346
+ }
347
+
338
348
  @Override
339
349
  public void setSelection(int start, int end) {
340
350
  if (DEBUG_MODE) {
@@ -1025,7 +1035,7 @@ public class ReactEditText extends AppCompatEditText
1025
1035
  try {
1026
1036
  sb.append(currentText.subSequence(0, currentText.length()));
1027
1037
  } catch (IndexOutOfBoundsException e) {
1028
- ReactSoftException.logSoftException(TAG, e);
1038
+ ReactSoftExceptionLogger.logSoftException(TAG, e);
1029
1039
  }
1030
1040
  }
1031
1041
 
@@ -131,10 +131,13 @@ class ReactEditTextInputConnectionWrapper extends InputConnectionWrapper {
131
131
  @Override
132
132
  public boolean sendKeyEvent(KeyEvent event) {
133
133
  if (event.getAction() == KeyEvent.ACTION_DOWN) {
134
+ boolean isNumberKey = event.getUnicodeChar() < 58 && event.getUnicodeChar() > 47;
134
135
  if (event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
135
136
  dispatchKeyEvent(BACKSPACE_KEY_VALUE);
136
137
  } else if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
137
138
  dispatchKeyEvent(ENTER_KEY_VALUE);
139
+ } else if (isNumberKey) {
140
+ dispatchKeyEvent(String.valueOf(event.getNumber()));
138
141
  }
139
142
  }
140
143
  return super.sendKeyEvent(event);
@@ -30,13 +30,14 @@ import android.view.inputmethod.EditorInfo;
30
30
  import android.widget.EditText;
31
31
  import android.widget.TextView;
32
32
  import androidx.annotation.Nullable;
33
+ import androidx.autofill.HintConstants;
33
34
  import androidx.core.content.ContextCompat;
34
35
  import com.facebook.common.logging.FLog;
35
36
  import com.facebook.infer.annotation.Assertions;
36
37
  import com.facebook.react.bridge.Dynamic;
37
38
  import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
38
39
  import com.facebook.react.bridge.ReactContext;
39
- import com.facebook.react.bridge.ReactSoftException;
40
+ import com.facebook.react.bridge.ReactSoftExceptionLogger;
40
41
  import com.facebook.react.bridge.ReadableArray;
41
42
  import com.facebook.react.bridge.ReadableMap;
42
43
  import com.facebook.react.bridge.ReadableNativeMap;
@@ -72,6 +73,7 @@ import com.facebook.react.views.text.TextLayoutManager;
72
73
  import com.facebook.react.views.text.TextTransform;
73
74
  import com.facebook.yoga.YogaConstants;
74
75
  import java.lang.reflect.Field;
76
+ import java.util.HashMap;
75
77
  import java.util.LinkedList;
76
78
  import java.util.Map;
77
79
 
@@ -84,6 +86,51 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
84
86
  private static final int[] SPACING_TYPES = {
85
87
  Spacing.ALL, Spacing.LEFT, Spacing.RIGHT, Spacing.TOP, Spacing.BOTTOM,
86
88
  };
89
+ private static final Map<String, String> REACT_PROPS_AUTOFILL_HINTS_MAP =
90
+ new HashMap<String, String>() {
91
+ {
92
+ put("birthdate-day", HintConstants.AUTOFILL_HINT_BIRTH_DATE_DAY);
93
+ put("birthdate-full", HintConstants.AUTOFILL_HINT_BIRTH_DATE_FULL);
94
+ put("birthdate-month", HintConstants.AUTOFILL_HINT_BIRTH_DATE_MONTH);
95
+ put("birthdate-year", HintConstants.AUTOFILL_HINT_BIRTH_DATE_YEAR);
96
+ put("cc-csc", HintConstants.AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE);
97
+ put("cc-exp", HintConstants.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE);
98
+ put("cc-exp-day", HintConstants.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY);
99
+ put("cc-exp-month", HintConstants.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH);
100
+ put("cc-exp-year", HintConstants.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR);
101
+ put("cc-number", HintConstants.AUTOFILL_HINT_CREDIT_CARD_NUMBER);
102
+ put("email", HintConstants.AUTOFILL_HINT_EMAIL_ADDRESS);
103
+ put("gender", HintConstants.AUTOFILL_HINT_GENDER);
104
+ put("name", HintConstants.AUTOFILL_HINT_PERSON_NAME);
105
+ put("name-family", HintConstants.AUTOFILL_HINT_PERSON_NAME_FAMILY);
106
+ put("name-given", HintConstants.AUTOFILL_HINT_PERSON_NAME_GIVEN);
107
+ put("name-middle", HintConstants.AUTOFILL_HINT_PERSON_NAME_MIDDLE);
108
+ put("name-middle-initial", HintConstants.AUTOFILL_HINT_PERSON_NAME_MIDDLE_INITIAL);
109
+ put("name-prefix", HintConstants.AUTOFILL_HINT_PERSON_NAME_PREFIX);
110
+ put("name-suffix", HintConstants.AUTOFILL_HINT_PERSON_NAME_SUFFIX);
111
+ put("password", HintConstants.AUTOFILL_HINT_PASSWORD);
112
+ put("password-new", HintConstants.AUTOFILL_HINT_NEW_PASSWORD);
113
+ put("postal-address", HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS);
114
+ put("postal-address-country", HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS_COUNTRY);
115
+ put(
116
+ "postal-address-extended",
117
+ HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS_EXTENDED_ADDRESS);
118
+ put(
119
+ "postal-address-extended-postal-code",
120
+ HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS_EXTENDED_POSTAL_CODE);
121
+ put("postal-address-locality", HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS_LOCALITY);
122
+ put("postal-address-region", HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS_REGION);
123
+ put("postal-code", HintConstants.AUTOFILL_HINT_POSTAL_CODE);
124
+ put("street-address", HintConstants.AUTOFILL_HINT_POSTAL_ADDRESS_STREET_ADDRESS);
125
+ put("sms-otp", HintConstants.AUTOFILL_HINT_SMS_OTP);
126
+ put("tel", HintConstants.AUTOFILL_HINT_PHONE_NUMBER);
127
+ put("tel-country-code", HintConstants.AUTOFILL_HINT_PHONE_COUNTRY_CODE);
128
+ put("tel-national", HintConstants.AUTOFILL_HINT_PHONE_NATIONAL);
129
+ put("tel-device", HintConstants.AUTOFILL_HINT_PHONE_NUMBER_DEVICE);
130
+ put("username", HintConstants.AUTOFILL_HINT_USERNAME);
131
+ put("username-new", HintConstants.AUTOFILL_HINT_NEW_USERNAME);
132
+ }
133
+ };
87
134
 
88
135
  private static final int FOCUS_TEXT_INPUT = 1;
89
136
  private static final int BLUR_TEXT_INPUT = 2;
@@ -111,6 +158,15 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
111
158
  private static final String KEYBOARD_TYPE_URI = "url";
112
159
  private static final InputFilter[] EMPTY_FILTERS = new InputFilter[0];
113
160
  private static final int UNSET = -1;
161
+ private static final String[] DRAWABLE_FIELDS = {
162
+ "mCursorDrawable", "mSelectHandleLeft", "mSelectHandleRight", "mSelectHandleCenter"
163
+ };
164
+ private static final String[] DRAWABLE_RESOURCES = {
165
+ "mCursorDrawableRes",
166
+ "mTextSelectHandleLeftRes",
167
+ "mTextSelectHandleRightRes",
168
+ "mTextSelectHandleRes"
169
+ };
114
170
 
115
171
  protected @Nullable ReactTextViewManagerCallback mReactTextViewManagerCallback;
116
172
 
@@ -281,9 +337,22 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
281
337
  Spannable spannable = update.getText();
282
338
  TextInlineImageSpan.possiblyUpdateInlineImageSpans(spannable, view);
283
339
  }
340
+
341
+ // Ensure that selection is handled correctly on text update
342
+ boolean isCurrentSelectionEmpty = view.getSelectionStart() == view.getSelectionEnd();
343
+ int selectionStart = update.getSelectionStart();
344
+ int selectionEnd = update.getSelectionEnd();
345
+ if ((selectionStart == UNSET || selectionEnd == UNSET) && isCurrentSelectionEmpty) {
346
+ // if selection is not set by state, shift current selection to ensure constant gap to
347
+ // text end
348
+ int textLength = view.getText() == null ? 0 : view.getText().length();
349
+ int selectionOffset = textLength - view.getSelectionStart();
350
+ selectionStart = update.getText().length() - selectionOffset;
351
+ selectionEnd = selectionStart;
352
+ }
353
+
284
354
  view.maybeSetTextFromState(update);
285
- view.maybeSetSelection(
286
- update.getJsEventCounter(), update.getSelectionStart(), update.getSelectionEnd());
355
+ view.maybeSetSelection(update.getJsEventCounter(), selectionStart, selectionEnd);
287
356
  }
288
357
  }
289
358
 
@@ -399,7 +468,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
399
468
  }
400
469
 
401
470
  @ReactProp(name = "placeholder")
402
- public void setPlaceholder(ReactEditText view, @Nullable String placeholder) {
471
+ public void setPlaceholder(ReactEditText view, String placeholder) {
403
472
  view.setHint(placeholder);
404
473
  }
405
474
 
@@ -447,34 +516,40 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
447
516
  }
448
517
 
449
518
  // The evil code that follows uses reflection to achieve this on Android 8.1 and below.
450
- // Based on
451
- // http://stackoverflow.com/questions/25996032/how-to-change-programatically-edittext-cursor-color-in-android.
452
- try {
453
- // Get the original cursor drawable resource.
454
- Field cursorDrawableResField = TextView.class.getDeclaredField("mCursorDrawableRes");
455
- cursorDrawableResField.setAccessible(true);
456
- int drawableResId = cursorDrawableResField.getInt(view);
457
-
458
- // The view has no cursor drawable.
459
- if (drawableResId == 0) {
460
- return;
461
- }
519
+ // Based on https://tinyurl.com/3vff8lyu https://tinyurl.com/vehggzs9
520
+ for (int i = 0; i < DRAWABLE_RESOURCES.length; i++) {
521
+ try {
522
+ Field drawableResourceField = TextView.class.getDeclaredField(DRAWABLE_RESOURCES[i]);
523
+ drawableResourceField.setAccessible(true);
524
+ int resourceId = drawableResourceField.getInt(view);
462
525
 
463
- Drawable drawable = ContextCompat.getDrawable(view.getContext(), drawableResId);
464
- drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
465
- Drawable[] drawables = {drawable, drawable};
466
-
467
- // Update the current cursor drawable with the new one.
468
- Field editorField = TextView.class.getDeclaredField("mEditor");
469
- editorField.setAccessible(true);
470
- Object editor = editorField.get(view);
471
- Field cursorDrawableField = editor.getClass().getDeclaredField("mCursorDrawable");
472
- cursorDrawableField.setAccessible(true);
473
- cursorDrawableField.set(editor, drawables);
474
- } catch (NoSuchFieldException ex) {
475
- // Ignore errors to avoid crashing if these private fields don't exist on modified
476
- // or future android versions.
477
- } catch (IllegalAccessException ex) {
526
+ // The view has no cursor drawable.
527
+ if (resourceId == 0) {
528
+ return;
529
+ }
530
+
531
+ Drawable drawable = ContextCompat.getDrawable(view.getContext(), resourceId);
532
+
533
+ Drawable drawableCopy = drawable.mutate();
534
+ drawableCopy.setColorFilter(color, PorterDuff.Mode.SRC_IN);
535
+
536
+ Field editorField = TextView.class.getDeclaredField("mEditor");
537
+ editorField.setAccessible(true);
538
+ Object editor = editorField.get(view);
539
+
540
+ Field cursorDrawableField = editor.getClass().getDeclaredField(DRAWABLE_FIELDS[i]);
541
+ cursorDrawableField.setAccessible(true);
542
+ if (DRAWABLE_RESOURCES[i] == "mCursorDrawableRes") {
543
+ Drawable[] drawables = {drawableCopy, drawableCopy};
544
+ cursorDrawableField.set(editor, drawables);
545
+ } else {
546
+ cursorDrawableField.set(editor, drawableCopy);
547
+ }
548
+ } catch (NoSuchFieldException ex) {
549
+ // Ignore errors to avoid crashing if these private fields don't exist on modified
550
+ // or future android versions.
551
+ } catch (IllegalAccessException ex) {
552
+ }
478
553
  }
479
554
  }
480
555
 
@@ -518,7 +593,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
518
593
  view.setTextColor(defaultContextTextColor);
519
594
  } else {
520
595
  Context c = view.getContext();
521
- ReactSoftException.logSoftException(
596
+ ReactSoftExceptionLogger.logSoftException(
522
597
  TAG,
523
598
  new IllegalStateException(
524
599
  "Could not get default text color from View Context: "
@@ -655,39 +730,16 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
655
730
  view.setFilters(newFilters);
656
731
  }
657
732
 
658
- @ReactProp(name = "autoCompleteType")
659
- public void setTextContentType(ReactEditText view, @Nullable String autoCompleteType) {
660
- if (autoCompleteType == null) {
733
+ @ReactProp(name = "autoComplete")
734
+ public void setTextContentType(ReactEditText view, @Nullable String autoComplete) {
735
+ if (autoComplete == null) {
661
736
  setImportantForAutofill(view, View.IMPORTANT_FOR_AUTOFILL_NO);
662
- } else if ("username".equals(autoCompleteType)) {
663
- setAutofillHints(view, View.AUTOFILL_HINT_USERNAME);
664
- } else if ("password".equals(autoCompleteType)) {
665
- setAutofillHints(view, View.AUTOFILL_HINT_PASSWORD);
666
- } else if ("email".equals(autoCompleteType)) {
667
- setAutofillHints(view, View.AUTOFILL_HINT_EMAIL_ADDRESS);
668
- } else if ("name".equals(autoCompleteType)) {
669
- setAutofillHints(view, View.AUTOFILL_HINT_NAME);
670
- } else if ("tel".equals(autoCompleteType)) {
671
- setAutofillHints(view, View.AUTOFILL_HINT_PHONE);
672
- } else if ("street-address".equals(autoCompleteType)) {
673
- setAutofillHints(view, View.AUTOFILL_HINT_POSTAL_ADDRESS);
674
- } else if ("postal-code".equals(autoCompleteType)) {
675
- setAutofillHints(view, View.AUTOFILL_HINT_POSTAL_CODE);
676
- } else if ("cc-number".equals(autoCompleteType)) {
677
- setAutofillHints(view, View.AUTOFILL_HINT_CREDIT_CARD_NUMBER);
678
- } else if ("cc-csc".equals(autoCompleteType)) {
679
- setAutofillHints(view, View.AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE);
680
- } else if ("cc-exp".equals(autoCompleteType)) {
681
- setAutofillHints(view, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE);
682
- } else if ("cc-exp-month".equals(autoCompleteType)) {
683
- setAutofillHints(view, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH);
684
- } else if ("cc-exp-year".equals(autoCompleteType)) {
685
- setAutofillHints(view, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR);
686
- } else if ("off".equals(autoCompleteType)) {
737
+ } else if ("off".equals(autoComplete)) {
687
738
  setImportantForAutofill(view, View.IMPORTANT_FOR_AUTOFILL_NO);
739
+ } else if (REACT_PROPS_AUTOFILL_HINTS_MAP.containsKey(autoComplete)) {
740
+ setAutofillHints(view, REACT_PROPS_AUTOFILL_HINTS_MAP.get(autoComplete));
688
741
  } else {
689
- throw new JSApplicationIllegalArgumentException(
690
- "Invalid autoCompleteType: " + autoCompleteType);
742
+ throw new JSApplicationIllegalArgumentException("Invalid autoComplete: " + autoComplete);
691
743
  }
692
744
  }
693
745
 
@@ -0,0 +1,92 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.views.view;
9
+
10
+ import android.annotation.SuppressLint;
11
+ import android.graphics.Canvas;
12
+ import android.os.Build;
13
+ import java.lang.reflect.InvocationTargetException;
14
+ import java.lang.reflect.Method;
15
+ import javax.annotation.Nullable;
16
+
17
+ /**
18
+ * Copied from <a
19
+ * href="https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/CanvasUtils.android.kt;drc=3b2dde134afab8d58b9c39ad4820eaf9a6e014a9">
20
+ * Compose canvas utils </a>
21
+ */
22
+ public class CanvasUtil {
23
+ private CanvasUtil() {}
24
+
25
+ private @Nullable static Method mReorderBarrierMethod = null;
26
+ private @Nullable static Method mInorderBarrierMethod = null;
27
+ private static boolean mOrderMethodsFetched = false;
28
+
29
+ /**
30
+ * Enables Z support for the Canvas. The method is publicly available starting from API 29 and was
31
+ * hidden before, so we have to resort to reflection tricks to ensure we can use this API.
32
+ */
33
+ @SuppressLint({"SoonBlockedPrivateApi", "PrivateApi"})
34
+ public static void enableZ(Canvas canvas, boolean enable) {
35
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
36
+ return;
37
+ }
38
+
39
+ if (Build.VERSION.SDK_INT >= 29) {
40
+ if (enable) {
41
+ canvas.enableZ();
42
+ } else {
43
+ canvas.disableZ();
44
+ }
45
+ } else {
46
+ fetchOrderMethods();
47
+ try {
48
+ if (enable && mReorderBarrierMethod != null) {
49
+ mReorderBarrierMethod.invoke(canvas);
50
+ }
51
+ if (!enable && mInorderBarrierMethod != null) {
52
+ mInorderBarrierMethod.invoke(canvas);
53
+ }
54
+ } catch (IllegalAccessException | InvocationTargetException ignore) {
55
+ // Do nothing
56
+ }
57
+ }
58
+ }
59
+
60
+ private static void fetchOrderMethods() {
61
+ if (!mOrderMethodsFetched) {
62
+ try {
63
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.P) {
64
+ // use double reflection to avoid grey list on P
65
+ Method getDeclaredMethod =
66
+ Class.class.getDeclaredMethod("getDeclaredMethod", String.class, Class[].class);
67
+ mReorderBarrierMethod =
68
+ (Method) getDeclaredMethod.invoke(Canvas.class, "insertReorderBarrier", new Class[0]);
69
+ mInorderBarrierMethod =
70
+ (Method) getDeclaredMethod.invoke(Canvas.class, "insertInorderBarrier", new Class[0]);
71
+ } else {
72
+ mReorderBarrierMethod = Canvas.class.getDeclaredMethod("insertReorderBarrier");
73
+ mInorderBarrierMethod = Canvas.class.getDeclaredMethod("insertInorderBarrier");
74
+ }
75
+
76
+ if (mReorderBarrierMethod == null || mInorderBarrierMethod == null) {
77
+ return;
78
+ }
79
+
80
+ mReorderBarrierMethod.setAccessible(true);
81
+ mInorderBarrierMethod.setAccessible(true);
82
+ } catch (IllegalAccessException ignore) {
83
+ // Do nothing
84
+ } catch (InvocationTargetException ignore) {
85
+ // Do nothing
86
+ } catch (NoSuchMethodException ignore) {
87
+ // Do nothing
88
+ }
89
+ mOrderMethodsFetched = true;
90
+ }
91
+ }
92
+ }
@@ -89,6 +89,7 @@ public class ReactViewBackgroundDrawable extends Drawable {
89
89
  private @Nullable Path mOuterClipPathForBorderRadius;
90
90
  private @Nullable Path mPathForBorderRadiusOutline;
91
91
  private @Nullable Path mPathForBorder;
92
+ private Path mPathForSingleBorder = new Path();
92
93
  private @Nullable Path mCenterDrawPath;
93
94
  private @Nullable RectF mInnerClipTempRectForBorderRadius;
94
95
  private @Nullable RectF mOuterClipTempRectForBorderRadius;
@@ -968,6 +969,14 @@ public class ReactViewBackgroundDrawable extends Drawable {
968
969
  mPaint.setPathEffect(mPathEffectForBorderStyle);
969
970
  }
970
971
 
972
+ private void updatePathEffect(int borderWidth) {
973
+ PathEffect pathEffectForBorderStyle = null;
974
+ if (mBorderStyle != null) {
975
+ pathEffectForBorderStyle = BorderStyle.getPathEffect(mBorderStyle, borderWidth);
976
+ }
977
+ mPaint.setPathEffect(pathEffectForBorderStyle);
978
+ }
979
+
971
980
  /** For rounded borders we use default "borderWidth" property. */
972
981
  public float getFullBorderWidth() {
973
982
  return (mBorderWidth != null && !YogaConstants.isUndefined(mBorderWidth.getRaw(Spacing.ALL)))
@@ -1083,6 +1092,7 @@ public class ReactViewBackgroundDrawable extends Drawable {
1083
1092
  colorTop,
1084
1093
  colorRight,
1085
1094
  colorBottom);
1095
+
1086
1096
  if (fastBorderColor != 0) {
1087
1097
  if (Color.alpha(fastBorderColor) != 0) {
1088
1098
  // Border color is not transparent.
@@ -1090,21 +1100,42 @@ public class ReactViewBackgroundDrawable extends Drawable {
1090
1100
  int bottom = bounds.bottom;
1091
1101
 
1092
1102
  mPaint.setColor(fastBorderColor);
1103
+ mPaint.setStyle(Paint.Style.STROKE);
1093
1104
  if (borderLeft > 0) {
1094
- int leftInset = left + borderLeft;
1095
- canvas.drawRect(left, top, leftInset, bottom - borderBottom, mPaint);
1105
+ mPathForSingleBorder.reset();
1106
+ int width = Math.round(borderWidth.left);
1107
+ updatePathEffect(width);
1108
+ mPaint.setStrokeWidth(width);
1109
+ mPathForSingleBorder.moveTo(left, top - borderWidth.top / 2);
1110
+ mPathForSingleBorder.lineTo(left, bottom + borderWidth.bottom / 2);
1111
+ canvas.drawPath(mPathForSingleBorder, mPaint);
1096
1112
  }
1097
1113
  if (borderTop > 0) {
1098
- int topInset = top + borderTop;
1099
- canvas.drawRect(left + borderLeft, top, right, topInset, mPaint);
1114
+ mPathForSingleBorder.reset();
1115
+ int width = Math.round(borderWidth.top);
1116
+ updatePathEffect(width);
1117
+ mPaint.setStrokeWidth(width);
1118
+ mPathForSingleBorder.moveTo(left, top);
1119
+ mPathForSingleBorder.lineTo(right, top);
1120
+ canvas.drawPath(mPathForSingleBorder, mPaint);
1100
1121
  }
1101
1122
  if (borderRight > 0) {
1102
- int rightInset = right - borderRight;
1103
- canvas.drawRect(rightInset, top + borderTop, right, bottom, mPaint);
1123
+ mPathForSingleBorder.reset();
1124
+ int width = Math.round(borderWidth.right);
1125
+ updatePathEffect(width);
1126
+ mPaint.setStrokeWidth(width);
1127
+ mPathForSingleBorder.moveTo(right, top - borderWidth.top / 2);
1128
+ mPathForSingleBorder.lineTo(right, bottom + borderWidth.bottom / 2);
1129
+ canvas.drawPath(mPathForSingleBorder, mPaint);
1104
1130
  }
1105
1131
  if (borderBottom > 0) {
1106
- int bottomInset = bottom - borderBottom;
1107
- canvas.drawRect(left, bottomInset, right - borderRight, bottom, mPaint);
1132
+ mPathForSingleBorder.reset();
1133
+ int width = Math.round(borderWidth.bottom);
1134
+ updatePathEffect(width);
1135
+ mPaint.setStrokeWidth(width);
1136
+ mPathForSingleBorder.moveTo(left, bottom);
1137
+ mPathForSingleBorder.lineTo(right, bottom);
1138
+ canvas.drawPath(mPathForSingleBorder, mPaint);
1108
1139
  }
1109
1140
  }
1110
1141
  } else {