react-native-windows 0.71.7 → 0.72.0-preview.1

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 (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +71 -45
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +11 -5
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +142 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.js +1 -1
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +2 -3
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +12 -4
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  475. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  476. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  477. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  478. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  479. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  480. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  481. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  482. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  483. package/codegen/NativePerformanceSpec.g.h +63 -0
  484. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  485. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  486. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  487. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  488. package/codegen/NativeShareModuleSpec.g.h +9 -3
  489. package/codegen/NativeUIManagerSpec.g.h +12 -12
  490. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  491. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  492. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  493. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  494. package/codegen/react/components/rnwcore/Props.h +59 -166
  495. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  496. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  497. package/codegen/react/components/rnwcore/States.h +15 -30
  498. package/codegen/rnwcoreJSI-generated.cpp +87 -25
  499. package/codegen/rnwcoreJSI.h +1077 -417
  500. package/generate.js +6 -1
  501. package/include/Include.vcxitems +0 -1
  502. package/include/Include.vcxitems.filters +0 -3
  503. package/index.js +56 -42
  504. package/index.windows.js +56 -42
  505. package/interface.js +1 -1
  506. package/jest/local-setup.js +33 -0
  507. package/jest/mockComponent.js +4 -2
  508. package/jest/mockNativeComponent.js +1 -1
  509. package/jest/mockScrollView.js +2 -1
  510. package/jest/react-native-env.js +1 -3
  511. package/jest/setup.js +11 -8
  512. package/just-task.js +12 -5
  513. package/package.json +32 -29
  514. package/rn-get-polyfills.js +1 -1
  515. package/template/metro.config.js +2 -0
  516. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  517. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  518. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  519. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  520. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  521. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  522. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  524. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  525. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  526. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  527. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  528. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  529. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  530. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  531. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  532. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  533. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  534. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  535. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  536. package/Libraries/Components/Popup/Popup.js.map +0 -1
  537. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  538. package/Libraries/Components/Popup/PopupProps.js +0 -8
  539. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  540. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  544. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  545. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  546. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  547. package/Libraries/Components/Slider/Slider.js +0 -282
  548. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  549. package/Libraries/Interaction/Batchinator.js +0 -76
  550. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  551. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  552. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  553. package/Libraries/Lists/CellRenderMask.js +0 -155
  554. package/Libraries/Lists/ChildListCollection.js +0 -72
  555. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  556. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  557. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  558. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  559. package/Libraries/Performance/PureComponentDebug.js +0 -74
  560. package/Libraries/Reliability/UserFlow.js +0 -158
  561. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  562. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  563. package/Libraries/Utilities/MatrixMath.js +0 -748
  564. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  565. package/Libraries/Utilities/clamp.js +0 -23
  566. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  567. package/Libraries/Utilities/groupByEveryN.js +0 -51
  568. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  569. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  570. package/Libraries/Utilities/truncate.js +0 -51
  571. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  592. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  594. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  595. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  596. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  597. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  598. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  599. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  600. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  601. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  602. package/Shared/AsyncStorageModule.h +0 -25
  603. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  604. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  605. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  606. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  607. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
package/.flowconfig CHANGED
@@ -13,6 +13,7 @@
13
13
  <PROJECT_ROOT>/Libraries/Components/Picker/RCTPickerNativeComponent.js
14
14
  <PROJECT_ROOT>/Libraries/Components/RefreshControl/RefreshControl.js
15
15
  <PROJECT_ROOT>/Libraries/Components/SafeAreaView/SafeAreaView.js
16
+ <PROJECT_ROOT>/Libraries/Components/ScrollView/ScrollView.js
16
17
  <PROJECT_ROOT>/Libraries/Components/TextInput/TextInput.js
17
18
  <PROJECT_ROOT>/Libraries/Components/TextInput/TextInputState.js
18
19
  <PROJECT_ROOT>/Libraries/Components/Touchable/Touchable.js
@@ -31,6 +32,10 @@
31
32
  <PROJECT_ROOT>/Libraries/NewAppScreen/components/ReloadInstructions.js
32
33
  <PROJECT_ROOT>/Libraries/Pressability/Pressability.js
33
34
  <PROJECT_ROOT>/Libraries/Types/CoreEventTypes.js
35
+ <PROJECT_ROOT>/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js
36
+ <PROJECT_ROOT>/Libraries/LogBox/UI/LogBoxInspectorHeader.js
37
+ <PROJECT_ROOT>/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js
38
+ <PROJECT_ROOT>/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js
34
39
 
35
40
  ; Ignore react-native files in node_modules since they are copied into project root
36
41
  .*/node_modules/react-native/.*
@@ -48,7 +53,7 @@
48
53
  .*/node_modules/playground/.*
49
54
 
50
55
  ; Ignore templates for 'react-native init'
51
- <PROJECT_ROOT>/template/.*
56
+ <PROJECT_ROOT>/packages/react-native/template/.*
52
57
 
53
58
  ; Ignore the Dangerfile
54
59
  <PROJECT_ROOT>/packages/react-native-bots/dangerfile.js
@@ -56,6 +61,9 @@
56
61
  ; Ignore "BUCK" generated dirs
57
62
  <PROJECT_ROOT>/\.buckd/
58
63
 
64
+ ; Flow doesn't support platforms
65
+ .*/packages/react-native/Libraries/Utilities/LoadingView.js
66
+
59
67
  ; Ignore the src folder - flow files are combined with ones from react-native into the root Libraries folder
60
68
  .*/vnext/src/.*
61
69
 
@@ -71,8 +79,11 @@
71
79
  [libs]
72
80
  interface.js
73
81
  flow/
82
+ flow-typed/
74
83
 
75
84
  [options]
85
+ enums=true
86
+
76
87
  emoji=true
77
88
 
78
89
  exact_by_default=true
@@ -97,7 +108,6 @@ suppress_type=$FlowFixMeProps
97
108
  suppress_type=$FlowFixMeState
98
109
  suppress_type=$FlowFixMeEmpty
99
110
 
100
- inference_mode=constrain_writes
101
111
  sharedmemory.hash_table_pow=21
102
112
 
103
113
  [lints]
@@ -120,4 +130,4 @@ untyped-import
120
130
  untyped-type-import
121
131
 
122
132
  [version]
123
- ^0.191.0
133
+ ^0.202.0
@@ -23,25 +23,6 @@
23
23
  <FmtCommitHash>9e8b86fd2d9806672cc73133d21780dd182bfd24</FmtCommitHash>
24
24
  </PropertyGroup>
25
25
 
26
- <!--
27
- IMPORTANT: Traversals left in a directory will break some tools like midl, but we also cannot call
28
- [MSBuild]::NormalizeDirectory on relative paths since cwd is not always correct. This logic should prefer to operate
29
- on full paths and avoid extra normalization.
30
- -->
31
- <PropertyGroup>
32
- <ReactNativeWindowsDir Condition="'$(ReactNativeWindowsDir)' == ''">$(MSBuildThisFileDirectory)</ReactNativeWindowsDir>
33
-
34
- <ReactNativeDir Condition="'$(ReactNativeDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native\package.json'))\node_modules\react-native\</ReactNativeDir>
35
-
36
- <YogaDir Condition="'$(YogaDir)' == ''">$(ReactNativeDir)ReactCommon\yoga</YogaDir>
37
-
38
- <FollyDir Condition="'$(FollyDir)' == '' AND Exists('$([MSBuild]::NormalizeDirectory($(ReactNativeDir)..\..\node_modules))')">$(ReactNativeDir)..\..\node_modules\.folly\folly-$(FollyVersion)</FollyDir>
39
- <FollyDir>$([MSBuild]::NormalizeDirectory($(FollyDir)))</FollyDir>
40
-
41
- <FmtDir Condition="'$(FmtDir)' == '' AND Exists('$([MSBuild]::NormalizeDirectory($(ReactNativeDir)..\..\node_modules))')">$(ReactNativeDir)..\..\node_modules\.fmt\fmt-$(FmtVersion)</FmtDir>
42
- <FmtDir>$([MSBuild]::NormalizeDirectory($(FmtDir)))</FmtDir>
43
- </PropertyGroup>
44
-
45
26
  <PropertyGroup Label="Configuration">
46
27
  <ProjectName Condition="'$(ProjectName)'==''">$(MSBuildProjectName)</ProjectName>
47
28
 
@@ -65,6 +46,25 @@
65
46
  <OutputPath Condition="'$(MSBuildProjectExtension)' == '.csproj'">$(OutDir)</OutputPath>
66
47
  </PropertyGroup>
67
48
 
49
+ <!--
50
+ IMPORTANT: Traversals left in a directory will break some tools like midl, but we also cannot call
51
+ [MSBuild]::NormalizeDirectory on relative paths since cwd is not always correct. This logic should prefer to operate
52
+ on full paths and avoid extra normalization.
53
+ -->
54
+ <PropertyGroup>
55
+ <ReactNativeWindowsDir Condition="'$(ReactNativeWindowsDir)' == ''">$(MSBuildThisFileDirectory)</ReactNativeWindowsDir>
56
+
57
+ <ReactNativeDir Condition="'$(ReactNativeDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native\package.json'))\node_modules\react-native\</ReactNativeDir>
58
+
59
+ <YogaDir Condition="'$(YogaDir)' == ''">$(ReactNativeDir)ReactCommon\yoga</YogaDir>
60
+
61
+ <FollyDir Condition="'$(FollyDir)' == '' AND Exists('$([MSBuild]::NormalizeDirectory($(ReactNativeDir)..\..\node_modules))')">$(ReactNativeDir)..\..\node_modules\.folly\folly-$(FollyVersion)</FollyDir>
62
+ <FollyDir>$([MSBuild]::NormalizeDirectory($(FollyDir)))</FollyDir>
63
+
64
+ <FmtDir Condition="'$(FmtDir)' == '' AND Exists('$([MSBuild]::NormalizeDirectory($(ReactNativeDir)..\..\node_modules))')">$(ReactNativeDir)..\..\node_modules\.fmt\fmt-$(FmtVersion)</FmtDir>
65
+ <FmtDir>$([MSBuild]::NormalizeDirectory($(FmtDir)))</FmtDir>
66
+ </PropertyGroup>
67
+
68
68
  <PropertyGroup Label="NuGet" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
69
69
  <!--See https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets#restore-target-->
70
70
  <RestoreUseStaticGraphEvaluation Condition="'$(BuildingInsideVisualStudio)' == 'true' AND '$(DisableRestoreUseStaticGraphEvaluation)' != 'true'">true</RestoreUseStaticGraphEvaluation>
@@ -13,7 +13,7 @@ import type {ColorValue} from '../StyleSheet/StyleSheet';
13
13
 
14
14
  import RCTActionSheetManager from './NativeActionSheetManager';
15
15
 
16
- const processColor = require('../StyleSheet/processColor');
16
+ const processColor = require('../StyleSheet/processColor').default;
17
17
  const invariant = require('invariant');
18
18
 
19
19
  /**
@@ -13,14 +13,14 @@
13
13
  export interface AlertButton {
14
14
  text?: string | undefined;
15
15
  onPress?: ((value?: string) => void) | undefined;
16
- isPreferred?: boolean;
16
+ isPreferred?: boolean | undefined;
17
17
  style?: 'default' | 'cancel' | 'destructive' | undefined;
18
18
  }
19
19
 
20
20
  interface AlertOptions {
21
21
  /** @platform android */
22
22
  cancelable?: boolean | undefined;
23
- userInterfaceStyle?: 'unspecified' | 'light' | 'dark';
23
+ userInterfaceStyle?: 'unspecified' | 'light' | 'dark' | undefined;
24
24
  /** @platform android */
25
25
  onDismiss?: (() => void) | undefined;
26
26
  }
@@ -33,8 +33,8 @@ interface AlertOptions {
33
33
  * button will be an 'OK' button.
34
34
  *
35
35
  * This is an API that works both on iOS and Android and can show static
36
- * alerts. To show an alert that prompts the user to enter some information,
37
- * see `AlertIOS`; entering text in an alert is common on iOS only.
36
+ * alerts. On iOS, you can show an alert that prompts the user to enter
37
+ * some information.
38
38
  *
39
39
  * ## iOS
40
40
  *
@@ -27,6 +27,7 @@ type Options = {
27
27
  cancelable?: ?boolean,
28
28
  userInterfaceStyle?: 'unspecified' | 'light' | 'dark',
29
29
  onDismiss?: ?() => void,
30
+ rootTag?: number,
30
31
  ...
31
32
  };
32
33
 
@@ -51,6 +52,7 @@ class Alert {
51
52
  title: title || '',
52
53
  message: message || '',
53
54
  cancelable: false,
55
+ rootTag: options && options.rootTag,
54
56
  };
55
57
 
56
58
  if (options && options.cancelable) {
@@ -29,6 +29,7 @@ export type DialogOptions = {|
29
29
  items?: Array<string>,
30
30
  cancelable?: boolean,
31
31
  defaultButton?: Int32,
32
+ rootTag?: Int32,
32
33
  |};
33
34
 
34
35
  export interface Spec extends TurboModule {
@@ -11,8 +11,12 @@ import type * as React from 'react';
11
11
  import {ScrollView} from '../Components/ScrollView/ScrollView';
12
12
  import {View} from '../Components/View/View';
13
13
  import {Image} from '../Image/Image';
14
- import {FlatListProps} from '../Lists/FlatList';
15
- import {DefaultSectionT, SectionListProps} from '../Lists/SectionList';
14
+ import {FlatListComponent, FlatListProps} from '../Lists/FlatList';
15
+ import {
16
+ DefaultSectionT,
17
+ SectionListComponent,
18
+ SectionListProps,
19
+ } from '../Lists/SectionList';
16
20
  import {ColorValue} from '../StyleSheet/StyleSheet';
17
21
  import {Text} from '../Text/Text';
18
22
  import {NativeSyntheticEvent} from '../Types/CoreEventTypes';
@@ -560,7 +564,9 @@ export namespace Animated {
560
564
  type NonAnimatedProps = 'key' | 'ref';
561
565
 
562
566
  type TAugmentRef<T> = T extends React.Ref<infer R>
563
- ? React.Ref<R | LegacyRef<R>>
567
+ ? unknown extends R
568
+ ? never
569
+ : React.Ref<R | LegacyRef<R>>
564
570
  : never;
565
571
 
566
572
  export type AnimatedProps<T> = {
@@ -575,7 +581,7 @@ export namespace Animated {
575
581
  extends React.FC<AnimatedProps<React.ComponentPropsWithRef<T>>> {}
576
582
 
577
583
  export type AnimatedComponentOptions = {
578
- collapsable?: boolean;
584
+ collapsable?: boolean | undefined;
579
585
  };
580
586
 
581
587
  /**
@@ -598,13 +604,18 @@ export namespace Animated {
598
604
  /**
599
605
  * FlatList and SectionList infer generic Type defined under their `data` and `section` props.
600
606
  */
601
- export class FlatList<ItemT = any> extends React.Component<
607
+
608
+ export class FlatList<ItemT = any> extends FlatListComponent<
609
+ ItemT,
602
610
  AnimatedProps<FlatListProps<ItemT>>
603
611
  > {}
612
+
604
613
  export class SectionList<
605
614
  ItemT = any,
606
615
  SectionT = DefaultSectionT,
607
- > extends React.Component<AnimatedProps<SectionListProps<ItemT, SectionT>>> {}
616
+ > extends SectionListComponent<
617
+ AnimatedProps<SectionListProps<ItemT, SectionT>>
618
+ > {}
608
619
  }
609
620
 
610
621
  // We need to alias these views so we can reference them in the Animated
@@ -142,7 +142,11 @@ const API = {
142
142
  }
143
143
  },
144
144
  flushQueue: function (): void {
145
- invariant(NativeAnimatedModule, 'Native animated module is not available');
145
+ // TODO: (T136971132)
146
+ invariant(
147
+ NativeAnimatedModule || process.env.NODE_ENV === 'test',
148
+ 'Native animated module is not available',
149
+ );
146
150
  flushQueueTimeout = null;
147
151
 
148
152
  // Early returns before calling any APIs
@@ -165,16 +169,18 @@ const API = {
165
169
  // use RCTDeviceEventEmitter. This reduces overhead of sending lots of
166
170
  // JSI functions across to native code; but also, TM infrastructure currently
167
171
  // does not support packing a function into native arrays.
168
- NativeAnimatedModule.queueAndExecuteBatchedOperations?.(singleOpQueue);
172
+ NativeAnimatedModule?.queueAndExecuteBatchedOperations?.(singleOpQueue);
169
173
  singleOpQueue.length = 0;
170
174
  } else {
171
- Platform.OS === 'android' && NativeAnimatedModule.startOperationBatch?.();
175
+ Platform.OS === 'android' &&
176
+ NativeAnimatedModule?.startOperationBatch?.();
177
+
172
178
  for (let q = 0, l = queue.length; q < l; q++) {
173
179
  queue[q]();
174
180
  }
175
181
  queue.length = 0;
176
182
  Platform.OS === 'android' &&
177
- NativeAnimatedModule.finishOperationBatch?.();
183
+ NativeAnimatedModule?.finishOperationBatch?.();
178
184
  }
179
185
  },
180
186
  queueOperation: <Args: $ReadOnlyArray<mixed>, Fn: (...Args) => void>(
@@ -242,6 +248,7 @@ const API = {
242
248
  }
243
249
  // $FlowFixMe
244
250
  API.queueOperation(
251
+ // $FlowFixMe[incompatible-call]
245
252
  nativeOps.startAnimatingNode,
246
253
  animationId,
247
254
  nodeTag,
@@ -384,11 +391,15 @@ const SUPPORTED_STYLES = {
384
391
  borderBottomLeftRadius: true,
385
392
  borderBottomRightRadius: true,
386
393
  borderBottomStartRadius: true,
394
+ borderEndEndRadius: true,
395
+ borderEndStartRadius: true,
387
396
  borderRadius: true,
388
397
  borderTopEndRadius: true,
389
398
  borderTopLeftRadius: true,
390
399
  borderTopRightRadius: true,
391
400
  borderTopStartRadius: true,
401
+ borderStartEndRadius: true,
402
+ borderStartStartRadius: true,
392
403
  elevation: true,
393
404
  opacity: true,
394
405
  transform: true,
@@ -577,10 +588,11 @@ export default {
577
588
  assertNativeAnimatedModule,
578
589
  shouldUseNativeDriver,
579
590
  transformDataType,
580
- // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion
581
- // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion
591
+ // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression
592
+ // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression
582
593
  get nativeEventEmitter(): NativeEventEmitter {
583
594
  if (!nativeEventEmitter) {
595
+ // $FlowFixMe[underconstrained-implicit-instantiation]
584
596
  nativeEventEmitter = new NativeEventEmitter(
585
597
  // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior
586
598
  // If you want to use the native module on other platforms, please remove this condition and test its behavior
@@ -105,7 +105,7 @@ export default function bezier(
105
105
  // Precompute samples table
106
106
  const sampleValues = float32ArraySupported
107
107
  ? new Float32Array(kSplineTableSize)
108
- : new Array(kSplineTableSize);
108
+ : new Array<number>(kSplineTableSize);
109
109
  if (mX1 !== mY1 || mX2 !== mY2) {
110
110
  for (let i = 0; i < kSplineTableSize; ++i) {
111
111
  sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
@@ -17,9 +17,14 @@ import * as React from 'react';
17
17
  /**
18
18
  * @see https://github.com/facebook/react-native/commit/b8c8562
19
19
  */
20
- const FlatListWithEventThrottle = React.forwardRef((props, ref) => (
21
- <FlatList scrollEventThrottle={0.0001} {...props} ref={ref} />
22
- ));
20
+ const FlatListWithEventThrottle = React.forwardRef(
21
+ (
22
+ props: React.ElementConfig<typeof FlatList>,
23
+ ref:
24
+ | ((null | FlatList<mixed>) => mixed)
25
+ | {current: null | FlatList<mixed>, ...},
26
+ ) => <FlatList scrollEventThrottle={0.0001} {...props} ref={ref} />,
27
+ );
23
28
 
24
29
  export default (createAnimatedComponent(
25
30
  FlatListWithEventThrottle,
@@ -67,12 +67,15 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
67
67
  // $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView
68
68
  refreshControl: React.Element<any>,
69
69
  },
70
- forwardedRef,
70
+ forwardedRef:
71
+ | {current: Instance | null, ...}
72
+ | ((Instance | null) => mixed),
71
73
  ) => {
72
74
  // Split `props` into the animate-able props for the parent (RefreshControl)
73
75
  // and child (ScrollView).
74
76
  const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =
75
77
  useMemo(() => {
78
+ // $FlowFixMe[underconstrained-implicit-instantiation]
76
79
  const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
77
80
  return {
78
81
  intermediatePropsForRefreshControl: {style: outer},
@@ -8,6 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import type {SectionBase} from '../../Lists/SectionList';
11
12
  import type {AnimatedComponentType} from '../createAnimatedComponent';
12
13
 
13
14
  import SectionList from '../../Lists/SectionList';
@@ -17,9 +18,17 @@ import * as React from 'react';
17
18
  /**
18
19
  * @see https://github.com/facebook/react-native/commit/b8c8562
19
20
  */
20
- const SectionListWithEventThrottle = React.forwardRef((props, ref) => (
21
- <SectionList scrollEventThrottle={0.0001} {...props} ref={ref} />
22
- ));
21
+ const SectionListWithEventThrottle = React.forwardRef(
22
+ (
23
+ props: React.ElementConfig<typeof SectionList>,
24
+ ref:
25
+ | ((null | SectionList<SectionBase<$FlowFixMe>>) => mixed)
26
+ | {
27
+ current: null | SectionList<SectionBase<$FlowFixMe>>,
28
+ ...
29
+ },
30
+ ) => <SectionList scrollEventThrottle={0.0001} {...props} ref={ref} />,
31
+ );
23
32
 
24
33
  export default (createAnimatedComponent(
25
34
  SectionListWithEventThrottle,
@@ -8,19 +8,11 @@
8
8
  * @format
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
11
  import View from '../Components/View/View';
14
- import setAndForwardRef from '../Utilities/setAndForwardRef';
15
- import {AnimatedEvent} from './AnimatedEvent';
16
- import * as createAnimatedComponentInjection from './createAnimatedComponentInjection';
17
- import NativeAnimatedHelper from './NativeAnimatedHelper';
18
- import AnimatedProps from './nodes/AnimatedProps';
19
- import invariant from 'invariant';
12
+ import useMergeRefs from '../Utilities/useMergeRefs';
13
+ import useAnimatedProps from './useAnimatedProps';
20
14
  import * as React from 'react';
21
15
 
22
- let animatedComponentNextId = 1;
23
-
24
16
  export type AnimatedComponentType<
25
17
  -Props: {+[string]: mixed, ...},
26
18
  +Instance = mixed,
@@ -37,238 +29,33 @@ export type AnimatedComponentType<
37
29
  Instance,
38
30
  >;
39
31
 
40
- function createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(
41
- Component: React.AbstractComponent<Props, Instance>,
42
- ): AnimatedComponentType<Props, Instance> {
43
- invariant(
44
- typeof Component !== 'function' ||
45
- (Component.prototype && Component.prototype.isReactComponent),
46
- '`createAnimatedComponent` does not support stateless functional components; ' +
47
- 'use a class component instead.',
48
- );
49
-
50
- class AnimatedComponent extends React.Component<Object> {
51
- _component: any; // TODO T53738161: flow type this, and the whole file
52
- _invokeAnimatedPropsCallbackOnMount: boolean = false;
53
- _prevComponent: any;
54
- _propsAnimated: AnimatedProps;
55
- _eventDetachers: Array<Function> = [];
56
-
57
- // Only to be used in this file, and only in Fabric.
58
- _animatedComponentId: string = `${animatedComponentNextId++}:animatedComponent`;
59
-
60
- _attachNativeEvents() {
61
- // Make sure to get the scrollable node for components that implement
62
- // `ScrollResponder.Mixin`.
63
- const scrollableNode = this._component?.getScrollableNode
64
- ? this._component.getScrollableNode()
65
- : this._component;
66
-
67
- for (const key in this.props) {
68
- const prop = this.props[key];
69
- if (prop instanceof AnimatedEvent && prop.__isNative) {
70
- prop.__attach(scrollableNode, key);
71
- this._eventDetachers.push(() => prop.__detach(scrollableNode, key));
72
- }
73
- }
74
- }
75
-
76
- _detachNativeEvents() {
77
- this._eventDetachers.forEach(remove => remove());
78
- this._eventDetachers = [];
79
- }
80
-
81
- _isFabric = (): boolean => {
82
- // When called during the first render, `_component` is always null.
83
- // Therefore, even if a component is rendered in Fabric, we can't detect
84
- // that until ref is set, which happens sometime after the first render.
85
- // In cases where this value switching between "false" and "true" on Fabric
86
- // causes issues, add an additional check for _component nullity.
87
- if (this._component == null) {
88
- return false;
89
- }
90
- return (
91
- // eslint-disable-next-line dot-notation
92
- this._component['_internalInstanceHandle']?.stateNode?.canonical !=
93
- null ||
94
- // Some components have a setNativeProps function but aren't a host component
95
- // such as lists like FlatList and SectionList. These should also use
96
- // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying
97
- // host component. This crazy hack is essentially special casing those lists and
98
- // ScrollView itself to use forceUpdate in Fabric.
99
- // If these components end up using forwardRef then these hacks can go away
100
- // as this._component would actually be the underlying host component and the above check
101
- // would be sufficient.
102
- (this._component.getNativeScrollRef != null &&
103
- this._component.getNativeScrollRef() != null &&
104
- // eslint-disable-next-line dot-notation
105
- this._component.getNativeScrollRef()['_internalInstanceHandle']
106
- ?.stateNode?.canonical != null) ||
107
- (this._component.getScrollResponder != null &&
108
- this._component.getScrollResponder() != null &&
109
- this._component.getScrollResponder().getNativeScrollRef != null &&
110
- this._component.getScrollResponder().getNativeScrollRef() != null &&
111
- this._component.getScrollResponder().getNativeScrollRef()[
112
- // eslint-disable-next-line dot-notation
113
- '_internalInstanceHandle'
114
- ]?.stateNode?.canonical != null)
115
- );
116
- };
117
-
118
- _waitForUpdate = (): void => {
119
- if (this._isFabric()) {
120
- NativeAnimatedHelper.API.setWaitingForIdentifier(
121
- this._animatedComponentId,
122
- );
123
- }
124
- };
125
-
126
- _markUpdateComplete = (): void => {
127
- if (this._isFabric()) {
128
- NativeAnimatedHelper.API.unsetWaitingForIdentifier(
129
- this._animatedComponentId,
130
- );
131
- }
132
- };
133
-
134
- // The system is best designed when setNativeProps is implemented. It is
135
- // able to avoid re-rendering and directly set the attributes that changed.
136
- // However, setNativeProps can only be implemented on leaf native
137
- // components. If you want to animate a composite component, you need to
138
- // re-render it. In this case, we have a fallback that uses forceUpdate.
139
- // This fallback is also called in Fabric.
140
- _animatedPropsCallback = (): void => {
141
- if (this._component == null) {
142
- // AnimatedProps is created in will-mount because it's used in render.
143
- // But this callback may be invoked before mount in async mode,
144
- // In which case we should defer the setNativeProps() call.
145
- // React may throw away uncommitted work in async mode,
146
- // So a deferred call won't always be invoked.
147
- this._invokeAnimatedPropsCallbackOnMount = true;
148
- } else if (
149
- process.env.NODE_ENV === 'test' ||
150
- // For animating properties of non-leaf/non-native components
151
- typeof this._component.setNativeProps !== 'function' ||
152
- // In Fabric, force animations to go through forceUpdate and skip setNativeProps
153
- this._isFabric()
154
- ) {
155
- this.forceUpdate();
156
- } else if (!this._propsAnimated.__isNative) {
157
- this._component.setNativeProps(
158
- this._propsAnimated.__getAnimatedValue(),
159
- );
160
- } else {
161
- throw new Error(
162
- 'Attempting to run JS driven animation on animated ' +
163
- 'node that has been moved to "native" earlier by starting an ' +
164
- 'animation with `useNativeDriver: true`',
165
- );
166
- }
167
- };
168
-
169
- _attachProps(nextProps: any) {
170
- const oldPropsAnimated = this._propsAnimated;
171
-
172
- this._propsAnimated = new AnimatedProps(
173
- nextProps,
174
- this._animatedPropsCallback,
175
- );
176
- this._propsAnimated.__attach();
177
-
178
- // When you call detach, it removes the element from the parent list
179
- // of children. If it goes to 0, then the parent also detaches itself
180
- // and so on.
181
- // An optimization is to attach the new elements and THEN detach the old
182
- // ones instead of detaching and THEN attaching.
183
- // This way the intermediate state isn't to go to 0 and trigger
184
- // this expensive recursive detaching to then re-attach everything on
185
- // the very next operation.
186
- if (oldPropsAnimated) {
187
- oldPropsAnimated.__restoreDefaultValues();
188
- oldPropsAnimated.__detach();
189
- }
190
- }
191
-
192
- _setComponentRef: (ref: React.ElementRef<any>) => void = setAndForwardRef({
193
- getForwardedRef: () => this.props.forwardedRef,
194
- setLocalRef: ref => {
195
- this._prevComponent = this._component;
196
- this._component = ref;
197
- },
198
- });
199
-
200
- render(): React.Node {
201
- const animatedProps = this._propsAnimated.__getValue() || {};
202
-
203
- const {style = {}, ...props} = animatedProps;
204
- const {style: passthruStyle = {}, ...passthruProps} =
205
- this.props.passthroughAnimatedPropExplicitValues || {};
206
- const mergedStyle = {...style, ...passthruStyle};
207
-
208
- // Force `collapsable` to be false so that native view is not flattened.
209
- // Flattened views cannot be accurately referenced by a native driver.
210
- return (
211
- <Component
212
- {...props}
213
- {...passthruProps}
214
- collapsable={false}
215
- style={mergedStyle}
216
- ref={this._setComponentRef}
217
- />
218
- );
219
- }
220
-
221
- UNSAFE_componentWillMount() {
222
- this._waitForUpdate();
223
- this._attachProps(this.props);
224
- }
225
-
226
- componentDidMount() {
227
- if (this._invokeAnimatedPropsCallbackOnMount) {
228
- this._invokeAnimatedPropsCallbackOnMount = false;
229
- this._animatedPropsCallback();
230
- }
231
-
232
- this._propsAnimated.setNativeView(this._component);
233
- this._attachNativeEvents();
234
- this._markUpdateComplete();
235
- }
236
-
237
- UNSAFE_componentWillReceiveProps(newProps: any) {
238
- this._waitForUpdate();
239
- this._attachProps(newProps);
240
- }
241
-
242
- componentDidUpdate(prevProps: any) {
243
- if (this._component !== this._prevComponent) {
244
- this._propsAnimated.setNativeView(this._component);
245
- }
246
- if (this._component !== this._prevComponent || prevProps !== this.props) {
247
- this._detachNativeEvents();
248
- this._attachNativeEvents();
249
- }
250
- this._markUpdateComplete();
251
- }
252
-
253
- componentWillUnmount() {
254
- this._propsAnimated && this._propsAnimated.__detach();
255
- this._detachNativeEvents();
256
- this._markUpdateComplete();
257
- this._component = null;
258
- this._prevComponent = null;
259
- }
260
- }
32
+ export default function createAnimatedComponent<TProps: {...}, TInstance>(
33
+ Component: React.AbstractComponent<TProps, TInstance>,
34
+ ): AnimatedComponentType<TProps, TInstance> {
35
+ return React.forwardRef((props, forwardedRef) => {
36
+ const [reducedProps, callbackRef] = useAnimatedProps<TProps, TInstance>(
37
+ // $FlowFixMe[incompatible-call]
38
+ props,
39
+ );
40
+ const ref = useMergeRefs<TInstance | null>(callbackRef, forwardedRef);
41
+
42
+ // Some components require explicit passthrough values for animation
43
+ // to work properly. For example, if an animated component is
44
+ // transformed and Pressable, onPress will not work after transform
45
+ // without these passthrough values.
46
+ // $FlowFixMe[prop-missing]
47
+ const {passthroughAnimatedPropExplicitValues, style} = reducedProps;
48
+ const {style: passthroughStyle, ...passthroughProps} =
49
+ passthroughAnimatedPropExplicitValues ?? {};
50
+ const mergedStyle = {...style, ...passthroughStyle};
261
51
 
262
- return React.forwardRef(function AnimatedComponentWrapper(props, ref) {
263
52
  return (
264
- <AnimatedComponent
265
- {...props}
266
- {...(ref == null ? null : {forwardedRef: ref})}
53
+ <Component
54
+ {...reducedProps}
55
+ {...passthroughProps}
56
+ style={mergedStyle}
57
+ ref={ref}
267
58
  />
268
59
  );
269
60
  });
270
61
  }
271
-
272
- // $FlowIgnore[incompatible-cast] - Will be compatible after refactors.
273
- export default (createAnimatedComponentInjection.recordAndRetrieve() ??
274
- createAnimatedComponent: typeof createAnimatedComponent);