@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,1317 @@
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
+ * @generated SignedSource<<cf60b52e15df339a179f392723007fab>>
8
+ */
9
+
10
+ /**
11
+ * THIS FILE IS GENERATED - DO NOT EDIT DIRECTLY
12
+ * Source: ReactScrollView.kt
13
+ * Run: node generate-nested-scroll-view.js
14
+ */
15
+
16
+ package com.facebook.react.views.scroll
17
+
18
+ import android.animation.ObjectAnimator
19
+ import android.animation.ValueAnimator
20
+ import android.content.Context
21
+ import android.graphics.Canvas
22
+ import android.graphics.Color
23
+ import android.graphics.Rect
24
+ import android.graphics.drawable.ColorDrawable
25
+ import android.graphics.drawable.Drawable
26
+ import android.os.Build
27
+ import android.view.KeyEvent
28
+ import android.view.MotionEvent
29
+ import android.view.View
30
+ import android.view.ViewGroup
31
+ import android.view.accessibility.AccessibilityNodeInfo
32
+ import android.widget.OverScroller
33
+ import androidx.core.widget.NestedScrollView
34
+ import androidx.core.view.ViewCompat
35
+ import com.facebook.common.logging.FLog
36
+ import com.facebook.react.R
37
+ import com.facebook.react.bridge.ReadableMap
38
+ import com.facebook.react.common.ReactConstants
39
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
40
+ import com.facebook.react.uimanager.BackgroundStyleApplicator
41
+ import com.facebook.react.uimanager.HasChildPressedStateDelay
42
+ import com.facebook.react.uimanager.LengthPercentage
43
+ import com.facebook.react.uimanager.LengthPercentageType
44
+ import com.facebook.react.uimanager.MeasureSpecAssertions
45
+ import com.facebook.react.uimanager.PixelUtil
46
+ import com.facebook.react.uimanager.PointerEvents
47
+ import com.facebook.react.uimanager.ReactClippingViewGroup
48
+ import com.facebook.react.uimanager.ReactClippingViewGroupHelper
49
+ import com.facebook.react.uimanager.ReactOverflowViewWithInset
50
+ import com.facebook.react.uimanager.StateWrapper
51
+ import com.facebook.react.uimanager.events.NativeGestureUtil
52
+ import com.facebook.react.uimanager.style.BorderRadiusProp
53
+ import com.facebook.react.uimanager.style.BorderStyle
54
+ import com.facebook.react.uimanager.style.LogicalEdge
55
+ import com.facebook.react.uimanager.style.Overflow
56
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasFlingAnimator
57
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasScrollEventThrottle
58
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasScrollState
59
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasSmoothScroll
60
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.HasStateWrapper
61
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.ReactScrollViewScrollState
62
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER
63
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED
64
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END
65
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_START
66
+ import com.facebook.react.views.scroll.ReactScrollViewHelper.findNextFocusableView
67
+ import com.facebook.systrace.Systrace
68
+ import kotlin.math.abs
69
+ import kotlin.math.ceil
70
+ import kotlin.math.floor
71
+ import kotlin.math.max
72
+ import kotlin.math.min
73
+ import kotlin.math.round
74
+ import kotlin.math.sign
75
+
76
+ /**
77
+ * A simple subclass of NestedScrollView that doesn't dispatch measure and layout to its children and has
78
+ * a scroll listener to send scroll events to JS.
79
+ *
80
+ * ReactNestedScrollView only supports vertical scrolling. For horizontal scrolling, use
81
+ * [ReactHorizontalScrollView].
82
+ */
83
+ internal open class ReactNestedScrollView
84
+ @JvmOverloads
85
+ constructor(context: Context, private val fpsListener: FpsListener? = null) :
86
+ NestedScrollView(context),
87
+ ReactClippingViewGroup,
88
+ ViewGroup.OnHierarchyChangeListener,
89
+ View.OnLayoutChangeListener,
90
+ ReactAccessibleScrollView,
91
+ ReactOverflowViewWithInset,
92
+ HasScrollState,
93
+ HasStateWrapper,
94
+ HasFlingAnimator,
95
+ HasScrollEventThrottle,
96
+ HasSmoothScroll,
97
+ VirtualViewContainer,
98
+ HasChildPressedStateDelay {
99
+
100
+ private companion object {
101
+ private var scrollerField: java.lang.reflect.Field? = null
102
+ private var triedToGetScrollerField = false
103
+
104
+ private const val UNSET_CONTENT_OFFSET = -1
105
+ }
106
+
107
+ // Public / interface property overrides
108
+ override var scrollEnabled: Boolean = true
109
+ override var stateWrapper: StateWrapper? = null
110
+ override var scrollEventThrottle: Int = 0
111
+ override var lastScrollDispatchTime: Long = 0L
112
+ override var hasChildPressedStateDelay: Boolean? = null
113
+
114
+ public open var pointerEvents: PointerEvents = PointerEvents.AUTO
115
+
116
+ public open var fadingEdgeLengthStart: Int = 0
117
+ set(value) {
118
+ field = value
119
+ invalidate()
120
+ }
121
+
122
+ public open var fadingEdgeLengthEnd: Int = 0
123
+ set(value) {
124
+ field = value
125
+ invalidate()
126
+ }
127
+
128
+ override val virtualViewContainerState: VirtualViewContainerState
129
+ get() =
130
+ _virtualViewContainerState
131
+ ?: VirtualViewContainerState.create(this).also { _virtualViewContainerState = it }
132
+
133
+ override val overflowInset: Rect
134
+ get() = _overflowInset
135
+
136
+ override val overflow: String?
137
+ get() =
138
+ when (_overflow) {
139
+ Overflow.HIDDEN -> "hidden"
140
+ Overflow.SCROLL -> "scroll"
141
+ Overflow.VISIBLE -> "visible"
142
+ }
143
+
144
+ override var removeClippedSubviews: Boolean
145
+ get() = _removeClippedSubviews
146
+ set(value) {
147
+ if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) return
148
+ if (value && clippingRect == null) clippingRect = Rect()
149
+ _removeClippedSubviews = value
150
+ updateClippingRect()
151
+ }
152
+
153
+ override var reactScrollViewScrollState: ReactScrollViewScrollState
154
+ get() = _reactScrollViewScrollState
155
+ set(value) {
156
+ _reactScrollViewScrollState = value
157
+ if (
158
+ ReactNativeFeatureFlags.enableViewCulling() ||
159
+ ReactNativeFeatureFlags.useTraitHiddenOnAndroid()
160
+ ) {
161
+ setScrollAwayPaddingEnabledUnstable(
162
+ value.scrollAwayPaddingTop,
163
+ value.scrollAwayPaddingBottom,
164
+ false,
165
+ )
166
+ val scrollPosition = value.lastStateUpdateScroll
167
+ scrollTo(scrollPosition.x, scrollPosition.y)
168
+ }
169
+ }
170
+
171
+ // Private state
172
+ private val onScrollDispatchHelper = OnScrollDispatchHelper()
173
+ private val scroller: OverScroller? = getOverScrollerFromParent()
174
+ private val velocityHelper = VelocityHelper()
175
+ private val tempRect = Rect()
176
+ private val defaultFlingAnimator: ValueAnimator = ObjectAnimator.ofInt(this, "scrollY", 0, 0)
177
+
178
+ private var _overflowInset = Rect()
179
+ private var _virtualViewContainerState: VirtualViewContainerState? = null
180
+ private var _removeClippedSubviews = false
181
+ private var _reactScrollViewScrollState = ReactScrollViewScrollState()
182
+
183
+ private var activelyScrolling = false
184
+ private var clippingRect: Rect? = null
185
+ private var _overflow: Overflow =
186
+ if (ReactNativeFeatureFlags.enablePropsUpdateReconciliationAndroid()) {
187
+ Overflow.VISIBLE
188
+ } else {
189
+ Overflow.SCROLL
190
+ }
191
+ private var dragging = false
192
+ private var pagingEnabled = false
193
+ private var postTouchRunnable: Runnable? = null
194
+ private var sendMomentumEvents = false
195
+ private var scrollPerfTag: String? = null
196
+ private var endBackground: Drawable? = null
197
+ private var endFillColor = Color.TRANSPARENT
198
+ private var disableIntervalMomentum = false
199
+ private var snapInterval = 0
200
+ private var snapOffsets: List<Int>? = null
201
+ private var snapToStart = true
202
+ private var snapToEnd = true
203
+ private var snapToAlignment = SNAP_ALIGNMENT_DISABLED
204
+ private var contentView: View? = null
205
+ private var currentContentOffset: ReadableMap? = null
206
+ private var pendingContentOffsetX = UNSET_CONTENT_OFFSET
207
+ private var pendingContentOffsetY = UNSET_CONTENT_OFFSET
208
+ private var maintainVisibleContentPositionHelper:
209
+ MaintainVisibleScrollPositionHelper<ReactNestedScrollView>? =
210
+ null
211
+ private var emittedOverScrollSinceScrollBegin = false
212
+ private var scrollsChildToFocus = true
213
+
214
+ init {
215
+ setOnHierarchyChangeListener(this)
216
+ setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY)
217
+ setClipChildren(false)
218
+ ViewCompat.setAccessibilityDelegate(this, ReactScrollViewAccessibilityDelegate())
219
+ initView()
220
+ }
221
+
222
+ /**
223
+ * Set all default values here as opposed to in the constructor or field defaults. It is important
224
+ * that these properties are set during the constructor, but also on-demand whenever an existing
225
+ * ReactNestedScrollView is recycled.
226
+ */
227
+ private fun initView() {
228
+ _overflowInset = Rect()
229
+ _virtualViewContainerState = null
230
+ activelyScrolling = false
231
+ clippingRect = null
232
+ _overflow =
233
+ if (ReactNativeFeatureFlags.enablePropsUpdateReconciliationAndroid()) {
234
+ Overflow.VISIBLE
235
+ } else {
236
+ Overflow.SCROLL
237
+ }
238
+ dragging = false
239
+ pagingEnabled = false
240
+ postTouchRunnable = null
241
+ _removeClippedSubviews = false
242
+ scrollEnabled = true
243
+ sendMomentumEvents = false
244
+ scrollPerfTag = null
245
+ endBackground = null
246
+ endFillColor = Color.TRANSPARENT
247
+ disableIntervalMomentum = false
248
+ snapInterval = 0
249
+ snapOffsets = null
250
+ snapToStart = true
251
+ snapToEnd = true
252
+ snapToAlignment = SNAP_ALIGNMENT_DISABLED
253
+ contentView = null
254
+ currentContentOffset = null
255
+ pendingContentOffsetX = UNSET_CONTENT_OFFSET
256
+ pendingContentOffsetY = UNSET_CONTENT_OFFSET
257
+ stateWrapper = null
258
+ _reactScrollViewScrollState = ReactScrollViewScrollState()
259
+ pointerEvents = PointerEvents.AUTO
260
+ lastScrollDispatchTime = 0
261
+ scrollEventThrottle = 0
262
+ maintainVisibleContentPositionHelper = null
263
+ fadingEdgeLengthStart = 0
264
+ fadingEdgeLengthEnd = 0
265
+ emittedOverScrollSinceScrollBegin = false
266
+ scrollsChildToFocus = true
267
+ }
268
+
269
+ internal fun recycleView() {
270
+ initView()
271
+ if (parent != null) {
272
+ (parent as ViewGroup).removeView(this)
273
+ }
274
+ updateView()
275
+ }
276
+
277
+ private fun updateView() {}
278
+
279
+ override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) {
280
+ super.onInitializeAccessibilityNodeInfo(info)
281
+ val testId = getTag(R.id.react_test_id) as? String
282
+ if (testId != null) {
283
+ info.viewIdResourceName = testId
284
+ }
285
+ }
286
+
287
+ protected open fun getOverScrollerFromParent(): OverScroller? {
288
+ if (!triedToGetScrollerField) {
289
+ triedToGetScrollerField = true
290
+ try {
291
+ scrollerField = NestedScrollView::class.java.getDeclaredField("mScroller")
292
+ scrollerField?.isAccessible = true
293
+ } catch (e: NoSuchFieldException) {
294
+ FLog.w(
295
+ ReactConstants.TAG,
296
+ "Failed to get mScroller field for NestedScrollView! " +
297
+ "This app will exhibit the bounce-back scrolling bug :(",
298
+ )
299
+ }
300
+ }
301
+
302
+ val cachedScrollerField = scrollerField ?: return null
303
+ return try {
304
+ val scrollerValue = cachedScrollerField.get(this)
305
+ if (scrollerValue is OverScroller) {
306
+ scrollerValue
307
+ } else {
308
+ FLog.w(
309
+ ReactConstants.TAG,
310
+ "Failed to cast mScroller field in NestedScrollView (probably due to OEM changes to AOSP)! " +
311
+ "This app will exhibit the bounce-back scrolling bug :(",
312
+ )
313
+ null
314
+ }
315
+ } catch (e: IllegalAccessException) {
316
+ throw RuntimeException("Failed to get mScroller from NestedScrollView!", e)
317
+ }
318
+ }
319
+
320
+ public open fun setDisableIntervalMomentum(disableIntervalMomentum: Boolean) {
321
+ this.disableIntervalMomentum = disableIntervalMomentum
322
+ }
323
+
324
+ public open fun setSendMomentumEvents(sendMomentumEvents: Boolean) {
325
+ this.sendMomentumEvents = sendMomentumEvents
326
+ }
327
+
328
+ public open fun setScrollPerfTag(scrollPerfTag: String?) {
329
+ this.scrollPerfTag = scrollPerfTag
330
+ }
331
+
332
+ public open fun setPagingEnabled(pagingEnabled: Boolean) {
333
+ this.pagingEnabled = pagingEnabled
334
+ }
335
+
336
+ public open fun setScrollsChildToFocus(scrollsChildToFocus: Boolean) {
337
+ this.scrollsChildToFocus = scrollsChildToFocus
338
+ }
339
+
340
+ public open fun setDecelerationRate(decelerationRate: Float) {
341
+ reactScrollViewScrollState.decelerationRate = decelerationRate
342
+ scroller?.setFriction(1.0f - decelerationRate)
343
+ }
344
+
345
+ public open fun abortAnimation() {
346
+ if (scroller != null && !scroller.isFinished) {
347
+ scroller.abortAnimation()
348
+ }
349
+ }
350
+
351
+ public open fun setSnapInterval(snapInterval: Int) {
352
+ this.snapInterval = snapInterval
353
+ }
354
+
355
+ public open fun setSnapOffsets(snapOffsets: List<Int>?) {
356
+ this.snapOffsets = snapOffsets
357
+ }
358
+
359
+ public open fun setSnapToStart(snapToStart: Boolean) {
360
+ this.snapToStart = snapToStart
361
+ }
362
+
363
+ public open fun setSnapToEnd(snapToEnd: Boolean) {
364
+ this.snapToEnd = snapToEnd
365
+ }
366
+
367
+ public open fun setSnapToAlignment(snapToAlignment: Int) {
368
+ this.snapToAlignment = snapToAlignment
369
+ }
370
+
371
+ public open fun flashScrollIndicators() {
372
+ awakenScrollBars()
373
+ }
374
+
375
+ override fun getTopFadingEdgeStrength(): Float {
376
+ val max = max(fadingEdgeLengthStart.toFloat(), fadingEdgeLengthEnd.toFloat())
377
+ return fadingEdgeLengthStart / max
378
+ }
379
+
380
+ override fun getBottomFadingEdgeStrength(): Float {
381
+ val max = max(fadingEdgeLengthStart.toFloat(), fadingEdgeLengthEnd.toFloat())
382
+ return fadingEdgeLengthEnd / max
383
+ }
384
+
385
+ public open fun setOverflow(overflow: String?) {
386
+ _overflow =
387
+ if (overflow == null) {
388
+ Overflow.SCROLL
389
+ } else {
390
+ Overflow.fromString(overflow)
391
+ ?: if (ReactNativeFeatureFlags.enablePropsUpdateReconciliationAndroid())
392
+ Overflow.VISIBLE
393
+ else Overflow.SCROLL
394
+ }
395
+ invalidate()
396
+ }
397
+
398
+ internal open fun setMaintainVisibleContentPosition(
399
+ config: MaintainVisibleScrollPositionHelper.Config?
400
+ ) {
401
+ if (config != null && maintainVisibleContentPositionHelper == null) {
402
+ maintainVisibleContentPositionHelper =
403
+ MaintainVisibleScrollPositionHelper(this, false).also { it.start() }
404
+ } else if (config == null && maintainVisibleContentPositionHelper != null) {
405
+ maintainVisibleContentPositionHelper?.stop()
406
+ maintainVisibleContentPositionHelper = null
407
+ }
408
+ maintainVisibleContentPositionHelper?.let { it.config = config }
409
+ }
410
+
411
+ override fun setOverflowInset(left: Int, top: Int, right: Int, bottom: Int) {
412
+ _overflowInset.set(left, top, right, bottom)
413
+ }
414
+
415
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
416
+ MeasureSpecAssertions.assertExplicitMeasureSpec(widthMeasureSpec, heightMeasureSpec)
417
+ setMeasuredDimension(
418
+ MeasureSpec.getSize(widthMeasureSpec),
419
+ MeasureSpec.getSize(heightMeasureSpec),
420
+ )
421
+ }
422
+
423
+ override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
424
+ if (isContentReady()) {
425
+ val scrollToX =
426
+ if (pendingContentOffsetX != UNSET_CONTENT_OFFSET) pendingContentOffsetX else scrollX
427
+ val scrollToY =
428
+ if (pendingContentOffsetY != UNSET_CONTENT_OFFSET) pendingContentOffsetY else scrollY
429
+ scrollTo(scrollToX, scrollToY)
430
+ }
431
+
432
+ ReactScrollViewHelper.emitLayoutEvent(this)
433
+ _virtualViewContainerState?.updateState()
434
+ }
435
+
436
+ override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
437
+ super.onSizeChanged(w, h, oldw, oldh)
438
+ if (_removeClippedSubviews) {
439
+ updateClippingRect()
440
+ }
441
+ _virtualViewContainerState?.updateState()
442
+ }
443
+
444
+ override fun onAttachedToWindow() {
445
+ super.onAttachedToWindow()
446
+ if (_removeClippedSubviews) {
447
+ updateClippingRect()
448
+ }
449
+ maintainVisibleContentPositionHelper?.start()
450
+ }
451
+
452
+ override fun onDetachedFromWindow() {
453
+ super.onDetachedFromWindow()
454
+ maintainVisibleContentPositionHelper?.stop()
455
+ }
456
+
457
+ override fun focusSearch(focused: View, direction: Int): View? {
458
+ val nextFocus = super.focusSearch(focused, direction)
459
+
460
+ if (ReactNativeFeatureFlags.enableCustomFocusSearchOnClippedElementsAndroid()) {
461
+ if (nextFocus != null && findViewById<View>(nextFocus.id) != null) {
462
+ return nextFocus
463
+ }
464
+ val nextFocusableView = findNextFocusableView(this, focused, direction)
465
+ if (nextFocusableView != null) {
466
+ return nextFocusableView
467
+ }
468
+ }
469
+
470
+ return nextFocus
471
+ }
472
+
473
+ /**
474
+ * Since ReactNestedScrollView handles layout changes on JS side, it does not call super.onLayout due to
475
+ * which mIsLayoutDirty flag in NestedScrollView remains true and prevents scrolling to child when
476
+ * requestChildFocus is called. Overriding this method and scrolling to child without checking any
477
+ * layout dirty flag. This will fix focus navigation issue for KeyEvents which are not handled by
478
+ * NestedScrollView, for example: KEYCODE_TAB.
479
+ */
480
+ override fun requestChildFocus(child: View, focused: View?) {
481
+ if (focused != null && scrollsChildToFocus) {
482
+ scrollToChild(focused)
483
+ }
484
+ requestChildFocusWithoutScroll(child, focused)
485
+ }
486
+
487
+ /**
488
+ * In rare cases where an app overrides the built-in ReactNestedScrollView by overriding it, and also
489
+ * needs to customize scroll into view on focus behaviors, this protected method can be used to
490
+ * unblocks such customization.
491
+ */
492
+ protected open fun requestChildFocusWithoutScroll(child: View, focused: View?) {
493
+ super.requestChildFocus(child, focused)
494
+ }
495
+
496
+ override fun requestChildRectangleOnScreen(
497
+ child: View,
498
+ rectangle: Rect,
499
+ immediate: Boolean,
500
+ ): Boolean {
501
+ if (!scrollsChildToFocus) return false
502
+ return super.requestChildRectangleOnScreen(child, rectangle, immediate)
503
+ }
504
+
505
+ private fun getScrollDelta(descendent: View): Int {
506
+ descendent.getDrawingRect(tempRect)
507
+ offsetDescendantRectToMyCoords(descendent, tempRect)
508
+ return computeScrollDeltaToGetChildRectOnScreen(tempRect)
509
+ }
510
+
511
+ override fun isPartiallyScrolledInView(view: View): Boolean {
512
+ val scrollDelta = getScrollDelta(view)
513
+ view.getDrawingRect(tempRect)
514
+ return scrollDelta != 0 && abs(scrollDelta) < tempRect.width()
515
+ }
516
+
517
+ private fun scrollToChild(child: View) {
518
+ var parent: View? = child
519
+ var scrollViewAncestor: View? = null
520
+ while (parent != null && parent !== this) {
521
+ if (parent is ReactNestedScrollView) {
522
+ scrollViewAncestor = parent
523
+ }
524
+ parent = parent.parent as? View
525
+ }
526
+
527
+ val scrollIntoViewTarget = scrollViewAncestor ?: child
528
+ val tempRect = Rect()
529
+ scrollIntoViewTarget.getDrawingRect(tempRect)
530
+ offsetDescendantRectToMyCoords(scrollIntoViewTarget, tempRect)
531
+ val scrollDelta = computeScrollDeltaToGetChildRectOnScreen(tempRect)
532
+ if (scrollDelta != 0) {
533
+ scrollBy(0, scrollDelta)
534
+ }
535
+ }
536
+
537
+ override fun onScrollChanged(x: Int, y: Int, oldX: Int, oldY: Int) {
538
+ Systrace.beginSection(Systrace.TRACE_TAG_REACT, "ReactNestedScrollView.onScrollChanged")
539
+ try {
540
+ super.onScrollChanged(x, y, oldX, oldY)
541
+ activelyScrolling = true
542
+ if (onScrollDispatchHelper.onScrollChanged(x, y)) {
543
+ if (_removeClippedSubviews) {
544
+ updateClippingRect()
545
+ }
546
+ ReactScrollViewHelper.updateStateOnScrollChanged(
547
+ this,
548
+ onScrollDispatchHelper.xFlingVelocity,
549
+ onScrollDispatchHelper.yFlingVelocity,
550
+ )
551
+ _virtualViewContainerState?.updateState()
552
+ }
553
+ } finally {
554
+ Systrace.endSection(Systrace.TRACE_TAG_REACT)
555
+ }
556
+ }
557
+
558
+ override fun shouldDelayChildPressedState(): Boolean =
559
+ hasChildPressedStateDelay ?: super.shouldDelayChildPressedState()
560
+
561
+ override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
562
+ if (!scrollEnabled) return false
563
+ if (!PointerEvents.canChildrenBeTouchTarget(pointerEvents)) return true
564
+
565
+ try {
566
+ if (super.onInterceptTouchEvent(ev)) {
567
+ handleInterceptedTouchEvent(ev)
568
+ return true
569
+ }
570
+ } catch (e: IllegalArgumentException) {
571
+ FLog.w(ReactConstants.TAG, "Error intercepting touch event.", e)
572
+ }
573
+
574
+ return false
575
+ }
576
+
577
+ protected open fun handleInterceptedTouchEvent(ev: MotionEvent) {
578
+ if (!ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()) {
579
+ NativeGestureUtil.notifyNativeGestureStarted(this, ev)
580
+ }
581
+ ReactScrollViewHelper.emitScrollBeginDragEvent(this)
582
+ dragging = true
583
+ emittedOverScrollSinceScrollBegin = false
584
+ enableFpsListener()
585
+ getFlingAnimator().cancel()
586
+ }
587
+
588
+ override fun onTouchEvent(ev: MotionEvent): Boolean {
589
+ if (!scrollEnabled) return false
590
+ if (!PointerEvents.canBeTouchTarget(pointerEvents)) return false
591
+
592
+ velocityHelper.calculateVelocity(ev)
593
+ val action = ev.actionMasked
594
+ if (action == MotionEvent.ACTION_UP && dragging) {
595
+ ReactScrollViewHelper.updateFabricScrollState(this)
596
+ val velocityX = velocityHelper.xVelocity
597
+ val velocityY = velocityHelper.yVelocity
598
+ ReactScrollViewHelper.emitScrollEndDragEvent(this, velocityX, velocityY)
599
+ if (!ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid()) {
600
+ NativeGestureUtil.notifyNativeGestureEnded(this, ev)
601
+ }
602
+ dragging = false
603
+ handlePostTouchScrolling(Math.round(velocityX), Math.round(velocityY))
604
+ }
605
+
606
+ if (action == MotionEvent.ACTION_DOWN) {
607
+ cancelPostTouchScrolling()
608
+ }
609
+
610
+ return try {
611
+ super.onTouchEvent(ev)
612
+ } catch (e: IllegalArgumentException) {
613
+ FLog.w(ReactConstants.TAG, "Error handling touch event.", e)
614
+ false
615
+ }
616
+ }
617
+
618
+ override fun dispatchGenericMotionEvent(ev: MotionEvent): Boolean {
619
+ if (!scrollEnabled) return false
620
+ if (!PointerEvents.canChildrenBeTouchTarget(pointerEvents)) return false
621
+
622
+ if (ev.actionMasked == MotionEvent.ACTION_SCROLL) {
623
+ val vScroll = ev.getAxisValue(MotionEvent.AXIS_VSCROLL)
624
+ if (vScroll != 0f) {
625
+ enableFpsListener()
626
+ val result = super.dispatchGenericMotionEvent(ev)
627
+ if (
628
+ result &&
629
+ (pagingEnabled ||
630
+ snapInterval != 0 ||
631
+ snapOffsets != null ||
632
+ snapToAlignment != SNAP_ALIGNMENT_DISABLED)
633
+ ) {
634
+ if (postTouchRunnable != null) {
635
+ removeCallbacks(postTouchRunnable)
636
+ postTouchRunnable = null
637
+ }
638
+ postTouchRunnable = Runnable {
639
+ postTouchRunnable = null
640
+ var velocityY = (-vScroll.sign).toInt()
641
+ if (disableIntervalMomentum) {
642
+ velocityY = 0
643
+ }
644
+ flingAndSnap(velocityY)
645
+ handlePostTouchScrolling(0, velocityY)
646
+ }
647
+ postOnAnimationDelayed(postTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY)
648
+ } else {
649
+ handlePostTouchScrolling(0, 0)
650
+ }
651
+ return result
652
+ }
653
+ }
654
+
655
+ return super.dispatchGenericMotionEvent(ev)
656
+ }
657
+
658
+ override fun executeKeyEvent(event: KeyEvent): Boolean {
659
+ val eventKeyCode = event.keyCode
660
+ if (
661
+ !scrollEnabled &&
662
+ (eventKeyCode == KeyEvent.KEYCODE_DPAD_UP || eventKeyCode == KeyEvent.KEYCODE_DPAD_DOWN)
663
+ ) {
664
+ return false
665
+ }
666
+ return super.executeKeyEvent(event)
667
+ }
668
+
669
+ override fun updateClippingRect() {
670
+ updateClippingRect(null)
671
+ }
672
+
673
+ override fun updateClippingRect(excludedViews: Set<Int>?) {
674
+ if (!_removeClippedSubviews) return
675
+
676
+ Systrace.beginSection(Systrace.TRACE_TAG_REACT, "ReactNestedScrollView.updateClippingRect")
677
+ try {
678
+ val rect = checkNotNull(clippingRect)
679
+ ReactClippingViewGroupHelper.calculateClippingRect(this, rect)
680
+ val cv = getContentView()
681
+ if (cv is ReactClippingViewGroup) {
682
+ cv.updateClippingRect(excludedViews)
683
+ }
684
+ } finally {
685
+ Systrace.endSection(Systrace.TRACE_TAG_REACT)
686
+ }
687
+ }
688
+
689
+ override fun getClippingRect(outClippingRect: Rect) {
690
+ outClippingRect.set(checkNotNull(clippingRect))
691
+ }
692
+
693
+ override fun getChildVisibleRect(child: View, r: Rect, offset: android.graphics.Point?): Boolean {
694
+ return super.getChildVisibleRect(child, r, offset)
695
+ }
696
+
697
+ override fun fling(velocityY: Int) {
698
+ val correctedVelocityY = correctFlingVelocityY(velocityY)
699
+
700
+ if (pagingEnabled) {
701
+ flingAndSnap(correctedVelocityY)
702
+ } else if (scroller != null) {
703
+ val scrollWindowHeight = height - paddingBottom - paddingTop
704
+ scroller.fling(
705
+ scrollX, // startX
706
+ scrollY, // startY
707
+ 0, // velocityX
708
+ correctedVelocityY, // velocityY
709
+ 0, // minX
710
+ 0, // maxX
711
+ 0, // minY
712
+ Int.MAX_VALUE, // maxY
713
+ 0, // overX
714
+ scrollWindowHeight / 2, // overY
715
+ )
716
+ postInvalidateOnAnimation()
717
+ } else {
718
+ super.fling(correctedVelocityY)
719
+ }
720
+ handlePostTouchScrolling(0, correctedVelocityY)
721
+ }
722
+
723
+ private fun correctFlingVelocityY(velocityY: Int): Int {
724
+ if (Build.VERSION.SDK_INT != Build.VERSION_CODES.P) return velocityY
725
+ var signum = onScrollDispatchHelper.yFlingVelocity.sign
726
+ if (signum == 0f) {
727
+ signum = velocityY.toFloat().sign
728
+ }
729
+ return (abs(velocityY) * signum).toInt()
730
+ }
731
+
732
+ private fun enableFpsListener() {
733
+ if (isScrollPerfLoggingEnabled()) {
734
+ val listener = checkNotNull(fpsListener)
735
+ val perfTag = checkNotNull(scrollPerfTag)
736
+ listener.enable(perfTag)
737
+ }
738
+ }
739
+
740
+ private fun disableFpsListener() {
741
+ if (isScrollPerfLoggingEnabled()) {
742
+ val listener = checkNotNull(fpsListener)
743
+ val perfTag = checkNotNull(scrollPerfTag)
744
+ listener.disable(perfTag)
745
+ }
746
+ }
747
+
748
+ private fun isScrollPerfLoggingEnabled(): Boolean {
749
+ return fpsListener != null && !scrollPerfTag.isNullOrEmpty()
750
+ }
751
+
752
+ private fun getMaxScrollY(): Int {
753
+ val contentHeight = contentView?.height ?: 0
754
+ val viewportHeight = height - paddingBottom - paddingTop
755
+ return max(0, contentHeight - viewportHeight)
756
+ }
757
+
758
+ override fun draw(canvas: Canvas) {
759
+ if (endFillColor != Color.TRANSPARENT) {
760
+ val cv = getContentView()
761
+ val bg = endBackground
762
+ if (bg != null && cv != null && cv.bottom < height) {
763
+ bg.setBounds(0, cv.bottom, width, height)
764
+ bg.draw(canvas)
765
+ }
766
+ }
767
+ super.draw(canvas)
768
+ }
769
+
770
+ public override fun onDraw(canvas: Canvas) {
771
+ if (_overflow != Overflow.VISIBLE) {
772
+ BackgroundStyleApplicator.clipToPaddingBox(this, canvas)
773
+ }
774
+ super.onDraw(canvas)
775
+ }
776
+
777
+ /**
778
+ * This handles any sort of scrolling that may occur after a touch is finished. This may be
779
+ * momentum scrolling (fling) or because you have pagingEnabled on the scroll view. Because we
780
+ * don't get any events from Android about this lifecycle, we do all our detection by creating a
781
+ * runnable that checks if we scrolled in the last frame and if so assumes we are still scrolling.
782
+ */
783
+ private fun handlePostTouchScrolling(velocityX: Int, velocityY: Int) {
784
+ if (postTouchRunnable != null) return
785
+
786
+ if (sendMomentumEvents) {
787
+ enableFpsListener()
788
+ ReactScrollViewHelper.emitScrollMomentumBeginEvent(this, velocityX, velocityY)
789
+ }
790
+
791
+ activelyScrolling = false
792
+ postTouchRunnable =
793
+ object : Runnable {
794
+ private var snappingToPage = false
795
+ private var stableFrames = 0
796
+
797
+ override fun run() {
798
+ if (activelyScrolling) {
799
+ activelyScrolling = false
800
+ stableFrames = 0
801
+ this@ReactNestedScrollView.postOnAnimationDelayed(
802
+ this,
803
+ ReactScrollViewHelper.MOMENTUM_DELAY,
804
+ )
805
+ } else {
806
+ ReactScrollViewHelper.updateFabricScrollState(this@ReactNestedScrollView)
807
+ stableFrames++
808
+
809
+ if (stableFrames >= 3) {
810
+ postTouchRunnable = null
811
+ if (sendMomentumEvents) {
812
+ ReactScrollViewHelper.emitScrollMomentumEndEvent(this@ReactNestedScrollView)
813
+ }
814
+ // Kotlin name is notifyUserDrivenScrollEnded; the _internal suffix is
815
+ // only a @JvmName alias for Java callers.
816
+ ReactScrollViewHelper.notifyUserDrivenScrollEnded(this@ReactNestedScrollView)
817
+ disableFpsListener()
818
+ } else {
819
+ if (pagingEnabled && !snappingToPage) {
820
+ snappingToPage = true
821
+ flingAndSnap(0)
822
+ }
823
+ this@ReactNestedScrollView.postOnAnimationDelayed(
824
+ this,
825
+ ReactScrollViewHelper.MOMENTUM_DELAY,
826
+ )
827
+ }
828
+ }
829
+ }
830
+ }
831
+ postOnAnimationDelayed(postTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY)
832
+ }
833
+
834
+ private fun cancelPostTouchScrolling() {
835
+ if (postTouchRunnable != null) {
836
+ removeCallbacks(postTouchRunnable)
837
+ postTouchRunnable = null
838
+ getFlingAnimator().cancel()
839
+ }
840
+ }
841
+
842
+ // Predict where a fling would end up so we can scroll to the nearest snap offset.
843
+ // TODO(T106335409): Existing prediction still uses overscroller. Consider changing this to
844
+ // use fling animator instead.
845
+ private fun predictFinalScrollPosition(velocityY: Int): Int {
846
+ return if (getFlingAnimator() === defaultFlingAnimator) {
847
+ ReactScrollViewHelper.predictFinalScrollPosition(this, 0, velocityY, 0, getMaxScrollY()).y
848
+ } else {
849
+ ReactScrollViewHelper.getNextFlingStartValue(
850
+ this,
851
+ scrollY,
852
+ reactScrollViewScrollState.finalAnimatedPositionScroll.y,
853
+ velocityY,
854
+ ) + getFlingExtrapolatedDistance(velocityY)
855
+ }
856
+ }
857
+
858
+ private fun getContentView(): View? = getChildAt(0)
859
+
860
+ /**
861
+ * This will smooth scroll us to the nearest snap offset point. It currently just looks at where
862
+ * the content is and slides to the nearest point. It is intended to be run after we are done
863
+ * scrolling, and handling any momentum scrolling.
864
+ */
865
+ private fun smoothScrollAndSnap(velocity: Int) {
866
+ val interval = getSnapInterval().toDouble()
867
+ val currentOffset =
868
+ ReactScrollViewHelper.getNextFlingStartValue(
869
+ this,
870
+ scrollY,
871
+ reactScrollViewScrollState.finalAnimatedPositionScroll.y,
872
+ velocity,
873
+ )
874
+ .toDouble()
875
+ val targetOffset = predictFinalScrollPosition(velocity).toDouble()
876
+
877
+ var previousPage = floor(currentOffset / interval).toInt()
878
+ var nextPage = ceil(currentOffset / interval).toInt()
879
+ var currentPage = round(currentOffset / interval).toInt()
880
+ val targetPage = round(targetOffset / interval).toInt()
881
+
882
+ if (velocity > 0 && nextPage == previousPage) {
883
+ nextPage++
884
+ } else if (velocity < 0 && previousPage == nextPage) {
885
+ previousPage--
886
+ }
887
+
888
+ if (velocity > 0 && currentPage < nextPage && targetPage > previousPage) {
889
+ currentPage = nextPage
890
+ } else if (velocity < 0 && currentPage > previousPage && targetPage < nextPage) {
891
+ currentPage = previousPage
892
+ }
893
+
894
+ val finalTargetOffset = currentPage * interval
895
+ if (finalTargetOffset != currentOffset) {
896
+ activelyScrolling = true
897
+ reactSmoothScrollTo(scrollX, finalTargetOffset.toInt())
898
+ }
899
+ }
900
+
901
+ private fun flingAndSnap(velocityY: Int) {
902
+ if (childCount <= 0) return
903
+
904
+ if (snapInterval == 0 && snapOffsets == null && snapToAlignment == SNAP_ALIGNMENT_DISABLED) {
905
+ smoothScrollAndSnap(velocityY)
906
+ return
907
+ }
908
+
909
+ @Suppress("NAME_SHADOWING") var velocityY = velocityY
910
+ val hasCustomizedFlingAnimator = getFlingAnimator() !== defaultFlingAnimator
911
+ val maximumOffset = getMaxScrollY()
912
+ var targetOffset = predictFinalScrollPosition(velocityY)
913
+ if (disableIntervalMomentum) {
914
+ targetOffset = scrollY
915
+ }
916
+
917
+ var smallerOffset = 0
918
+ var largerOffset = maximumOffset
919
+ var firstOffset = 0
920
+ var lastOffset = maximumOffset
921
+ val viewportHeight = height - paddingBottom - paddingTop
922
+
923
+ val currentSnapOffsets = snapOffsets
924
+ if (currentSnapOffsets != null) {
925
+ firstOffset = currentSnapOffsets[0]
926
+ lastOffset = currentSnapOffsets[currentSnapOffsets.size - 1]
927
+
928
+ for (i in currentSnapOffsets.indices) {
929
+ val offset = currentSnapOffsets[i]
930
+ if (offset <= targetOffset) {
931
+ if (targetOffset - offset < targetOffset - smallerOffset) {
932
+ smallerOffset = offset
933
+ }
934
+ }
935
+ if (offset >= targetOffset) {
936
+ if (offset - targetOffset < largerOffset - targetOffset) {
937
+ largerOffset = offset
938
+ }
939
+ }
940
+ }
941
+ } else if (snapToAlignment != SNAP_ALIGNMENT_DISABLED) {
942
+ if (snapInterval > 0) {
943
+ val ratio = targetOffset.toDouble() / snapInterval
944
+ smallerOffset =
945
+ max(
946
+ getItemStartOffset(
947
+ snapToAlignment,
948
+ (floor(ratio) * snapInterval).toInt(),
949
+ snapInterval,
950
+ viewportHeight,
951
+ ),
952
+ 0,
953
+ )
954
+ largerOffset =
955
+ min(
956
+ getItemStartOffset(
957
+ snapToAlignment,
958
+ (ceil(ratio) * snapInterval).toInt(),
959
+ snapInterval,
960
+ viewportHeight,
961
+ ),
962
+ maximumOffset,
963
+ )
964
+ } else {
965
+ val cv = getContentView() as ViewGroup
966
+ var smallerChildOffset = largerOffset
967
+ var largerChildOffset = smallerOffset
968
+ for (i in 0 until cv.childCount) {
969
+ val item = cv.getChildAt(i)
970
+ val itemStartOffset =
971
+ when (snapToAlignment) {
972
+ SNAP_ALIGNMENT_CENTER -> item.top - (viewportHeight - item.height) / 2
973
+ SNAP_ALIGNMENT_START -> item.top
974
+ SNAP_ALIGNMENT_END -> item.top - (viewportHeight - item.height)
975
+ else ->
976
+ throw IllegalStateException("Invalid SnapToAlignment value: $snapToAlignment")
977
+ }
978
+ if (itemStartOffset <= targetOffset) {
979
+ if (targetOffset - itemStartOffset < targetOffset - smallerOffset) {
980
+ smallerOffset = itemStartOffset
981
+ }
982
+ }
983
+ if (itemStartOffset >= targetOffset) {
984
+ if (itemStartOffset - targetOffset < largerOffset - targetOffset) {
985
+ largerOffset = itemStartOffset
986
+ }
987
+ }
988
+ smallerChildOffset = min(smallerChildOffset, itemStartOffset)
989
+ largerChildOffset = max(largerChildOffset, itemStartOffset)
990
+ }
991
+ smallerOffset = max(smallerOffset, smallerChildOffset)
992
+ largerOffset = min(largerOffset, largerChildOffset)
993
+ }
994
+ } else {
995
+ val interval = getSnapInterval().toDouble()
996
+ val ratio = targetOffset.toDouble() / interval
997
+ smallerOffset = (floor(ratio) * interval).toInt()
998
+ largerOffset = min((ceil(ratio) * interval).toInt(), maximumOffset)
999
+ }
1000
+
1001
+ val nearestOffset =
1002
+ if (abs(targetOffset - smallerOffset) < abs(largerOffset - targetOffset)) smallerOffset
1003
+ else largerOffset
1004
+
1005
+ if (!snapToEnd && targetOffset >= lastOffset) {
1006
+ if (scrollY >= lastOffset) {
1007
+ // free scrolling
1008
+ } else {
1009
+ targetOffset = lastOffset
1010
+ }
1011
+ } else if (!snapToStart && targetOffset <= firstOffset) {
1012
+ if (scrollY <= firstOffset) {
1013
+ // free scrolling
1014
+ } else {
1015
+ targetOffset = firstOffset
1016
+ }
1017
+ } else if (velocityY > 0) {
1018
+ if (!hasCustomizedFlingAnimator) {
1019
+ velocityY += ((largerOffset - targetOffset) * 10.0).toInt()
1020
+ }
1021
+ targetOffset = largerOffset
1022
+ } else if (velocityY < 0) {
1023
+ if (!hasCustomizedFlingAnimator) {
1024
+ velocityY -= ((targetOffset - smallerOffset) * 10.0).toInt()
1025
+ }
1026
+ targetOffset = smallerOffset
1027
+ } else {
1028
+ targetOffset = nearestOffset
1029
+ }
1030
+
1031
+ targetOffset = min(max(0, targetOffset), maximumOffset)
1032
+
1033
+ if (hasCustomizedFlingAnimator || scroller == null) {
1034
+ reactSmoothScrollTo(scrollX, targetOffset)
1035
+ } else {
1036
+ activelyScrolling = true
1037
+ scroller.fling(
1038
+ scrollX, // startX
1039
+ scrollY, // startY
1040
+ 0, // velocityX
1041
+ if (velocityY != 0) velocityY else targetOffset - scrollY, // velocityY
1042
+ 0, // minX
1043
+ 0, // maxX
1044
+ targetOffset, // minY
1045
+ targetOffset, // maxY
1046
+ 0, // overX
1047
+ if (targetOffset == 0 || targetOffset == maximumOffset) viewportHeight / 2
1048
+ else 0, // overY
1049
+ )
1050
+ postInvalidateOnAnimation()
1051
+ }
1052
+ }
1053
+
1054
+ private fun getItemStartOffset(
1055
+ snapToAlignment: Int,
1056
+ itemStartPosition: Int,
1057
+ itemHeight: Int,
1058
+ viewPortHeight: Int,
1059
+ ): Int =
1060
+ when (snapToAlignment) {
1061
+ SNAP_ALIGNMENT_CENTER -> itemStartPosition - (viewPortHeight - itemHeight) / 2
1062
+ SNAP_ALIGNMENT_START -> itemStartPosition
1063
+ SNAP_ALIGNMENT_END -> itemStartPosition - (viewPortHeight - itemHeight)
1064
+ else -> throw IllegalStateException("Invalid SnapToAlignment value: $snapToAlignment")
1065
+ }
1066
+
1067
+ private fun getSnapInterval(): Int = if (snapInterval != 0) snapInterval else height
1068
+
1069
+ public open fun setEndFillColor(color: Int) {
1070
+ if (color != endFillColor) {
1071
+ endFillColor = color
1072
+ endBackground = ColorDrawable(endFillColor)
1073
+ }
1074
+ }
1075
+
1076
+ override fun onOverScrolled(scrollX: Int, scrollY: Int, clampedX: Boolean, clampedY: Boolean) {
1077
+ @Suppress("NAME_SHADOWING") var scrollY = scrollY
1078
+ if (scroller != null && contentView != null) {
1079
+ if (!scroller.isFinished && scroller.currY != scroller.finalY) {
1080
+ val scrollRange = getMaxScrollY()
1081
+ if (scrollY >= scrollRange) {
1082
+ scroller.abortAnimation()
1083
+ scrollY = scrollRange
1084
+ }
1085
+ }
1086
+ }
1087
+
1088
+ if (
1089
+ ReactNativeFeatureFlags.shouldTriggerResponderTransferOnScrollAndroid() &&
1090
+ clampedY &&
1091
+ !emittedOverScrollSinceScrollBegin
1092
+ ) {
1093
+ ReactScrollViewHelper.emitScrollEvent(this, 0f, 0f)
1094
+ emittedOverScrollSinceScrollBegin = true
1095
+ }
1096
+
1097
+ super.onOverScrolled(scrollX, scrollY, clampedX, clampedY)
1098
+ }
1099
+
1100
+ override fun onChildViewAdded(parent: View, child: View) {
1101
+ contentView = child
1102
+ child.addOnLayoutChangeListener(this)
1103
+ }
1104
+
1105
+ override fun onChildViewRemoved(parent: View, child: View) {
1106
+ contentView?.removeOnLayoutChangeListener(this)
1107
+ contentView = null
1108
+ }
1109
+
1110
+ public open fun setContentOffset(value: ReadableMap?) {
1111
+ if (currentContentOffset == null || currentContentOffset != value) {
1112
+ currentContentOffset = value
1113
+ if (value != null) {
1114
+ val x = if (value.hasKey("x")) value.getDouble("x") else 0.0
1115
+ val y = if (value.hasKey("y")) value.getDouble("y") else 0.0
1116
+ scrollTo(PixelUtil.toPixelFromDIP(x).toInt(), PixelUtil.toPixelFromDIP(y).toInt())
1117
+ } else {
1118
+ scrollTo(0, 0)
1119
+ }
1120
+ }
1121
+ }
1122
+
1123
+ /**
1124
+ * Calls `smoothScrollTo` and updates state.
1125
+ *
1126
+ * `smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
1127
+ * scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
1128
+ */
1129
+ override fun reactSmoothScrollTo(x: Int, y: Int) {
1130
+ ReactScrollViewHelper.smoothScrollTo(this, x, y)
1131
+ setPendingContentOffsets(x, y)
1132
+ }
1133
+
1134
+ /**
1135
+ * Calls `super.scrollTo` and updates state.
1136
+ *
1137
+ * `super.scrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
1138
+ * scroll view and state.
1139
+ *
1140
+ * Note that while we can override scrollTo, we *cannot* override `smoothScrollTo` because it is
1141
+ * final. See `reactSmoothScrollTo`.
1142
+ */
1143
+ override fun scrollTo(x: Int, y: Int) {
1144
+ super.scrollTo(x, y)
1145
+ ReactScrollViewHelper.updateFabricScrollState(this)
1146
+ setPendingContentOffsets(x, y)
1147
+ }
1148
+
1149
+ /**
1150
+ * If we are in the middle of a fling animation from the user removing their finger (OverScroller
1151
+ * is in `FLING_MODE`), recreate the existing fling animation since it was calculated against
1152
+ * outdated scroll offsets.
1153
+ */
1154
+ private fun recreateFlingAnimation(scrollY: Int) {
1155
+ if (getFlingAnimator().isRunning) {
1156
+ getFlingAnimator().cancel()
1157
+ }
1158
+
1159
+ if (scroller != null && !scroller.isFinished) {
1160
+ val scrollerYBeforeTick = scroller.currY
1161
+ val hasMoreTicks = scroller.computeScrollOffset()
1162
+ scroller.forceFinished(true)
1163
+
1164
+ if (hasMoreTicks) {
1165
+ val direction = (scroller.finalY - scroller.startY).toFloat().sign
1166
+ val flingVelocityY = scroller.currVelocity * direction
1167
+ scroller.fling(scrollX, scrollY, 0, flingVelocityY.toInt(), 0, 0, 0, Int.MAX_VALUE)
1168
+ } else {
1169
+ scrollTo(scrollX, scrollY + (scroller.currY - scrollerYBeforeTick))
1170
+ }
1171
+ }
1172
+ }
1173
+
1174
+ override fun scrollToPreservingMomentum(x: Int, y: Int) {
1175
+ scrollTo(x, y)
1176
+ recreateFlingAnimation(y)
1177
+ }
1178
+
1179
+ private fun isContentReady(): Boolean {
1180
+ val child = getContentView()
1181
+ return child != null && child.width != 0 && child.height != 0
1182
+ }
1183
+
1184
+ private fun setPendingContentOffsets(x: Int, y: Int) {
1185
+ if (isContentReady()) {
1186
+ pendingContentOffsetX = UNSET_CONTENT_OFFSET
1187
+ pendingContentOffsetY = UNSET_CONTENT_OFFSET
1188
+ } else {
1189
+ pendingContentOffsetX = x
1190
+ pendingContentOffsetY = y
1191
+ }
1192
+ }
1193
+
1194
+ override fun onLayoutChange(
1195
+ v: View,
1196
+ left: Int,
1197
+ top: Int,
1198
+ right: Int,
1199
+ bottom: Int,
1200
+ oldLeft: Int,
1201
+ oldTop: Int,
1202
+ oldRight: Int,
1203
+ oldBottom: Int,
1204
+ ) {
1205
+ if (contentView == null) return
1206
+
1207
+ if (isShown && isContentReady()) {
1208
+ val currentScrollY = scrollY
1209
+ val maxScrollY = getMaxScrollY()
1210
+ if (currentScrollY > maxScrollY) {
1211
+ scrollTo(scrollX, maxScrollY)
1212
+ }
1213
+ }
1214
+
1215
+ ReactScrollViewHelper.emitLayoutChangeEvent(this)
1216
+ }
1217
+
1218
+ override fun setBackgroundColor(color: Int) {
1219
+ BackgroundStyleApplicator.setBackgroundColor(this, color)
1220
+ }
1221
+
1222
+ public open fun setBorderWidth(position: Int, width: Float) {
1223
+ BackgroundStyleApplicator.setBorderWidth(
1224
+ this,
1225
+ LogicalEdge.entries[position],
1226
+ PixelUtil.toDIPFromPixel(width),
1227
+ )
1228
+ }
1229
+
1230
+ public open fun setBorderColor(position: Int, color: Int?) {
1231
+ BackgroundStyleApplicator.setBorderColor(this, LogicalEdge.entries[position], color)
1232
+ }
1233
+
1234
+ public open fun setBorderRadius(borderRadius: Float) {
1235
+ setBorderRadius(borderRadius, BorderRadiusProp.BORDER_RADIUS.ordinal)
1236
+ }
1237
+
1238
+ public open fun setBorderRadius(borderRadius: Float, position: Int) {
1239
+ val radius =
1240
+ if (borderRadius.isNaN()) null
1241
+ else LengthPercentage(PixelUtil.toDIPFromPixel(borderRadius), LengthPercentageType.POINT)
1242
+ BackgroundStyleApplicator.setBorderRadius(this, BorderRadiusProp.entries[position], radius)
1243
+ }
1244
+
1245
+ public open fun setBorderStyle(style: String?) {
1246
+ BackgroundStyleApplicator.setBorderStyle(
1247
+ this,
1248
+ if (style == null) null else BorderStyle.fromString(style),
1249
+ )
1250
+ }
1251
+
1252
+ /**
1253
+ * ScrollAway: This enables a natively-controlled navbar that optionally obscures the top content
1254
+ * of the NestedScrollView. Whether or not the navbar is obscuring the React Native surface is
1255
+ * determined outside of React Native.
1256
+ *
1257
+ * Note: all NestedScrollViews and HorizontalScrollViews in React have exactly one child: the "content"
1258
+ * View (see NestedScrollView.js). That View is non-collapsable so it will never be View-flattened away.
1259
+ * However, it is possible to pass custom styles into that View.
1260
+ *
1261
+ * If you are using this feature it is assumed that you have full control over this NestedScrollView and
1262
+ * that you are **not** overriding the NestedScrollView content view to pass in a `translateY` style.
1263
+ * `translateY` must never be set from ReactJS while using this feature!
1264
+ */
1265
+ public open fun setScrollAwayPaddingEnabledUnstable(topPadding: Int, bottomPadding: Int) {
1266
+ setScrollAwayPaddingEnabledUnstable(topPadding, bottomPadding, true)
1267
+ }
1268
+
1269
+ public open fun setScrollAwayPaddingEnabledUnstable(
1270
+ topPadding: Int,
1271
+ bottomPadding: Int,
1272
+ updateState: Boolean,
1273
+ ) {
1274
+ val count = childCount
1275
+ check(count <= 1) {
1276
+ "React Native NestedScrollView should not have more than one child, it should have exactly 1" +
1277
+ " child; a content View"
1278
+ }
1279
+
1280
+ if (count > 0) {
1281
+ for (i in 0 until count) {
1282
+ val childView = getChildAt(i)
1283
+ childView.translationY = topPadding.toFloat()
1284
+ }
1285
+ setPadding(0, 0, 0, topPadding + bottomPadding)
1286
+ }
1287
+
1288
+ if (updateState) {
1289
+ updateScrollAwayState(topPadding, bottomPadding)
1290
+ }
1291
+ removeClippedSubviews = _removeClippedSubviews
1292
+ }
1293
+
1294
+ private fun updateScrollAwayState(scrollAwayPaddingTop: Int, scrollAwayPaddingBottom: Int) {
1295
+ _reactScrollViewScrollState.scrollAwayPaddingTop = scrollAwayPaddingTop
1296
+ _reactScrollViewScrollState.scrollAwayPaddingBottom = scrollAwayPaddingBottom
1297
+ ReactScrollViewHelper.forceUpdateState(this)
1298
+ }
1299
+
1300
+ override fun startFlingAnimator(start: Int, end: Int) {
1301
+ defaultFlingAnimator.cancel()
1302
+ val duration = ReactScrollViewHelper.getDefaultScrollAnimationDuration(context)
1303
+ defaultFlingAnimator.setDuration(duration.toLong()).setIntValues(start, end)
1304
+ defaultFlingAnimator.start()
1305
+
1306
+ if (sendMomentumEvents) {
1307
+ val yVelocity = if (duration > 0) (end - start) / duration else 0
1308
+ ReactScrollViewHelper.emitScrollMomentumBeginEvent(this, 0, yVelocity)
1309
+ ReactScrollViewHelper.dispatchMomentumEndOnAnimationEnd(this)
1310
+ }
1311
+ }
1312
+
1313
+ override fun getFlingAnimator(): ValueAnimator = defaultFlingAnimator
1314
+
1315
+ override fun getFlingExtrapolatedDistance(velocity: Int): Int =
1316
+ ReactScrollViewHelper.predictFinalScrollPosition(this, 0, velocity, 0, getMaxScrollY()).y
1317
+ }