react-native-tvos 0.79.3-0 → 0.80.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1450) hide show
  1. package/Libraries/Alert/Alert.d.ts +4 -1
  2. package/Libraries/Alert/Alert.js +3 -0
  3. package/Libraries/Alert/RCTAlertManager.js +17 -0
  4. package/Libraries/Animated/Animated.js.flow +1 -3
  5. package/Libraries/Animated/AnimatedEvent.js +4 -3
  6. package/Libraries/Animated/AnimatedExports.js +2 -2
  7. package/Libraries/Animated/AnimatedExports.js.flow +140 -0
  8. package/Libraries/Animated/AnimatedImplementation.js +2 -123
  9. package/Libraries/Animated/Easing.js +13 -15
  10. package/Libraries/Animated/animations/Animation.js +8 -4
  11. package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
  12. package/Libraries/Animated/components/AnimatedScrollView.js +48 -42
  13. package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
  14. package/Libraries/Animated/createAnimatedComponent.js +105 -57
  15. package/Libraries/Animated/nodes/AnimatedNode.js +4 -3
  16. package/Libraries/Animated/nodes/AnimatedProps.js +46 -26
  17. package/Libraries/Animated/nodes/AnimatedValue.js +16 -7
  18. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  19. package/Libraries/AppDelegate/RCTAppSetupUtils.h +2 -0
  20. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +6 -0
  21. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +4 -4
  22. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +6 -5
  23. package/Libraries/AppDelegate/RCTDependencyProvider.h +2 -0
  24. package/Libraries/AppDelegate/RCTReactNativeFactory.h +4 -0
  25. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +54 -40
  26. package/Libraries/AppDelegate/RCTRootViewFactory.h +9 -0
  27. package/Libraries/AppDelegate/RCTRootViewFactory.mm +14 -6
  28. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -11
  29. package/Libraries/AppState/AppState.js +7 -2
  30. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  31. package/Libraries/BatchedBridge/NativeModules.js +2 -0
  32. package/Libraries/Blob/BlobManager.js +1 -0
  33. package/Libraries/Blob/FileReader.js +219 -8
  34. package/Libraries/Blob/RCTBlobCollector.mm +1 -1
  35. package/Libraries/Blob/RCTBlobManager.h +0 -4
  36. package/Libraries/Blob/RCTBlobManager.mm +4 -21
  37. package/Libraries/Blob/RCTFileReaderModule.mm +2 -2
  38. package/Libraries/Blob/React-RCTBlob.podspec +4 -14
  39. package/Libraries/Blob/URL.js +24 -11
  40. package/Libraries/Blob/URLSearchParams.js +106 -31
  41. package/Libraries/Blob/URLSearchParams.js.flow +12 -7
  42. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
  43. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
  44. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -0
  45. package/Libraries/Components/Button.js +1 -1
  46. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
  47. package/Libraries/{NewAppScreen/components/Colors.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +6 -10
  48. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
  49. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
  50. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
  51. package/Libraries/Components/Keyboard/Keyboard.js +5 -3
  52. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
  53. package/Libraries/Components/Pressable/Pressable.js +23 -7
  54. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +25 -3
  55. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
  56. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  57. package/Libraries/Components/ScrollView/ScrollView.d.ts +3 -3
  58. package/Libraries/Components/ScrollView/ScrollView.js +132 -122
  59. package/Libraries/Components/StaticRenderer.js +1 -1
  60. package/Libraries/Components/Switch/Switch.d.ts +3 -0
  61. package/Libraries/Components/Switch/Switch.js +8 -4
  62. package/Libraries/Components/TV/TVEventControl.js +3 -1
  63. package/Libraries/Components/TV/TVEventHandler.js +21 -13
  64. package/Libraries/Components/TV/TVFocusEventHandler.js +1 -1
  65. package/Libraries/Components/TV/TVFocusGuideView.js +3 -8
  66. package/Libraries/Components/TV/tagForComponentOrHandle.js +2 -2
  67. package/Libraries/Components/TV/useTVEventHandler.js +1 -1
  68. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -13
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
  70. package/Libraries/Components/TextInput/TextInput.d.ts +76 -33
  71. package/Libraries/Components/TextInput/TextInput.flow.js +106 -55
  72. package/Libraries/Components/TextInput/TextInput.js +94 -1029
  73. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  74. package/Libraries/{Modal/ModalInjection.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -5
  75. package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
  76. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
  77. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
  78. package/Libraries/Components/Touchable/Touchable.js +5 -5
  79. package/Libraries/Components/Touchable/TouchableBounce.js +14 -7
  80. package/Libraries/Components/Touchable/TouchableHighlight.js +14 -10
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -6
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +14 -7
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  84. package/Libraries/Components/View/View.js +21 -23
  85. package/Libraries/Components/View/ViewAccessibility.d.ts +15 -0
  86. package/Libraries/Components/View/ViewAccessibility.js +25 -1
  87. package/Libraries/Components/View/ViewNativeComponent.js +2 -2
  88. package/Libraries/Components/View/ViewPropTypes.d.ts +16 -0
  89. package/Libraries/Components/View/ViewPropTypes.js +49 -3
  90. package/Libraries/Core/ReactNativeVersion.js +2 -2
  91. package/Libraries/Core/setUpReactDevTools.js +5 -5
  92. package/Libraries/Debugging/DebuggingOverlayRegistry.js +3 -3
  93. package/Libraries/EventEmitter/NativeEventEmitter.js +9 -4
  94. package/Libraries/Image/AssetSourceResolver.js +17 -4
  95. package/Libraries/Image/Image.d.ts +26 -10
  96. package/Libraries/Image/Image.js +17 -0
  97. package/Libraries/Image/Image.js.flow +5 -5
  98. package/Libraries/Image/ImageBackground.js +2 -0
  99. package/Libraries/Image/ImageInjection.js +1 -1
  100. package/Libraries/Image/ImageProps.js +22 -17
  101. package/Libraries/Image/ImageSource.js +3 -1
  102. package/Libraries/Image/ImageSourceUtils.js +4 -2
  103. package/Libraries/Image/ImageTypes.flow.js +1 -1
  104. package/Libraries/Image/RCTImageLoader.mm +63 -19
  105. package/Libraries/Image/RCTImageStoreManager.mm +10 -32
  106. package/Libraries/Image/RCTImageURLLoader.h +19 -1
  107. package/Libraries/Image/RCTUIImageViewAnimated.mm +6 -23
  108. package/Libraries/Image/React-RCTImage.podspec +2 -7
  109. package/Libraries/Interaction/InteractionManager.d.ts +13 -0
  110. package/Libraries/Interaction/InteractionManager.js +1 -1
  111. package/Libraries/Interaction/PanResponder.js +3 -3
  112. package/Libraries/Interaction/TaskQueue.js +1 -0
  113. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  114. package/Libraries/Linking/Linking.js +1 -1
  115. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -6
  116. package/Libraries/Lists/FlatList.d.ts +2 -2
  117. package/Libraries/Lists/FlatList.js +8 -11
  118. package/Libraries/Lists/SectionList.js +39 -42
  119. package/Libraries/Lists/SectionListModern.js +25 -34
  120. package/Libraries/Lists/VirtualizedList.js +1 -0
  121. package/Libraries/Lists/VirtualizedSectionList.js +1 -0
  122. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  123. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  124. package/Libraries/Modal/Modal.js +33 -7
  125. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +118 -124
  126. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +4 -7
  127. package/Libraries/NativeComponent/BaseViewConfig.android.js +8 -6
  128. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -0
  129. package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
  130. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
  131. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  132. package/Libraries/Network/RCTDataRequestHandler.mm +10 -6
  133. package/Libraries/Network/RCTFileRequestHandler.mm +11 -7
  134. package/Libraries/Network/RCTHTTPRequestHandler.mm +1 -2
  135. package/Libraries/Network/RCTInspectorNetworkReporter.h +32 -0
  136. package/Libraries/Network/RCTInspectorNetworkReporter.mm +88 -0
  137. package/Libraries/Network/RCTNetworking.android.js +1 -1
  138. package/Libraries/Network/RCTNetworking.h +0 -4
  139. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  140. package/Libraries/Network/RCTNetworking.js +17 -0
  141. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  142. package/Libraries/Network/RCTNetworking.mm +32 -33
  143. package/Libraries/Network/React-RCTNetwork.podspec +6 -7
  144. package/Libraries/Network/XMLHttpRequest.js +781 -10
  145. package/Libraries/Performance/Systrace.js +7 -7
  146. package/Libraries/Pressability/Pressability.js +1 -1
  147. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -6
  148. package/Libraries/ReactNative/AppContainer-dev.js +10 -9
  149. package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
  150. package/Libraries/ReactNative/AppRegistry.js +2 -322
  151. package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
  152. package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
  153. package/Libraries/ReactNative/FabricUIManager.js +10 -0
  154. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -4
  155. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
  156. package/Libraries/ReactNative/RendererImplementation.js +10 -5
  157. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -0
  158. package/Libraries/ReactNative/renderApplication.js +9 -0
  159. package/Libraries/ReactNativeDependencies/Package.swift +2 -2
  160. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -3
  161. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
  162. package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
  163. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
  164. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
  165. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
  166. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
  167. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
  168. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -3
  169. package/Libraries/Settings/React-RCTSettings.podspec +3 -7
  170. package/Libraries/Settings/Settings.ios.js +1 -0
  171. package/Libraries/Settings/Settings.js +13 -19
  172. package/Libraries/Settings/SettingsFallback.js +33 -0
  173. package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
  174. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +6 -0
  175. package/Libraries/StyleSheet/Rect.js +1 -0
  176. package/Libraries/StyleSheet/StyleSheet.js +31 -200
  177. package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
  178. package/Libraries/StyleSheet/StyleSheetExports.js +210 -0
  179. package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
  180. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  181. package/Libraries/StyleSheet/StyleSheetTypes.js +130 -52
  182. package/Libraries/StyleSheet/flattenStyle.js +14 -4
  183. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  184. package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
  185. package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +1 -1
  186. package/Libraries/Text/Text.d.ts +2 -5
  187. package/Libraries/Text/Text.js +3 -3
  188. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +11 -0
  189. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +96 -0
  190. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +1 -0
  191. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +4 -4
  192. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +11 -0
  193. package/Libraries/Text/TextNativeComponent.js +0 -4
  194. package/Libraries/Text/TextProps.js +5 -33
  195. package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
  196. package/Libraries/{Blob/__mocks__/BlobModule.js → Types/CodegenTypesNamespace.js} +4 -6
  197. package/Libraries/Types/CoreEventTypes.d.ts +10 -1
  198. package/Libraries/Types/CoreEventTypes.js +4 -6
  199. package/Libraries/Utilities/Appearance.js +2 -0
  200. package/Libraries/Utilities/BackHandler.ios.js +9 -4
  201. package/Libraries/Utilities/BackHandler.js +17 -0
  202. package/Libraries/Utilities/DeviceInfo.js +2 -0
  203. package/Libraries/Utilities/Dimensions.js +1 -1
  204. package/Libraries/Utilities/Platform.js +17 -0
  205. package/Libraries/Utilities/PlatformTypes.js +11 -3
  206. package/Libraries/Utilities/ReactNativeTestTools.js +2 -2
  207. package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
  208. package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
  209. package/Libraries/Utilities/setAndForwardRef.js +6 -6
  210. package/Libraries/Vibration/React-RCTVibration.podspec +3 -7
  211. package/Libraries/WebSocket/WebSocket.js +313 -8
  212. package/Libraries/vendor/core/ErrorUtils.js +28 -2
  213. package/Libraries/vendor/emitter/EventEmitter.js +6 -2
  214. package/README-core.md +0 -3
  215. package/React/Base/RCTBridge.h +5 -3
  216. package/React/Base/RCTBridge.mm +95 -13
  217. package/React/Base/RCTBridgeProxy.mm +1 -1
  218. package/React/Base/RCTUtils.h +8 -5
  219. package/React/Base/{RCTUtils.m → RCTUtils.mm} +55 -28
  220. package/React/Base/RCTVersion.m +2 -2
  221. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +3 -8
  222. package/React/CoreModules/RCTAccessibilityManager.mm +9 -11
  223. package/React/CoreModules/RCTAppState.mm +11 -9
  224. package/React/CoreModules/RCTAppearance.mm +2 -14
  225. package/React/CoreModules/RCTDevSettings.mm +0 -1
  226. package/React/CoreModules/RCTDeviceInfo.mm +50 -19
  227. package/React/CoreModules/RCTLogBox.mm +1 -1
  228. package/React/CoreModules/RCTPerfMonitor.mm +1 -1
  229. package/React/CoreModules/RCTPlatform.mm +25 -20
  230. package/React/CoreModules/RCTStatusBarManager.mm +18 -13
  231. package/React/CoreModules/RCTTVNavigationEventEmitter.mm +0 -2
  232. package/React/CoreModules/React-CoreModules.podspec +4 -18
  233. package/React/CxxBridge/RCTCxxBridge.mm +6 -18
  234. package/React/CxxModule/RCTNativeModule.mm +1 -1
  235. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +173 -133
  236. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +600 -425
  237. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +5 -0
  238. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +3 -4
  239. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.h +1 -1
  240. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +2 -2
  241. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +2 -4
  242. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +2 -2
  243. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +31 -0
  244. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +12 -0
  245. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.h +1 -1
  246. package/React/Fabric/Mounting/ComponentViews/Text/RCTAccessibilityElement.mm +2 -2
  247. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentAccessibilityProvider.mm +13 -8
  248. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +62 -15
  249. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +47 -4
  250. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  251. package/React/Fabric/Mounting/ComponentViews/View/RCTViewAccessibilityElement.h +28 -0
  252. package/React/Fabric/Mounting/ComponentViews/View/RCTViewAccessibilityElement.mm +83 -0
  253. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +11 -0
  254. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +127 -29
  255. package/React/Fabric/Mounting/RCTComponentViewFactory.h +0 -6
  256. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +36 -31
  257. package/React/Fabric/RCTScheduler.mm +6 -0
  258. package/React/Fabric/Utils/RCTBoxShadow.h +2 -4
  259. package/React/Fabric/Utils/RCTBoxShadow.mm +92 -224
  260. package/React/Fabric/Utils/RCTGradientUtils.h +21 -0
  261. package/React/Fabric/Utils/RCTGradientUtils.mm +204 -0
  262. package/React/Fabric/Utils/RCTLinearGradient.mm +3 -192
  263. package/React/Fabric/Utils/{RCTViewFinder.h → RCTRadialGradient.h} +3 -2
  264. package/React/Fabric/Utils/RCTRadialGradient.mm +229 -0
  265. package/React/Profiler/RCTProfile.m +1 -1
  266. package/React/React-RCTFBReactNativeSpec.podspec +3 -13
  267. package/React/React-RCTFabric.podspec +6 -14
  268. package/React/Runtime/React-RCTRuntime.podspec +4 -18
  269. package/React/Views/RCTBorderDrawing.h +5 -2
  270. package/React/Views/RCTBorderDrawing.m +29 -12
  271. package/React/Views/RCTFont.mm +0 -4
  272. package/React/Views/RCTView.m +4 -4
  273. package/React/Views/ScrollView/RCTScrollView.m +1 -1
  274. package/React-Core.podspec +4 -20
  275. package/ReactAndroid/api/ReactAndroid.api +617 -1147
  276. package/ReactAndroid/build.gradle.kts +4 -2
  277. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +9 -15
  278. package/ReactAndroid/external-artifacts/build.gradle.kts +6 -4
  279. package/ReactAndroid/gradle.properties +4 -2
  280. package/ReactAndroid/hermes-engine/build.gradle.kts +7 -4
  281. package/ReactAndroid/proguard-rules.pro +0 -6
  282. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutor.kt +2 -2
  283. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +3 -2
  284. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +11 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.kt +56 -0
  286. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.kt +5 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/JSEngineResolutionAlgorithm.kt +4 -0
  288. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java +14 -3
  289. package/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.kt +54 -0
  290. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +15 -4
  291. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +20 -8
  292. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +4 -12
  293. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +88 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +20 -56
  295. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +2 -2
  296. package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +3 -3
  297. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +41 -42
  298. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +9 -2
  299. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +9 -0
  300. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackage.kt +2 -2
  301. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +0 -1
  302. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageLogger.kt +3 -0
  303. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +3 -3
  304. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +12 -12
  305. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.kt +10 -10
  306. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeValueListener.kt +2 -2
  307. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +1 -1
  308. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +0 -6
  309. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +1072 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +774 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/animated/ValueAnimatedNode.kt +1 -1
  312. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ActivityEventListener.kt +26 -0
  313. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.java +9 -7
  314. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseActivityEventListener.kt +29 -0
  315. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +3 -1
  316. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +14 -3
  317. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt +36 -0
  318. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +35 -0
  319. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +2 -2
  320. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +17 -13
  321. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt +214 -0
  322. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxCallbackImpl.kt +1 -0
  323. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +10 -1
  324. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +56 -0
  325. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Dynamic.kt +3 -3
  326. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.kt +61 -0
  327. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromMap.kt +80 -0
  328. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromObject.kt +80 -0
  329. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +6 -0
  330. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.kt +42 -0
  331. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedRunnable.kt +26 -0
  332. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.kt +78 -0
  333. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSBundleLoader.kt +99 -0
  334. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSInstance.kt +3 -0
  335. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSONArguments.kt +118 -0
  336. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.java +13 -5
  337. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +142 -0
  338. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptContextHolder.kt +26 -0
  339. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptExecutor.kt +30 -0
  340. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModuleRegistry.java +2 -0
  341. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JsonWriterHelper.kt +129 -0
  342. package/ReactAndroid/src/main/java/com/facebook/react/bridge/LifecycleEventListener.kt +2 -0
  343. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +8 -5
  344. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.java +2 -0
  345. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArgumentsParseException.kt +10 -0
  346. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt +1 -1
  347. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt +1 -1
  348. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +2 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +18 -7
  350. package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +3 -0
  351. package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.java +9 -8
  352. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.java +2 -0
  353. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +5 -7
  354. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +48 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactIgnorableMountingException.kt +6 -6
  356. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java +7 -1
  357. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java +3 -1
  358. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMethod.kt +1 -0
  359. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactModuleWithSpec.kt +2 -2
  360. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +31 -0
  361. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.kt +10 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +1 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableArrayBuilder.kt +61 -0
  364. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMapBuilder.kt +61 -0
  365. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Systrace.kt +2 -2
  366. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.kt +6 -5
  367. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManagerProvider.kt +3 -0
  368. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.kt +69 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +13 -7
  370. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.kt +4 -3
  371. package/ReactAndroid/src/main/java/com/facebook/react/common/ClassFinder.kt +3 -4
  372. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +2 -2
  373. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.kt +2 -0
  374. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/LegacyArchitectureShadowNodeWithCxxImpl.kt +23 -0
  375. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/InteropLegacyArchitecture.kt +16 -0
  376. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/LegacyArchitecture.kt +1 -1
  377. package/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/LegacyArchitectureLogger.kt +66 -0
  378. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +1 -1
  379. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +1 -1
  380. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +7 -7
  381. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +10 -12
  382. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +98 -0
  383. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +81 -0
  384. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +323 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +118 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +159 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.kt +87 -0
  388. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +1 -1
  389. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +413 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +903 -0
  391. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +57 -0
  392. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DoubleTapReloadRecognizer.kt +1 -1
  393. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -1
  394. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.kt +4 -4
  395. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.kt +167 -0
  396. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReactInstanceDevHelper.kt +44 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt +10 -16
  398. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.kt +251 -0
  399. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevBundleDownloadListener.kt +1 -1
  400. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +11 -13
  401. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +3 -3
  402. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/StackFrame.kt +2 -2
  403. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +176 -0
  404. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt +4 -5
  405. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +177 -86
  406. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +6 -2
  407. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +6 -11
  408. package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.kt +103 -0
  409. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.kt +13 -11
  410. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +8 -12
  411. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +5 -9
  412. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +7 -15
  413. package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/UIBlock.kt +2 -2
  414. package/ReactAndroid/src/main/java/com/facebook/react/fabric/interop/UIBlockViewResolver.kt +2 -2
  415. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/LayoutMetricsConversions.kt +6 -6
  416. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +16 -39
  417. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +24 -25
  418. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +12 -5
  419. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/BatchMountItem.kt +2 -2
  420. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem.kt +3 -3
  421. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +335 -0
  422. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItem.kt +3 -3
  423. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +7 -7
  424. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.kt +2 -1
  425. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/TaskInterface.kt +1 -1
  426. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +16 -16
  427. package/ReactAndroid/src/main/java/com/facebook/react/internal/SystraceSection.kt +3 -3
  428. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +75 -60
  429. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +120 -100
  430. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +25 -21
  431. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +27 -23
  432. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +135 -113
  433. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +1 -3
  434. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
  435. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +25 -21
  436. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt +84 -0
  437. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +0 -2
  438. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEvent.kt +14 -4
  439. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +12 -2
  440. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.kt +293 -0
  441. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +405 -0
  442. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +63 -0
  443. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt +2 -2
  444. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt +5 -0
  445. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt +7 -0
  446. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +1 -5
  447. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskEventListener.kt +3 -2
  448. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +13 -12
  449. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +2 -2
  450. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +336 -0
  451. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +113 -0
  452. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/FileReaderModule.kt +99 -0
  453. package/ReactAndroid/src/main/java/com/facebook/react/modules/common/ModuleDataCleaner.kt +4 -4
  454. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.kt +4 -0
  455. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/HeadlessJsTaskSupportModule.kt +1 -1
  456. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JSTimers.kt +4 -4
  457. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/PermissionAwareActivity.kt +2 -0
  458. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/PermissionListener.kt +1 -1
  459. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +1 -1
  460. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevMenuModule.kt +5 -1
  461. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevSettingsModule.kt +4 -0
  462. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +1 -0
  463. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +14 -8
  464. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/SourceCodeModule.kt +4 -0
  465. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +12 -17
  466. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.kt +209 -0
  467. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.kt +205 -0
  468. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  469. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.kt +18 -18
  470. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +6 -5
  471. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +11 -22
  472. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +35 -29
  473. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +1 -1
  474. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +846 -0
  475. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpCompat.java +4 -1
  476. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressResponseBody.kt +57 -0
  477. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.kt +2 -2
  478. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.kt +6 -6
  479. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/SoundManagerModule.kt +4 -4
  480. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +13 -12
  481. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +14 -3
  482. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.kt +6 -5
  483. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +20 -0
  484. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt +7 -11
  485. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/FileIoHandler.kt +161 -0
  486. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.kt +130 -0
  487. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +10 -2
  488. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.kt +156 -0
  489. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/RequestOnlyHandler.kt +1 -1
  490. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +112 -0
  491. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +10 -4
  492. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +159 -0
  493. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactStateTracker.kt +1 -1
  494. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +113 -0
  495. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +1 -1
  496. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +97 -75
  497. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +11 -10
  498. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +1 -1
  499. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +599 -0
  500. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactLifecycleStateManager.kt +91 -0
  501. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceImpl.kt +217 -0
  502. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +12 -11
  503. package/ReactAndroid/src/main/java/com/facebook/react/runtime/cxxreactpackage/CxxReactPackage.kt +4 -1
  504. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Continuation.kt +2 -2
  505. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.kt +418 -0
  506. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/TaskCompletionSource.kt +1 -1
  507. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +31 -25
  508. package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
  509. package/ReactAndroid/src/main/java/com/facebook/react/touch/JSResponderHandler.kt +9 -9
  510. package/ReactAndroid/src/main/java/com/facebook/react/touch/OnInterceptTouchEventListener.kt +4 -4
  511. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactHitSlopView.kt +2 -2
  512. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +5 -5
  513. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.kt +2 -11
  514. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.kt +3 -12
  515. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +7 -2
  516. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +64 -0
  517. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +7 -5
  518. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +1 -1
  519. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolver.kt +1 -1
  520. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +59 -7
  521. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutDirectionUtil.kt +7 -0
  522. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +8 -0
  523. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +1 -10
  524. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +3 -1
  525. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +13 -5
  526. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +11 -2
  527. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NoSuchNativeViewException.kt +12 -1
  528. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/OnLayoutEvent.kt +93 -0
  529. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.kt +1 -1
  530. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +16 -1
  531. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +146 -0
  532. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroup.kt +11 -9
  533. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroupHelper.kt +63 -0
  534. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactCompoundView.kt +3 -3
  535. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +3 -3
  536. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +2 -2
  537. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +2 -2
  538. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +3 -0
  539. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +10 -1
  540. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactStylesDiffMap.kt +68 -0
  541. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.kt +6 -0
  542. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReferenceStateWrapper.kt +13 -0
  543. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.kt +103 -0
  544. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/Spacing.kt +2 -2
  545. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +8 -11
  546. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +435 -0
  547. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +223 -0
  548. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +3 -3
  549. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +19 -13
  550. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +14 -3
  551. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +31 -15
  552. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstants.kt +92 -0
  553. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +17 -13
  554. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.kt +3 -0
  555. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +27 -22
  556. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewAtIndex.kt +46 -0
  557. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +109 -0
  558. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.kt +87 -0
  559. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +22 -3
  560. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerPropertyUpdater.kt +7 -5
  561. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +9 -4
  562. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +2 -0
  563. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/YogaNodePool.kt +6 -0
  564. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.kt +97 -0
  565. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropGroup.kt +86 -0
  566. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropertyHolder.kt +15 -0
  567. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +5 -1
  568. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +3 -3
  569. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +3 -0
  570. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +3 -1
  571. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +9 -1
  572. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +8 -6
  573. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +10 -10
  574. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.kt +3 -17
  575. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlurEvent.kt +16 -5
  576. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt +206 -0
  577. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +7 -7
  578. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +1 -13
  579. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +16 -43
  580. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +2 -2
  581. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{ReactEventEmitter.kt → EventEmitterImpl.kt} +39 -47
  582. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +33 -43
  583. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FocusEvent.kt +16 -5
  584. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +27 -31
  585. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +2 -0
  586. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +0 -3
  587. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +11 -4
  588. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +12 -8
  589. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/internal/LegacyArchitectureShadowNodeLogger.kt +52 -0
  590. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AbstractLayoutAnimation.kt +128 -0
  591. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AnimatedPropertyType.kt +3 -0
  592. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/BaseLayoutAnimation.kt +85 -0
  593. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +225 -0
  594. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +3 -0
  595. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationType.kt +10 -0
  596. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.kt +12 -0
  597. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.kt +12 -0
  598. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutHandlingAnimation.kt +12 -0
  599. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutUpdateAnimation.kt +10 -1
  600. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/OpacityAnimation.kt +69 -0
  601. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/PositionAndSizeAnimation.kt +87 -0
  602. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.kt +10 -2
  603. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +30 -12
  604. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +36 -22
  605. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +206 -0
  606. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +8 -0
  607. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +2 -38
  608. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +72 -246
  609. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/RadialGradient.kt +375 -0
  610. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +30 -0
  611. package/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.kt +6 -6
  612. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlay.kt +3 -1
  613. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +1 -1
  614. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerClosedEvent.kt +7 -7
  615. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.kt +7 -7
  616. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.kt +8 -8
  617. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.kt +7 -10
  618. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageLoadEvent.kt +1 -1
  619. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +6 -5
  620. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.kt +1 -1
  621. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/MultiSourceHelper.kt +7 -10
  622. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +20 -17
  623. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +20 -28
  624. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +43 -41
  625. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.kt +1 -1
  626. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ShowEvent.kt +1 -1
  627. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +4 -0
  628. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +14 -12
  629. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt +1 -1
  630. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewShadowNode.kt +2 -1
  631. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +172 -0
  632. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +27 -7
  633. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +366 -0
  634. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +36 -7
  635. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +74 -1
  636. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +390 -0
  637. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.kt +4 -2
  638. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +1 -0
  639. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/RefreshEvent.kt +1 -1
  640. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +1 -1
  641. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchEvent.kt +1 -1
  642. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +4 -0
  643. package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -2
  644. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +18 -0
  645. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +418 -0
  646. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +212 -0
  647. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +25 -12
  648. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.kt +6 -6
  649. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextShadowNode.kt +31 -0
  650. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +207 -0
  651. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +6 -2
  652. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +1 -4
  653. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +40 -54
  654. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +4 -10
  655. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +9 -14
  656. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextShadowNode.kt +3 -0
  657. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactVirtualTextViewManager.kt +2 -0
  658. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +30 -8
  659. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributes.java +2 -0
  660. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +237 -121
  661. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextTransform.kt +8 -4
  662. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +140 -0
  663. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +174 -0
  664. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +2 -1
  665. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomLetterSpacingSpan.kt +4 -3
  666. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomLineHeightSpan.kt +3 -3
  667. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +8 -8
  668. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactAbsoluteSizeSpan.kt +1 -1
  669. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactBackgroundColorSpan.kt +1 -1
  670. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactClickableSpan.kt +6 -5
  671. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactForegroundColorSpan.kt +1 -1
  672. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactOpacitySpan.kt +1 -1
  673. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactSpan.kt +1 -1
  674. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactStrikethroughSpan.kt +1 -1
  675. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactTagSpan.kt +2 -2
  676. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactTextPaintHolderSpan.kt +1 -1
  677. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactUnderlineSpan.kt +1 -1
  678. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/SetSpanOperation.kt +5 -5
  679. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +3 -3
  680. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineImageSpan.kt +11 -11
  681. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineViewPlaceholderSpan.kt +4 -7
  682. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.kt +50 -0
  683. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +1331 -0
  684. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.kt +151 -0
  685. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.kt +44 -0
  686. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextContentSizeWatcher.kt +51 -0
  687. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEndEditingEvent.kt +43 -0
  688. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.kt +35 -0
  689. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputLocalData.kt +33 -0
  690. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +1139 -0
  691. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSelectionEvent.kt +46 -0
  692. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +210 -0
  693. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSubmitEditingEvent.kt +40 -0
  694. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputTextWatcher.kt +66 -0
  695. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextScrollWatcher.kt +49 -0
  696. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +45 -0
  697. package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedView.kt +12 -9
  698. package/ReactAndroid/src/main/java/com/facebook/react/views/unimplementedview/ReactUnimplementedViewManager.kt +6 -4
  699. package/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.kt +2 -2
  700. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +37 -8
  701. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +51 -4
  702. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ViewGroupClickEvent.kt +4 -4
  703. package/ReactAndroid/src/main/java/com/facebook/systrace/Systrace.kt +19 -23
  704. package/ReactAndroid/src/main/java/com/facebook/systrace/SystraceMessage.kt +10 -11
  705. package/ReactAndroid/src/main/java/com/facebook/systrace/TraceListener.kt +3 -3
  706. package/ReactAndroid/src/main/jni/CMakeLists.txt +22 -9
  707. package/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt +3 -0
  708. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/CMakeLists.txt +3 -1
  709. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.h +1 -2
  710. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +4 -7
  711. package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +3 -2
  712. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +2 -9
  713. package/ReactAndroid/src/main/jni/react/fabric/EventBeatManager.cpp +3 -8
  714. package/ReactAndroid/src/main/jni/react/fabric/EventBeatManager.h +1 -9
  715. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +12 -0
  716. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +4 -0
  717. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +130 -13
  718. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +9 -0
  719. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +186 -0
  720. package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.h +38 -0
  721. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +10 -0
  722. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  723. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +5 -2
  724. package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.h +2 -1
  725. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +2 -10
  726. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +166 -138
  727. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +34 -28
  728. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/CMakeLists.txt +2 -5
  729. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +3 -7
  730. package/ReactAndroid/src/main/jni/react/hermes/tooling/CMakeLists.txt +2 -0
  731. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +54 -6
  732. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +14 -18
  733. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +10 -17
  734. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +1 -0
  735. package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +9 -14
  736. package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +33 -0
  737. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -15
  738. package/ReactAndroid/src/main/jni/react/jni/SafeReleaseJniRef.cpp +30 -0
  739. package/ReactAndroid/src/main/jni/react/jni/SafeReleaseJniRef.h +12 -1
  740. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +3 -3
  741. package/ReactAndroid/src/main/jni/react/jscexecutor/CMakeLists.txt +2 -0
  742. package/ReactAndroid/src/main/jni/react/jsctooling/CMakeLists.txt +2 -0
  743. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +3 -2
  744. package/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +3 -6
  745. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +10 -0
  746. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h +4 -0
  747. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +4 -1
  748. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +3 -1
  749. package/ReactAndroid/src/main/jni/react/runtime/cxxreactpackage/CMakeLists.txt +4 -7
  750. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +4 -8
  751. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +5 -7
  752. package/ReactAndroid/src/main/jni/react/runtime/jni/JBindingsInstaller.h +2 -4
  753. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +0 -4
  754. package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/CMakeLists.txt +3 -1
  755. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +4 -7
  756. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.cpp +1 -7
  757. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h +4 -3
  758. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.cpp +1 -8
  759. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h +4 -3
  760. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +3 -2
  761. package/ReactAndroid/src/main/jni/third-party/boost/CMakeLists.txt +1 -0
  762. package/ReactAndroid/src/main/jni/third-party/double-conversion/CMakeLists.txt +4 -1
  763. package/ReactAndroid/src/main/jni/third-party/fast_float/CMakeLists.txt +2 -1
  764. package/ReactAndroid/src/main/jni/third-party/fmt/CMakeLists.txt +2 -1
  765. package/ReactAndroid/src/main/jni/third-party/glog/CMakeLists.txt +14 -9
  766. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +5 -0
  767. package/ReactAndroid/src/main/res/devsupport/values-am/strings.xml +6 -0
  768. package/ReactAndroid/src/main/res/shell/values/styles.xml +4 -4
  769. package/ReactAndroid/src/main/res/systeminfo/values/strings.xml +4 -0
  770. package/ReactAndroid/src/main/res/systeminfo/values-af/strings.xml +6 -0
  771. package/ReactAndroid/src/main/res/systeminfo/values-ar/strings.xml +6 -0
  772. package/ReactAndroid/src/main/res/systeminfo/values-az/strings.xml +6 -0
  773. package/ReactAndroid/src/main/res/systeminfo/values-be/strings.xml +6 -0
  774. package/ReactAndroid/src/main/res/systeminfo/values-bg/strings.xml +6 -0
  775. package/ReactAndroid/src/main/res/systeminfo/values-bn/strings.xml +6 -0
  776. package/ReactAndroid/src/main/res/systeminfo/values-ca/strings.xml +6 -0
  777. package/ReactAndroid/src/main/res/systeminfo/values-cs/strings.xml +6 -0
  778. package/ReactAndroid/src/main/res/systeminfo/values-da/strings.xml +6 -0
  779. package/ReactAndroid/src/main/res/systeminfo/values-de/strings.xml +6 -0
  780. package/ReactAndroid/src/main/res/systeminfo/values-el/strings.xml +6 -0
  781. package/ReactAndroid/src/main/res/systeminfo/values-en-rGB/strings.xml +6 -0
  782. package/ReactAndroid/src/main/res/systeminfo/values-es/strings.xml +6 -0
  783. package/ReactAndroid/src/main/res/systeminfo/values-es-rES/strings.xml +6 -0
  784. package/ReactAndroid/src/main/res/systeminfo/values-et/strings.xml +6 -0
  785. package/ReactAndroid/src/main/res/systeminfo/values-fa/strings.xml +6 -0
  786. package/ReactAndroid/src/main/res/systeminfo/values-fi/strings.xml +6 -0
  787. package/ReactAndroid/src/main/res/systeminfo/values-fr/strings.xml +6 -0
  788. package/ReactAndroid/src/main/res/systeminfo/values-fr-rCA/strings.xml +6 -0
  789. package/ReactAndroid/src/main/res/systeminfo/values-gu/strings.xml +6 -0
  790. package/ReactAndroid/src/main/res/systeminfo/values-hi/strings.xml +6 -0
  791. package/ReactAndroid/src/main/res/systeminfo/values-hr/strings.xml +6 -0
  792. package/ReactAndroid/src/main/res/systeminfo/values-hu/strings.xml +6 -0
  793. package/ReactAndroid/src/main/res/systeminfo/values-hy/strings.xml +6 -0
  794. package/ReactAndroid/src/main/res/systeminfo/values-is/strings.xml +6 -0
  795. package/ReactAndroid/src/main/res/systeminfo/values-it/strings.xml +6 -0
  796. package/ReactAndroid/src/main/res/systeminfo/values-iw/strings.xml +6 -0
  797. package/ReactAndroid/src/main/res/systeminfo/values-ja/strings.xml +6 -0
  798. package/ReactAndroid/src/main/res/systeminfo/values-ka/strings.xml +6 -0
  799. package/ReactAndroid/src/main/res/systeminfo/values-kk/strings.xml +6 -0
  800. package/ReactAndroid/src/main/res/systeminfo/values-km/strings.xml +6 -0
  801. package/ReactAndroid/src/main/res/systeminfo/values-kn/strings.xml +6 -0
  802. package/ReactAndroid/src/main/res/systeminfo/values-ko/strings.xml +6 -0
  803. package/ReactAndroid/src/main/res/systeminfo/values-ky/strings.xml +6 -0
  804. package/ReactAndroid/src/main/res/systeminfo/values-lo/strings.xml +6 -0
  805. package/ReactAndroid/src/main/res/systeminfo/values-lt/strings.xml +6 -0
  806. package/ReactAndroid/src/main/res/systeminfo/values-lv/strings.xml +6 -0
  807. package/ReactAndroid/src/main/res/systeminfo/values-mk/strings.xml +6 -0
  808. package/ReactAndroid/src/main/res/systeminfo/values-ml/strings.xml +6 -0
  809. package/ReactAndroid/src/main/res/systeminfo/values-mn/strings.xml +6 -0
  810. package/ReactAndroid/src/main/res/systeminfo/values-mr/strings.xml +6 -0
  811. package/ReactAndroid/src/main/res/systeminfo/values-ms/strings.xml +6 -0
  812. package/ReactAndroid/src/main/res/systeminfo/values-my/strings.xml +6 -0
  813. package/ReactAndroid/src/main/res/systeminfo/values-ne/strings.xml +6 -0
  814. package/ReactAndroid/src/main/res/systeminfo/values-nl/strings.xml +6 -0
  815. package/ReactAndroid/src/main/res/systeminfo/values-pa/strings.xml +6 -0
  816. package/ReactAndroid/src/main/res/systeminfo/values-pl/strings.xml +6 -0
  817. package/ReactAndroid/src/main/res/systeminfo/values-pt/strings.xml +6 -0
  818. package/ReactAndroid/src/main/res/systeminfo/values-pt-rPT/strings.xml +6 -0
  819. package/ReactAndroid/src/main/res/systeminfo/values-ro/strings.xml +6 -0
  820. package/ReactAndroid/src/main/res/systeminfo/values-ru/strings.xml +6 -0
  821. package/ReactAndroid/src/main/res/systeminfo/values-si/strings.xml +6 -0
  822. package/ReactAndroid/src/main/res/systeminfo/values-sk/strings.xml +6 -0
  823. package/ReactAndroid/src/main/res/systeminfo/values-sl/strings.xml +6 -0
  824. package/ReactAndroid/src/main/res/systeminfo/values-sq/strings.xml +6 -0
  825. package/ReactAndroid/src/main/res/systeminfo/values-sr/strings.xml +6 -0
  826. package/ReactAndroid/src/main/res/systeminfo/values-sv/strings.xml +6 -0
  827. package/ReactAndroid/src/main/res/systeminfo/values-sw/strings.xml +6 -0
  828. package/ReactAndroid/src/main/res/systeminfo/values-ta/strings.xml +6 -0
  829. package/ReactAndroid/src/main/res/systeminfo/values-te/strings.xml +6 -0
  830. package/ReactAndroid/src/main/res/systeminfo/values-th/strings.xml +6 -0
  831. package/ReactAndroid/src/main/res/systeminfo/values-tr/strings.xml +6 -0
  832. package/ReactAndroid/src/main/res/systeminfo/values-uk/strings.xml +6 -0
  833. package/ReactAndroid/src/main/res/systeminfo/values-ur/strings.xml +6 -0
  834. package/ReactAndroid/src/main/res/systeminfo/values-vi/strings.xml +6 -0
  835. package/ReactAndroid/src/main/res/systeminfo/values-zh-rCN/strings.xml +6 -0
  836. package/ReactAndroid/src/main/res/systeminfo/values-zh-rHK/strings.xml +6 -0
  837. package/ReactAndroid/src/main/res/systeminfo/values-zh-rTW/strings.xml +6 -0
  838. package/ReactAndroid/src/main/res/systeminfo/values-zu/strings.xml +6 -0
  839. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +15 -0
  840. package/ReactAndroid/src/main/res/views/uimanager/values-am/strings.xml +6 -0
  841. package/ReactCommon/React-Fabric.podspec +4 -59
  842. package/ReactCommon/React-FabricComponents.podspec +4 -40
  843. package/ReactCommon/React-FabricImage.podspec +2 -19
  844. package/ReactCommon/React-Mapbuffer.podspec +2 -2
  845. package/ReactCommon/ReactCommon.podspec +4 -13
  846. package/ReactCommon/callinvoker/CMakeLists.txt +3 -6
  847. package/ReactCommon/cmake-utils/react-native-flags.cmake +39 -0
  848. package/ReactCommon/cxxreact/CMakeLists.txt +4 -6
  849. package/ReactCommon/cxxreact/CxxNativeModule.cpp +23 -33
  850. package/ReactCommon/cxxreact/JSExecutor.cpp +5 -2
  851. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +12 -10
  852. package/ReactCommon/cxxreact/JSModulesUnbundle.h +2 -4
  853. package/ReactCommon/cxxreact/JsArgumentHelpers-inl.h +28 -21
  854. package/ReactCommon/cxxreact/JsArgumentHelpers.h +1 -2
  855. package/ReactCommon/cxxreact/MethodCall.cpp +17 -17
  856. package/ReactCommon/cxxreact/ModuleRegistry.cpp +15 -12
  857. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +4 -8
  858. package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +2 -1
  859. package/ReactCommon/cxxreact/React-cxxreact.podspec +4 -13
  860. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  861. package/ReactCommon/cxxreact/TraceSection.h +1 -1
  862. package/ReactCommon/cxxreact/tests/jsarg_helpers.cpp +2 -2
  863. package/ReactCommon/devtoolsruntimesettings/CMakeLists.txt +4 -9
  864. package/ReactCommon/hermes/React-hermes.podspec +4 -13
  865. package/ReactCommon/hermes/executor/CMakeLists.txt +2 -1
  866. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +3 -6
  867. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +2 -8
  868. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +2 -8
  869. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeSamplingProfileSerializer.cpp +100 -106
  870. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +1 -1
  871. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +2 -8
  872. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +2 -8
  873. package/ReactCommon/jsc/CMakeLists.txt +4 -7
  874. package/ReactCommon/jserrorhandler/CMakeLists.txt +2 -1
  875. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +12 -5
  876. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +2 -11
  877. package/ReactCommon/jsi/CMakeLists.txt +5 -6
  878. package/ReactCommon/jsi/React-jsi.podspec +2 -15
  879. package/ReactCommon/jsiexecutor/CMakeLists.txt +4 -5
  880. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +4 -14
  881. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +7 -8
  882. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +1 -2
  883. package/ReactCommon/jsinspector-modern/CMakeLists.txt +7 -6
  884. package/ReactCommon/jsinspector-modern/HostAgent.cpp +304 -208
  885. package/ReactCommon/jsinspector-modern/HostAgent.h +8 -48
  886. package/ReactCommon/jsinspector-modern/HostTarget.cpp +1 -1
  887. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +1 -0
  888. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +4 -3
  889. package/ReactCommon/jsinspector-modern/InstanceAgent.h +1 -1
  890. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +22 -0
  891. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +2 -4
  892. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +4 -14
  893. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
  894. package/ReactCommon/jsinspector-modern/RuntimeAgentDelegate.h +1 -1
  895. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +27 -12
  896. package/ReactCommon/jsinspector-modern/TracingAgent.h +2 -1
  897. package/ReactCommon/jsinspector-modern/cdp/CMakeLists.txt +26 -0
  898. package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +50 -0
  899. package/ReactCommon/jsinspector-modern/network/CMakeLists.txt +27 -0
  900. package/ReactCommon/jsinspector-modern/network/CdpNetwork.cpp +143 -0
  901. package/ReactCommon/jsinspector-modern/network/CdpNetwork.h +110 -0
  902. package/ReactCommon/jsinspector-modern/network/HttpUtils.cpp +157 -0
  903. package/ReactCommon/jsinspector-modern/network/HttpUtils.h +27 -0
  904. package/ReactCommon/jsinspector-modern/network/NetworkReporter.cpp +195 -0
  905. package/ReactCommon/jsinspector-modern/network/NetworkReporter.h +139 -0
  906. package/ReactCommon/jsinspector-modern/network/NetworkTypes.h +42 -0
  907. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +52 -0
  908. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +1 -2
  909. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +12 -0
  910. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +3 -6
  911. package/ReactCommon/jsinspector-modern/tracing/{EventLoopTaskReporter.cpp → EventLoopReporter.cpp} +22 -9
  912. package/ReactCommon/jsinspector-modern/tracing/{EventLoopTaskReporter.h → EventLoopReporter.h} +13 -7
  913. package/ReactCommon/jsinspector-modern/tracing/InstanceTracingProfile.h +2 -5
  914. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +55 -42
  915. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +22 -13
  916. package/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h +39 -30
  917. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +3 -8
  918. package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfile.h +16 -0
  919. package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp +186 -162
  920. package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h +138 -5
  921. package/ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h +40 -92
  922. package/ReactCommon/jsinspector-modern/tracing/tests/ProfileTreeNodeTest.cpp +27 -35
  923. package/ReactCommon/jsinspector-modern/tracing/tests/RuntimeSamplingProfileTraceEventSerializerTest.cpp +290 -0
  924. package/ReactCommon/jsitooling/CMakeLists.txt +4 -8
  925. package/ReactCommon/jsitooling/React-jsitooling.podspec +3 -21
  926. package/ReactCommon/logger/CMakeLists.txt +2 -1
  927. package/ReactCommon/logger/React-logger.podspec +1 -9
  928. package/ReactCommon/logger/react_native_log.cpp +2 -2
  929. package/ReactCommon/oscompat/CMakeLists.txt +2 -1
  930. package/ReactCommon/react/bridging/CMakeLists.txt +3 -7
  931. package/ReactCommon/react/debug/CMakeLists.txt +3 -8
  932. package/ReactCommon/react/featureflags/CMakeLists.txt +4 -9
  933. package/ReactCommon/react/featureflags/React-featureflags.podspec +2 -7
  934. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +49 -41
  935. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +63 -53
  936. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +223 -187
  937. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +30 -26
  938. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +46 -38
  939. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +100 -82
  940. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +51 -0
  941. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +33 -0
  942. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +33 -0
  943. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +15 -13
  944. package/ReactCommon/react/nativemodule/core/CMakeLists.txt +3 -8
  945. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +4 -6
  946. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -0
  947. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +23 -0
  948. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.h +29 -0
  949. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +12 -18
  950. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +6 -1
  951. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +3 -9
  952. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +3 -0
  953. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +29 -2
  954. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +7 -39
  955. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +30 -2
  956. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +3 -7
  957. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +3 -10
  958. package/ReactCommon/react/nativemodule/devtoolsruntimesettings/CMakeLists.txt +3 -7
  959. package/ReactCommon/react/nativemodule/dom/CMakeLists.txt +3 -7
  960. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +2 -8
  961. package/ReactCommon/react/nativemodule/fantomforcedclonecommithook/NativeFantomForcedCloneCommitHook.cpp +84 -0
  962. package/ReactCommon/react/nativemodule/fantomforcedclonecommithook/NativeFantomForcedCloneCommitHook.h +30 -0
  963. package/ReactCommon/react/nativemodule/featureflags/CMakeLists.txt +3 -7
  964. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +58 -48
  965. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +25 -21
  966. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +3 -10
  967. package/ReactCommon/react/nativemodule/idlecallbacks/CMakeLists.txt +3 -8
  968. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +4 -11
  969. package/ReactCommon/react/nativemodule/microtasks/CMakeLists.txt +3 -7
  970. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +3 -10
  971. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -17
  972. package/ReactCommon/react/nativemodule/samples/platform/android/CMakeLists.txt +4 -8
  973. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +3 -0
  974. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +21 -1
  975. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.kt +32 -5
  976. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleLegacyModule.mm +5 -10
  977. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +18 -15
  978. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +53 -9
  979. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +29 -6
  980. package/ReactCommon/react/performance/timeline/CMakeLists.txt +5 -9
  981. package/ReactCommon/react/performance/timeline/CircularBuffer.h +0 -1
  982. package/ReactCommon/react/performance/timeline/PerformanceEntry.h +53 -15
  983. package/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.cpp +12 -3
  984. package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.cpp +5 -2
  985. package/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h +0 -1
  986. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +29 -33
  987. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  988. package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +8 -3
  989. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +3 -11
  990. package/ReactCommon/react/performance/timeline/tests/PerformanceEntryReporterTest.cpp +80 -165
  991. package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +38 -71
  992. package/ReactCommon/react/renderer/animations/CMakeLists.txt +3 -7
  993. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +5 -9
  994. package/ReactCommon/react/renderer/attributedstring/AttributedString.cpp +2 -9
  995. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +3 -3
  996. package/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +3 -7
  997. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +2 -1
  998. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +8 -1
  999. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +4 -6
  1000. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -2
  1001. package/ReactCommon/react/renderer/attributedstring/conversions.h +38 -6
  1002. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +3 -7
  1003. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +25 -5
  1004. package/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +3 -7
  1005. package/ReactCommon/react/renderer/components/image/CMakeLists.txt +3 -7
  1006. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +3 -7
  1007. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h +1 -2
  1008. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +1 -1
  1009. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +0 -1
  1010. package/ReactCommon/react/renderer/components/modal/CMakeLists.txt +3 -7
  1011. package/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +3 -7
  1012. package/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp +48 -48
  1013. package/ReactCommon/react/renderer/components/root/CMakeLists.txt +3 -7
  1014. package/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt +4 -10
  1015. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +3 -7
  1016. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +15 -0
  1017. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +3 -0
  1018. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +1 -0
  1019. package/ReactCommon/react/renderer/components/switch/CMakeLists.txt +4 -10
  1020. package/ReactCommon/react/renderer/components/text/CMakeLists.txt +13 -9
  1021. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +6 -0
  1022. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +111 -25
  1023. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +22 -2
  1024. package/ReactCommon/react/renderer/components/text/{ParagraphState.cpp → platform/android/react/renderer/components/text/ParagraphState.cpp} +0 -2
  1025. package/ReactCommon/react/renderer/components/text/{ParagraphState.h → platform/android/react/renderer/components/text/ParagraphState.h} +9 -14
  1026. package/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/ParagraphState.h +42 -0
  1027. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +8 -1
  1028. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +2 -0
  1029. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +25 -11
  1030. package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +3 -7
  1031. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +30 -19
  1032. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +12 -11
  1033. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +5 -5
  1034. package/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt +3 -7
  1035. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +1 -1
  1036. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +21 -1
  1037. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +8 -6
  1038. package/ReactCommon/react/renderer/components/view/CMakeLists.txt +3 -7
  1039. package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +16 -6
  1040. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +2 -1
  1041. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +2 -11
  1042. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +0 -2
  1043. package/ReactCommon/react/renderer/components/view/conversions.h +135 -79
  1044. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +18 -0
  1045. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  1046. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +6 -1
  1047. package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +4 -0
  1048. package/ReactCommon/react/renderer/consistency/CMakeLists.txt +3 -7
  1049. package/ReactCommon/react/renderer/core/CMakeLists.txt +3 -7
  1050. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +2 -3
  1051. package/ReactCommon/react/renderer/core/ConcreteState.h +23 -2
  1052. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +44 -0
  1053. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +30 -0
  1054. package/ReactCommon/react/renderer/core/EventEmitter.cpp +7 -9
  1055. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -3
  1056. package/ReactCommon/react/renderer/core/EventPayload.h +13 -0
  1057. package/ReactCommon/react/renderer/core/EventQueue.cpp +26 -26
  1058. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +2 -0
  1059. package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
  1060. package/ReactCommon/react/renderer/core/RawEvent.h +10 -2
  1061. package/ReactCommon/react/renderer/core/RawProps.cpp +1 -99
  1062. package/ReactCommon/react/renderer/core/RawProps.h +0 -11
  1063. package/ReactCommon/react/renderer/core/ReactEventPriority.h +5 -0
  1064. package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -4
  1065. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +3 -0
  1066. package/ReactCommon/react/renderer/core/State.h +2 -0
  1067. package/ReactCommon/react/renderer/core/graphicsConversions.h +25 -17
  1068. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +0 -36
  1069. package/ReactCommon/react/renderer/core/tests/TestComponent.h +0 -4
  1070. package/ReactCommon/react/renderer/css/CMakeLists.txt +7 -7
  1071. package/ReactCommon/react/renderer/css/CSSTokenizer.h +12 -49
  1072. package/ReactCommon/react/renderer/css/tests/CSSTokenizerTest.cpp +10 -0
  1073. package/ReactCommon/react/renderer/debug/CMakeLists.txt +3 -7
  1074. package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +27 -16
  1075. package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +14 -5
  1076. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +2 -16
  1077. package/ReactCommon/react/renderer/dom/CMakeLists.txt +3 -7
  1078. package/ReactCommon/react/renderer/element/CMakeLists.txt +3 -7
  1079. package/ReactCommon/react/renderer/graphics/BackgroundImage.h +2 -1
  1080. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +3 -7
  1081. package/ReactCommon/react/renderer/graphics/ColorStop.h +28 -0
  1082. package/ReactCommon/react/renderer/graphics/LinearGradient.h +1 -12
  1083. package/ReactCommon/react/renderer/graphics/RadialGradient.h +92 -0
  1084. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -19
  1085. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +2 -2
  1086. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +2 -2
  1087. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +3 -7
  1088. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +1 -7
  1089. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -13
  1090. package/ReactCommon/react/renderer/leakchecker/CMakeLists.txt +3 -7
  1091. package/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +3 -8
  1092. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +3 -7
  1093. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +73 -55
  1094. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +5 -0
  1095. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -7
  1096. package/ReactCommon/react/renderer/mounting/ShadowTree.h +47 -36
  1097. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +3 -1
  1098. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +44 -12
  1099. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +39 -6
  1100. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +41 -12
  1101. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +2 -1
  1102. package/ReactCommon/react/renderer/observers/events/CMakeLists.txt +3 -7
  1103. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +0 -25
  1104. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +5 -2
  1105. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.h +3 -1
  1106. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +3 -7
  1107. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +2 -11
  1108. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -20
  1109. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +22 -10
  1110. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +3 -7
  1111. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +43 -20
  1112. package/ReactCommon/react/renderer/scheduler/Scheduler.h +15 -1
  1113. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +4 -0
  1114. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +84 -1
  1115. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +8 -0
  1116. package/ReactCommon/react/renderer/telemetry/CMakeLists.txt +3 -7
  1117. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +3 -7
  1118. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutContext.h +7 -11
  1119. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +124 -0
  1120. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +7 -0
  1121. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/JPreparedLayout.h +20 -0
  1122. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +126 -19
  1123. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +100 -0
  1124. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/{TextLayoutManager.cpp → react/renderer/textlayoutmanager/TextLayoutManager.cpp} +1 -18
  1125. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/react/renderer/textlayoutmanager/TextLayoutManager.h +57 -0
  1126. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.h +3 -0
  1127. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +47 -24
  1128. package/ReactCommon/react/renderer/textlayoutmanager/{TextLayoutManager.h → platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h} +2 -29
  1129. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +2 -0
  1130. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +4 -8
  1131. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +54 -23
  1132. package/ReactCommon/react/renderer/uimanager/UIManager.h +27 -7
  1133. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +11 -1
  1134. package/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h +19 -1
  1135. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +30 -0
  1136. package/ReactCommon/react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h +24 -0
  1137. package/ReactCommon/react/renderer/uimanager/UIManagerUpdateShadowTree.cpp +223 -0
  1138. package/ReactCommon/react/renderer/uimanager/consistency/CMakeLists.txt +3 -7
  1139. package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +2 -1
  1140. package/ReactCommon/react/runtime/CMakeLists.txt +4 -7
  1141. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +4 -13
  1142. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +4 -11
  1143. package/ReactCommon/react/runtime/ReactInstance.cpp +10 -5
  1144. package/ReactCommon/react/runtime/ReactInstance.h +2 -1
  1145. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +2 -1
  1146. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +1 -0
  1147. package/ReactCommon/react/runtime/nativeviewconfig/CMakeLists.txt +2 -1
  1148. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +2 -11
  1149. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +2 -0
  1150. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +17 -5
  1151. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +2 -0
  1152. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +64 -3
  1153. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  1154. package/ReactCommon/react/timing/CMakeLists.txt +3 -6
  1155. package/ReactCommon/react/utils/CMakeLists.txt +9 -9
  1156. package/ReactCommon/react/utils/React-utils.podspec +13 -17
  1157. package/ReactCommon/react/utils/platform/android/react/utils/LowPriorityExecutor.cpp +95 -0
  1158. package/{ReactAndroid/src/main/java/com/facebook/react/bridge/MemoryPressure.kt → ReactCommon/react/utils/platform/android/react/utils/LowPriorityExecutor.h} +6 -6
  1159. package/ReactCommon/react/utils/platform/cxx/react/utils/LowPriorityExecutor.h +18 -0
  1160. package/ReactCommon/react/utils/platform/ios/react/utils/LowPriorityExecutor.h +16 -0
  1161. package/ReactCommon/react/utils/platform/ios/react/utils/LowPriorityExecutor.mm +22 -0
  1162. package/ReactCommon/reactperflogger/CMakeLists.txt +3 -7
  1163. package/ReactCommon/reactperflogger/React-perflogger.podspec +2 -12
  1164. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +7 -3
  1165. package/ReactCommon/runtimeexecutor/CMakeLists.txt +3 -6
  1166. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +0 -6
  1167. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +0 -12
  1168. package/ReactCommon/yoga/cmake/project-defaults.cmake +4 -4
  1169. package/ReactCommon/yoga/yoga/debug/AssertFatal.cpp +1 -0
  1170. package/ReactCommon/yoga/yoga/event/event.h +6 -6
  1171. package/flow/global.js +1 -0
  1172. package/gradle/libs.versions.toml +17 -6
  1173. package/index.js +54 -334
  1174. package/interface.js +0 -4
  1175. package/jest/resolver.js +31 -0
  1176. package/jest-preset.js +1 -0
  1177. package/package.json +105 -34
  1178. package/scripts/cocoapods/fabric.rb +0 -1
  1179. package/scripts/cocoapods/helpers.rb +12 -1
  1180. package/scripts/cocoapods/new_architecture.rb +46 -17
  1181. package/scripts/cocoapods/rndependencies.rb +211 -0
  1182. package/scripts/cocoapods/utils.rb +2 -0
  1183. package/scripts/codegen/generate-artifacts-executor/constants.js +80 -0
  1184. package/scripts/codegen/generate-artifacts-executor/generateAppDependencyProvider.js +66 -0
  1185. package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +116 -0
  1186. package/scripts/codegen/generate-artifacts-executor/generateFBReactNativeSpecIOS.js +39 -0
  1187. package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +114 -0
  1188. package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +120 -0
  1189. package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +223 -0
  1190. package/scripts/codegen/generate-artifacts-executor/generateRNCoreComponentsIOS.js +38 -0
  1191. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +93 -0
  1192. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +113 -0
  1193. package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +92 -0
  1194. package/scripts/codegen/generate-artifacts-executor/index.js +232 -0
  1195. package/scripts/codegen/generate-artifacts-executor/utils.js +399 -0
  1196. package/scripts/codegen/templates/RCTAppDependencyProviderMM.template +5 -0
  1197. package/{React/Base/UIKitProxies/RCTInitializeUIKitProxies.h → scripts/codegen/templates/RCTUnstableModulesRequiringMainQueueSetupProviderH.template} +5 -1
  1198. package/scripts/codegen/templates/RCTUnstableModulesRequiringMainQueueSetupProviderMM.template +19 -0
  1199. package/scripts/codegen/templates/ReactCodegen.podspec.template +2 -8
  1200. package/scripts/generate-codegen-artifacts.js +1 -1
  1201. package/scripts/react_native_pods.rb +18 -7
  1202. package/sdks/.hermesversion +1 -1
  1203. package/sdks/hermes-engine/hermes-utils.rb +7 -0
  1204. package/sdks/hermes-engine/utils/build-apple-framework.sh +4 -1
  1205. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +4 -3
  1206. package/sdks/hermesc/osx-bin/hermes +0 -0
  1207. package/sdks/hermesc/osx-bin/hermesc +0 -0
  1208. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  1209. package/sdks/hermesc/win64-bin/msvcp140.dll +0 -0
  1210. package/sdks/hermesc/win64-bin/vcruntime140.dll +0 -0
  1211. package/sdks/hermesc/win64-bin/vcruntime140_1.dll +0 -0
  1212. package/src/private/animated/NativeAnimatedHelper.js +21 -8
  1213. package/src/private/animated/createAnimatedPropsHook.js +11 -16
  1214. package/src/private/animated/createAnimatedPropsMemoHook.js +1 -2
  1215. package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
  1216. package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
  1217. package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
  1218. package/src/private/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
  1219. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
  1220. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
  1221. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
  1222. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
  1223. package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
  1224. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
  1225. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
  1226. package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
  1227. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
  1228. package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
  1229. package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
  1230. package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +4 -4
  1231. package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
  1232. package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
  1233. package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
  1234. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
  1235. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
  1236. package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
  1237. package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
  1238. package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
  1239. package/src/private/featureflags/ReactNativeFeatureFlags.js +72 -80
  1240. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +9 -1
  1241. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -13
  1242. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  1243. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +1 -1
  1244. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +1 -1
  1245. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
  1246. package/src/private/styles/composeStyles.js +12 -5
  1247. package/src/private/types/HostComponent.js +1 -1
  1248. package/src/private/types/HostInstance.js +67 -1
  1249. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -5
  1250. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
  1251. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
  1252. package/src/private/webapis/performance/Performance.js +1 -3
  1253. package/src/private/webapis/performance/PerformanceEntry.js +6 -1
  1254. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -0
  1255. package/src/private/webapis/performance/specs/NativePerformance.js +10 -1
  1256. package/src/types/bom.js.flow +96 -0
  1257. package/src/types/cssom.js.flow +576 -0
  1258. package/src/types/dom.js.flow +19 -0
  1259. package/src/types/globals.d.ts +42 -0
  1260. package/src/types/streams.js.flow +141 -0
  1261. package/third-party-podspecs/RCT-Folly.podspec +7 -6
  1262. package/third-party-podspecs/ReactNativeDependencies.podspec +86 -0
  1263. package/third-party-podspecs/fast_float.podspec +2 -2
  1264. package/third-party-podspecs/replace_dependencies_version.js +107 -0
  1265. package/types/index.d.ts +5 -2
  1266. package/types/public/ReactNativeTVTypes.d.ts +42 -42
  1267. package/types/public/ReactNativeTypes.d.ts +2 -2
  1268. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
  1269. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
  1270. package/Libraries/Blob/FileReader_new.js +0 -231
  1271. package/Libraries/Blob/FileReader_old.js +0 -186
  1272. package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
  1273. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
  1274. package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
  1275. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
  1276. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
  1277. package/Libraries/Events/CustomEvent.js +0 -32
  1278. package/Libraries/Events/EventPolyfill.js +0 -239
  1279. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
  1280. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
  1281. package/Libraries/Network/XMLHttpRequest_new.js +0 -794
  1282. package/Libraries/Network/XMLHttpRequest_old.js +0 -701
  1283. package/Libraries/NewAppScreen/components/DebugInstructions.js +0 -48
  1284. package/Libraries/NewAppScreen/components/Header.js +0 -77
  1285. package/Libraries/NewAppScreen/components/HermesBadge.js +0 -72
  1286. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -148
  1287. package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -39
  1288. package/Libraries/NewAppScreen/components/logo.png +0 -0
  1289. package/Libraries/NewAppScreen/index.js +0 -25
  1290. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
  1291. package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
  1292. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
  1293. package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
  1294. package/Libraries/WebSocket/WebSocketEvent.js +0 -30
  1295. package/Libraries/WebSocket/WebSocket_new.js +0 -325
  1296. package/Libraries/WebSocket/WebSocket_old.js +0 -297
  1297. package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
  1298. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
  1299. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
  1300. package/React/Base/UIKitProxies/RCTInitialAccessibilityValuesProxy.h +0 -30
  1301. package/React/Base/UIKitProxies/RCTInitialAccessibilityValuesProxy.mm +0 -185
  1302. package/React/Base/UIKitProxies/RCTInitializeUIKitProxies.mm +0 -23
  1303. package/React/Base/UIKitProxies/RCTKeyWindowValuesProxy.h +0 -25
  1304. package/React/Base/UIKitProxies/RCTKeyWindowValuesProxy.mm +0 -129
  1305. package/React/Base/UIKitProxies/RCTTraitCollectionProxy.h +0 -26
  1306. package/React/Base/UIKitProxies/RCTTraitCollectionProxy.mm +0 -80
  1307. package/React/Base/UIKitProxies/RCTWindowSafeAreaProxy.h +0 -26
  1308. package/React/Base/UIKitProxies/RCTWindowSafeAreaProxy.mm +0 -70
  1309. package/React/Fabric/Utils/RCTViewFinder.mm +0 -34
  1310. package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.kt +0 -23
  1311. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/KeepGettersAndSetters.kt +0 -24
  1312. package/ReactAndroid/src/main/java/com/facebook/proguard/annotations/proguard_annotations.pro +0 -21
  1313. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +0 -84
  1314. package/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.java +0 -59
  1315. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +0 -1240
  1316. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +0 -900
  1317. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ActivityEventListener.java +0 -29
  1318. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseActivityEventListener.java +0 -29
  1319. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.java +0 -37
  1320. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.java +0 -234
  1321. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.java +0 -57
  1322. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.java +0 -103
  1323. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromMap.java +0 -110
  1324. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromObject.java +0 -89
  1325. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.java +0 -42
  1326. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedRunnable.java +0 -36
  1327. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.java +0 -110
  1328. package/ReactAndroid/src/main/java/com/facebook/react/bridge/InvalidIteratorException.kt +0 -18
  1329. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSBundleLoader.java +0 -97
  1330. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSONArguments.java +0 -110
  1331. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +0 -148
  1332. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptContextHolder.java +0 -33
  1333. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptExecutor.java +0 -31
  1334. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JsonWriterHelper.java +0 -155
  1335. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt +0 -48
  1336. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +0 -39
  1337. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java +0 -75
  1338. package/ReactAndroid/src/main/java/com/facebook/react/bridge/bridge.pro +0 -12
  1339. package/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.kt +0 -23
  1340. package/ReactAndroid/src/main/java/com/facebook/react/common/StandardCharsets.kt +0 -31
  1341. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +0 -128
  1342. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.java +0 -124
  1343. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.java +0 -313
  1344. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +0 -174
  1345. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.java +0 -117
  1346. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +0 -495
  1347. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +0 -1121
  1348. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +0 -56
  1349. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportSoLoader.kt +0 -24
  1350. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSDebuggerWebSocketClient.java +0 -244
  1351. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java +0 -166
  1352. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReactInstanceDevHelper.java +0 -47
  1353. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +0 -300
  1354. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSplitBundleCallback.kt +0 -17
  1355. package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java +0 -239
  1356. package/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.java +0 -103
  1357. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +0 -329
  1358. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.kt +0 -40
  1359. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/fabric/SurfaceHandler.kt +0 -40
  1360. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/NativeModuleSoLoader.kt +0 -25
  1361. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java +0 -288
  1362. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java +0 -474
  1363. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java +0 -76
  1364. package/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java +0 -253
  1365. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.java +0 -383
  1366. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.java +0 -126
  1367. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/FileReaderModule.java +0 -103
  1368. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.kt +0 -16
  1369. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +0 -204
  1370. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +0 -240
  1371. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +0 -785
  1372. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressResponseBody.java +0 -68
  1373. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +0 -22
  1374. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/FileIoHandler.java +0 -191
  1375. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.java +0 -143
  1376. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +0 -193
  1377. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactLegacyArchitectureProcessor.kt +0 -48
  1378. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +0 -765
  1379. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.java +0 -131
  1380. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +0 -209
  1381. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java +0 -138
  1382. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +0 -634
  1383. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactLifecycleStateManager.java +0 -90
  1384. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceImpl.java +0 -255
  1385. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Task.java +0 -555
  1386. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedErrorNotifier.kt +0 -27
  1387. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/UnobservedTaskException.kt +0 -11
  1388. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/OnLayoutEvent.java +0 -80
  1389. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactClippingViewGroupHelper.java +0 -65
  1390. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactInvalidPropertyException.kt +0 -16
  1391. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactStylesDiffMap.java +0 -99
  1392. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java +0 -87
  1393. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +0 -448
  1394. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.java +0 -231
  1395. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstants.java +0 -119
  1396. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewAtIndex.java +0 -46
  1397. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java +0 -127
  1398. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.java +0 -116
  1399. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactProp.java +0 -109
  1400. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropGroup.java +0 -97
  1401. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/annotations/ReactPropertyHolder.java +0 -19
  1402. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +0 -220
  1403. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/AbstractLayoutAnimation.java +0 -116
  1404. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/BaseLayoutAnimation.java +0 -86
  1405. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java +0 -224
  1406. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/OpacityAnimation.java +0 -72
  1407. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/PositionAndSizeAnimation.java +0 -69
  1408. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.kt +0 -63
  1409. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.kt +0 -31
  1410. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.java +0 -213
  1411. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +0 -361
  1412. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +0 -409
  1413. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextShadowNode.java +0 -47
  1414. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -233
  1415. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java +0 -163
  1416. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java +0 -185
  1417. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java +0 -54
  1418. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +0 -1493
  1419. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +0 -160
  1420. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.java +0 -52
  1421. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputBlurEvent.java +0 -47
  1422. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEndEditingEvent.java +0 -54
  1423. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputFocusEvent.java +0 -47
  1424. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +0 -51
  1425. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputLocalData.java +0 -44
  1426. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +0 -1390
  1427. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSelectionEvent.java +0 -53
  1428. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java +0 -236
  1429. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputSubmitEditingEvent.java +0 -52
  1430. package/ReactAndroid/src/main/jni/prebuilt/lib/DUMMY +0 -1
  1431. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewEventEmitter.cpp +0 -18
  1432. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewEventEmitter.h +0 -31
  1433. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -26
  1434. package/ReactCommon/react/renderer/uimanager/consistency/LatestShadowTreeRevisionProvider.cpp +0 -29
  1435. package/ReactCommon/react/renderer/uimanager/consistency/LatestShadowTreeRevisionProvider.h +0 -35
  1436. package/android/README.md +0 -21
  1437. package/flow/jest.js +0 -1287
  1438. package/jest/__tests__/setup-test.js +0 -18
  1439. package/scripts/codegen/generate-artifacts-executor.js +0 -1153
  1440. package/src/private/components/VScrollViewNativeComponents.js +0 -25
  1441. package/src/private/featureflags/README.md +0 -5
  1442. package/src/private/specs_DEPRECATED/README.md +0 -7
  1443. package/src/private/utilities/ensureInstance.js +0 -21
  1444. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
  1445. package/types/modules/LaunchScreen.d.ts +0 -18
  1446. /package/ReactCommon/jsinspector-modern/{CdpJson.cpp → cdp/CdpJson.cpp} +0 -0
  1447. /package/ReactCommon/jsinspector-modern/{CdpJson.h → cdp/CdpJson.h} +0 -0
  1448. /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
  1449. /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
  1450. /package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.js.flow +0 -0
@@ -1,1493 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- package com.facebook.react.views.textinput;
9
-
10
- import static com.facebook.react.uimanager.UIManagerHelper.getReactContext;
11
-
12
- import android.annotation.SuppressLint;
13
- import android.content.ClipData;
14
- import android.content.ClipboardManager;
15
- import android.app.UiModeManager;
16
- import android.content.Context;
17
- import android.graphics.Canvas;
18
- import android.content.res.Configuration;
19
- import android.graphics.Color;
20
- import android.graphics.Paint;
21
- import android.graphics.Rect;
22
- import android.graphics.Typeface;
23
- import android.graphics.drawable.Drawable;
24
- import android.os.Build;
25
- import android.os.Bundle;
26
- import android.text.Editable;
27
- import android.text.InputType;
28
- import android.text.Spannable;
29
- import android.text.SpannableStringBuilder;
30
- import android.text.Spanned;
31
- import android.text.TextPaint;
32
- import android.text.TextUtils;
33
- import android.text.TextWatcher;
34
- import android.text.method.KeyListener;
35
- import android.text.method.QwertyKeyListener;
36
- import android.util.TypedValue;
37
- import android.view.ActionMode;
38
- import android.view.Gravity;
39
- import android.view.KeyEvent;
40
- import android.view.Menu;
41
- import android.view.MenuItem;
42
- import android.view.MotionEvent;
43
- import android.view.View;
44
- import android.view.accessibility.AccessibilityNodeInfo;
45
- import android.view.inputmethod.EditorInfo;
46
- import android.view.inputmethod.InputConnection;
47
- import android.view.inputmethod.InputMethodManager;
48
- import androidx.annotation.Nullable;
49
- import androidx.appcompat.widget.AppCompatEditText;
50
- import androidx.core.util.Predicate;
51
- import androidx.core.view.ViewCompat;
52
- import com.facebook.common.logging.FLog;
53
- import com.facebook.infer.annotation.Assertions;
54
- import com.facebook.react.bridge.ReactContext;
55
- import com.facebook.react.bridge.ReactSoftExceptionLogger;
56
- import com.facebook.react.common.ReactConstants;
57
- import com.facebook.react.common.build.ReactBuildConfig;
58
- import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
59
- import com.facebook.react.uimanager.BackgroundStyleApplicator;
60
- import com.facebook.react.uimanager.LengthPercentage;
61
- import com.facebook.react.uimanager.LengthPercentageType;
62
- import com.facebook.react.uimanager.PixelUtil;
63
- import com.facebook.react.uimanager.ReactAccessibilityDelegate;
64
- import com.facebook.react.uimanager.StateWrapper;
65
- import com.facebook.react.uimanager.UIManagerModule;
66
- import com.facebook.react.uimanager.common.UIManagerType;
67
- import com.facebook.react.uimanager.common.ViewUtil;
68
- import com.facebook.react.uimanager.events.EventDispatcher;
69
- import com.facebook.react.uimanager.style.BorderRadiusProp;
70
- import com.facebook.react.uimanager.style.BorderStyle;
71
- import com.facebook.react.uimanager.style.LogicalEdge;
72
- import com.facebook.react.uimanager.style.Overflow;
73
- import com.facebook.react.views.text.ReactTextUpdate;
74
- import com.facebook.react.views.text.ReactTypefaceUtils;
75
- import com.facebook.react.views.text.TextAttributes;
76
- import com.facebook.react.views.text.TextLayoutManager;
77
- import com.facebook.react.views.text.internal.span.CustomLetterSpacingSpan;
78
- import com.facebook.react.views.text.internal.span.CustomLineHeightSpan;
79
- import com.facebook.react.views.text.internal.span.CustomStyleSpan;
80
- import com.facebook.react.views.text.internal.span.ReactAbsoluteSizeSpan;
81
- import com.facebook.react.views.text.internal.span.ReactBackgroundColorSpan;
82
- import com.facebook.react.views.text.internal.span.ReactForegroundColorSpan;
83
- import com.facebook.react.views.text.internal.span.ReactSpan;
84
- import com.facebook.react.views.text.internal.span.ReactStrikethroughSpan;
85
- import com.facebook.react.views.text.internal.span.ReactTextPaintHolderSpan;
86
- import com.facebook.react.views.text.internal.span.ReactUnderlineSpan;
87
- import com.facebook.react.views.text.internal.span.TextInlineImageSpan;
88
- import java.util.Objects;
89
- import java.util.concurrent.CopyOnWriteArrayList;
90
-
91
- /**
92
- * A wrapper around the EditText that lets us better control what happens when an EditText gets
93
- * focused or blurred, and when to display the soft keyboard and when not to.
94
- *
95
- * <p>ReactEditTexts have setFocusableInTouchMode set to false automatically because touches on the
96
- * EditText are managed on the JS side. This also removes the nasty side effect that EditTexts have,
97
- * which is that focus is always maintained on one of the EditTexts.
98
- *
99
- * <p>The wrapper stops the EditText from triggering *TextChanged events, in the case where JS has
100
- * called this explicitly. This is the default behavior on other platforms as well.
101
- * VisibleForTesting from {@link TextInputEventsTestCase}.
102
- */
103
- public class ReactEditText extends AppCompatEditText {
104
-
105
- private final InputMethodManager mInputMethodManager;
106
- private final String TAG = ReactEditText.class.getSimpleName();
107
- public static final boolean DEBUG_MODE = ReactBuildConfig.DEBUG && false;
108
-
109
- // This flag is set to true when we set the text of the EditText explicitly. In that case, no
110
- // *TextChanged events should be triggered. This is less expensive than removing the text
111
- // listeners and adding them back again after the text change is completed.
112
- protected boolean mIsSettingTextFromJS;
113
- private final int mDefaultGravityHorizontal;
114
- private final int mDefaultGravityVertical;
115
-
116
- /** A count of events sent to JS or C++. */
117
- protected int mNativeEventCount;
118
-
119
- private @Nullable CopyOnWriteArrayList<TextWatcher> mListeners;
120
- private @Nullable TextWatcherDelegator mTextWatcherDelegator;
121
- private int mStagedInputType;
122
- protected boolean mContainsImages;
123
- private @Nullable String mSubmitBehavior = null;
124
- private boolean mDisableFullscreen;
125
- private @Nullable String mReturnKeyType;
126
- private @Nullable SelectionWatcher mSelectionWatcher;
127
- private @Nullable ContentSizeWatcher mContentSizeWatcher;
128
- private @Nullable ScrollWatcher mScrollWatcher;
129
- private InternalKeyListener mKeyListener;
130
- private boolean mDetectScrollMovement = false;
131
- private boolean mOnKeyPress = false;
132
- private TextAttributes mTextAttributes;
133
- private boolean mTypefaceDirty = false;
134
- private @Nullable String mFontFamily = null;
135
- private int mFontWeight = ReactConstants.UNSET;
136
- private int mFontStyle = ReactConstants.UNSET;
137
- private boolean mAutoFocus = false;
138
- private boolean mContextMenuHidden = false;
139
- private boolean mDidAttachToWindow = false;
140
- private boolean mSelectTextOnFocus = false;
141
- private @Nullable String mPlaceholder = null;
142
- private Overflow mOverflow = Overflow.VISIBLE;
143
-
144
- private StateWrapper mStateWrapper = null;
145
- protected boolean mDisableTextDiffing = false;
146
-
147
- protected boolean mIsSettingTextFromState = false;
148
-
149
- private static final KeyListener sKeyListener = QwertyKeyListener.getInstanceForFullKeyboard();
150
- private @Nullable EventDispatcher mEventDispatcher;
151
-
152
- private boolean isKeyboardOpened;
153
-
154
- public ReactEditText(Context context) {
155
- super(context);
156
- if (!ReactNativeFeatureFlags.useEditTextStockAndroidFocusBehavior()) {
157
- setFocusableInTouchMode(false);
158
- }
159
-
160
- mInputMethodManager =
161
- (InputMethodManager)
162
- Assertions.assertNotNull(context.getSystemService(Context.INPUT_METHOD_SERVICE));
163
- mDefaultGravityHorizontal =
164
- getGravity() & (Gravity.HORIZONTAL_GRAVITY_MASK | Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK);
165
- mDefaultGravityVertical = getGravity() & Gravity.VERTICAL_GRAVITY_MASK;
166
- mNativeEventCount = 0;
167
- mIsSettingTextFromJS = false;
168
- mDisableFullscreen = false;
169
- mListeners = null;
170
- mTextWatcherDelegator = null;
171
- mStagedInputType = getInputType();
172
- if (mKeyListener == null) {
173
- mKeyListener = new InternalKeyListener();
174
- }
175
- mScrollWatcher = null;
176
- mTextAttributes = new TextAttributes();
177
-
178
- applyTextAttributes();
179
-
180
- // Turn off hardware acceleration for Oreo (T40484798)
181
- // see https://issuetracker.google.com/issues/67102093
182
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
183
- && Build.VERSION.SDK_INT <= Build.VERSION_CODES.O_MR1) {
184
- setLayerType(View.LAYER_TYPE_SOFTWARE, null);
185
- }
186
-
187
- ReactAccessibilityDelegate editTextAccessibilityDelegate =
188
- new ReactAccessibilityDelegate(
189
- this, this.isFocusable(), this.getImportantForAccessibility()) {
190
- @Override
191
- public boolean performAccessibilityAction(View host, int action, Bundle args) {
192
- if (action == AccessibilityNodeInfo.ACTION_CLICK) {
193
- int length = getText().length();
194
- if (length > 0) {
195
- // For some reason, when you swipe to focus on a text input that already has text in
196
- // it, it clears the selection and resets the cursor to the beginning of the input.
197
- // Since this is not typically (ever?) what you want, let's just explicitly set the
198
- // selection on accessibility click to undo that.
199
- setSelection(length);
200
- }
201
- return ReactNativeFeatureFlags.useEditTextStockAndroidFocusBehavior()
202
- ? requestFocusProgramatically()
203
- : requestFocusInternal();
204
- }
205
- return super.performAccessibilityAction(host, action, args);
206
- }
207
- };
208
- ViewCompat.setAccessibilityDelegate(this, editTextAccessibilityDelegate);
209
- ActionMode.Callback customActionModeCallback =
210
- new ActionMode.Callback() {
211
- /*
212
- * Editor onCreateActionMode adds the cut, copy, paste, share, autofill,
213
- * and paste as plain text items to the context menu.
214
- */
215
- @Override
216
- public boolean onCreateActionMode(ActionMode mode, Menu menu) {
217
- if (mContextMenuHidden) {
218
- return false;
219
- }
220
- menu.removeItem(android.R.id.pasteAsPlainText);
221
- return true;
222
- }
223
-
224
- @Override
225
- public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
226
- return true;
227
- }
228
-
229
- @Override
230
- public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
231
- return false;
232
- }
233
-
234
- @Override
235
- public void onDestroyActionMode(ActionMode mode) {}
236
- };
237
- setCustomSelectionActionModeCallback(customActionModeCallback);
238
- setCustomInsertionActionModeCallback(customActionModeCallback);
239
- }
240
-
241
- @Override
242
- protected void finalize() {
243
- if (DEBUG_MODE) {
244
- FLog.e(TAG, "finalize[" + getId() + "] delete cached spannable");
245
- }
246
- TextLayoutManager.deleteCachedSpannableForTag(getId());
247
- }
248
-
249
- // Not currently used, but leaving in as a comment in case it's needed later
250
-
251
- // private boolean isTVDevice() {
252
- // UiModeManager uiModeManager = (UiModeManager) getContext().getSystemService(Context.UI_MODE_SERVICE);
253
- // return uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION;
254
- // }
255
-
256
- public void showKeyboard() {
257
- isKeyboardOpened = true;
258
- showSoftKeyboard();
259
- }
260
-
261
- public void hideKeyboard() {
262
- isKeyboardOpened = false;
263
- hideSoftKeyboard();
264
- }
265
-
266
- // After the text changes inside an EditText, TextView checks if a layout() has been requested.
267
- // If it has, it will not scroll the text to the end of the new text inserted, but wait for the
268
- // next layout() to be called. However, we do not perform a layout() after a requestLayout(), so
269
- // we need to override isLayoutRequested to force EditText to scroll to the end of the new text
270
- // immediately.
271
- // TODO: t6408636 verify if we should schedule a layout after a View does a requestLayout()
272
- @Override
273
- public boolean isLayoutRequested() {
274
- return false;
275
- }
276
-
277
- @Override
278
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
279
- onContentSizeChange();
280
- if (mSelectTextOnFocus && isFocused()) {
281
- // Explicitly call this method to select text when layout is drawn
282
- selectAll();
283
- // Prevent text on being selected for next layout pass
284
- mSelectTextOnFocus = false;
285
- }
286
- }
287
-
288
- @Override
289
- public boolean onTouchEvent(MotionEvent ev) {
290
- switch (ev.getAction()) {
291
- case MotionEvent.ACTION_DOWN:
292
- mDetectScrollMovement = true;
293
- // Disallow parent views to intercept touch events, until we can detect if we should be
294
- // capturing these touches or not.
295
- this.getParent().requestDisallowInterceptTouchEvent(true);
296
- isKeyboardOpened = !isKeyboardOpened;
297
- break;
298
- case MotionEvent.ACTION_MOVE:
299
- if (mDetectScrollMovement) {
300
- if (!canScrollVertically(-1)
301
- && !canScrollVertically(1)
302
- && !canScrollHorizontally(-1)
303
- && !canScrollHorizontally(1)) {
304
- // We cannot scroll, let parent views take care of these touches.
305
- this.getParent().requestDisallowInterceptTouchEvent(false);
306
- }
307
- mDetectScrollMovement = false;
308
- }
309
- break;
310
- }
311
- return super.onTouchEvent(ev);
312
- }
313
-
314
- // Consume 'Enter' key events: TextView tries to give focus to the next TextInput, but it can't
315
- // since we only allow JS to change focus, which in turn causes TextView to crash.
316
- @Override
317
- public boolean onKeyUp(int keyCode, KeyEvent event) {
318
- if (keyCode == KeyEvent.KEYCODE_ENTER && !isMultiline()) {
319
- hideSoftKeyboard();
320
- return true;
321
- }
322
- if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_BACK) {
323
- isKeyboardOpened = !isKeyboardOpened;
324
- }
325
- return super.onKeyUp(keyCode, event);
326
- }
327
-
328
- @Override
329
- public void setLineHeight(int lineHeight) {
330
- mTextAttributes.setLineHeight(lineHeight);
331
- // We don't call super.setLineHeight() because LineHeight is fully managed by ReactNative
332
- }
333
-
334
- @Override
335
- protected void onScrollChanged(int horiz, int vert, int oldHoriz, int oldVert) {
336
- super.onScrollChanged(horiz, vert, oldHoriz, oldVert);
337
-
338
- if (mScrollWatcher != null) {
339
- mScrollWatcher.onScrollChanged(horiz, vert, oldHoriz, oldVert);
340
- }
341
- }
342
-
343
- @Override
344
- public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
345
- ReactContext reactContext = getReactContext(this);
346
- InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
347
- if (inputConnection != null && mOnKeyPress) {
348
- inputConnection =
349
- new ReactEditTextInputConnectionWrapper(
350
- inputConnection, reactContext, this, mEventDispatcher);
351
- }
352
-
353
- if (isMultiline() && (shouldBlurOnReturn() || shouldSubmitOnReturn())) {
354
- // Remove IME_FLAG_NO_ENTER_ACTION to keep the original IME_OPTION
355
- outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
356
- }
357
- return inputConnection;
358
- }
359
-
360
- /*
361
- * Called when a context menu option for the text view is selected.
362
- * React Native replaces copy (as rich text) with copy as plain text.
363
- */
364
- @Override
365
- public boolean onTextContextMenuItem(int id) {
366
- if (id == android.R.id.paste) {
367
- id = android.R.id.pasteAsPlainText;
368
- }
369
- return super.onTextContextMenuItem(id);
370
- }
371
-
372
- @Override
373
- public void clearFocus() {
374
- boolean useStockFocusBehavior = ReactNativeFeatureFlags.useEditTextStockAndroidFocusBehavior();
375
- if (!useStockFocusBehavior) {
376
- setFocusableInTouchMode(false);
377
- }
378
- super.clearFocus();
379
- isKeyboardOpened = false;
380
- hideSoftKeyboard();
381
- }
382
-
383
- @Override
384
- public boolean requestFocus(int direction, Rect previouslyFocusedRect) {
385
- // This is a no-op so that when the OS calls requestFocus(), nothing will happen. ReactEditText
386
- // is a controlled component, which means its focus is controlled by JS, with two exceptions:
387
- // autofocus when it's attached to the window, and responding to accessibility events. In both
388
- // of these cases, we call requestFocusInternal() directly.
389
- return ReactNativeFeatureFlags.useEditTextStockAndroidFocusBehavior()
390
- ? super.requestFocus(direction, previouslyFocusedRect)
391
- : isFocused();
392
- }
393
-
394
- private boolean requestFocusInternal() {
395
- setFocusableInTouchMode(true);
396
- boolean focused = super.requestFocus(View.FOCUS_DOWN, null);
397
- if (getShowSoftInputOnFocus()) {
398
- showSoftKeyboard();
399
- } else {
400
- if (isKeyboardOpened) {
401
- showSoftKeyboard();
402
- } else {
403
- hideSoftKeyboard();
404
- }
405
- }
406
-
407
- return focused;
408
- }
409
-
410
- // For cases like autoFocus, or ref.focus() where we request focus programatically and not through
411
- // interacting with the EditText directly (like clicking on it). We cannot use stock
412
- // requestFocus() because it will not pop up the soft keyboard, only clicking the input will do
413
- // that. This method will eventually replace requestFocusInternal()
414
- private boolean requestFocusProgramatically() {
415
- boolean focused = super.requestFocus(View.FOCUS_DOWN, null);
416
- if (isInTouchMode() && getShowSoftInputOnFocus()) {
417
- showSoftKeyboard();
418
- }
419
-
420
- return focused;
421
- }
422
-
423
- @Override
424
- public void addTextChangedListener(TextWatcher watcher) {
425
- if (mListeners == null) {
426
- mListeners = new CopyOnWriteArrayList<>();
427
- super.addTextChangedListener(getTextWatcherDelegator());
428
- }
429
-
430
- mListeners.add(watcher);
431
- }
432
-
433
- @Override
434
- public void removeTextChangedListener(TextWatcher watcher) {
435
- if (mListeners != null) {
436
- mListeners.remove(watcher);
437
-
438
- if (mListeners.isEmpty()) {
439
- mListeners = null;
440
- super.removeTextChangedListener(getTextWatcherDelegator());
441
- }
442
- }
443
- }
444
-
445
- public void setContentSizeWatcher(@Nullable ContentSizeWatcher contentSizeWatcher) {
446
- mContentSizeWatcher = contentSizeWatcher;
447
- }
448
-
449
- public void setScrollWatcher(@Nullable ScrollWatcher scrollWatcher) {
450
- mScrollWatcher = scrollWatcher;
451
- }
452
-
453
- /**
454
- * Attempt to set a selection or fail silently. Intentionally meant to handle bad inputs.
455
- * EventCounter is the same one used as with text.
456
- *
457
- * @param eventCounter
458
- * @param start
459
- * @param end
460
- */
461
- public void maybeSetSelection(int eventCounter, int start, int end) {
462
- if (!canUpdateWithEventCount(eventCounter)) {
463
- return;
464
- }
465
-
466
- maybeSetSelection(start, end);
467
- }
468
-
469
- private void maybeSetSelection(int start, int end) {
470
- if (start != ReactConstants.UNSET && end != ReactConstants.UNSET) {
471
- // clamp selection values for safety
472
- start = clampToTextLength(start);
473
- end = clampToTextLength(end);
474
-
475
- setSelection(start, end);
476
- }
477
- }
478
-
479
- private int clampToTextLength(int value) {
480
- int textLength = getText() == null ? 0 : getText().length();
481
-
482
- return Math.max(0, Math.min(value, textLength));
483
- }
484
-
485
- @Override
486
- public void setSelection(int start, int end) {
487
- if (DEBUG_MODE) {
488
- FLog.e(TAG, "setSelection[" + getId() + "]: " + start + " " + end);
489
- }
490
- super.setSelection(start, end);
491
- }
492
-
493
- @Override
494
- protected void onSelectionChanged(int selStart, int selEnd) {
495
- if (DEBUG_MODE) {
496
- FLog.e(TAG, "onSelectionChanged[" + getId() + "]: " + selStart + " " + selEnd);
497
- }
498
-
499
- super.onSelectionChanged(selStart, selEnd);
500
- if (mSelectionWatcher != null && hasFocus()) {
501
- mSelectionWatcher.onSelectionChanged(selStart, selEnd);
502
- }
503
- }
504
-
505
- @Override
506
- protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
507
- super.onFocusChanged(focused, direction, previouslyFocusedRect);
508
- if (focused && mSelectionWatcher != null) {
509
- mSelectionWatcher.onSelectionChanged(getSelectionStart(), getSelectionEnd());
510
- }
511
-
512
- if (!focused) {
513
- isKeyboardOpened = false;
514
- }
515
- }
516
-
517
- public void setSelectionWatcher(@Nullable SelectionWatcher selectionWatcher) {
518
- mSelectionWatcher = selectionWatcher;
519
- }
520
-
521
- public void setOnKeyPress(boolean onKeyPress) {
522
- mOnKeyPress = onKeyPress;
523
- }
524
-
525
- public boolean shouldBlurOnReturn() {
526
- String submitBehavior = getSubmitBehavior();
527
- boolean shouldBlur;
528
-
529
- // Default shouldBlur
530
- if (submitBehavior == null) {
531
- if (!isMultiline()) {
532
- shouldBlur = true;
533
- } else {
534
- shouldBlur = false;
535
- }
536
- } else {
537
- shouldBlur = submitBehavior.equals("blurAndSubmit");
538
- }
539
-
540
- return shouldBlur;
541
- }
542
-
543
- public boolean shouldSubmitOnReturn() {
544
- String submitBehavior = getSubmitBehavior();
545
- boolean shouldSubmit;
546
-
547
- // Default shouldSubmit
548
- if (submitBehavior == null) {
549
- if (!isMultiline()) {
550
- shouldSubmit = true;
551
- } else {
552
- shouldSubmit = false;
553
- }
554
- } else {
555
- shouldSubmit = submitBehavior.equals("submit") || submitBehavior.equals("blurAndSubmit");
556
- }
557
-
558
- return shouldSubmit;
559
- }
560
-
561
- public String getSubmitBehavior() {
562
- return mSubmitBehavior;
563
- }
564
-
565
- public void setSubmitBehavior(@Nullable String submitBehavior) {
566
- mSubmitBehavior = submitBehavior;
567
- }
568
-
569
- public void setDisableFullscreenUI(boolean disableFullscreenUI) {
570
- mDisableFullscreen = disableFullscreenUI;
571
- updateImeOptions();
572
- }
573
-
574
- public boolean getDisableFullscreenUI() {
575
- return mDisableFullscreen;
576
- }
577
-
578
- public void setReturnKeyType(String returnKeyType) {
579
- mReturnKeyType = returnKeyType;
580
- updateImeOptions();
581
- }
582
-
583
- public String getReturnKeyType() {
584
- return mReturnKeyType;
585
- }
586
-
587
- /*protected*/ int getStagedInputType() {
588
- return mStagedInputType;
589
- }
590
-
591
- /*package*/ void setStagedInputType(int stagedInputType) {
592
- mStagedInputType = stagedInputType;
593
- }
594
-
595
- /*package*/ void commitStagedInputType() {
596
- if (getInputType() != mStagedInputType) {
597
- int selectionStart = getSelectionStart();
598
- int selectionEnd = getSelectionEnd();
599
- setInputType(mStagedInputType);
600
- // Restore the selection
601
- maybeSetSelection(selectionStart, selectionEnd);
602
- }
603
- }
604
-
605
- @Override
606
- public void setInputType(int type) {
607
- Typeface tf = super.getTypeface();
608
- super.setInputType(type);
609
- mStagedInputType = type;
610
- // Input type password defaults to monospace font, so we need to re-apply the font
611
- super.setTypeface(tf);
612
-
613
- /**
614
- * If set forces multiline on input, because of a restriction on Android source that enables
615
- * multiline only for inputs of type Text and Multiline on method {@link
616
- * android.widget.TextView#isMultilineInputType(int)}} Source: {@Link <a
617
- * href='https://android.googlesource.com/platform/frameworks/base/+/jb-release/core/java/android/widget/TextView.java'>TextView.java</a>}
618
- */
619
- if (isMultiline()) {
620
- setSingleLine(false);
621
- }
622
-
623
- // We override the KeyListener so that all keys on the soft input keyboard as well as hardware
624
- // keyboards work. Some KeyListeners like DigitsKeyListener will display the keyboard but not
625
- // accept all input from it
626
- if (mKeyListener == null) {
627
- mKeyListener = new InternalKeyListener();
628
- }
629
-
630
- mKeyListener.setInputType(type);
631
- setKeyListener(mKeyListener);
632
- }
633
-
634
- public void setPlaceholder(@Nullable String placeholder) {
635
- if (!Objects.equals(placeholder, mPlaceholder)) {
636
- mPlaceholder = placeholder;
637
- setHint(placeholder);
638
- }
639
- }
640
-
641
- public void setFontFamily(String fontFamily) {
642
- mFontFamily = fontFamily;
643
- mTypefaceDirty = true;
644
- }
645
-
646
- public void setFontWeight(String fontWeightString) {
647
- int fontWeight = ReactTypefaceUtils.parseFontWeight(fontWeightString);
648
- if (fontWeight != mFontWeight) {
649
- mFontWeight = fontWeight;
650
- mTypefaceDirty = true;
651
- }
652
- }
653
-
654
- public void setFontStyle(String fontStyleString) {
655
- int fontStyle = ReactTypefaceUtils.parseFontStyle(fontStyleString);
656
- if (fontStyle != mFontStyle) {
657
- mFontStyle = fontStyle;
658
- mTypefaceDirty = true;
659
- }
660
- }
661
-
662
- @Override
663
- public void setFontFeatureSettings(String fontFeatureSettings) {
664
- if (!Objects.equals(fontFeatureSettings, getFontFeatureSettings())) {
665
- super.setFontFeatureSettings(fontFeatureSettings);
666
- mTypefaceDirty = true;
667
- }
668
- }
669
-
670
- public void maybeUpdateTypeface() {
671
- if (!mTypefaceDirty) {
672
- return;
673
- }
674
-
675
- mTypefaceDirty = false;
676
-
677
- Typeface newTypeface =
678
- ReactTypefaceUtils.applyStyles(
679
- getTypeface(), mFontStyle, mFontWeight, mFontFamily, getContext().getAssets());
680
- setTypeface(newTypeface);
681
-
682
- // Match behavior of CustomStyleSpan and enable SUBPIXEL_TEXT_FLAG when setting anything
683
- // nonstandard
684
- if (mFontStyle != ReactConstants.UNSET
685
- || mFontWeight != ReactConstants.UNSET
686
- || mFontFamily != null
687
- || getFontFeatureSettings() != null) {
688
- setPaintFlags(getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG);
689
- } else {
690
- setPaintFlags(getPaintFlags() & (~Paint.SUBPIXEL_TEXT_FLAG));
691
- }
692
- }
693
-
694
- // VisibleForTesting from {@link TextInputEventsTestCase}.
695
- public void requestFocusFromJS() {
696
- if (ReactNativeFeatureFlags.useEditTextStockAndroidFocusBehavior()) {
697
- requestFocusProgramatically();
698
- } else {
699
- requestFocusInternal();
700
- }
701
- }
702
-
703
- /* package */ void clearFocusFromJS() {
704
- clearFocus();
705
- }
706
-
707
- // VisibleForTesting from {@link TextInputEventsTestCase}.
708
- public int incrementAndGetEventCounter() {
709
- return ++mNativeEventCount;
710
- }
711
-
712
- public void maybeSetTextFromJS(ReactTextUpdate reactTextUpdate) {
713
- mIsSettingTextFromJS = true;
714
- maybeSetText(reactTextUpdate);
715
- mIsSettingTextFromJS = false;
716
- }
717
-
718
- public void maybeSetTextFromState(ReactTextUpdate reactTextUpdate) {
719
- mIsSettingTextFromState = true;
720
- maybeSetText(reactTextUpdate);
721
- mIsSettingTextFromState = false;
722
- }
723
-
724
- public boolean canUpdateWithEventCount(int eventCounter) {
725
- return eventCounter >= mNativeEventCount;
726
- }
727
-
728
- // VisibleForTesting from {@link TextInputEventsTestCase}.
729
- @SuppressLint("WrongConstant")
730
- public void maybeSetText(ReactTextUpdate reactTextUpdate) {
731
- if (isSecureText() && TextUtils.equals(getText(), reactTextUpdate.getText())) {
732
- return;
733
- }
734
-
735
- // Only set the text if it is up to date.
736
- if (!canUpdateWithEventCount(reactTextUpdate.getJsEventCounter())) {
737
- return;
738
- }
739
-
740
- if (DEBUG_MODE) {
741
- FLog.e(
742
- TAG,
743
- "maybeSetText["
744
- + getId()
745
- + "]: current text: "
746
- + getText()
747
- + " update: "
748
- + reactTextUpdate.getText());
749
- }
750
-
751
- // The current text gets replaced with the text received from JS. However, the spans on the
752
- // current text need to be adapted to the new text. Since TextView#setText() will remove or
753
- // reset some of these spans even if they are set directly, SpannableStringBuilder#replace() is
754
- // used instead (this is also used by the keyboard implementation underneath the covers).
755
- SpannableStringBuilder spannableStringBuilder =
756
- new SpannableStringBuilder(reactTextUpdate.getText());
757
-
758
- manageSpans(spannableStringBuilder);
759
- stripStyleEquivalentSpans(spannableStringBuilder);
760
-
761
- mContainsImages = reactTextUpdate.containsImages();
762
-
763
- // When we update text, we trigger onChangeText code that will
764
- // try to update state if the wrapper is available. Temporarily disable
765
- // to prevent an (asynchronous) infinite loop.
766
- mDisableTextDiffing = true;
767
-
768
- // On some devices, when the text is cleared, buggy keyboards will not clear the composing
769
- // text so, we have to set text to null, which will clear the currently composing text.
770
- if (reactTextUpdate.getText().length() == 0) {
771
- setText(null);
772
- } else {
773
- // When we update text, we trigger onChangeText code that will
774
- // try to update state if the wrapper is available. Temporarily disable
775
- // to prevent an infinite loop.
776
- getText().replace(0, length(), spannableStringBuilder);
777
- }
778
- mDisableTextDiffing = false;
779
-
780
- if (getBreakStrategy() != reactTextUpdate.getTextBreakStrategy()) {
781
- setBreakStrategy(reactTextUpdate.getTextBreakStrategy());
782
- }
783
-
784
- // Update cached spans (in Fabric only).
785
- updateCachedSpannable();
786
- }
787
-
788
- /**
789
- * Remove and/or add {@link Spanned.SPAN_EXCLUSIVE_EXCLUSIVE} spans, since they should only exist
790
- * as long as the text they cover is the same. All other spans will remain the same, since they
791
- * will adapt to the new text, hence why {@link SpannableStringBuilder#replace} never removes
792
- * them.
793
- */
794
- private void manageSpans(SpannableStringBuilder spannableStringBuilder) {
795
- Object[] spans = getText().getSpans(0, length(), Object.class);
796
- for (int spanIdx = 0; spanIdx < spans.length; spanIdx++) {
797
- Object span = spans[spanIdx];
798
- int spanFlags = getText().getSpanFlags(span);
799
- boolean isExclusiveExclusive =
800
- (spanFlags & Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) == Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
801
-
802
- // Remove all styling spans we might have previously set
803
- if (span instanceof ReactSpan) {
804
- getText().removeSpan(span);
805
- }
806
-
807
- // We only add spans back for EXCLUSIVE_EXCLUSIVE spans
808
- if (!isExclusiveExclusive) {
809
- continue;
810
- }
811
-
812
- final int spanStart = getText().getSpanStart(span);
813
- final int spanEnd = getText().getSpanEnd(span);
814
-
815
- // Make sure the span is removed from existing text, otherwise the spans we set will be
816
- // ignored or it will cover text that has changed.
817
- getText().removeSpan(span);
818
- if (sameTextForSpan(getText(), spannableStringBuilder, spanStart, spanEnd)) {
819
- spannableStringBuilder.setSpan(span, spanStart, spanEnd, spanFlags);
820
- }
821
- }
822
- }
823
-
824
- /**
825
- * Remove spans from the SpannableStringBuilder which can be represented by TextAppearance
826
- * attributes on the underlying EditText. This works around instability on Samsung devices with
827
- * the presence of spans https://github.com/facebook/react-native/issues/35936 (S318090)
828
- */
829
- private void stripStyleEquivalentSpans(SpannableStringBuilder sb) {
830
- stripSpansOfKind(
831
- sb,
832
- ReactAbsoluteSizeSpan.class,
833
- (span) -> span.getSize() == mTextAttributes.getEffectiveFontSize());
834
-
835
- stripSpansOfKind(
836
- sb,
837
- ReactBackgroundColorSpan.class,
838
- (span) ->
839
- Objects.equals(
840
- span.getBackgroundColor(), BackgroundStyleApplicator.getBackgroundColor(this)));
841
-
842
- stripSpansOfKind(
843
- sb,
844
- ReactForegroundColorSpan.class,
845
- (span) -> span.getForegroundColor() == getCurrentTextColor());
846
-
847
- stripSpansOfKind(
848
- sb,
849
- ReactStrikethroughSpan.class,
850
- (span) -> (getPaintFlags() & Paint.STRIKE_THRU_TEXT_FLAG) != 0);
851
-
852
- stripSpansOfKind(
853
- sb, ReactUnderlineSpan.class, (span) -> (getPaintFlags() & Paint.UNDERLINE_TEXT_FLAG) != 0);
854
-
855
- stripSpansOfKind(
856
- sb,
857
- CustomLetterSpacingSpan.class,
858
- (span) -> span.getSpacing() == mTextAttributes.getEffectiveLetterSpacing());
859
-
860
- stripSpansOfKind(
861
- sb,
862
- CustomStyleSpan.class,
863
- (span) -> {
864
- return span.getStyle() == mFontStyle
865
- && Objects.equals(span.getFontFamily(), mFontFamily)
866
- && span.getWeight() == mFontWeight
867
- && Objects.equals(span.getFontFeatureSettings(), getFontFeatureSettings());
868
- });
869
- }
870
-
871
- private <T> void stripSpansOfKind(
872
- SpannableStringBuilder sb, Class<T> clazz, Predicate<T> shouldStrip) {
873
- T[] spans = sb.getSpans(0, sb.length(), clazz);
874
-
875
- for (T span : spans) {
876
- if (shouldStrip.test(span)) {
877
- sb.removeSpan(span);
878
- }
879
- }
880
- }
881
-
882
- /**
883
- * Copy styles represented as attributes to the underlying span, for later measurement or other
884
- * usage outside the ReactEditText.
885
- */
886
- private void addSpansFromStyleAttributes(SpannableStringBuilder workingText) {
887
- int spanFlags = Spannable.SPAN_INCLUSIVE_INCLUSIVE;
888
-
889
- // Set all bits for SPAN_PRIORITY so that this span has the highest possible priority
890
- // (least precedence). This ensures the span is behind any overlapping spans.
891
- spanFlags |= Spannable.SPAN_PRIORITY;
892
-
893
- workingText.setSpan(
894
- new ReactAbsoluteSizeSpan(mTextAttributes.getEffectiveFontSize()),
895
- 0,
896
- workingText.length(),
897
- spanFlags);
898
-
899
- workingText.setSpan(
900
- new ReactForegroundColorSpan(getCurrentTextColor()), 0, workingText.length(), spanFlags);
901
-
902
- @Nullable Integer backgroundColor = BackgroundStyleApplicator.getBackgroundColor(this);
903
- if (backgroundColor != null && backgroundColor != Color.TRANSPARENT) {
904
- workingText.setSpan(
905
- new ReactBackgroundColorSpan(backgroundColor), 0, workingText.length(), spanFlags);
906
- }
907
-
908
- if ((getPaintFlags() & Paint.STRIKE_THRU_TEXT_FLAG) != 0) {
909
- workingText.setSpan(new ReactStrikethroughSpan(), 0, workingText.length(), spanFlags);
910
- }
911
-
912
- if ((getPaintFlags() & Paint.UNDERLINE_TEXT_FLAG) != 0) {
913
- workingText.setSpan(new ReactUnderlineSpan(), 0, workingText.length(), spanFlags);
914
- }
915
-
916
- float effectiveLetterSpacing = mTextAttributes.getEffectiveLetterSpacing();
917
- if (!Float.isNaN(effectiveLetterSpacing)) {
918
- workingText.setSpan(
919
- new CustomLetterSpacingSpan(effectiveLetterSpacing), 0, workingText.length(), spanFlags);
920
- }
921
-
922
- if (mFontStyle != ReactConstants.UNSET
923
- || mFontWeight != ReactConstants.UNSET
924
- || mFontFamily != null
925
- || getFontFeatureSettings() != null) {
926
- workingText.setSpan(
927
- new CustomStyleSpan(
928
- mFontStyle,
929
- mFontWeight,
930
- getFontFeatureSettings(),
931
- mFontFamily,
932
- getContext().getAssets()),
933
- 0,
934
- workingText.length(),
935
- spanFlags);
936
- }
937
-
938
- float lineHeight = mTextAttributes.getEffectiveLineHeight();
939
- if (!Float.isNaN(lineHeight)) {
940
- workingText.setSpan(new CustomLineHeightSpan(lineHeight), 0, workingText.length(), spanFlags);
941
- }
942
- }
943
-
944
- private void stripAbsoluteSizeSpans(SpannableStringBuilder sb) {
945
- // We have already set a font size on the EditText itself. We can safely remove sizing spans
946
- // which are the same as the set font size, and not otherwise overlapped.
947
- final int effectiveFontSize = mTextAttributes.getEffectiveFontSize();
948
- ReactAbsoluteSizeSpan[] spans = sb.getSpans(0, sb.length(), ReactAbsoluteSizeSpan.class);
949
-
950
- outerLoop:
951
- for (ReactAbsoluteSizeSpan span : spans) {
952
- ReactAbsoluteSizeSpan[] overlappingSpans =
953
- sb.getSpans(sb.getSpanStart(span), sb.getSpanEnd(span), ReactAbsoluteSizeSpan.class);
954
-
955
- for (ReactAbsoluteSizeSpan overlappingSpan : overlappingSpans) {
956
- if (span.getSize() != effectiveFontSize) {
957
- continue outerLoop;
958
- }
959
- }
960
-
961
- sb.removeSpan(span);
962
- }
963
- }
964
-
965
- private static boolean sameTextForSpan(
966
- final Editable oldText,
967
- final SpannableStringBuilder newText,
968
- final int start,
969
- final int end) {
970
- if (start > newText.length() || end > newText.length()) {
971
- return false;
972
- }
973
- for (int charIdx = start; charIdx < end; charIdx++) {
974
- if (oldText.charAt(charIdx) != newText.charAt(charIdx)) {
975
- return false;
976
- }
977
- }
978
- return true;
979
- }
980
-
981
- protected boolean showSoftKeyboard() {
982
- return mInputMethodManager.showSoftInput(this, 0);
983
- }
984
-
985
- protected void hideSoftKeyboard() {
986
- mInputMethodManager.hideSoftInputFromWindow(getWindowToken(), 0);
987
- }
988
-
989
- private TextWatcherDelegator getTextWatcherDelegator() {
990
- if (mTextWatcherDelegator == null) {
991
- mTextWatcherDelegator = new TextWatcherDelegator();
992
- }
993
- return mTextWatcherDelegator;
994
- }
995
-
996
- /* package */ boolean isMultiline() {
997
- return (getInputType() & InputType.TYPE_TEXT_FLAG_MULTI_LINE) != 0;
998
- }
999
-
1000
- private boolean isSecureText() {
1001
- return (getInputType()
1002
- & (InputType.TYPE_NUMBER_VARIATION_PASSWORD | InputType.TYPE_TEXT_VARIATION_PASSWORD))
1003
- != 0;
1004
- }
1005
-
1006
- private void onContentSizeChange() {
1007
- if (mContentSizeWatcher != null) {
1008
- mContentSizeWatcher.onLayout();
1009
- }
1010
-
1011
- setIntrinsicContentSize();
1012
- }
1013
-
1014
- // TODO T58784068: delete this method
1015
- private void setIntrinsicContentSize() {
1016
- // This serves as a check for whether we're running under Paper or Fabric.
1017
- // By the time this is called, in Fabric we will have a state
1018
- // wrapper 100% of the time.
1019
- // Since the LocalData object is constructed by getting values from the underlying EditText
1020
- // view, we don't need to construct one or apply it at all - it provides no use in Fabric.
1021
- ReactContext reactContext = getReactContext(this);
1022
-
1023
- if (mStateWrapper == null && !reactContext.isBridgeless()) {
1024
-
1025
- final ReactTextInputLocalData localData = new ReactTextInputLocalData(this);
1026
- UIManagerModule uiManager = reactContext.getNativeModule(UIManagerModule.class);
1027
- if (uiManager != null) {
1028
- uiManager.setViewLocalData(getId(), localData);
1029
- }
1030
- }
1031
- }
1032
-
1033
- /* package */ int getGravityHorizontal() {
1034
- return getGravity()
1035
- & (Gravity.HORIZONTAL_GRAVITY_MASK | Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK);
1036
- }
1037
-
1038
- /* package */ void setGravityHorizontal(int gravityHorizontal) {
1039
- if (gravityHorizontal == 0) {
1040
- gravityHorizontal = mDefaultGravityHorizontal;
1041
- }
1042
- setGravity(
1043
- (getGravity()
1044
- & ~Gravity.HORIZONTAL_GRAVITY_MASK
1045
- & ~Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK)
1046
- | gravityHorizontal);
1047
- }
1048
-
1049
- /* package */ void setGravityVertical(int gravityVertical) {
1050
- if (gravityVertical == 0) {
1051
- gravityVertical = mDefaultGravityVertical;
1052
- }
1053
- setGravity((getGravity() & ~Gravity.VERTICAL_GRAVITY_MASK) | gravityVertical);
1054
- }
1055
-
1056
- private void updateImeOptions() {
1057
- // Default to IME_ACTION_DONE
1058
- int returnKeyFlag = EditorInfo.IME_ACTION_DONE;
1059
- if (mReturnKeyType != null) {
1060
- switch (mReturnKeyType) {
1061
- case "go":
1062
- returnKeyFlag = EditorInfo.IME_ACTION_GO;
1063
- break;
1064
- case "next":
1065
- returnKeyFlag = EditorInfo.IME_ACTION_NEXT;
1066
- break;
1067
- case "none":
1068
- returnKeyFlag = EditorInfo.IME_ACTION_NONE;
1069
- break;
1070
- case "previous":
1071
- returnKeyFlag = EditorInfo.IME_ACTION_PREVIOUS;
1072
- break;
1073
- case "search":
1074
- returnKeyFlag = EditorInfo.IME_ACTION_SEARCH;
1075
- break;
1076
- case "send":
1077
- returnKeyFlag = EditorInfo.IME_ACTION_SEND;
1078
- break;
1079
- case "done":
1080
- returnKeyFlag = EditorInfo.IME_ACTION_DONE;
1081
- break;
1082
- }
1083
- }
1084
-
1085
- if (mDisableFullscreen) {
1086
- setImeOptions(returnKeyFlag | EditorInfo.IME_FLAG_NO_FULLSCREEN);
1087
- } else {
1088
- setImeOptions(returnKeyFlag);
1089
- }
1090
- }
1091
-
1092
- @Override
1093
- protected boolean verifyDrawable(Drawable drawable) {
1094
- if (mContainsImages) {
1095
- Spanned text = getText();
1096
- TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
1097
- for (TextInlineImageSpan span : spans) {
1098
- if (span.getDrawable() == drawable) {
1099
- return true;
1100
- }
1101
- }
1102
- }
1103
- return super.verifyDrawable(drawable);
1104
- }
1105
-
1106
- @Override
1107
- public void invalidateDrawable(Drawable drawable) {
1108
- if (mContainsImages) {
1109
- Spanned text = getText();
1110
- TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
1111
- for (TextInlineImageSpan span : spans) {
1112
- if (span.getDrawable() == drawable) {
1113
- invalidate();
1114
- }
1115
- }
1116
- }
1117
- super.invalidateDrawable(drawable);
1118
- }
1119
-
1120
- @Override
1121
- public void onDetachedFromWindow() {
1122
- super.onDetachedFromWindow();
1123
- if (mContainsImages) {
1124
- Spanned text = getText();
1125
- TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
1126
- for (TextInlineImageSpan span : spans) {
1127
- span.onDetachedFromWindow();
1128
- }
1129
- }
1130
- }
1131
-
1132
- @Override
1133
- public void onStartTemporaryDetach() {
1134
- super.onStartTemporaryDetach();
1135
- if (mContainsImages) {
1136
- Spanned text = getText();
1137
- TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
1138
- for (TextInlineImageSpan span : spans) {
1139
- span.onStartTemporaryDetach();
1140
- }
1141
- }
1142
- }
1143
-
1144
- @Override
1145
- public void onAttachedToWindow() {
1146
- super.onAttachedToWindow();
1147
-
1148
- int selectionStart = getSelectionStart();
1149
- int selectionEnd = getSelectionEnd();
1150
-
1151
- // Used to ensure that text is selectable inside of removeClippedSubviews
1152
- // See https://github.com/facebook/react-native/issues/6805 for original
1153
- // fix that was ported to here.
1154
-
1155
- super.setTextIsSelectable(true);
1156
-
1157
- // Restore the selection since `setTextIsSelectable` changed it.
1158
- maybeSetSelection(selectionStart, selectionEnd);
1159
-
1160
- if (mContainsImages) {
1161
- Spanned text = getText();
1162
- TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
1163
- for (TextInlineImageSpan span : spans) {
1164
- span.onAttachedToWindow();
1165
- }
1166
- }
1167
-
1168
- if (mAutoFocus && !mDidAttachToWindow) {
1169
- if (ReactNativeFeatureFlags.useEditTextStockAndroidFocusBehavior()) {
1170
- requestFocusProgramatically();
1171
- } else {
1172
- requestFocusInternal();
1173
- }
1174
- }
1175
-
1176
- mDidAttachToWindow = true;
1177
- }
1178
-
1179
- @Override
1180
- public void onFinishTemporaryDetach() {
1181
- super.onFinishTemporaryDetach();
1182
- if (mContainsImages) {
1183
- Spanned text = getText();
1184
- TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
1185
- for (TextInlineImageSpan span : spans) {
1186
- span.onFinishTemporaryDetach();
1187
- }
1188
- }
1189
- }
1190
-
1191
- @Override
1192
- public void setBackgroundColor(int color) {
1193
- BackgroundStyleApplicator.setBackgroundColor(this, color);
1194
- }
1195
-
1196
- public void setBorderWidth(int position, float width) {
1197
- BackgroundStyleApplicator.setBorderWidth(
1198
- this, LogicalEdge.values()[position], PixelUtil.toDIPFromPixel(width));
1199
- }
1200
-
1201
- public void setBorderColor(int position, @Nullable Integer color) {
1202
- BackgroundStyleApplicator.setBorderColor(this, LogicalEdge.values()[position], color);
1203
- }
1204
-
1205
- public int getBorderColor(int position) {
1206
- @Nullable
1207
- Integer borderColor =
1208
- BackgroundStyleApplicator.getBorderColor(this, LogicalEdge.values()[position]);
1209
- return borderColor == null ? Color.TRANSPARENT : borderColor;
1210
- }
1211
-
1212
- public void setBorderRadius(float borderRadius) {
1213
- setBorderRadius(borderRadius, BorderRadiusProp.BORDER_RADIUS.ordinal());
1214
- }
1215
-
1216
- public void setBorderRadius(float borderRadius, int position) {
1217
- @Nullable
1218
- LengthPercentage radius =
1219
- Float.isNaN(borderRadius)
1220
- ? null
1221
- : new LengthPercentage(
1222
- PixelUtil.toDIPFromPixel(borderRadius), LengthPercentageType.POINT);
1223
- BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.values()[position], radius);
1224
- }
1225
-
1226
- public void setBorderStyle(@Nullable String style) {
1227
- BackgroundStyleApplicator.setBorderStyle(
1228
- this, style == null ? null : BorderStyle.fromString(style));
1229
- }
1230
-
1231
- public void setLetterSpacingPt(float letterSpacingPt) {
1232
- mTextAttributes.setLetterSpacing(letterSpacingPt);
1233
- applyTextAttributes();
1234
- }
1235
-
1236
- public void setAllowFontScaling(boolean allowFontScaling) {
1237
- if (mTextAttributes.getAllowFontScaling() != allowFontScaling) {
1238
- mTextAttributes.setAllowFontScaling(allowFontScaling);
1239
- applyTextAttributes();
1240
- }
1241
- }
1242
-
1243
- public void setFontSize(float fontSize) {
1244
- mTextAttributes.setFontSize(fontSize);
1245
- applyTextAttributes();
1246
- }
1247
-
1248
- public void setMaxFontSizeMultiplier(float maxFontSizeMultiplier) {
1249
- if (maxFontSizeMultiplier != mTextAttributes.getMaxFontSizeMultiplier()) {
1250
- mTextAttributes.setMaxFontSizeMultiplier(maxFontSizeMultiplier);
1251
- applyTextAttributes();
1252
- }
1253
- }
1254
-
1255
- public void setAutoFocus(boolean autoFocus) {
1256
- mAutoFocus = autoFocus;
1257
- }
1258
-
1259
- public void setSelectTextOnFocus(boolean selectTextOnFocus) {
1260
- super.setSelectAllOnFocus(selectTextOnFocus);
1261
- mSelectTextOnFocus = selectTextOnFocus;
1262
- }
1263
-
1264
- public void setContextMenuHidden(boolean contextMenuHidden) {
1265
- mContextMenuHidden = contextMenuHidden;
1266
- }
1267
-
1268
- protected void applyTextAttributes() {
1269
- // In general, the `getEffective*` functions return `Float.NaN` if the
1270
- // property hasn't been set.
1271
-
1272
- // `getEffectiveFontSize` always returns a value so don't need to check for anything like
1273
- // `Float.NaN`.
1274
- setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextAttributes.getEffectiveFontSize());
1275
-
1276
- float effectiveLetterSpacing = mTextAttributes.getEffectiveLetterSpacing();
1277
- if (!Float.isNaN(effectiveLetterSpacing)) {
1278
- setLetterSpacing(effectiveLetterSpacing);
1279
- }
1280
- }
1281
-
1282
- @Nullable
1283
- public StateWrapper getStateWrapper() {
1284
- return mStateWrapper;
1285
- }
1286
-
1287
- public void setStateWrapper(StateWrapper stateWrapper) {
1288
- mStateWrapper = stateWrapper;
1289
- }
1290
-
1291
- /**
1292
- * Update the cached Spannable used in TextLayoutManager to measure the text in Fabric. This is
1293
- * mostly copied from ReactTextInputShadowNode.java (the non-Fabric version) and
1294
- * TextLayoutManager.java with some very minor modifications. There's some duplication between
1295
- * here and TextLayoutManager, so there might be an opportunity for refactor.
1296
- */
1297
- private void updateCachedSpannable() {
1298
- // Noops in non-Fabric
1299
- if (mStateWrapper == null) {
1300
- return;
1301
- }
1302
- // If this view doesn't have an ID yet, we don't have a cache key, so bail here
1303
- if (getId() == -1) {
1304
- return;
1305
- }
1306
-
1307
- Editable currentText = getText();
1308
- boolean haveText = currentText != null && currentText.length() > 0;
1309
-
1310
- SpannableStringBuilder sb = new SpannableStringBuilder();
1311
-
1312
- // A note of caution: appending currentText to sb appends all the spans of currentText - not
1313
- // copies of the Spans, but the actual span objects. Any modifications to sb after that point
1314
- // can modify the spans of sb/currentText, impact the text or spans visible on screen, and
1315
- // also call the TextChangeWatcher methods.
1316
- if (haveText) {
1317
- // This is here as a workaround for T76236115, which looks like this:
1318
- // Hopefully we can delete all this stuff if we can get rid of the soft errors.
1319
- // - android.text.SpannableStringBuilder.charAt (SpannableStringBuilder.java:123)
1320
- // - android.text.CharSequenceCharacterIterator.current
1321
- // (CharSequenceCharacterIterator.java:58)
1322
- // - android.text.CharSequenceCharacterIterator.setIndex
1323
- // (CharSequenceCharacterIterator.java:83)
1324
- // - android.icu.text.RuleBasedBreakIterator.CISetIndex32 (RuleBasedBreakIterator.java:1126)
1325
- // - android.icu.text.RuleBasedBreakIterator.isBoundary (RuleBasedBreakIterator.java:503)
1326
- // - android.text.method.WordIterator.isBoundary (WordIterator.java:95)
1327
- // - android.widget.Editor$SelectionHandleView.positionAtCursorOffset (Editor.java:6666)
1328
- // - android.widget.Editor$HandleView.invalidate (Editor.java:5241)
1329
- // - android.widget.Editor$SelectionModifierCursorController.invalidateHandles
1330
- // (Editor.java:7442)
1331
- // - android.widget.Editor.invalidateHandlesAndActionMode (Editor.java:2112)
1332
- // - android.widget.TextView.spanChange (TextView.java:11189)
1333
- // - android.widget.TextView$ChangeWatcher.onSpanAdded (TextView.java:14189)
1334
- // - android.text.SpannableStringBuilder.sendSpanAdded (SpannableStringBuilder.java:1283)
1335
- // - android.text.SpannableStringBuilder.sendToSpanWatchers (SpannableStringBuilder.java:663)
1336
- // - android.text.SpannableStringBuilder.replace (SpannableStringBuilder.java:579)
1337
- // - android.text.SpannableStringBuilder.append (SpannableStringBuilder.java:269)
1338
- // - ReactEditText.updateCachedSpannable (ReactEditText.java:995)
1339
- // - ReactEditText$TextWatcherDelegator.onTextChanged (ReactEditText.java:1044)
1340
- // - android.widget.TextView.sendOnTextChanged (TextView.java:10972)
1341
- // ...
1342
- // - android.text.method.BaseKeyListener.onKeyDown (BaseKeyListener.java:479)
1343
- // - android.text.method.QwertyKeyListener.onKeyDown (QwertyKeyListener.java:362)
1344
- // - ReactEditText$InternalKeyListener.onKeyDown (ReactEditText.java:1094)
1345
- // ...
1346
- // - android.app.Activity.dispatchKeyEvent (Activity.java:3447)
1347
- try {
1348
- sb.append(currentText.subSequence(0, currentText.length()));
1349
- } catch (IndexOutOfBoundsException e) {
1350
- ReactSoftExceptionLogger.logSoftException(TAG, e);
1351
- }
1352
- }
1353
-
1354
- // If we don't have text, make sure we have *something* to measure.
1355
- // Hint has the same dimensions - the only thing that's different is background or foreground
1356
- // color
1357
- if (!haveText) {
1358
- if (getHint() != null && getHint().length() > 0) {
1359
- sb.append(getHint());
1360
- } else if (ViewUtil.getUIManagerType(this) != UIManagerType.FABRIC) {
1361
- // Measure something so we have correct height, even if there's no string.
1362
- sb.append("I");
1363
- }
1364
- }
1365
-
1366
- addSpansFromStyleAttributes(sb);
1367
- sb.setSpan(
1368
- new ReactTextPaintHolderSpan(new TextPaint(getPaint())),
1369
- 0,
1370
- sb.length(),
1371
- Spannable.SPAN_INCLUSIVE_INCLUSIVE);
1372
- TextLayoutManager.setCachedSpannableForTag(getId(), sb);
1373
- }
1374
-
1375
- void setEventDispatcher(@Nullable EventDispatcher eventDispatcher) {
1376
- mEventDispatcher = eventDispatcher;
1377
- }
1378
-
1379
- public void setOverflow(@Nullable String overflow) {
1380
- if (overflow == null) {
1381
- mOverflow = Overflow.VISIBLE;
1382
- } else {
1383
- @Nullable Overflow parsedOverflow = Overflow.fromString(overflow);
1384
- mOverflow = parsedOverflow == null ? Overflow.VISIBLE : parsedOverflow;
1385
- }
1386
-
1387
- invalidate();
1388
- }
1389
-
1390
- @Override
1391
- public void onDraw(Canvas canvas) {
1392
- if (mOverflow != Overflow.VISIBLE) {
1393
- BackgroundStyleApplicator.clipToPaddingBox(this, canvas);
1394
- }
1395
-
1396
- super.onDraw(canvas);
1397
- }
1398
-
1399
- /**
1400
- * This class will redirect *TextChanged calls to the listeners only in the case where the text is
1401
- * changed by the user, and not explicitly set by JS.
1402
- */
1403
- private class TextWatcherDelegator implements TextWatcher {
1404
-
1405
- @Override
1406
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
1407
- if (!mIsSettingTextFromJS && mListeners != null) {
1408
- for (TextWatcher listener : mListeners) {
1409
- listener.beforeTextChanged(s, start, count, after);
1410
- }
1411
- }
1412
- }
1413
-
1414
- @Override
1415
- public void onTextChanged(CharSequence s, int start, int before, int count) {
1416
- if (DEBUG_MODE) {
1417
- FLog.e(
1418
- TAG, "onTextChanged[" + getId() + "]: " + s + " " + start + " " + before + " " + count);
1419
- }
1420
-
1421
- if (!mIsSettingTextFromJS && mListeners != null) {
1422
- for (TextWatcher listener : mListeners) {
1423
- listener.onTextChanged(s, start, before, count);
1424
- }
1425
- }
1426
-
1427
- updateCachedSpannable();
1428
-
1429
- onContentSizeChange();
1430
- }
1431
-
1432
- @Override
1433
- public void afterTextChanged(Editable s) {
1434
- if (!mIsSettingTextFromJS && mListeners != null) {
1435
- for (TextWatcher listener : mListeners) {
1436
- listener.afterTextChanged(s);
1437
- }
1438
- }
1439
- }
1440
- }
1441
-
1442
- /*
1443
- * This class is set as the KeyListener for the underlying TextView
1444
- * It does two things
1445
- * 1) Provides the same answer to getInputType() as the real KeyListener would have which allows
1446
- * the proper keyboard to pop up on screen
1447
- * 2) Permits all keyboard input through
1448
- */
1449
- private static class InternalKeyListener implements KeyListener {
1450
-
1451
- private int mInputType = 0;
1452
-
1453
- public InternalKeyListener() {}
1454
-
1455
- public void setInputType(int inputType) {
1456
- mInputType = inputType;
1457
- }
1458
-
1459
- /*
1460
- * getInputType will return whatever value is passed in. This will allow the proper keyboard
1461
- * to be shown on screen but without the actual filtering done by other KeyListeners
1462
- */
1463
- @Override
1464
- public int getInputType() {
1465
- return mInputType;
1466
- }
1467
-
1468
- /*
1469
- * All overrides of key handling defer to the underlying KeyListener which is shared by all
1470
- * ReactEditText instances. It will basically allow any/all keyboard input whether from
1471
- * physical keyboard or from soft input.
1472
- */
1473
- @Override
1474
- public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) {
1475
- return sKeyListener.onKeyDown(view, text, keyCode, event);
1476
- }
1477
-
1478
- @Override
1479
- public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
1480
- return sKeyListener.onKeyUp(view, text, keyCode, event);
1481
- }
1482
-
1483
- @Override
1484
- public boolean onKeyOther(View view, Editable text, KeyEvent event) {
1485
- return sKeyListener.onKeyOther(view, text, event);
1486
- }
1487
-
1488
- @Override
1489
- public void clearMetaKeyState(View view, Editable content, int states) {
1490
- sKeyListener.clearMetaKeyState(view, content, states);
1491
- }
1492
- }
1493
- }