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