@depup/react-native 0.86.0-depup.49 → 0.87.0-depup.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 (1212) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +19 -24
  2. package/Libraries/Alert/Alert.js +38 -1
  3. package/Libraries/Animated/AnimatedExports.js +22 -0
  4. package/Libraries/Animated/AnimatedExports.js.flow +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +120 -3
  6. package/Libraries/Animated/Easing.js +4 -3
  7. package/Libraries/Animated/NativeAnimatedAllowlist.js +37 -0
  8. package/Libraries/Animated/animations/Animation.js +14 -5
  9. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  10. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  11. package/Libraries/Animated/animations/TimingAnimation.js +9 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  13. package/Libraries/Animated/nodes/AnimatedColor.js +8 -8
  14. package/Libraries/Animated/nodes/AnimatedInterpolation.js +106 -0
  15. package/Libraries/Animated/nodes/AnimatedProps.js +27 -3
  16. package/Libraries/Animated/nodes/AnimatedValue.js +8 -0
  17. package/Libraries/Animated/nodes/AnimatedValueXY.js +2 -2
  18. package/Libraries/AppDelegate/RCTAppDelegate.h +5 -9
  19. package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -20
  20. package/Libraries/AppDelegate/RCTAppSetupUtils.h +0 -18
  21. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +0 -78
  22. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +18 -21
  23. package/Libraries/AppDelegate/RCTReactNativeFactory.h +5 -41
  24. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +0 -82
  25. package/Libraries/AppDelegate/RCTRootViewFactory.h +4 -1
  26. package/Libraries/AppDelegate/RCTRootViewFactory.mm +3 -101
  27. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -0
  28. package/Libraries/AppState/AppState.d.ts +4 -1
  29. package/Libraries/AppState/AppState.js +32 -17
  30. package/Libraries/BatchedBridge/MessageQueue.js +42 -51
  31. package/Libraries/BatchedBridge/NativeModules.js +7 -0
  32. package/Libraries/Blob/Blob.js +7 -1
  33. package/Libraries/Blob/FileReader.js +6 -0
  34. package/Libraries/Blob/URLSearchParams.js.flow +1 -1
  35. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +20 -9
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -43
  37. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +59 -49
  38. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  39. package/Libraries/Components/Button.js +98 -183
  40. package/Libraries/Components/Clipboard/Clipboard.js +5 -0
  41. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  42. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +8 -69
  43. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +10 -1
  44. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +2 -0
  45. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +26 -31
  46. package/Libraries/Components/Keyboard/Keyboard.js +23 -60
  47. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +15 -7
  48. package/Libraries/Components/Pressable/Pressable.js +39 -17
  49. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +5 -6
  50. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +4 -4
  51. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  52. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +17 -0
  53. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  54. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  55. package/Libraries/Components/RefreshControl/RefreshControl.js +40 -50
  56. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  57. package/Libraries/Components/SafeAreaView/SafeAreaView.js +8 -8
  58. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.d.ts +55 -43
  60. package/Libraries/Components/ScrollView/ScrollView.js +205 -118
  61. package/Libraries/Components/ScrollView/ScrollViewCommands.js +4 -4
  62. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  63. package/Libraries/Components/StatusBar/StatusBar.d.ts +7 -54
  64. package/Libraries/Components/StatusBar/StatusBar.js +84 -160
  65. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  66. package/Libraries/Components/Switch/Switch.js +76 -75
  67. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  68. package/Libraries/Components/TextInput/InputAccessoryView.js +13 -61
  69. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  70. package/Libraries/Components/TextInput/TextInput.d.ts +9 -2
  71. package/Libraries/Components/TextInput/TextInput.flow.js +19 -2
  72. package/Libraries/Components/TextInput/TextInput.js +116 -111
  73. package/Libraries/Components/TextInput/TextInputNativeCommands.js +3 -3
  74. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +25 -19
  75. package/Libraries/Components/Touchable/Touchable.js +94 -95
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +45 -112
  77. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +13 -25
  78. package/Libraries/Components/Touchable/TouchableOpacity.js +14 -84
  79. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +4 -3
  80. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  81. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -0
  82. package/Libraries/Components/View/View.js +83 -86
  83. package/Libraries/Components/View/ViewAccessibility.d.ts +11 -1
  84. package/Libraries/Components/View/ViewAccessibility.js +16 -5
  85. package/Libraries/Components/View/ViewNativeComponent.js +4 -6
  86. package/Libraries/Components/View/ViewPropTypes.js +65 -13
  87. package/Libraries/Core/InitializeCore.js +9 -1
  88. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  89. package/Libraries/Core/ReactNativeVersion.js +1 -1
  90. package/Libraries/Core/Timers/JSTimers.js +53 -52
  91. package/Libraries/Core/setUpGlobals.js +9 -4
  92. package/Libraries/Core/setUpNavigator.js +6 -1
  93. package/Libraries/Core/setUpReactDevTools.js +0 -118
  94. package/Libraries/Core/setUpXHR.js +6 -2
  95. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  96. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  97. package/Libraries/EventEmitter/NativeEventEmitter.js +29 -0
  98. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +7 -7
  99. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +3 -0
  100. package/Libraries/Image/AssetSourceResolver.js +18 -27
  101. package/Libraries/Image/Image.android.js +13 -2
  102. package/Libraries/Image/Image.ios.js +3 -1
  103. package/Libraries/Image/ImageBackground.js +30 -18
  104. package/Libraries/Image/ImageProps.js +116 -117
  105. package/Libraries/Image/ImageSource.d.ts +1 -1
  106. package/Libraries/Image/ImageSource.js +9 -9
  107. package/Libraries/Image/ImageSourceUtils.js +10 -7
  108. package/Libraries/Image/ImageTypes.flow.js +2 -0
  109. package/Libraries/Image/ImageViewNativeComponent.js +1 -1
  110. package/Libraries/Image/RCTImageLoader.mm +60 -63
  111. package/Libraries/Image/RCTImageStoreManager.h +0 -2
  112. package/Libraries/Image/RelativeImageStub.js +1 -1
  113. package/Libraries/Image/resolveAssetSource.js +1 -1
  114. package/Libraries/Interaction/PanResponder.js +102 -97
  115. package/Libraries/LayoutAnimation/LayoutAnimation.js +22 -6
  116. package/Libraries/Linking/Linking.js +24 -23
  117. package/Libraries/Lists/FlatList.d.ts +6 -17
  118. package/Libraries/Lists/FlatList.js +7 -8
  119. package/Libraries/Lists/SectionList.js +7 -0
  120. package/Libraries/Lists/VirtualizedList.js +3 -0
  121. package/Libraries/Lists/VirtualizedSectionList.js +4 -0
  122. package/Libraries/LogBox/LogBox.js +3 -3
  123. package/Libraries/LogBox/UI/AnsiHighlight.js +2 -1
  124. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +2 -2
  125. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +4 -1
  126. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +3 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
  128. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +9 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +17 -4
  130. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -1
  131. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -0
  133. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -2
  134. package/Libraries/LogBox/UI/LogBoxMessage.js +18 -5
  135. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +4 -1
  136. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +1 -0
  137. package/Libraries/LogBox/UI/LogBoxStyle.js +0 -4
  138. package/Libraries/Modal/Modal.d.ts +5 -4
  139. package/Libraries/Modal/Modal.js +71 -37
  140. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  141. package/Libraries/NativeComponent/BaseViewConfig.android.js +17 -0
  142. package/Libraries/NativeComponent/ViewConfig.js +3 -3
  143. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  144. package/Libraries/Network/RCTHTTPRequestHandler.h +1 -1
  145. package/Libraries/Performance/Systrace.js +36 -0
  146. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +4 -2
  147. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +29 -17
  148. package/Libraries/Pressability/Pressability.js +1 -1
  149. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +4 -0
  150. package/Libraries/ReactNative/AppContainer-dev.js +3 -1
  151. package/Libraries/ReactNative/AppRegistry.flow.js +1 -0
  152. package/Libraries/ReactNative/AppRegistry.js +15 -11
  153. package/Libraries/ReactNative/AppRegistryImpl.js +57 -11
  154. package/Libraries/ReactNative/DisplayMode.js +1 -1
  155. package/Libraries/ReactNative/FabricUIManager.js +29 -26
  156. package/Libraries/ReactNative/I18nManager.js +20 -0
  157. package/Libraries/ReactNative/UIManager.js +53 -0
  158. package/Libraries/ReactNative/renderApplication.js +1 -1
  159. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -126
  160. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +5 -41
  161. package/Libraries/Renderer/shims/ReactNativeTypes.js +36 -36
  162. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +4 -4
  163. package/Libraries/Settings/Settings.ios.js +22 -0
  164. package/Libraries/Share/Share.js +25 -28
  165. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +6 -0
  166. package/Libraries/StyleSheet/StyleSheet.js +42 -2
  167. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  168. package/Libraries/StyleSheet/StyleSheetExports.js +7 -5
  169. package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
  170. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +24 -3
  171. package/Libraries/StyleSheet/StyleSheetTypes.js +34 -6
  172. package/Libraries/StyleSheet/flattenStyle.js +28 -13
  173. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -14
  174. package/Libraries/Text/Text.js +12 -9
  175. package/Libraries/Text/TextEffectNativeComponent.js +31 -0
  176. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +0 -1
  177. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +0 -1
  178. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +0 -1
  179. package/Libraries/Text/TextProps.js +59 -93
  180. package/Libraries/Text/requireNativeTextEffect.js +28 -0
  181. package/Libraries/TurboModule/RCTExport.js +1 -1
  182. package/Libraries/Types/CoreEventTypes.d.ts +8 -0
  183. package/Libraries/Types/CoreEventTypes.js +32 -29
  184. package/Libraries/Types/UIManagerJSInterface.js +2 -2
  185. package/Libraries/Utilities/Appearance.d.ts +32 -17
  186. package/Libraries/Utilities/Appearance.js +35 -18
  187. package/Libraries/Utilities/BackHandler.android.js +13 -28
  188. package/Libraries/Utilities/BackHandler.js.flow +18 -2
  189. package/Libraries/Utilities/DevSettings.js +8 -1
  190. package/Libraries/Utilities/Dimensions.js +18 -12
  191. package/Libraries/Utilities/PixelRatio.js +5 -2
  192. package/Libraries/Utilities/Platform.js.flow +4 -0
  193. package/Libraries/Utilities/PlatformTypes.js +77 -0
  194. package/Libraries/Utilities/differ/deepDiffer.js +5 -2
  195. package/Libraries/Utilities/useColorScheme.js +11 -1
  196. package/Libraries/Utilities/useWindowDimensions.js +6 -0
  197. package/Libraries/Vibration/Vibration.js +14 -11
  198. package/Libraries/vendor/emitter/EventEmitter.js +3 -3
  199. package/README.md +7 -9
  200. package/React/Base/RCTBridge+Private.h +0 -22
  201. package/React/Base/RCTBridge.h +10 -8
  202. package/React/Base/RCTBridge.mm +5 -447
  203. package/React/Base/RCTBridgeDelegate.h +1 -56
  204. package/React/Base/RCTBridgeModule.h +0 -9
  205. package/React/Base/RCTBridgeProxy.h +8 -0
  206. package/React/Base/RCTBridgeProxy.mm +3 -20
  207. package/React/Base/RCTBundleManager.h +0 -3
  208. package/React/Base/RCTBundleManager.m +0 -31
  209. package/React/Base/RCTBundleURLProvider.mm +4 -4
  210. package/React/Base/RCTCallableJSModules.m +0 -18
  211. package/React/Base/RCTConstants.h +1 -0
  212. package/React/Base/RCTConstants.m +1 -0
  213. package/React/Base/RCTConvert.mm +3 -0
  214. package/React/Base/RCTDisplayLink.h +3 -1
  215. package/React/Base/RCTJavaScriptExecutor.h +0 -69
  216. package/React/Base/RCTModuleData.mm +2 -483
  217. package/React/Base/RCTModuleRegistry.m +0 -25
  218. package/React/Base/RCTRootView.m +3 -374
  219. package/React/Base/RCTUtils.h +0 -3
  220. package/React/Base/RCTUtils.mm +17 -27
  221. package/React/Base/RCTVersion.m +1 -1
  222. package/React/Base/RCTViewRegistry.m +1 -29
  223. package/React/Base/Surface/RCTSurface.mm +1 -582
  224. package/React/Base/Surface/RCTSurfaceRootShadowView.m +0 -89
  225. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +0 -1
  226. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +0 -2
  227. package/React/CoreModules/RCTAlertController.mm +1 -0
  228. package/React/CoreModules/RCTAlertManager.mm +0 -5
  229. package/React/CoreModules/RCTLogBox.mm +0 -11
  230. package/React/CoreModules/RCTLogBoxView.h +0 -3
  231. package/React/CoreModules/RCTLogBoxView.mm +0 -31
  232. package/React/CoreModules/RCTPerfMonitor.mm +0 -2
  233. package/React/CoreModules/RCTStatusBarManager.mm +0 -11
  234. package/React/CxxModule/RCTCxxUtils.h +0 -8
  235. package/React/CxxModule/RCTCxxUtils.mm +0 -17
  236. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +179 -7
  237. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +100 -2
  238. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +373 -119
  239. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.cpp +1 -1
  240. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +1 -1
  241. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp +71 -71
  242. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +96 -96
  243. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +357 -363
  244. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +211 -212
  245. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h +107 -107
  246. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp +1 -1
  247. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +11 -11
  248. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +2 -2
  249. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.h +4 -0
  250. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +4 -0
  251. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.h +4 -0
  252. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +5 -0
  253. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -1
  254. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +14 -0
  255. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +12 -3
  256. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTVirtualViewContainerState.mm +12 -26
  257. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +39 -4
  258. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +5 -5
  259. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +0 -18
  260. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +9 -5
  261. package/React/Fabric/RCTSurfacePresenter.mm +86 -5
  262. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +2 -0
  263. package/React/I18n/RCTLocalizedString.mm +38 -2
  264. package/React/Modules/RCTEventEmitter.m +30 -10
  265. package/React/Modules/RCTI18nUtil.m +3 -1
  266. package/React/Modules/RCTUIManager.mm +0 -1501
  267. package/React/React-RCTFBReactNativeSpec.podspec +1 -1
  268. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +27 -0
  269. package/React/Views/RCTModalHostViewController.h +0 -15
  270. package/React/Views/RCTModalHostViewManager.h +0 -24
  271. package/React/Views/RCTShadowView.h +0 -2
  272. package/React/Views/RCTShadowView.m +0 -723
  273. package/React/Views/ScrollView/RCTScrollView.h +0 -81
  274. package/React/Views/ScrollView/RCTScrollableProtocol.h +0 -4
  275. package/React-Core-prebuilt.podspec +45 -17
  276. package/React-Core.podspec +9 -2
  277. package/ReactAndroid/api/ReactAndroid.api +128 -142
  278. package/ReactAndroid/build.gradle.kts +26 -21
  279. package/ReactAndroid/external-artifacts/build.gradle.kts +49 -0
  280. package/ReactAndroid/gradle.properties +1 -1
  281. package/ReactAndroid/hermes-engine/build.gradle.kts +14 -14
  282. package/ReactAndroid/src/debug/AndroidManifest.xml +6 -0
  283. package/ReactAndroid/src/debugOptimized/AndroidManifest.xml +22 -0
  284. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +3 -7
  285. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +4 -2
  286. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +4 -6
  287. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +5 -7
  288. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.kt +212 -0
  289. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +0 -16
  290. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +6 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.kt +1 -0
  292. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.kt +287 -0
  293. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt +16 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +15 -2
  295. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +1 -3
  296. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +4 -0
  297. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBuffer.kt +50 -2
  298. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +63 -22
  299. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +33 -0
  300. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +4 -12
  301. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactActivityDelegate.kt +14 -10
  302. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +6 -6
  303. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +50 -47
  304. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +0 -4
  305. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +10 -10
  306. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LocalNetworkPermissionUtil.kt +49 -0
  307. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.kt +101 -26
  308. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +40 -38
  309. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -10
  310. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +0 -3
  311. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +15 -11
  312. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +4 -4
  313. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +7 -13
  314. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +195 -194
  315. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SynchronousMountItem.kt +12 -8
  316. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +30 -66
  317. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +51 -111
  318. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +11 -23
  319. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +12 -24
  320. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +57 -123
  321. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +7 -5
  322. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -5
  323. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +11 -23
  324. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt +0 -24
  325. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +0 -4
  326. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +1 -0
  327. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt +3 -0
  328. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +50 -0
  329. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +53 -3
  330. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +2 -77
  331. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  332. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +2 -2
  333. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +1 -1
  334. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +9 -4
  335. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +4 -19
  336. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +1 -5
  337. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +4 -4
  338. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +46 -9
  339. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +1 -49
  340. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/HasChildPressedStateDelay.kt +29 -0
  341. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.kt +796 -0
  342. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +2 -4
  343. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +27 -27
  344. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.kt +184 -0
  345. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.kt +486 -0
  346. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +8 -8
  347. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.kt +2 -2
  348. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/SkewMatrixHelper.kt +200 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +3 -0
  350. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +6 -1
  351. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +2 -2
  352. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIBlock.kt +7 -1
  353. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.kt +645 -0
  354. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.kt +2 -3
  355. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.kt +142 -0
  356. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.kt +0 -10
  357. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +3 -3
  358. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.kt +527 -0
  359. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +3 -1
  360. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +6 -6
  361. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +6 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +7 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.kt +8 -1
  364. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +0 -3
  365. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +2 -0
  366. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +4 -4
  367. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +2 -0
  368. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.kt +1640 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +6 -6
  370. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.kt +1317 -0
  371. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +7 -7
  372. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.kt +1309 -0
  373. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +6 -6
  374. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +19 -33
  375. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +8 -6
  376. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +4 -4
  377. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +13 -20
  378. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +7 -1
  379. package/ReactAndroid/src/main/java/com/facebook/react/views/text/MutableSpannableLayout.kt +107 -0
  380. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +122 -10
  381. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +91 -1
  382. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +3 -0
  383. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +41 -0
  384. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +48 -2
  385. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextDecorationStyle.kt +200 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectRegistry.kt +45 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectSpanFactory.kt +17 -0
  388. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +361 -15
  389. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/AnimatedEffectSpan.kt +37 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/{DrawCommandSpan.kt → CanvasEffectSpan.kt} +3 -4
  391. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +23 -3
  392. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactStrikethroughSpan.kt +30 -3
  393. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactUnderlineSpan.kt +25 -3
  394. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/SetSpanOperation.kt +1 -1
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/StatefulSpan.kt +21 -0
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextEffectSpan.kt +19 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TouchableSpan.kt +29 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +81 -9
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +4 -0
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +3 -17
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +8 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +2 -0
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/VirtualViewRenderState.kt +1 -1
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +7 -8
  405. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.kt +45 -0
  406. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.kt +27 -0
  407. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +15 -0
  408. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +6 -0
  409. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.kt +27 -0
  410. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.kt +31 -0
  411. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.kt +41 -0
  412. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.kt +37 -0
  413. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.kt +27 -0
  414. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.kt +31 -0
  415. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.kt +33 -0
  416. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.kt +29 -0
  417. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.kt +43 -0
  418. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.kt +39 -0
  419. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.kt +29 -0
  420. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +16 -0
  421. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +12 -2
  422. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.kt +762 -0
  423. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +4 -4
  424. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.kt +27 -0
  425. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.kt +29 -0
  426. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.kt +29 -0
  427. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +24 -2
  428. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.kt +37 -0
  429. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.kt +29 -0
  430. package/ReactAndroid/src/main/jni/CMakeLists.txt +1 -2
  431. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +94 -0
  432. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.cpp +3 -0
  433. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +10 -10
  434. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  435. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +12 -15
  436. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -3
  437. package/ReactAndroid/src/main/jni/react/fabric/test/FabricMountingManagerTest.cpp +159 -0
  438. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +69 -153
  439. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +15 -33
  440. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.cpp +10 -24
  441. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.h +0 -2
  442. package/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JWritableMapBuffer.cpp +13 -0
  443. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +4 -1
  444. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +8 -0
  445. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +4 -0
  446. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +5 -0
  447. package/ReactAndroid/src/main/res/views/uimanager/values-zu/strings.xml +3 -0
  448. package/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec +63 -0
  449. package/ReactCommon/React-Fabric.podspec +2 -0
  450. package/ReactCommon/ReactCommon.podspec +2 -12
  451. package/ReactCommon/cmake-utils/react-native-flags.cmake +1 -3
  452. package/ReactCommon/cxxreact/CMakeLists.txt +1 -0
  453. package/ReactCommon/cxxreact/ErrorUtils.h +2 -32
  454. package/ReactCommon/cxxreact/Instance.cpp +1 -26
  455. package/ReactCommon/cxxreact/Instance.h +0 -2
  456. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -2
  457. package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +0 -12
  458. package/ReactCommon/cxxreact/RAMBundleRegistry.h +0 -5
  459. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  460. package/ReactCommon/cxxreact/ReactMarker.cpp +4 -30
  461. package/ReactCommon/cxxreact/ReactMarker.h +38 -21
  462. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  463. package/ReactCommon/cxxreact/TraceSection.h +1 -1
  464. package/ReactCommon/cxxreact/tests/methodcall.cpp +4 -0
  465. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +6 -79
  466. package/ReactCommon/jserrorhandler/ErrorUtils.cpp +42 -0
  467. package/{React/CxxLogUtils/RCTDefaultCxxLogFunction.h → ReactCommon/jserrorhandler/ErrorUtils.h} +2 -2
  468. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -1
  469. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +2 -3
  470. package/ReactCommon/jsi/jsi/hermes-interfaces.h +53 -0
  471. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +2 -1
  472. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +3 -14
  473. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +4 -13
  474. package/ReactCommon/jsinspector-modern/HostAgent.cpp +54 -0
  475. package/ReactCommon/jsinspector-modern/HostTarget.h +0 -7
  476. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +10 -7
  477. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +4 -1
  478. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +7 -0
  479. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +20 -0
  480. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -0
  481. package/ReactCommon/jsinspector-modern/SessionState.h +31 -0
  482. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  483. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +14 -1
  484. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +11 -0
  485. package/ReactCommon/react/bridging/ArrayBuffer.h +180 -0
  486. package/ReactCommon/react/bridging/Bridging.h +1 -0
  487. package/ReactCommon/react/bridging/Convert.h +12 -0
  488. package/ReactCommon/react/bridging/React-bridging.podspec +44 -0
  489. package/ReactCommon/react/bridging/tests/BridgingTest.cpp +185 -11
  490. package/ReactCommon/react/bridging/tests/ClassTest.cpp +22 -0
  491. package/ReactCommon/react/cxxstableapi/CMakeLists.txt +18 -0
  492. package/ReactCommon/react/cxxstableapi/FrameworksGuard.h +35 -0
  493. package/ReactCommon/react/cxxstableapi/PrivateGuard.h +34 -0
  494. package/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec +34 -0
  495. package/ReactCommon/react/cxxstableapi/UmbrellaGuard.h +53 -0
  496. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +21 -45
  497. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +26 -56
  498. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +134 -242
  499. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +14 -26
  500. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +20 -44
  501. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +43 -97
  502. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +10 -6
  503. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -7
  504. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -8
  505. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +7 -13
  506. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +1 -0
  507. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +49 -0
  508. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.cpp +4 -0
  509. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h +4 -0
  510. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +1 -1
  511. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  512. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +4 -0
  513. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +4 -0
  514. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +60 -3
  515. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +0 -9
  516. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +37 -139
  517. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleWithJSIBindings.h +0 -3
  518. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +6 -0
  519. package/ReactCommon/react/nativemodule/dom/NativeDOM.cpp +10 -4
  520. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -0
  521. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +25 -55
  522. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +11 -23
  523. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  524. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +1 -0
  525. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +4 -0
  526. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +1 -0
  527. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h +1 -1
  528. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +1 -0
  529. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +95 -63
  530. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +20 -1
  531. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +7 -10
  532. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +20 -1
  533. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h +1 -0
  534. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +67 -6
  535. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +12 -0
  536. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +25 -13
  537. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +7 -0
  538. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +48 -0
  539. package/ReactCommon/react/renderer/animated/tests/DecayAnimationDriverTest.cpp +245 -0
  540. package/ReactCommon/react/renderer/animated/tests/ManagedPropsMountingOverrideTests.cpp +204 -0
  541. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -1
  542. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
  543. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +17 -0
  544. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +0 -2
  545. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +6 -2
  546. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +25 -1
  547. package/ReactCommon/react/renderer/attributedstring/conversions.h +29 -1
  548. package/ReactCommon/react/renderer/attributedstring/primitives.h +4 -2
  549. package/ReactCommon/react/renderer/attributedstring/tests/ParagraphAttributesTest.cpp +73 -0
  550. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +6 -0
  551. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +79 -126
  552. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.cpp +4 -0
  553. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h +4 -0
  554. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h +4 -0
  555. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +5 -0
  556. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +4 -0
  557. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp +5 -0
  558. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +4 -0
  559. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.cpp +4 -0
  560. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +4 -0
  561. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h +4 -0
  562. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +4 -0
  563. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +5 -0
  564. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +4 -0
  565. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +5 -0
  566. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +235 -352
  567. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +30 -46
  568. package/ReactCommon/react/renderer/components/text/BaseParagraphProps.cpp +17 -27
  569. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -10
  570. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +19 -0
  571. package/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h +17 -0
  572. package/ReactCommon/react/renderer/components/text/TextEffectProps.cpp +59 -0
  573. package/ReactCommon/react/renderer/components/text/TextEffectProps.h +30 -0
  574. package/{Libraries/Text/VirtualText/RCTVirtualTextView.mm → ReactCommon/react/renderer/components/text/TextEffectShadowNode.cpp} +4 -6
  575. package/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h +26 -0
  576. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +18 -28
  577. package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +15 -0
  578. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +42 -50
  579. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +168 -754
  580. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +0 -9
  581. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +248 -312
  582. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -6
  583. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +2 -12
  584. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +73 -27
  585. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +7 -9
  586. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -11
  587. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +82 -162
  588. package/ReactCommon/react/renderer/components/view/primitives.h +5 -0
  589. package/ReactCommon/react/renderer/components/view/propsConversions.h +74 -42
  590. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +5 -5
  591. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +353 -6
  592. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +41 -16
  593. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +19 -0
  594. package/ReactCommon/react/renderer/core/EventEmitter.cpp +20 -4
  595. package/ReactCommon/react/renderer/core/LayoutMetrics.h +3 -0
  596. package/ReactCommon/react/renderer/core/Props.cpp +8 -39
  597. package/ReactCommon/react/renderer/core/Props.h +63 -13
  598. package/ReactCommon/react/renderer/core/RawProps.cpp +20 -3
  599. package/ReactCommon/react/renderer/core/RawProps.h +44 -0
  600. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +11 -27
  601. package/ReactCommon/react/renderer/core/RawPropsKeyMap.h +3 -3
  602. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +4 -6
  603. package/ReactCommon/react/renderer/core/RawPropsParser.h +3 -3
  604. package/ReactCommon/react/renderer/core/ShadowNode.cpp +27 -19
  605. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +2 -0
  606. package/ReactCommon/react/renderer/core/StateData.h +4 -4
  607. package/ReactCommon/react/renderer/core/propsConversions.h +3 -7
  608. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +8 -0
  609. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +7 -7
  610. package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +19 -19
  611. package/ReactCommon/react/renderer/core/tests/PropsConceptsTest.cpp +135 -0
  612. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +43 -53
  613. package/ReactCommon/react/renderer/element/tests/ElementTest.cpp +3 -3
  614. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +17 -0
  615. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  616. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +123 -33
  617. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +26 -14
  618. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +96 -53
  619. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +4 -0
  620. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +96 -1
  621. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +29 -318
  622. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +105 -33
  623. package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -0
  624. package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +11 -3
  625. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +1 -1
  626. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +15 -250
  627. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeReactBranchingTest.cpp +141 -0
  628. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +1 -1
  629. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +1 -0
  630. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -0
  631. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +22 -2
  632. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +13 -2
  633. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +13 -0
  634. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +9 -0
  635. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +43 -5
  636. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +17 -1
  637. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -0
  638. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +113 -8
  639. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +14 -6
  640. package/ReactCommon/react/renderer/scheduler/Scheduler.h +3 -2
  641. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +1 -85
  642. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +0 -6
  643. package/ReactCommon/react/renderer/scheduler/tests/SchedulerDelegateInvalidationTest.cpp +671 -0
  644. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +22 -5
  645. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +4 -2
  646. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +11 -0
  647. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +65 -26
  648. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +193 -1
  649. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +14 -2
  650. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +2 -1
  651. package/ReactCommon/react/renderer/textlayoutmanager/tests/TextLayoutManagerTest.cpp +86 -5
  652. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +89 -94
  653. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -2
  654. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +1 -1
  655. package/ReactCommon/react/renderer/uimanager/tests/FabricUIManagerTest.cpp +144 -3
  656. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +1 -52
  657. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +4 -4
  658. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +88 -39
  659. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +12 -2
  660. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +10 -0
  661. package/ReactCommon/react/runtime/ReactInstance.cpp +79 -64
  662. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +0 -89
  663. package/ReactCommon/react/runtime/iostests/MainQueueCoordinatorTests.mm +99 -0
  664. package/ReactCommon/react/runtime/iostests/RCTInstanceTests.mm +244 -0
  665. package/ReactCommon/react/runtime/platform/ios/ReactCommon/ObjCTimerRegistry.h +1 -1
  666. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +47 -30
  667. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.mm +3 -2
  668. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.mm +3 -2
  669. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +27 -3
  670. package/ReactCommon/react/runtime/tests/cxx/RuntimeExecutorShutdownTest.cpp +155 -0
  671. package/ReactCommon/react/utils/Telemetry.h +0 -13
  672. package/ReactCommon/react/utils/tests/Base64Tests.cpp +36 -0
  673. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +0 -1
  674. package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.mm +21 -38
  675. package/ReactCommon/yoga/Yoga.podspec +1 -1
  676. package/ReactCommon/yoga/yoga/YGEnums.cpp +2 -0
  677. package/ReactCommon/yoga/yoga/YGEnums.h +1 -0
  678. package/ReactCommon/yoga/yoga/YGNode.cpp +27 -0
  679. package/ReactCommon/yoga/yoga/YGNode.h +69 -0
  680. package/ReactCommon/yoga/yoga/YGNodeLayout.h +0 -2
  681. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +2 -1
  682. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +294 -17
  683. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +1 -1
  684. package/ReactCommon/yoga/yoga/config/Config.h +1 -1
  685. package/ReactCommon/yoga/yoga/enums/Errata.h +1 -0
  686. package/ReactCommon/yoga/yoga/node/LayoutResults.h +8 -0
  687. package/ReactCommon/yoga/yoga/node/Node.cpp +32 -0
  688. package/ReactCommon/yoga/yoga/node/Node.h +33 -0
  689. package/changes.json +6 -14
  690. package/cli.js +3 -182
  691. package/flow/bom.js.flow +42 -42
  692. package/flow/cssom.js.flow +21 -21
  693. package/flow/dom.js.flow +128 -128
  694. package/flow/global.js +6 -0
  695. package/gradle/libs.versions.toml +7 -5
  696. package/index.js +53 -86
  697. package/index.js.flow +53 -23
  698. package/package.json +49 -68
  699. package/react-native.config.js +82 -1
  700. package/scripts/cocoapods/fabric.rb +1 -1
  701. package/scripts/cocoapods/jsengine.rb +1 -1
  702. package/scripts/cocoapods/new_architecture.rb +1 -1
  703. package/scripts/cocoapods/rncore.rb +36 -78
  704. package/scripts/cocoapods/rncore_facades.rb +232 -0
  705. package/scripts/cocoapods/rndependencies.rb +64 -3
  706. package/scripts/cocoapods/rndeps_facades.rb +193 -0
  707. package/scripts/cocoapods/spm.rb +78 -11
  708. package/scripts/cocoapods/utils.rb +5 -7
  709. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +0 -1
  710. package/scripts/codegen/templates/Package.swift.spm-template +97 -0
  711. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -1
  712. package/scripts/hermes/hermes-utils.js +27 -58
  713. package/scripts/react-native-xcode.sh +20 -0
  714. package/scripts/react_native_pods.rb +71 -21
  715. package/scripts/react_native_pods_utils/script_phases.sh +4 -3
  716. package/scripts/replace-rncore-version.js +57 -86
  717. package/scripts/setup-apple-spm.js +1267 -0
  718. package/scripts/spm/__doc__/rfc-spm-xcframework.md +707 -0
  719. package/scripts/spm/__doc__/spm-autolinking-plugins.md +244 -0
  720. package/scripts/spm/__doc__/spm-header-paths-contract.md +97 -0
  721. package/scripts/spm/__doc__/spm-plugins-assessment.md +128 -0
  722. package/scripts/spm/__doc__/spm-scripts.md +486 -0
  723. package/scripts/spm/autolinking-plugins.js +331 -0
  724. package/scripts/spm/download-spm-artifacts.js +1409 -0
  725. package/scripts/spm/expand-spm-dependencies.js +216 -0
  726. package/scripts/spm/flavored-frameworks.js +1008 -0
  727. package/scripts/spm/generate-spm-autolinking-config.js +221 -0
  728. package/scripts/spm/generate-spm-autolinking.js +1888 -0
  729. package/scripts/spm/generate-spm-package.js +302 -0
  730. package/scripts/spm/generate-spm-xcodeproj.js +2266 -0
  731. package/scripts/spm/read-podspec.js +695 -0
  732. package/scripts/spm/scaffold-package-swift.js +1206 -0
  733. package/scripts/spm/spm-pbxproj.js +654 -0
  734. package/scripts/spm/spm-types.js +520 -0
  735. package/scripts/spm/spm-utils.js +645 -0
  736. package/scripts/spm/sync-spm-autolinking.js +160 -0
  737. package/sdks/.hermesv1version +1 -1
  738. package/sdks/hermes-engine/hermes-engine.podspec +9 -39
  739. package/sdks/hermes-engine/hermes-utils.rb +19 -73
  740. package/sdks/hermes-engine/utils/replace_hermes_version.js +18 -4
  741. package/sdks/hermes-engine/version.properties +1 -2
  742. package/settings.gradle.kts +0 -43
  743. package/src/asset-registry.js +29 -0
  744. package/src/private/animated/NativeAnimatedHelper.js +45 -21
  745. package/src/private/assets/AssetRegistry.js +52 -0
  746. package/src/private/{specs_DEPRECATED/components → components/activityindicator/specs}/ActivityIndicatorViewNativeComponent.js +5 -5
  747. package/src/private/{specs_DEPRECATED/components → components/debuggingoverlay/specs}/DebuggingOverlayNativeComponent.js +8 -8
  748. package/src/private/{specs_DEPRECATED/components → components/drawerlayoutandroid/specs}/AndroidDrawerLayoutNativeComponent.js +8 -8
  749. package/src/private/{specs_DEPRECATED/components → components/inputaccessoryview/specs}/RCTInputAccessoryViewNativeComponent.js +4 -4
  750. package/src/private/{specs_DEPRECATED/components → components/modal/specs}/RCTModalHostViewNativeComponent.js +4 -9
  751. package/src/private/{specs_DEPRECATED/components → components/progressbarandroid/specs}/ProgressBarAndroidNativeComponent.js +5 -5
  752. package/src/private/{specs_DEPRECATED/components → components/refreshcontrol/specs}/AndroidSwipeRefreshLayoutNativeComponent.js +7 -7
  753. package/src/private/{specs_DEPRECATED/components → components/refreshcontrol/specs}/PullToRefreshViewNativeComponent.js +7 -7
  754. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  755. package/src/private/{specs_DEPRECATED/components → components/safeareaview/specs}/RCTSafeAreaViewNativeComponent.js +3 -3
  756. package/src/private/components/scrollview/HScrollViewNativeComponents.js +1 -1
  757. package/src/private/{specs_DEPRECATED/components → components/scrollview/specs}/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
  758. package/src/private/{specs_DEPRECATED/components → components/switch/specs}/AndroidSwitchNativeComponent.js +7 -7
  759. package/src/private/{specs_DEPRECATED/components → components/switch/specs}/SwitchNativeComponent.js +10 -7
  760. package/src/private/{specs_DEPRECATED/components → components/unimplementedview/specs}/UnimplementedNativeViewNativeComponent.js +4 -4
  761. package/src/private/components/virtualcollection/Virtual.js +5 -5
  762. package/src/private/components/virtualcollection/VirtualCollectionView.js +2 -6
  763. package/src/private/components/virtualcollection/column/VirtualColumn.js +1 -1
  764. package/src/private/components/virtualcollection/row/VirtualRow.js +1 -1
  765. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +3 -1
  766. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +4 -4
  767. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +4 -2
  768. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
  769. package/src/private/featureflags/ReactNativeFeatureFlags.js +46 -70
  770. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +88 -94
  771. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  772. package/src/private/renderer/events/ReactNativeResponder.js +49 -4
  773. package/src/private/renderer/events/ResponderTouchHistoryStore.js +11 -2
  774. package/src/private/renderer/events/dispatchNativeEvent.js +71 -36
  775. package/src/private/setup/setUpDOM.js +19 -9
  776. package/src/private/setup/setUpIntersectionObserver.js +7 -0
  777. package/src/private/setup/setUpMutationObserver.js +3 -1
  778. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +9 -9
  779. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +24 -24
  780. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +28 -28
  781. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
  782. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +45 -25
  783. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +44 -24
  784. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +4 -4
  785. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +8 -6
  786. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +7 -7
  787. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +3 -3
  788. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +2 -2
  789. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +11 -11
  790. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
  791. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +4 -4
  792. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +7 -7
  793. package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +4 -4
  794. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
  795. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +4 -4
  796. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +2 -2
  797. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
  798. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +13 -13
  799. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +9 -6
  800. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +6 -6
  801. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
  802. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +8 -5
  803. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +5 -5
  804. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
  805. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +2 -2
  806. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +6 -6
  807. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +2 -2
  808. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +2 -2
  809. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +5 -5
  810. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +6 -6
  811. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +6 -4
  812. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
  813. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +1 -1
  814. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +35 -31
  815. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +2 -2
  816. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +24 -24
  817. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +2 -2
  818. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +3 -3
  819. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +2 -2
  820. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
  821. package/src/private/specs_DEPRECATED/modules/NativeSourceCode.js +1 -1
  822. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerAndroid.js +5 -17
  823. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerIOS.js +10 -15
  824. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +3 -3
  825. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +4 -4
  826. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +35 -22
  827. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +4 -4
  828. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +7 -7
  829. package/src/private/types/HostInstance.js +38 -80
  830. package/src/private/viewtransition/specs/NativeViewTransition.js +6 -4
  831. package/src/private/webapis/dom/abort-api/AbortController.js +92 -0
  832. package/src/private/webapis/dom/abort-api/AbortSignal.js +243 -0
  833. package/src/private/webapis/dom/events/CustomEvent.js +1 -1
  834. package/src/private/webapis/dom/events/Event.js +12 -12
  835. package/src/private/webapis/dom/events/EventTarget.js +146 -37
  836. package/src/private/webapis/dom/events/internals/EventInternals.js +36 -0
  837. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +38 -3
  838. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +11 -0
  839. package/src/private/webapis/dom/nodes/ReactNativeElement.js +105 -4
  840. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +11 -0
  841. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +9 -0
  842. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +34 -7
  843. package/src/private/webapis/dom/nodes/ReadOnlyText.js +33 -0
  844. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +46 -42
  845. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +12 -0
  846. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +4 -2
  847. package/src/private/webapis/dom/oldstylecollections/NodeList.js +10 -0
  848. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -3
  849. package/src/private/webapis/errors/DOMException.js +50 -50
  850. package/src/private/webapis/geometry/DOMRectList.js +12 -0
  851. package/src/private/webapis/geometry/DOMRectList.js.flow +3 -1
  852. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  853. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
  854. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +13 -0
  855. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +3 -7
  856. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +5 -5
  857. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  858. package/src/private/webapis/mutationobserver/MutationObserver.js +7 -7
  859. package/src/private/webapis/mutationobserver/MutationRecord.js +12 -0
  860. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +5 -7
  861. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +5 -5
  862. package/src/private/webapis/performance/EventTiming.js +3 -3
  863. package/src/private/webapis/performance/PerformanceEntry.js +3 -3
  864. package/src/private/webapis/performance/PerformanceObserver.js +4 -4
  865. package/src/private/webapis/performance/ResourceTiming.js +13 -13
  866. package/src/private/webapis/performance/UserTiming.js +3 -3
  867. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  868. package/src/private/webapis/performance/specs/NativePerformance.js +26 -20
  869. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  870. package/src/private/webapis/websockets/events/CloseEvent.js +3 -3
  871. package/src/private/webapis/xhr/events/ProgressEvent.js +3 -3
  872. package/src/react-private-interface.js +145 -0
  873. package/src/react-private-interface.js.flow +48 -0
  874. package/src/setup-env.js +22 -0
  875. package/src/types/globals.d.ts +33 -1
  876. package/src/unstable-internals-do-not-use.d.ts +214 -0
  877. package/src/unstable-internals-do-not-use.js +76 -0
  878. package/third-party-podspecs/ReactNativeDependencies.podspec +2 -2
  879. package/types/index.d.ts +0 -1
  880. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -4
  881. package/types/public/ReactNativeTypes.d.ts +4 -2
  882. package/types_generated/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +26 -31
  883. package/types_generated/Libraries/Alert/Alert.d.ts +44 -7
  884. package/types_generated/Libraries/Animated/AnimatedEvent.d.ts +2 -2
  885. package/types_generated/Libraries/Animated/AnimatedExports.d.ts +2 -2
  886. package/types_generated/Libraries/Animated/AnimatedImplementation.d.ts +107 -3
  887. package/types_generated/Libraries/Animated/Easing.d.ts +5 -4
  888. package/types_generated/Libraries/Animated/animations/Animation.d.ts +7 -7
  889. package/types_generated/Libraries/Animated/animations/DecayAnimation.d.ts +5 -5
  890. package/types_generated/Libraries/Animated/animations/SpringAnimation.d.ts +49 -49
  891. package/types_generated/Libraries/Animated/animations/TimingAnimation.d.ts +13 -13
  892. package/types_generated/Libraries/Animated/components/AnimatedFlatList.d.ts +3 -3
  893. package/types_generated/Libraries/Animated/components/AnimatedSectionList.d.ts +3 -3
  894. package/types_generated/Libraries/Animated/createAnimatedComponent.d.ts +4 -4
  895. package/types_generated/Libraries/Animated/nodes/AnimatedColor.d.ts +2 -2
  896. package/types_generated/Libraries/Animated/nodes/AnimatedInterpolation.d.ts +9 -9
  897. package/types_generated/Libraries/Animated/nodes/AnimatedNode.d.ts +3 -3
  898. package/types_generated/Libraries/AppState/AppState.d.ts +41 -22
  899. package/types_generated/Libraries/BatchedBridge/NativeModules.d.ts +8 -1
  900. package/types_generated/Libraries/Blob/BlobTypes.d.ts +4 -4
  901. package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +37 -46
  902. package/types_generated/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +92 -43
  903. package/types_generated/Libraries/Components/Button.d.ts +118 -197
  904. package/types_generated/Libraries/Components/Clipboard/Clipboard.d.ts +6 -1
  905. package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.d.ts +44 -63
  906. package/types_generated/Libraries/Components/Keyboard/Keyboard.d.ts +30 -61
  907. package/types_generated/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +30 -21
  908. package/types_generated/Libraries/Components/Pressable/Pressable.d.ts +41 -17
  909. package/types_generated/Libraries/Components/Pressable/useAndroidRippleForView.d.ts +6 -6
  910. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +5 -5
  911. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.d.ts +18 -1
  912. package/types_generated/Libraries/Components/RefreshControl/RefreshControl.d.ts +35 -52
  913. package/types_generated/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -11
  914. package/types_generated/Libraries/Components/ScrollView/ScrollView.d.ts +212 -88
  915. package/types_generated/Libraries/Components/ScrollView/ScrollViewStickyHeader.d.ts +4 -4
  916. package/types_generated/Libraries/Components/StatusBar/StatusBar.d.ts +29 -62
  917. package/types_generated/Libraries/Components/Switch/Switch.d.ts +75 -70
  918. package/types_generated/Libraries/Components/TextInput/InputAccessoryView.d.ts +16 -65
  919. package/types_generated/Libraries/Components/TextInput/TextInput.d.ts +118 -3
  920. package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +23 -8
  921. package/types_generated/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +18 -18
  922. package/types_generated/Libraries/Components/Touchable/TouchableHighlight.d.ts +24 -13
  923. package/types_generated/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +27 -64
  924. package/types_generated/Libraries/Components/Touchable/TouchableOpacity.d.ts +18 -6
  925. package/types_generated/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +28 -28
  926. package/types_generated/Libraries/Components/View/View.d.ts +13 -9
  927. package/types_generated/Libraries/Components/View/ViewAccessibility.d.ts +28 -17
  928. package/types_generated/Libraries/Components/View/ViewNativeComponent.d.ts +1 -2
  929. package/types_generated/Libraries/Components/View/ViewPropTypes.d.ts +75 -24
  930. package/types_generated/Libraries/Core/ExtendedError.d.ts +10 -10
  931. package/types_generated/Libraries/EventEmitter/NativeEventEmitter.d.ts +34 -1
  932. package/types_generated/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +4 -1
  933. package/types_generated/Libraries/Image/AssetSourceResolver.d.ts +2 -13
  934. package/types_generated/Libraries/Image/ImageBackground.d.ts +33 -22
  935. package/types_generated/Libraries/Image/ImageProps.d.ts +201 -251
  936. package/types_generated/Libraries/Image/ImageTypes.flow.d.ts +6 -5
  937. package/types_generated/Libraries/Interaction/PanResponder.d.ts +103 -97
  938. package/types_generated/Libraries/LayoutAnimation/LayoutAnimation.d.ts +18 -7
  939. package/types_generated/Libraries/Linking/Linking.d.ts +28 -20
  940. package/types_generated/Libraries/Lists/FlatList.d.ts +17 -18
  941. package/types_generated/Libraries/Lists/SectionList.d.ts +10 -5
  942. package/types_generated/Libraries/Lists/VirtualizedList.d.ts +3 -1
  943. package/types_generated/Libraries/Lists/VirtualizedSectionList.d.ts +3 -1
  944. package/types_generated/Libraries/LogBox/Data/LogBoxData.d.ts +2 -2
  945. package/types_generated/Libraries/LogBox/Data/LogBoxLog.d.ts +2 -2
  946. package/types_generated/Libraries/LogBox/Data/parseLogBoxLog.d.ts +2 -2
  947. package/types_generated/Libraries/LogBox/LogBox.d.ts +4 -1
  948. package/types_generated/Libraries/Modal/Modal.d.ts +70 -35
  949. package/types_generated/Libraries/Network/FormData.d.ts +5 -5
  950. package/types_generated/Libraries/Performance/Systrace.d.ts +11 -1
  951. package/types_generated/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +31 -21
  952. package/types_generated/Libraries/Pressability/Pressability.d.ts +5 -5
  953. package/types_generated/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +15 -11
  954. package/types_generated/Libraries/ReactNative/AppRegistry.flow.d.ts +5 -5
  955. package/types_generated/Libraries/ReactNative/AppRegistryImpl.d.ts +56 -9
  956. package/types_generated/Libraries/ReactNative/I18nManager.d.ts +20 -1
  957. package/types_generated/Libraries/ReactNative/IPerformanceLogger.flow.d.ts +5 -5
  958. package/types_generated/Libraries/ReactPrivate/ReactNativePrivateInterface.d.ts +6 -22
  959. package/types_generated/Libraries/Renderer/shims/ReactNativeTypes.d.ts +34 -34
  960. package/types_generated/Libraries/Share/Share.d.ts +36 -39
  961. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +7 -1
  962. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +3 -3
  963. package/types_generated/Libraries/StyleSheet/StyleSheetTypes.d.ts +202 -181
  964. package/types_generated/Libraries/StyleSheet/private/_TransformStyle.d.ts +3 -3
  965. package/types_generated/Libraries/Text/Text.d.ts +10 -6
  966. package/types_generated/Libraries/Text/TextProps.d.ts +57 -102
  967. package/types_generated/Libraries/TurboModule/RCTExport.d.ts +2 -2
  968. package/types_generated/Libraries/Types/CoreEventTypes.d.ts +14 -8
  969. package/types_generated/Libraries/Utilities/Appearance.d.ts +25 -13
  970. package/types_generated/Libraries/Utilities/BackHandler.d.ts +17 -1
  971. package/types_generated/Libraries/Utilities/DevSettings.d.ts +9 -2
  972. package/types_generated/Libraries/Utilities/Dimensions.d.ts +19 -13
  973. package/types_generated/Libraries/Utilities/PixelRatio.d.ts +6 -3
  974. package/types_generated/Libraries/Utilities/Platform.d.ts +5 -1
  975. package/types_generated/Libraries/Utilities/PlatformTypes.d.ts +65 -6
  976. package/types_generated/Libraries/Utilities/codegenNativeComponent.d.ts +5 -5
  977. package/types_generated/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.d.ts +2 -2
  978. package/types_generated/Libraries/Utilities/differ/deepDiffer.d.ts +2 -2
  979. package/types_generated/Libraries/Utilities/useColorScheme.d.ts +12 -2
  980. package/types_generated/Libraries/Utilities/useWindowDimensions.d.ts +7 -1
  981. package/types_generated/Libraries/Vibration/Vibration.d.ts +14 -6
  982. package/types_generated/index.d.ts +31 -25
  983. package/types_generated/src/private/assets/AssetRegistry.d.ts +42 -0
  984. package/types_generated/src/private/components/virtualcollection/VirtualCollectionView.d.ts +5 -5
  985. package/types_generated/src/private/components/virtualcollection/column/VirtualColumn.d.ts +3 -3
  986. package/types_generated/src/private/components/virtualcollection/row/VirtualRow.d.ts +3 -3
  987. package/types_generated/src/private/components/virtualview/VirtualView.d.ts +7 -7
  988. package/types_generated/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.d.ts +5 -5
  989. package/types_generated/src/private/components/virtualview/VirtualViewNativeComponent.d.ts +5 -5
  990. package/types_generated/src/private/renderer/events/dispatchNativeEvent.d.ts +26 -0
  991. package/types_generated/src/private/specs_DEPRECATED/modules/NativeAppearance.d.ts +6 -5
  992. package/types_generated/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.d.ts +7 -7
  993. package/types_generated/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.d.ts +5 -5
  994. package/types_generated/src/private/specs_DEPRECATED/modules/NativeUIManager.d.ts +8 -8
  995. package/types_generated/src/private/types/HostComponent.d.ts +3 -3
  996. package/types_generated/src/private/types/HostInstance.d.ts +39 -74
  997. package/types_generated/src/private/webapis/dom/events/CustomEvent.d.ts +2 -2
  998. package/types_generated/src/private/webapis/dom/events/Event.d.ts +4 -4
  999. package/types_generated/src/private/webapis/dom/events/EventTarget.d.ts +8 -8
  1000. package/types_generated/src/private/webapis/dom/nodes/ReactNativeDocument.d.ts +3 -1
  1001. package/types_generated/src/private/webapis/dom/nodes/ReactNativeElement.d.ts +57 -4
  1002. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyCharacterData.d.ts +3 -1
  1003. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyElement.d.ts +3 -1
  1004. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyNode.d.ts +4 -2
  1005. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyText.d.ts +3 -1
  1006. package/types_generated/src/private/webapis/dom/nodes/specs/NativeDOM.d.ts +3 -3
  1007. package/types_generated/src/private/webapis/dom/oldstylecollections/HTMLCollection.d.ts +3 -1
  1008. package/types_generated/src/private/webapis/dom/oldstylecollections/NodeList.d.ts +3 -1
  1009. package/types_generated/src/react-private-interface.d.ts +33 -0
  1010. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +0 -38
  1011. package/Libraries/Image/AssetRegistry.js +0 -14
  1012. package/Libraries/Image/RCTImageShadowView.h +0 -17
  1013. package/Libraries/Image/RCTImageShadowView.mm +0 -28
  1014. package/Libraries/Image/RCTImageView.h +0 -32
  1015. package/Libraries/Image/RCTImageView.mm +0 -508
  1016. package/Libraries/Image/RCTImageViewManager.h +0 -17
  1017. package/Libraries/Image/RCTImageViewManager.mm +0 -115
  1018. package/Libraries/Interaction/InteractionManager.d.ts +0 -87
  1019. package/Libraries/Interaction/InteractionManager.js +0 -189
  1020. package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +0 -35
  1021. package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +0 -162
  1022. package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +0 -21
  1023. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +0 -64
  1024. package/Libraries/Text/RCTTextAttributes.h +0 -107
  1025. package/Libraries/Text/RCTTextAttributes.mm +0 -358
  1026. package/Libraries/Text/RawText/RCTRawTextShadowView.h +0 -23
  1027. package/Libraries/Text/RawText/RCTRawTextShadowView.mm +0 -38
  1028. package/Libraries/Text/RawText/RCTRawTextViewManager.h +0 -21
  1029. package/Libraries/Text/RawText/RCTRawTextViewManager.mm +0 -32
  1030. package/Libraries/Text/Text/RCTTextShadowView.h +0 -33
  1031. package/Libraries/Text/Text/RCTTextShadowView.mm +0 -469
  1032. package/Libraries/Text/Text/RCTTextView.h +0 -34
  1033. package/Libraries/Text/Text/RCTTextView.mm +0 -298
  1034. package/Libraries/Text/Text/RCTTextViewManager.h +0 -19
  1035. package/Libraries/Text/Text/RCTTextViewManager.mm +0 -97
  1036. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +0 -21
  1037. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +0 -67
  1038. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +0 -21
  1039. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +0 -28
  1040. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +0 -30
  1041. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +0 -367
  1042. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +0 -68
  1043. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -849
  1044. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +0 -17
  1045. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +0 -181
  1046. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +0 -17
  1047. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +0 -24
  1048. package/Libraries/Text/TextInput/RCTInputAccessoryView.h +0 -22
  1049. package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +0 -82
  1050. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +0 -17
  1051. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +0 -78
  1052. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +0 -17
  1053. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +0 -33
  1054. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +0 -21
  1055. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +0 -43
  1056. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +0 -21
  1057. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +0 -35
  1058. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +0 -17
  1059. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +0 -42
  1060. package/Libraries/Text/VirtualText/RCTVirtualTextView.h +0 -28
  1061. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +0 -17
  1062. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +0 -30
  1063. package/Libraries/Utilities/SceneTracker.js +0 -42
  1064. package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +0 -21
  1065. package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +0 -57
  1066. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +0 -21
  1067. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +0 -27
  1068. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +0 -25
  1069. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +0 -50
  1070. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +0 -23
  1071. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +0 -35
  1072. package/Libraries/Wrapper/RCTWrapper.h +0 -73
  1073. package/Libraries/Wrapper/RCTWrapperShadowView.h +0 -27
  1074. package/Libraries/Wrapper/RCTWrapperShadowView.m +0 -138
  1075. package/Libraries/Wrapper/RCTWrapperView.h +0 -42
  1076. package/Libraries/Wrapper/RCTWrapperView.m +0 -99
  1077. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +0 -30
  1078. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +0 -137
  1079. package/Libraries/Wrapper/RCTWrapperViewManager.h +0 -25
  1080. package/Libraries/Wrapper/RCTWrapperViewManager.m +0 -31
  1081. package/React/Base/RCTRootContentView.h +0 -43
  1082. package/React/Base/RCTRootContentView.m +0 -111
  1083. package/React/Base/RCTRootViewInternal.h +0 -28
  1084. package/React/CxxBridge/RCTCxxBridge.mm +0 -1572
  1085. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.h +0 -25
  1086. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.mm +0 -34
  1087. package/React/CxxBridge/RCTObjcExecutor.h +0 -34
  1088. package/React/CxxBridge/RCTObjcExecutor.mm +0 -150
  1089. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -34
  1090. package/React/CxxModule/DispatchMessageQueueThread.h +0 -50
  1091. package/React/CxxModule/RCTCxxMethod.h +0 -17
  1092. package/React/CxxModule/RCTCxxMethod.mm +0 -147
  1093. package/React/CxxModule/RCTNativeModule.h +0 -34
  1094. package/React/CxxModule/RCTNativeModule.mm +0 -241
  1095. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +0 -205
  1096. package/React/Tests/Text/RCTTextAttributesTest.mm +0 -49
  1097. package/React/Views/RCTActivityIndicatorView.h +0 -16
  1098. package/React/Views/RCTActivityIndicatorView.m +0 -26
  1099. package/React/Views/RCTActivityIndicatorViewManager.h +0 -23
  1100. package/React/Views/RCTActivityIndicatorViewManager.m +0 -65
  1101. package/React/Views/RCTDebuggingOverlayManager.h +0 -17
  1102. package/React/Views/RCTDebuggingOverlayManager.m +0 -68
  1103. package/React/Views/RCTModalHostView.h +0 -64
  1104. package/React/Views/RCTModalHostView.m +0 -264
  1105. package/React/Views/RCTModalHostViewController.m +0 -74
  1106. package/React/Views/RCTModalHostViewManager.m +0 -131
  1107. package/React/Views/RCTModalManager.h +0 -22
  1108. package/React/Views/RCTModalManager.m +0 -46
  1109. package/React/Views/RCTRootShadowView.h +0 -35
  1110. package/React/Views/RCTRootShadowView.m +0 -53
  1111. package/React/Views/RCTShadowView+Internal.h +0 -18
  1112. package/React/Views/RCTShadowView+Internal.m +0 -23
  1113. package/React/Views/RCTSwitch.h +0 -22
  1114. package/React/Views/RCTSwitch.m +0 -24
  1115. package/React/Views/RCTSwitchManager.h +0 -17
  1116. package/React/Views/RCTSwitchManager.m +0 -70
  1117. package/React/Views/RefreshControl/RCTRefreshControl.h +0 -24
  1118. package/React/Views/RefreshControl/RCTRefreshControl.m +0 -230
  1119. package/React/Views/RefreshControl/RCTRefreshControlManager.h +0 -17
  1120. package/React/Views/RefreshControl/RCTRefreshControlManager.m +0 -47
  1121. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.h +0 -21
  1122. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.m +0 -57
  1123. package/React/Views/SafeAreaView/RCTSafeAreaView.h +0 -27
  1124. package/React/Views/SafeAreaView/RCTSafeAreaView.m +0 -79
  1125. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.h +0 -25
  1126. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.m +0 -25
  1127. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.h +0 -21
  1128. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.m +0 -32
  1129. package/React/Views/ScrollView/RCTScrollContentShadowView.h +0 -19
  1130. package/React/Views/ScrollView/RCTScrollContentShadowView.m +0 -35
  1131. package/React/Views/ScrollView/RCTScrollContentView.h +0 -19
  1132. package/React/Views/ScrollView/RCTScrollContentView.m +0 -36
  1133. package/React/Views/ScrollView/RCTScrollContentViewManager.h +0 -17
  1134. package/React/Views/ScrollView/RCTScrollContentViewManager.m +0 -31
  1135. package/React/Views/ScrollView/RCTScrollView.m +0 -1168
  1136. package/React/Views/ScrollView/RCTScrollViewManager.h +0 -25
  1137. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -202
  1138. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +0 -251
  1139. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +0 -315
  1140. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +0 -51
  1141. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +0 -89
  1142. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +0 -736
  1143. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +0 -221
  1144. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -399
  1145. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +0 -35
  1146. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +0 -346
  1147. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +0 -666
  1148. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -147
  1149. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +0 -113
  1150. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +0 -614
  1151. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +0 -1838
  1152. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +0 -1646
  1153. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +0 -1638
  1154. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +0 -51
  1155. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.java +0 -33
  1156. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.java +0 -33
  1157. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +0 -37
  1158. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.java +0 -47
  1159. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +0 -41
  1160. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +0 -33
  1161. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.java +0 -37
  1162. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +0 -39
  1163. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.java +0 -35
  1164. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +0 -49
  1165. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.java +0 -45
  1166. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.java +0 -35
  1167. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +0 -928
  1168. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.java +0 -33
  1169. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.java +0 -35
  1170. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.java +0 -35
  1171. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +0 -43
  1172. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.java +0 -35
  1173. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +0 -23
  1174. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +0 -37
  1175. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +0 -135
  1176. package/ReactCommon/cxxreact/JSIndexedRAMBundle.h +0 -72
  1177. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +0 -143
  1178. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +0 -55
  1179. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +0 -78
  1180. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +0 -39
  1181. package/ReactCommon/hermes/inspector-modern/chrome/tests/ConnectionDemuxTests.cpp +0 -148
  1182. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +0 -168
  1183. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +0 -416
  1184. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.h +0 -31
  1185. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +0 -134
  1186. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +0 -290
  1187. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +0 -62
  1188. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -39
  1189. package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +0 -170
  1190. package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +0 -95
  1191. package/ReactCommon/react/renderer/mounting/internal/TinyMap.h +0 -147
  1192. package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +0 -154
  1193. package/interface.js +0 -21
  1194. package/jest-preset.js +0 -26
  1195. package/rn-get-polyfills.js +0 -13
  1196. package/sdks/.hermesversion +0 -1
  1197. package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +0 -13
  1198. package/types/tsconfig.json +0 -15
  1199. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.d.ts +0 -14
  1200. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponent.d.ts +0 -21
  1201. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponentType.d.ts +0 -134
  1202. package/types_generated/Libraries/Components/Switch/AndroidSwitchNativeComponent.d.ts +0 -14
  1203. package/types_generated/Libraries/Components/Switch/SwitchNativeComponent.d.ts +0 -14
  1204. package/types_generated/Libraries/Components/Touchable/Touchable.d.ts +0 -262
  1205. package/types_generated/Libraries/Interaction/InteractionManager.d.ts +0 -117
  1206. package/types_generated/Libraries/NativeModules/specs/NativeDialogManagerAndroid.d.ts +0 -17
  1207. package/types_generated/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.d.ts +0 -53
  1208. package/types_generated/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.d.ts +0 -36
  1209. package/types_generated/src/private/specs_DEPRECATED/components/SwitchNativeComponent.d.ts +0 -51
  1210. package/types_generated/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.d.ts +0 -37
  1211. package/types_generated/tsconfig.test.json +0 -16
  1212. /package/ReactCommon/{cxxreact → react/utils}/MoveWrapper.h +0 -0
@@ -0,0 +1,1309 @@
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.scroll
9
+
10
+ import android.animation.ObjectAnimator
11
+ import android.animation.ValueAnimator
12
+ import android.content.Context
13
+ import android.graphics.Canvas
14
+ import android.graphics.Color
15
+ import android.graphics.Rect
16
+ import android.graphics.drawable.ColorDrawable
17
+ import android.graphics.drawable.Drawable
18
+ import android.os.Build
19
+ import android.view.KeyEvent
20
+ import android.view.MotionEvent
21
+ import android.view.View
22
+ import android.view.ViewGroup
23
+ import android.view.accessibility.AccessibilityNodeInfo
24
+ import android.widget.OverScroller
25
+ import android.widget.ScrollView
26
+ import androidx.core.view.ViewCompat
27
+ import com.facebook.common.logging.FLog
28
+ import com.facebook.react.R
29
+ import com.facebook.react.bridge.ReadableMap
30
+ import com.facebook.react.common.ReactConstants
31
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
32
+ import com.facebook.react.uimanager.BackgroundStyleApplicator
33
+ import com.facebook.react.uimanager.HasChildPressedStateDelay
34
+ import com.facebook.react.uimanager.LengthPercentage
35
+ import com.facebook.react.uimanager.LengthPercentageType
36
+ import com.facebook.react.uimanager.MeasureSpecAssertions
37
+ import com.facebook.react.uimanager.PixelUtil
38
+ import com.facebook.react.uimanager.PointerEvents
39
+ import com.facebook.react.uimanager.ReactClippingViewGroup
40
+ import com.facebook.react.uimanager.ReactClippingViewGroupHelper
41
+ import com.facebook.react.uimanager.ReactOverflowViewWithInset
42
+ import com.facebook.react.uimanager.StateWrapper
43
+ import com.facebook.react.uimanager.events.NativeGestureUtil
44
+ import com.facebook.react.uimanager.style.BorderRadiusProp
45
+ import com.facebook.react.uimanager.style.BorderStyle
46
+ import com.facebook.react.uimanager.style.LogicalEdge
47
+ import com.facebook.react.uimanager.style.Overflow
48
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasFlingAnimator
49
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasScrollEventThrottle
50
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasScrollState
51
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasSmoothScroll
52
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasStateWrapper
53
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.ReactScrollViewScrollState
54
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER
55
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED
56
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END
57
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_START
58
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.findNextFocusableView
59
+ import com.facebook.systrace.Systrace
60
+ import kotlin.math.abs
61
+ import kotlin.math.ceil
62
+ import kotlin.math.floor
63
+ import kotlin.math.max
64
+ import kotlin.math.min
65
+ import kotlin.math.round
66
+ import kotlin.math.sign
67
+
68
+ /**
69
+ * A simple subclass of ScrollView that doesn't dispatch measure and layout to its children and has
70
+ * a scroll listener to send scroll events to JS.
71
+ *
72
+ * ReactScrollView only supports vertical scrolling. For horizontal scrolling, use
73
+ * [ReactHorizontalScrollView].
74
+ */
75
+ public open class ReactScrollView
76
+ @JvmOverloads
77
+ constructor(context: Context, private val fpsListener: FpsListener? = null) :
78
+ ScrollView(context),
79
+ ReactClippingViewGroup,
80
+ ViewGroup.OnHierarchyChangeListener,
81
+ View.OnLayoutChangeListener,
82
+ ReactAccessibleScrollView,
83
+ ReactOverflowViewWithInset,
84
+ HasScrollState,
85
+ HasStateWrapper,
86
+ HasFlingAnimator,
87
+ HasScrollEventThrottle,
88
+ HasSmoothScroll,
89
+ VirtualViewContainer,
90
+ HasChildPressedStateDelay {
91
+
92
+ private companion object {
93
+ private var scrollerField: java.lang.reflect.Field? = null
94
+ private var triedToGetScrollerField = false
95
+
96
+ private const val UNSET_CONTENT_OFFSET = -1
97
+ }
98
+
99
+ // Public / interface property overrides
100
+ override var scrollEnabled: Boolean = true
101
+ override var stateWrapper: StateWrapper? = null
102
+ override var scrollEventThrottle: Int = 0
103
+ override var lastScrollDispatchTime: Long = 0L
104
+ override var hasChildPressedStateDelay: Boolean? = null
105
+
106
+ public open var pointerEvents: PointerEvents = PointerEvents.AUTO
107
+
108
+ public open var fadingEdgeLengthStart: Int = 0
109
+ set(value) {
110
+ field = value
111
+ invalidate()
112
+ }
113
+
114
+ public open var fadingEdgeLengthEnd: Int = 0
115
+ set(value) {
116
+ field = value
117
+ invalidate()
118
+ }
119
+
120
+ override val virtualViewContainerState: VirtualViewContainerState
121
+ get() =
122
+ _virtualViewContainerState
123
+ ?: VirtualViewContainerState.create(this).also { _virtualViewContainerState = it }
124
+
125
+ override val overflowInset: Rect
126
+ get() = _overflowInset
127
+
128
+ override val overflow: String?
129
+ get() =
130
+ when (_overflow) {
131
+ Overflow.HIDDEN -> "hidden"
132
+ Overflow.SCROLL -> "scroll"
133
+ Overflow.VISIBLE -> "visible"
134
+ }
135
+
136
+ override var removeClippedSubviews: Boolean
137
+ get() = _removeClippedSubviews
138
+ set(value) {
139
+ if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) return
140
+ if (value && clippingRect == null) clippingRect = Rect()
141
+ _removeClippedSubviews = value
142
+ updateClippingRect()
143
+ }
144
+
145
+ override var reactScrollViewScrollState: ReactScrollViewScrollState
146
+ get() = _reactScrollViewScrollState
147
+ set(value) {
148
+ _reactScrollViewScrollState = value
149
+ if (
150
+ ReactNativeFeatureFlags.enableViewCulling() ||
151
+ ReactNativeFeatureFlags.useTraitHiddenOnAndroid()
152
+ ) {
153
+ setScrollAwayPaddingEnabledUnstable(
154
+ value.scrollAwayPaddingTop,
155
+ value.scrollAwayPaddingBottom,
156
+ false,
157
+ )
158
+ val scrollPosition = value.lastStateUpdateScroll
159
+ scrollTo(scrollPosition.x, scrollPosition.y)
160
+ }
161
+ }
162
+
163
+ // Private state
164
+ private val onScrollDispatchHelper = OnScrollDispatchHelper()
165
+ private val scroller: OverScroller? = getOverScrollerFromParent()
166
+ private val velocityHelper = VelocityHelper()
167
+ private val tempRect = Rect()
168
+ private val defaultFlingAnimator: ValueAnimator = ObjectAnimator.ofInt(this, "scrollY", 0, 0)
169
+
170
+ private var _overflowInset = Rect()
171
+ private var _virtualViewContainerState: VirtualViewContainerState? = null
172
+ private var _removeClippedSubviews = false
173
+ private var _reactScrollViewScrollState = ReactScrollViewScrollState()
174
+
175
+ private var activelyScrolling = false
176
+ private var clippingRect: Rect? = null
177
+ private var _overflow: Overflow =
178
+ if (ReactNativeFeatureFlags.enablePropsUpdateReconciliationAndroid()) {
179
+ Overflow.VISIBLE
180
+ } else {
181
+ Overflow.SCROLL
182
+ }
183
+ private var dragging = false
184
+ private var pagingEnabled = false
185
+ private var postTouchRunnable: Runnable? = null
186
+ private var sendMomentumEvents = false
187
+ private var scrollPerfTag: String? = null
188
+ private var endBackground: Drawable? = null
189
+ private var endFillColor = Color.TRANSPARENT
190
+ private var disableIntervalMomentum = false
191
+ private var snapInterval = 0
192
+ private var snapOffsets: List<Int>? = null
193
+ private var snapToStart = true
194
+ private var snapToEnd = true
195
+ private var snapToAlignment = SNAP_ALIGNMENT_DISABLED
196
+ private var contentView: View? = null
197
+ private var currentContentOffset: ReadableMap? = null
198
+ private var pendingContentOffsetX = UNSET_CONTENT_OFFSET
199
+ private var pendingContentOffsetY = UNSET_CONTENT_OFFSET
200
+ private var maintainVisibleContentPositionHelper:
201
+ MaintainVisibleScrollPositionHelper<ReactScrollView>? =
202
+ null
203
+ private var emittedOverScrollSinceScrollBegin = false
204
+ private var scrollsChildToFocus = true
205
+
206
+ init {
207
+ setOnHierarchyChangeListener(this)
208
+ setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY)
209
+ setClipChildren(false)
210
+ ViewCompat.setAccessibilityDelegate(this, ReactScrollViewAccessibilityDelegate())
211
+ initView()
212
+ }
213
+
214
+ /**
215
+ * Set all default values here as opposed to in the constructor or field defaults. It is important
216
+ * that these properties are set during the constructor, but also on-demand whenever an existing
217
+ * ReactScrollView is recycled.
218
+ */
219
+ private fun initView() {
220
+ _overflowInset = Rect()
221
+ _virtualViewContainerState = null
222
+ activelyScrolling = false
223
+ clippingRect = null
224
+ _overflow =
225
+ if (ReactNativeFeatureFlags.enablePropsUpdateReconciliationAndroid()) {
226
+ Overflow.VISIBLE
227
+ } else {
228
+ Overflow.SCROLL
229
+ }
230
+ dragging = false
231
+ pagingEnabled = false
232
+ postTouchRunnable = null
233
+ _removeClippedSubviews = false
234
+ scrollEnabled = true
235
+ sendMomentumEvents = false
236
+ scrollPerfTag = null
237
+ endBackground = null
238
+ endFillColor = Color.TRANSPARENT
239
+ disableIntervalMomentum = false
240
+ snapInterval = 0
241
+ snapOffsets = null
242
+ snapToStart = true
243
+ snapToEnd = true
244
+ snapToAlignment = SNAP_ALIGNMENT_DISABLED
245
+ contentView = null
246
+ currentContentOffset = null
247
+ pendingContentOffsetX = UNSET_CONTENT_OFFSET
248
+ pendingContentOffsetY = UNSET_CONTENT_OFFSET
249
+ stateWrapper = null
250
+ _reactScrollViewScrollState = ReactScrollViewScrollState()
251
+ pointerEvents = PointerEvents.AUTO
252
+ lastScrollDispatchTime = 0
253
+ scrollEventThrottle = 0
254
+ maintainVisibleContentPositionHelper = null
255
+ fadingEdgeLengthStart = 0
256
+ fadingEdgeLengthEnd = 0
257
+ emittedOverScrollSinceScrollBegin = false
258
+ scrollsChildToFocus = true
259
+ }
260
+
261
+ internal fun recycleView() {
262
+ initView()
263
+ if (parent != null) {
264
+ (parent as ViewGroup).removeView(this)
265
+ }
266
+ updateView()
267
+ }
268
+
269
+ private fun updateView() {}
270
+
271
+ override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) {
272
+ super.onInitializeAccessibilityNodeInfo(info)
273
+ val testId = getTag(R.id.react_test_id) as? String
274
+ if (testId != null) {
275
+ info.viewIdResourceName = testId
276
+ }
277
+ }
278
+
279
+ protected open fun getOverScrollerFromParent(): OverScroller? {
280
+ if (!triedToGetScrollerField) {
281
+ triedToGetScrollerField = true
282
+ try {
283
+ scrollerField = ScrollView::class.java.getDeclaredField("mScroller")
284
+ scrollerField?.isAccessible = true
285
+ } catch (e: NoSuchFieldException) {
286
+ FLog.w(
287
+ ReactConstants.TAG,
288
+ "Failed to get mScroller field for ScrollView! " +
289
+ "This app will exhibit the bounce-back scrolling bug :(",
290
+ )
291
+ }
292
+ }
293
+
294
+ val cachedScrollerField = scrollerField ?: return null
295
+ return try {
296
+ val scrollerValue = cachedScrollerField.get(this)
297
+ if (scrollerValue is OverScroller) {
298
+ scrollerValue
299
+ } else {
300
+ FLog.w(
301
+ ReactConstants.TAG,
302
+ "Failed to cast mScroller field in ScrollView (probably due to OEM changes to AOSP)! " +
303
+ "This app will exhibit the bounce-back scrolling bug :(",
304
+ )
305
+ null
306
+ }
307
+ } catch (e: IllegalAccessException) {
308
+ throw RuntimeException("Failed to get mScroller from ScrollView!", e)
309
+ }
310
+ }
311
+
312
+ public open fun setDisableIntervalMomentum(disableIntervalMomentum: Boolean) {
313
+ this.disableIntervalMomentum = disableIntervalMomentum
314
+ }
315
+
316
+ public open fun setSendMomentumEvents(sendMomentumEvents: Boolean) {
317
+ this.sendMomentumEvents = sendMomentumEvents
318
+ }
319
+
320
+ public open fun setScrollPerfTag(scrollPerfTag: String?) {
321
+ this.scrollPerfTag = scrollPerfTag
322
+ }
323
+
324
+ public open fun setPagingEnabled(pagingEnabled: Boolean) {
325
+ this.pagingEnabled = pagingEnabled
326
+ }
327
+
328
+ public open fun setScrollsChildToFocus(scrollsChildToFocus: Boolean) {
329
+ this.scrollsChildToFocus = scrollsChildToFocus
330
+ }
331
+
332
+ public open fun setDecelerationRate(decelerationRate: Float) {
333
+ reactScrollViewScrollState.decelerationRate = decelerationRate
334
+ scroller?.setFriction(1.0f - decelerationRate)
335
+ }
336
+
337
+ public open fun abortAnimation() {
338
+ if (scroller != null && !scroller.isFinished) {
339
+ scroller.abortAnimation()
340
+ }
341
+ }
342
+
343
+ public open fun setSnapInterval(snapInterval: Int) {
344
+ this.snapInterval = snapInterval
345
+ }
346
+
347
+ public open fun setSnapOffsets(snapOffsets: List<Int>?) {
348
+ this.snapOffsets = snapOffsets
349
+ }
350
+
351
+ public open fun setSnapToStart(snapToStart: Boolean) {
352
+ this.snapToStart = snapToStart
353
+ }
354
+
355
+ public open fun setSnapToEnd(snapToEnd: Boolean) {
356
+ this.snapToEnd = snapToEnd
357
+ }
358
+
359
+ public open fun setSnapToAlignment(snapToAlignment: Int) {
360
+ this.snapToAlignment = snapToAlignment
361
+ }
362
+
363
+ public open fun flashScrollIndicators() {
364
+ awakenScrollBars()
365
+ }
366
+
367
+ override fun getTopFadingEdgeStrength(): Float {
368
+ val max = max(fadingEdgeLengthStart.toFloat(), fadingEdgeLengthEnd.toFloat())
369
+ return fadingEdgeLengthStart / max
370
+ }
371
+
372
+ override fun getBottomFadingEdgeStrength(): Float {
373
+ val max = max(fadingEdgeLengthStart.toFloat(), fadingEdgeLengthEnd.toFloat())
374
+ return fadingEdgeLengthEnd / max
375
+ }
376
+
377
+ public open fun setOverflow(overflow: String?) {
378
+ _overflow =
379
+ if (overflow == null) {
380
+ Overflow.SCROLL
381
+ } else {
382
+ Overflow.fromString(overflow)
383
+ ?: if (ReactNativeFeatureFlags.enablePropsUpdateReconciliationAndroid())
384
+ Overflow.VISIBLE
385
+ else Overflow.SCROLL
386
+ }
387
+ invalidate()
388
+ }
389
+
390
+ internal open fun setMaintainVisibleContentPosition(
391
+ config: MaintainVisibleScrollPositionHelper.Config?
392
+ ) {
393
+ if (config != null && maintainVisibleContentPositionHelper == null) {
394
+ maintainVisibleContentPositionHelper =
395
+ MaintainVisibleScrollPositionHelper(this, false).also { it.start() }
396
+ } else if (config == null && maintainVisibleContentPositionHelper != null) {
397
+ maintainVisibleContentPositionHelper?.stop()
398
+ maintainVisibleContentPositionHelper = null
399
+ }
400
+ maintainVisibleContentPositionHelper?.let { it.config = config }
401
+ }
402
+
403
+ override fun setOverflowInset(left: Int, top: Int, right: Int, bottom: Int) {
404
+ _overflowInset.set(left, top, right, bottom)
405
+ }
406
+
407
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
408
+ MeasureSpecAssertions.assertExplicitMeasureSpec(widthMeasureSpec, heightMeasureSpec)
409
+ setMeasuredDimension(
410
+ MeasureSpec.getSize(widthMeasureSpec),
411
+ MeasureSpec.getSize(heightMeasureSpec),
412
+ )
413
+ }
414
+
415
+ override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
416
+ if (isContentReady()) {
417
+ val scrollToX =
418
+ if (pendingContentOffsetX != UNSET_CONTENT_OFFSET) pendingContentOffsetX else scrollX
419
+ val scrollToY =
420
+ if (pendingContentOffsetY != UNSET_CONTENT_OFFSET) pendingContentOffsetY else scrollY
421
+ scrollTo(scrollToX, scrollToY)
422
+ }
423
+
424
+ ReactScrollViewHelper.emitLayoutEvent(this)
425
+ _virtualViewContainerState?.updateState()
426
+ }
427
+
428
+ override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
429
+ super.onSizeChanged(w, h, oldw, oldh)
430
+ if (_removeClippedSubviews) {
431
+ updateClippingRect()
432
+ }
433
+ _virtualViewContainerState?.updateState()
434
+ }
435
+
436
+ override fun onAttachedToWindow() {
437
+ super.onAttachedToWindow()
438
+ if (_removeClippedSubviews) {
439
+ updateClippingRect()
440
+ }
441
+ maintainVisibleContentPositionHelper?.start()
442
+ }
443
+
444
+ override fun onDetachedFromWindow() {
445
+ super.onDetachedFromWindow()
446
+ maintainVisibleContentPositionHelper?.stop()
447
+ }
448
+
449
+ override fun focusSearch(focused: View, direction: Int): View? {
450
+ val nextFocus = super.focusSearch(focused, direction)
451
+
452
+ if (ReactNativeFeatureFlags.enableCustomFocusSearchOnClippedElementsAndroid()) {
453
+ if (nextFocus != null && findViewById<View>(nextFocus.id) != null) {
454
+ return nextFocus
455
+ }
456
+ val nextFocusableView = findNextFocusableView(this, focused, direction)
457
+ if (nextFocusableView != null) {
458
+ return nextFocusableView
459
+ }
460
+ }
461
+
462
+ return nextFocus
463
+ }
464
+
465
+ /**
466
+ * Since ReactScrollView handles layout changes on JS side, it does not call super.onLayout due to
467
+ * which mIsLayoutDirty flag in ScrollView remains true and prevents scrolling to child when
468
+ * requestChildFocus is called. Overriding this method and scrolling to child without checking any
469
+ * layout dirty flag. This will fix focus navigation issue for KeyEvents which are not handled by
470
+ * ScrollView, for example: KEYCODE_TAB.
471
+ */
472
+ override fun requestChildFocus(child: View, focused: View?) {
473
+ if (focused != null && scrollsChildToFocus) {
474
+ scrollToChild(focused)
475
+ }
476
+ requestChildFocusWithoutScroll(child, focused)
477
+ }
478
+
479
+ /**
480
+ * In rare cases where an app overrides the built-in ReactScrollView by overriding it, and also
481
+ * needs to customize scroll into view on focus behaviors, this protected method can be used to
482
+ * unblocks such customization.
483
+ */
484
+ protected open fun requestChildFocusWithoutScroll(child: View, focused: View?) {
485
+ super.requestChildFocus(child, focused)
486
+ }
487
+
488
+ override fun requestChildRectangleOnScreen(
489
+ child: View,
490
+ rectangle: Rect,
491
+ immediate: Boolean,
492
+ ): Boolean {
493
+ if (!scrollsChildToFocus) return false
494
+ return super.requestChildRectangleOnScreen(child, rectangle, immediate)
495
+ }
496
+
497
+ private fun getScrollDelta(descendent: View): Int {
498
+ descendent.getDrawingRect(tempRect)
499
+ offsetDescendantRectToMyCoords(descendent, tempRect)
500
+ return computeScrollDeltaToGetChildRectOnScreen(tempRect)
501
+ }
502
+
503
+ override fun isPartiallyScrolledInView(view: View): Boolean {
504
+ val scrollDelta = getScrollDelta(view)
505
+ view.getDrawingRect(tempRect)
506
+ return scrollDelta != 0 && abs(scrollDelta) < tempRect.width()
507
+ }
508
+
509
+ private fun scrollToChild(child: View) {
510
+ var parent: View? = child
511
+ var scrollViewAncestor: View? = null
512
+ while (parent != null && parent !== this) {
513
+ if (parent is ReactScrollView) {
514
+ scrollViewAncestor = parent
515
+ }
516
+ parent = parent.parent as? View
517
+ }
518
+
519
+ val scrollIntoViewTarget = scrollViewAncestor ?: child
520
+ val tempRect = Rect()
521
+ scrollIntoViewTarget.getDrawingRect(tempRect)
522
+ offsetDescendantRectToMyCoords(scrollIntoViewTarget, tempRect)
523
+ val scrollDelta = computeScrollDeltaToGetChildRectOnScreen(tempRect)
524
+ if (scrollDelta != 0) {
525
+ scrollBy(0, scrollDelta)
526
+ }
527
+ }
528
+
529
+ override fun onScrollChanged(x: Int, y: Int, oldX: Int, oldY: Int) {
530
+ Systrace.beginSection(Systrace.TRACE_TAG_REACT, "ReactScrollView.onScrollChanged")
531
+ try {
532
+ super.onScrollChanged(x, y, oldX, oldY)
533
+ activelyScrolling = true
534
+ if (onScrollDispatchHelper.onScrollChanged(x, y)) {
535
+ if (_removeClippedSubviews) {
536
+ updateClippingRect()
537
+ }
538
+ ReactScrollViewHelper.updateStateOnScrollChanged(
539
+ this,
540
+ onScrollDispatchHelper.xFlingVelocity,
541
+ onScrollDispatchHelper.yFlingVelocity,
542
+ )
543
+ _virtualViewContainerState?.updateState()
544
+ }
545
+ } finally {
546
+ Systrace.endSection(Systrace.TRACE_TAG_REACT)
547
+ }
548
+ }
549
+
550
+ override fun shouldDelayChildPressedState(): Boolean =
551
+ hasChildPressedStateDelay ?: super.shouldDelayChildPressedState()
552
+
553
+ override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
554
+ if (!scrollEnabled) return false
555
+ if (!PointerEvents.canChildrenBeTouchTarget(pointerEvents)) return true
556
+
557
+ try {
558
+ if (super.onInterceptTouchEvent(ev)) {
559
+ handleInterceptedTouchEvent(ev)
560
+ return true
561
+ }
562
+ } catch (e: IllegalArgumentException) {
563
+ FLog.w(ReactConstants.TAG, "Error intercepting touch event.", e)
564
+ }
565
+
566
+ return false
567
+ }
568
+
569
+ protected open fun handleInterceptedTouchEvent(ev: MotionEvent) {
570
+ if (!ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()) {
571
+ NativeGestureUtil.notifyNativeGestureStarted(this, ev)
572
+ }
573
+ ReactScrollViewHelper.emitScrollBeginDragEvent(this)
574
+ dragging = true
575
+ emittedOverScrollSinceScrollBegin = false
576
+ enableFpsListener()
577
+ getFlingAnimator().cancel()
578
+ }
579
+
580
+ override fun onTouchEvent(ev: MotionEvent): Boolean {
581
+ if (!scrollEnabled) return false
582
+ if (!PointerEvents.canBeTouchTarget(pointerEvents)) return false
583
+
584
+ velocityHelper.calculateVelocity(ev)
585
+ val action = ev.actionMasked
586
+ if (action == MotionEvent.ACTION_UP && dragging) {
587
+ ReactScrollViewHelper.updateFabricScrollState(this)
588
+ val velocityX = velocityHelper.xVelocity
589
+ val velocityY = velocityHelper.yVelocity
590
+ ReactScrollViewHelper.emitScrollEndDragEvent(this, velocityX, velocityY)
591
+ if (!ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()) {
592
+ NativeGestureUtil.notifyNativeGestureEnded(this, ev)
593
+ }
594
+ dragging = false
595
+ handlePostTouchScrolling(Math.round(velocityX), Math.round(velocityY))
596
+ }
597
+
598
+ if (action == MotionEvent.ACTION_DOWN) {
599
+ cancelPostTouchScrolling()
600
+ }
601
+
602
+ return try {
603
+ super.onTouchEvent(ev)
604
+ } catch (e: IllegalArgumentException) {
605
+ FLog.w(ReactConstants.TAG, "Error handling touch event.", e)
606
+ false
607
+ }
608
+ }
609
+
610
+ override fun dispatchGenericMotionEvent(ev: MotionEvent): Boolean {
611
+ if (!scrollEnabled) return false
612
+ if (!PointerEvents.canChildrenBeTouchTarget(pointerEvents)) return false
613
+
614
+ if (ev.actionMasked == MotionEvent.ACTION_SCROLL) {
615
+ val vScroll = ev.getAxisValue(MotionEvent.AXIS_VSCROLL)
616
+ if (vScroll != 0f) {
617
+ enableFpsListener()
618
+ val result = super.dispatchGenericMotionEvent(ev)
619
+ if (
620
+ result &&
621
+ (pagingEnabled ||
622
+ snapInterval != 0 ||
623
+ snapOffsets != null ||
624
+ snapToAlignment != SNAP_ALIGNMENT_DISABLED)
625
+ ) {
626
+ if (postTouchRunnable != null) {
627
+ removeCallbacks(postTouchRunnable)
628
+ postTouchRunnable = null
629
+ }
630
+ postTouchRunnable = Runnable {
631
+ postTouchRunnable = null
632
+ var velocityY = (-vScroll.sign).toInt()
633
+ if (disableIntervalMomentum) {
634
+ velocityY = 0
635
+ }
636
+ flingAndSnap(velocityY)
637
+ handlePostTouchScrolling(0, velocityY)
638
+ }
639
+ postOnAnimationDelayed(postTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY)
640
+ } else {
641
+ handlePostTouchScrolling(0, 0)
642
+ }
643
+ return result
644
+ }
645
+ }
646
+
647
+ return super.dispatchGenericMotionEvent(ev)
648
+ }
649
+
650
+ override fun executeKeyEvent(event: KeyEvent): Boolean {
651
+ val eventKeyCode = event.keyCode
652
+ if (
653
+ !scrollEnabled &&
654
+ (eventKeyCode == KeyEvent.KEYCODE_DPAD_UP || eventKeyCode == KeyEvent.KEYCODE_DPAD_DOWN)
655
+ ) {
656
+ return false
657
+ }
658
+ return super.executeKeyEvent(event)
659
+ }
660
+
661
+ override fun updateClippingRect() {
662
+ updateClippingRect(null)
663
+ }
664
+
665
+ override fun updateClippingRect(excludedViews: Set<Int>?) {
666
+ if (!_removeClippedSubviews) return
667
+
668
+ Systrace.beginSection(Systrace.TRACE_TAG_REACT, "ReactScrollView.updateClippingRect")
669
+ try {
670
+ val rect = checkNotNull(clippingRect)
671
+ ReactClippingViewGroupHelper.calculateClippingRect(this, rect)
672
+ val cv = getContentView()
673
+ if (cv is ReactClippingViewGroup) {
674
+ cv.updateClippingRect(excludedViews)
675
+ }
676
+ } finally {
677
+ Systrace.endSection(Systrace.TRACE_TAG_REACT)
678
+ }
679
+ }
680
+
681
+ override fun getClippingRect(outClippingRect: Rect) {
682
+ outClippingRect.set(checkNotNull(clippingRect))
683
+ }
684
+
685
+ override fun getChildVisibleRect(child: View, r: Rect, offset: android.graphics.Point?): Boolean {
686
+ return super.getChildVisibleRect(child, r, offset)
687
+ }
688
+
689
+ override fun fling(velocityY: Int) {
690
+ val correctedVelocityY = correctFlingVelocityY(velocityY)
691
+
692
+ if (pagingEnabled) {
693
+ flingAndSnap(correctedVelocityY)
694
+ } else if (scroller != null) {
695
+ val scrollWindowHeight = height - paddingBottom - paddingTop
696
+ scroller.fling(
697
+ scrollX, // startX
698
+ scrollY, // startY
699
+ 0, // velocityX
700
+ correctedVelocityY, // velocityY
701
+ 0, // minX
702
+ 0, // maxX
703
+ 0, // minY
704
+ Int.MAX_VALUE, // maxY
705
+ 0, // overX
706
+ scrollWindowHeight / 2, // overY
707
+ )
708
+ postInvalidateOnAnimation()
709
+ } else {
710
+ super.fling(correctedVelocityY)
711
+ }
712
+ handlePostTouchScrolling(0, correctedVelocityY)
713
+ }
714
+
715
+ private fun correctFlingVelocityY(velocityY: Int): Int {
716
+ if (Build.VERSION.SDK_INT != Build.VERSION_CODES.P) return velocityY
717
+ var signum = onScrollDispatchHelper.yFlingVelocity.sign
718
+ if (signum == 0f) {
719
+ signum = velocityY.toFloat().sign
720
+ }
721
+ return (abs(velocityY) * signum).toInt()
722
+ }
723
+
724
+ private fun enableFpsListener() {
725
+ if (isScrollPerfLoggingEnabled()) {
726
+ val listener = checkNotNull(fpsListener)
727
+ val perfTag = checkNotNull(scrollPerfTag)
728
+ listener.enable(perfTag)
729
+ }
730
+ }
731
+
732
+ private fun disableFpsListener() {
733
+ if (isScrollPerfLoggingEnabled()) {
734
+ val listener = checkNotNull(fpsListener)
735
+ val perfTag = checkNotNull(scrollPerfTag)
736
+ listener.disable(perfTag)
737
+ }
738
+ }
739
+
740
+ private fun isScrollPerfLoggingEnabled(): Boolean {
741
+ return fpsListener != null && !scrollPerfTag.isNullOrEmpty()
742
+ }
743
+
744
+ private fun getMaxScrollY(): Int {
745
+ val contentHeight = contentView?.height ?: 0
746
+ val viewportHeight = height - paddingBottom - paddingTop
747
+ return max(0, contentHeight - viewportHeight)
748
+ }
749
+
750
+ override fun draw(canvas: Canvas) {
751
+ if (endFillColor != Color.TRANSPARENT) {
752
+ val cv = getContentView()
753
+ val bg = endBackground
754
+ if (bg != null && cv != null && cv.bottom < height) {
755
+ bg.setBounds(0, cv.bottom, width, height)
756
+ bg.draw(canvas)
757
+ }
758
+ }
759
+ super.draw(canvas)
760
+ }
761
+
762
+ public override fun onDraw(canvas: Canvas) {
763
+ if (_overflow != Overflow.VISIBLE) {
764
+ BackgroundStyleApplicator.clipToPaddingBox(this, canvas)
765
+ }
766
+ super.onDraw(canvas)
767
+ }
768
+
769
+ /**
770
+ * This handles any sort of scrolling that may occur after a touch is finished. This may be
771
+ * momentum scrolling (fling) or because you have pagingEnabled on the scroll view. Because we
772
+ * don't get any events from Android about this lifecycle, we do all our detection by creating a
773
+ * runnable that checks if we scrolled in the last frame and if so assumes we are still scrolling.
774
+ */
775
+ private fun handlePostTouchScrolling(velocityX: Int, velocityY: Int) {
776
+ if (postTouchRunnable != null) return
777
+
778
+ if (sendMomentumEvents) {
779
+ enableFpsListener()
780
+ ReactScrollViewHelper.emitScrollMomentumBeginEvent(this, velocityX, velocityY)
781
+ }
782
+
783
+ activelyScrolling = false
784
+ postTouchRunnable =
785
+ object : Runnable {
786
+ private var snappingToPage = false
787
+ private var stableFrames = 0
788
+
789
+ override fun run() {
790
+ if (activelyScrolling) {
791
+ activelyScrolling = false
792
+ stableFrames = 0
793
+ this@ReactScrollView.postOnAnimationDelayed(
794
+ this,
795
+ ReactScrollViewHelper.MOMENTUM_DELAY,
796
+ )
797
+ } else {
798
+ ReactScrollViewHelper.updateFabricScrollState(this@ReactScrollView)
799
+ stableFrames++
800
+
801
+ if (stableFrames >= 3) {
802
+ postTouchRunnable = null
803
+ if (sendMomentumEvents) {
804
+ ReactScrollViewHelper.emitScrollMomentumEndEvent(this@ReactScrollView)
805
+ }
806
+ // Kotlin name is notifyUserDrivenScrollEnded; the _internal suffix is
807
+ // only a @JvmName alias for Java callers.
808
+ ReactScrollViewHelper.notifyUserDrivenScrollEnded(this@ReactScrollView)
809
+ disableFpsListener()
810
+ } else {
811
+ if (pagingEnabled && !snappingToPage) {
812
+ snappingToPage = true
813
+ flingAndSnap(0)
814
+ }
815
+ this@ReactScrollView.postOnAnimationDelayed(
816
+ this,
817
+ ReactScrollViewHelper.MOMENTUM_DELAY,
818
+ )
819
+ }
820
+ }
821
+ }
822
+ }
823
+ postOnAnimationDelayed(postTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY)
824
+ }
825
+
826
+ private fun cancelPostTouchScrolling() {
827
+ if (postTouchRunnable != null) {
828
+ removeCallbacks(postTouchRunnable)
829
+ postTouchRunnable = null
830
+ getFlingAnimator().cancel()
831
+ }
832
+ }
833
+
834
+ // Predict where a fling would end up so we can scroll to the nearest snap offset.
835
+ // TODO(T106335409): Existing prediction still uses overscroller. Consider changing this to
836
+ // use fling animator instead.
837
+ private fun predictFinalScrollPosition(velocityY: Int): Int {
838
+ return if (getFlingAnimator() === defaultFlingAnimator) {
839
+ ReactScrollViewHelper.predictFinalScrollPosition(this, 0, velocityY, 0, getMaxScrollY()).y
840
+ } else {
841
+ ReactScrollViewHelper.getNextFlingStartValue(
842
+ this,
843
+ scrollY,
844
+ reactScrollViewScrollState.finalAnimatedPositionScroll.y,
845
+ velocityY,
846
+ ) + getFlingExtrapolatedDistance(velocityY)
847
+ }
848
+ }
849
+
850
+ private fun getContentView(): View? = getChildAt(0)
851
+
852
+ /**
853
+ * This will smooth scroll us to the nearest snap offset point. It currently just looks at where
854
+ * the content is and slides to the nearest point. It is intended to be run after we are done
855
+ * scrolling, and handling any momentum scrolling.
856
+ */
857
+ private fun smoothScrollAndSnap(velocity: Int) {
858
+ val interval = getSnapInterval().toDouble()
859
+ val currentOffset =
860
+ ReactScrollViewHelper.getNextFlingStartValue(
861
+ this,
862
+ scrollY,
863
+ reactScrollViewScrollState.finalAnimatedPositionScroll.y,
864
+ velocity,
865
+ )
866
+ .toDouble()
867
+ val targetOffset = predictFinalScrollPosition(velocity).toDouble()
868
+
869
+ var previousPage = floor(currentOffset / interval).toInt()
870
+ var nextPage = ceil(currentOffset / interval).toInt()
871
+ var currentPage = round(currentOffset / interval).toInt()
872
+ val targetPage = round(targetOffset / interval).toInt()
873
+
874
+ if (velocity > 0 && nextPage == previousPage) {
875
+ nextPage++
876
+ } else if (velocity < 0 && previousPage == nextPage) {
877
+ previousPage--
878
+ }
879
+
880
+ if (velocity > 0 && currentPage < nextPage && targetPage > previousPage) {
881
+ currentPage = nextPage
882
+ } else if (velocity < 0 && currentPage > previousPage && targetPage < nextPage) {
883
+ currentPage = previousPage
884
+ }
885
+
886
+ val finalTargetOffset = currentPage * interval
887
+ if (finalTargetOffset != currentOffset) {
888
+ activelyScrolling = true
889
+ reactSmoothScrollTo(scrollX, finalTargetOffset.toInt())
890
+ }
891
+ }
892
+
893
+ private fun flingAndSnap(velocityY: Int) {
894
+ if (childCount <= 0) return
895
+
896
+ if (snapInterval == 0 && snapOffsets == null && snapToAlignment == SNAP_ALIGNMENT_DISABLED) {
897
+ smoothScrollAndSnap(velocityY)
898
+ return
899
+ }
900
+
901
+ @Suppress("NAME_SHADOWING") var velocityY = velocityY
902
+ val hasCustomizedFlingAnimator = getFlingAnimator() !== defaultFlingAnimator
903
+ val maximumOffset = getMaxScrollY()
904
+ var targetOffset = predictFinalScrollPosition(velocityY)
905
+ if (disableIntervalMomentum) {
906
+ targetOffset = scrollY
907
+ }
908
+
909
+ var smallerOffset = 0
910
+ var largerOffset = maximumOffset
911
+ var firstOffset = 0
912
+ var lastOffset = maximumOffset
913
+ val viewportHeight = height - paddingBottom - paddingTop
914
+
915
+ val currentSnapOffsets = snapOffsets
916
+ if (currentSnapOffsets != null) {
917
+ firstOffset = currentSnapOffsets[0]
918
+ lastOffset = currentSnapOffsets[currentSnapOffsets.size - 1]
919
+
920
+ for (i in currentSnapOffsets.indices) {
921
+ val offset = currentSnapOffsets[i]
922
+ if (offset <= targetOffset) {
923
+ if (targetOffset - offset < targetOffset - smallerOffset) {
924
+ smallerOffset = offset
925
+ }
926
+ }
927
+ if (offset >= targetOffset) {
928
+ if (offset - targetOffset < largerOffset - targetOffset) {
929
+ largerOffset = offset
930
+ }
931
+ }
932
+ }
933
+ } else if (snapToAlignment != SNAP_ALIGNMENT_DISABLED) {
934
+ if (snapInterval > 0) {
935
+ val ratio = targetOffset.toDouble() / snapInterval
936
+ smallerOffset =
937
+ max(
938
+ getItemStartOffset(
939
+ snapToAlignment,
940
+ (floor(ratio) * snapInterval).toInt(),
941
+ snapInterval,
942
+ viewportHeight,
943
+ ),
944
+ 0,
945
+ )
946
+ largerOffset =
947
+ min(
948
+ getItemStartOffset(
949
+ snapToAlignment,
950
+ (ceil(ratio) * snapInterval).toInt(),
951
+ snapInterval,
952
+ viewportHeight,
953
+ ),
954
+ maximumOffset,
955
+ )
956
+ } else {
957
+ val cv = getContentView() as ViewGroup
958
+ var smallerChildOffset = largerOffset
959
+ var largerChildOffset = smallerOffset
960
+ for (i in 0 until cv.childCount) {
961
+ val item = cv.getChildAt(i)
962
+ val itemStartOffset =
963
+ when (snapToAlignment) {
964
+ SNAP_ALIGNMENT_CENTER -> item.top - (viewportHeight - item.height) / 2
965
+ SNAP_ALIGNMENT_START -> item.top
966
+ SNAP_ALIGNMENT_END -> item.top - (viewportHeight - item.height)
967
+ else ->
968
+ throw IllegalStateException("Invalid SnapToAlignment value: $snapToAlignment")
969
+ }
970
+ if (itemStartOffset <= targetOffset) {
971
+ if (targetOffset - itemStartOffset < targetOffset - smallerOffset) {
972
+ smallerOffset = itemStartOffset
973
+ }
974
+ }
975
+ if (itemStartOffset >= targetOffset) {
976
+ if (itemStartOffset - targetOffset < largerOffset - targetOffset) {
977
+ largerOffset = itemStartOffset
978
+ }
979
+ }
980
+ smallerChildOffset = min(smallerChildOffset, itemStartOffset)
981
+ largerChildOffset = max(largerChildOffset, itemStartOffset)
982
+ }
983
+ smallerOffset = max(smallerOffset, smallerChildOffset)
984
+ largerOffset = min(largerOffset, largerChildOffset)
985
+ }
986
+ } else {
987
+ val interval = getSnapInterval().toDouble()
988
+ val ratio = targetOffset.toDouble() / interval
989
+ smallerOffset = (floor(ratio) * interval).toInt()
990
+ largerOffset = min((ceil(ratio) * interval).toInt(), maximumOffset)
991
+ }
992
+
993
+ val nearestOffset =
994
+ if (abs(targetOffset - smallerOffset) < abs(largerOffset - targetOffset)) smallerOffset
995
+ else largerOffset
996
+
997
+ if (!snapToEnd && targetOffset >= lastOffset) {
998
+ if (scrollY >= lastOffset) {
999
+ // free scrolling
1000
+ } else {
1001
+ targetOffset = lastOffset
1002
+ }
1003
+ } else if (!snapToStart && targetOffset <= firstOffset) {
1004
+ if (scrollY <= firstOffset) {
1005
+ // free scrolling
1006
+ } else {
1007
+ targetOffset = firstOffset
1008
+ }
1009
+ } else if (velocityY > 0) {
1010
+ if (!hasCustomizedFlingAnimator) {
1011
+ velocityY += ((largerOffset - targetOffset) * 10.0).toInt()
1012
+ }
1013
+ targetOffset = largerOffset
1014
+ } else if (velocityY < 0) {
1015
+ if (!hasCustomizedFlingAnimator) {
1016
+ velocityY -= ((targetOffset - smallerOffset) * 10.0).toInt()
1017
+ }
1018
+ targetOffset = smallerOffset
1019
+ } else {
1020
+ targetOffset = nearestOffset
1021
+ }
1022
+
1023
+ targetOffset = min(max(0, targetOffset), maximumOffset)
1024
+
1025
+ if (hasCustomizedFlingAnimator || scroller == null) {
1026
+ reactSmoothScrollTo(scrollX, targetOffset)
1027
+ } else {
1028
+ activelyScrolling = true
1029
+ scroller.fling(
1030
+ scrollX, // startX
1031
+ scrollY, // startY
1032
+ 0, // velocityX
1033
+ if (velocityY != 0) velocityY else targetOffset - scrollY, // velocityY
1034
+ 0, // minX
1035
+ 0, // maxX
1036
+ targetOffset, // minY
1037
+ targetOffset, // maxY
1038
+ 0, // overX
1039
+ if (targetOffset == 0 || targetOffset == maximumOffset) viewportHeight / 2
1040
+ else 0, // overY
1041
+ )
1042
+ postInvalidateOnAnimation()
1043
+ }
1044
+ }
1045
+
1046
+ private fun getItemStartOffset(
1047
+ snapToAlignment: Int,
1048
+ itemStartPosition: Int,
1049
+ itemHeight: Int,
1050
+ viewPortHeight: Int,
1051
+ ): Int =
1052
+ when (snapToAlignment) {
1053
+ SNAP_ALIGNMENT_CENTER -> itemStartPosition - (viewPortHeight - itemHeight) / 2
1054
+ SNAP_ALIGNMENT_START -> itemStartPosition
1055
+ SNAP_ALIGNMENT_END -> itemStartPosition - (viewPortHeight - itemHeight)
1056
+ else -> throw IllegalStateException("Invalid SnapToAlignment value: $snapToAlignment")
1057
+ }
1058
+
1059
+ private fun getSnapInterval(): Int = if (snapInterval != 0) snapInterval else height
1060
+
1061
+ public open fun setEndFillColor(color: Int) {
1062
+ if (color != endFillColor) {
1063
+ endFillColor = color
1064
+ endBackground = ColorDrawable(endFillColor)
1065
+ }
1066
+ }
1067
+
1068
+ override fun onOverScrolled(scrollX: Int, scrollY: Int, clampedX: Boolean, clampedY: Boolean) {
1069
+ @Suppress("NAME_SHADOWING") var scrollY = scrollY
1070
+ if (scroller != null && contentView != null) {
1071
+ if (!scroller.isFinished && scroller.currY != scroller.finalY) {
1072
+ val scrollRange = getMaxScrollY()
1073
+ if (scrollY >= scrollRange) {
1074
+ scroller.abortAnimation()
1075
+ scrollY = scrollRange
1076
+ }
1077
+ }
1078
+ }
1079
+
1080
+ if (
1081
+ ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid() &&
1082
+ clampedY &&
1083
+ !emittedOverScrollSinceScrollBegin
1084
+ ) {
1085
+ ReactScrollViewHelper.emitScrollEvent(this, 0f, 0f)
1086
+ emittedOverScrollSinceScrollBegin = true
1087
+ }
1088
+
1089
+ super.onOverScrolled(scrollX, scrollY, clampedX, clampedY)
1090
+ }
1091
+
1092
+ override fun onChildViewAdded(parent: View, child: View) {
1093
+ contentView = child
1094
+ child.addOnLayoutChangeListener(this)
1095
+ }
1096
+
1097
+ override fun onChildViewRemoved(parent: View, child: View) {
1098
+ contentView?.removeOnLayoutChangeListener(this)
1099
+ contentView = null
1100
+ }
1101
+
1102
+ public open fun setContentOffset(value: ReadableMap?) {
1103
+ if (currentContentOffset == null || currentContentOffset != value) {
1104
+ currentContentOffset = value
1105
+ if (value != null) {
1106
+ val x = if (value.hasKey("x")) value.getDouble("x") else 0.0
1107
+ val y = if (value.hasKey("y")) value.getDouble("y") else 0.0
1108
+ scrollTo(PixelUtil.toPixelFromDIP(x).toInt(), PixelUtil.toPixelFromDIP(y).toInt())
1109
+ } else {
1110
+ scrollTo(0, 0)
1111
+ }
1112
+ }
1113
+ }
1114
+
1115
+ /**
1116
+ * Calls `smoothScrollTo` and updates state.
1117
+ *
1118
+ * `smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
1119
+ * scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
1120
+ */
1121
+ override fun reactSmoothScrollTo(x: Int, y: Int) {
1122
+ ReactScrollViewHelper.smoothScrollTo(this, x, y)
1123
+ setPendingContentOffsets(x, y)
1124
+ }
1125
+
1126
+ /**
1127
+ * Calls `super.scrollTo` and updates state.
1128
+ *
1129
+ * `super.scrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
1130
+ * scroll view and state.
1131
+ *
1132
+ * Note that while we can override scrollTo, we *cannot* override `smoothScrollTo` because it is
1133
+ * final. See `reactSmoothScrollTo`.
1134
+ */
1135
+ override fun scrollTo(x: Int, y: Int) {
1136
+ super.scrollTo(x, y)
1137
+ ReactScrollViewHelper.updateFabricScrollState(this)
1138
+ setPendingContentOffsets(x, y)
1139
+ }
1140
+
1141
+ /**
1142
+ * If we are in the middle of a fling animation from the user removing their finger (OverScroller
1143
+ * is in `FLING_MODE`), recreate the existing fling animation since it was calculated against
1144
+ * outdated scroll offsets.
1145
+ */
1146
+ private fun recreateFlingAnimation(scrollY: Int) {
1147
+ if (getFlingAnimator().isRunning) {
1148
+ getFlingAnimator().cancel()
1149
+ }
1150
+
1151
+ if (scroller != null && !scroller.isFinished) {
1152
+ val scrollerYBeforeTick = scroller.currY
1153
+ val hasMoreTicks = scroller.computeScrollOffset()
1154
+ scroller.forceFinished(true)
1155
+
1156
+ if (hasMoreTicks) {
1157
+ val direction = (scroller.finalY - scroller.startY).toFloat().sign
1158
+ val flingVelocityY = scroller.currVelocity * direction
1159
+ scroller.fling(scrollX, scrollY, 0, flingVelocityY.toInt(), 0, 0, 0, Int.MAX_VALUE)
1160
+ } else {
1161
+ scrollTo(scrollX, scrollY + (scroller.currY - scrollerYBeforeTick))
1162
+ }
1163
+ }
1164
+ }
1165
+
1166
+ override fun scrollToPreservingMomentum(x: Int, y: Int) {
1167
+ scrollTo(x, y)
1168
+ recreateFlingAnimation(y)
1169
+ }
1170
+
1171
+ private fun isContentReady(): Boolean {
1172
+ val child = getContentView()
1173
+ return child != null && child.width != 0 && child.height != 0
1174
+ }
1175
+
1176
+ private fun setPendingContentOffsets(x: Int, y: Int) {
1177
+ if (isContentReady()) {
1178
+ pendingContentOffsetX = UNSET_CONTENT_OFFSET
1179
+ pendingContentOffsetY = UNSET_CONTENT_OFFSET
1180
+ } else {
1181
+ pendingContentOffsetX = x
1182
+ pendingContentOffsetY = y
1183
+ }
1184
+ }
1185
+
1186
+ override fun onLayoutChange(
1187
+ v: View,
1188
+ left: Int,
1189
+ top: Int,
1190
+ right: Int,
1191
+ bottom: Int,
1192
+ oldLeft: Int,
1193
+ oldTop: Int,
1194
+ oldRight: Int,
1195
+ oldBottom: Int,
1196
+ ) {
1197
+ if (contentView == null) return
1198
+
1199
+ if (isShown && isContentReady()) {
1200
+ val currentScrollY = scrollY
1201
+ val maxScrollY = getMaxScrollY()
1202
+ if (currentScrollY > maxScrollY) {
1203
+ scrollTo(scrollX, maxScrollY)
1204
+ }
1205
+ }
1206
+
1207
+ ReactScrollViewHelper.emitLayoutChangeEvent(this)
1208
+ }
1209
+
1210
+ override fun setBackgroundColor(color: Int) {
1211
+ BackgroundStyleApplicator.setBackgroundColor(this, color)
1212
+ }
1213
+
1214
+ public open fun setBorderWidth(position: Int, width: Float) {
1215
+ BackgroundStyleApplicator.setBorderWidth(
1216
+ this,
1217
+ LogicalEdge.entries[position],
1218
+ PixelUtil.toDIPFromPixel(width),
1219
+ )
1220
+ }
1221
+
1222
+ public open fun setBorderColor(position: Int, color: Int?) {
1223
+ BackgroundStyleApplicator.setBorderColor(this, LogicalEdge.entries[position], color)
1224
+ }
1225
+
1226
+ public open fun setBorderRadius(borderRadius: Float) {
1227
+ setBorderRadius(borderRadius, BorderRadiusProp.BORDER_RADIUS.ordinal)
1228
+ }
1229
+
1230
+ public open fun setBorderRadius(borderRadius: Float, position: Int) {
1231
+ val radius =
1232
+ if (borderRadius.isNaN()) null
1233
+ else LengthPercentage(PixelUtil.toDIPFromPixel(borderRadius), LengthPercentageType.POINT)
1234
+ BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.entries[position], radius)
1235
+ }
1236
+
1237
+ public open fun setBorderStyle(style: String?) {
1238
+ BackgroundStyleApplicator.setBorderStyle(
1239
+ this,
1240
+ if (style == null) null else BorderStyle.fromString(style),
1241
+ )
1242
+ }
1243
+
1244
+ /**
1245
+ * ScrollAway: This enables a natively-controlled navbar that optionally obscures the top content
1246
+ * of the ScrollView. Whether or not the navbar is obscuring the React Native surface is
1247
+ * determined outside of React Native.
1248
+ *
1249
+ * Note: all ScrollViews and HorizontalScrollViews in React have exactly one child: the "content"
1250
+ * View (see ScrollView.js). That View is non-collapsable so it will never be View-flattened away.
1251
+ * However, it is possible to pass custom styles into that View.
1252
+ *
1253
+ * If you are using this feature it is assumed that you have full control over this ScrollView and
1254
+ * that you are **not** overriding the ScrollView content view to pass in a `translateY` style.
1255
+ * `translateY` must never be set from ReactJS while using this feature!
1256
+ */
1257
+ public open fun setScrollAwayPaddingEnabledUnstable(topPadding: Int, bottomPadding: Int) {
1258
+ setScrollAwayPaddingEnabledUnstable(topPadding, bottomPadding, true)
1259
+ }
1260
+
1261
+ public open fun setScrollAwayPaddingEnabledUnstable(
1262
+ topPadding: Int,
1263
+ bottomPadding: Int,
1264
+ updateState: Boolean,
1265
+ ) {
1266
+ val count = childCount
1267
+ check(count <= 1) {
1268
+ "React Native ScrollView should not have more than one child, it should have exactly 1" +
1269
+ " child; a content View"
1270
+ }
1271
+
1272
+ if (count > 0) {
1273
+ for (i in 0 until count) {
1274
+ val childView = getChildAt(i)
1275
+ childView.translationY = topPadding.toFloat()
1276
+ }
1277
+ setPadding(0, 0, 0, topPadding + bottomPadding)
1278
+ }
1279
+
1280
+ if (updateState) {
1281
+ updateScrollAwayState(topPadding, bottomPadding)
1282
+ }
1283
+ removeClippedSubviews = _removeClippedSubviews
1284
+ }
1285
+
1286
+ private fun updateScrollAwayState(scrollAwayPaddingTop: Int, scrollAwayPaddingBottom: Int) {
1287
+ _reactScrollViewScrollState.scrollAwayPaddingTop = scrollAwayPaddingTop
1288
+ _reactScrollViewScrollState.scrollAwayPaddingBottom = scrollAwayPaddingBottom
1289
+ ReactScrollViewHelper.forceUpdateState(this)
1290
+ }
1291
+
1292
+ override fun startFlingAnimator(start: Int, end: Int) {
1293
+ defaultFlingAnimator.cancel()
1294
+ val duration = ReactScrollViewHelper.getDefaultScrollAnimationDuration(context)
1295
+ defaultFlingAnimator.setDuration(duration.toLong()).setIntValues(start, end)
1296
+ defaultFlingAnimator.start()
1297
+
1298
+ if (sendMomentumEvents) {
1299
+ val yVelocity = if (duration > 0) (end - start) / duration else 0
1300
+ ReactScrollViewHelper.emitScrollMomentumBeginEvent(this, 0, yVelocity)
1301
+ ReactScrollViewHelper.dispatchMomentumEndOnAnimationEnd(this)
1302
+ }
1303
+ }
1304
+
1305
+ override fun getFlingAnimator(): ValueAnimator = defaultFlingAnimator
1306
+
1307
+ override fun getFlingExtrapolatedDistance(velocity: Int): Int =
1308
+ ReactScrollViewHelper.predictFinalScrollPosition(this, 0, velocity, 0, getMaxScrollY()).y
1309
+ }