react-native-windows 0.70.9 → 0.71.0-preview.2

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 (913) hide show
  1. package/.flowconfig +3 -6
  2. package/Directory.Build.props +2 -2
  3. package/Folly/Folly.vcxproj +4 -2
  4. package/Folly/Folly.vcxproj.filters +7 -3
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +59 -43
  6. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +192 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +7 -5
  8. package/Folly/cgmanifest.json +2 -1
  9. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  11. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  12. package/Libraries/Alert/Alert.d.ts +90 -0
  13. package/Libraries/Alert/Alert.js +7 -1
  14. package/Libraries/Alert/Alert.windows.js +2 -1
  15. package/Libraries/Alert/NativeAlertManager.js +2 -0
  16. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  17. package/Libraries/Animated/Animated.d.ts +587 -0
  18. package/Libraries/Animated/Animated.js +13 -11
  19. package/Libraries/Animated/AnimatedEvent.js +12 -17
  20. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  21. package/Libraries/Animated/AnimatedMock.js +11 -13
  22. package/Libraries/Animated/AnimatedWeb.js +2 -2
  23. package/Libraries/Animated/Easing.d.ts +37 -0
  24. package/Libraries/Animated/Easing.js +2 -2
  25. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  26. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  27. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  28. package/Libraries/Animated/SpringConfig.js +2 -7
  29. package/Libraries/Animated/animations/Animation.js +3 -4
  30. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  31. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  32. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  33. package/Libraries/Animated/bezier.js +2 -2
  34. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  35. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  36. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  37. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  38. package/Libraries/Animated/components/AnimatedText.js +5 -6
  39. package/Libraries/Animated/components/AnimatedView.js +5 -6
  40. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  41. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  42. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  43. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  44. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  45. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  46. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  47. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  48. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  49. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  50. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  51. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  52. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  54. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  55. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  56. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  57. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  58. package/Libraries/Animated/useAnimatedProps.js +8 -16
  59. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  60. package/Libraries/Animated/useAnimatedValue.js +25 -0
  61. package/Libraries/AppState/AppState.d.ts +58 -0
  62. package/Libraries/AppState/AppState.js +3 -7
  63. package/Libraries/AppState/NativeAppState.js +1 -0
  64. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  65. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  66. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  67. package/Libraries/Blob/BlobManager.js +5 -3
  68. package/Libraries/Blob/File.js +2 -3
  69. package/Libraries/Blob/FileReader.js +6 -5
  70. package/Libraries/Blob/NativeBlobModule.js +1 -0
  71. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  72. package/Libraries/Blob/URL.js +11 -9
  73. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  74. package/Libraries/BugReporting/getReactData.js +1 -1
  75. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  76. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  77. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  78. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +40 -8
  79. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  80. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  81. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  82. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  83. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  84. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  85. package/Libraries/Components/Button.d.ts +42 -0
  86. package/Libraries/Components/Button.flow.js +265 -0
  87. package/Libraries/Components/Button.js +62 -18
  88. package/Libraries/Components/Button.windows.js +62 -18
  89. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  90. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  91. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  92. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  93. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  94. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  95. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  96. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +4 -2
  97. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  98. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  99. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  100. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  101. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  102. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  103. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  104. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  105. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  106. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  107. package/Libraries/Components/Popup/PopupProps.d.ts +1 -0
  108. package/Libraries/Components/Popup/PopupProps.js.map +1 -1
  109. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  110. package/Libraries/Components/Pressable/Pressable.js +73 -15
  111. package/Libraries/Components/Pressable/Pressable.windows.js +78 -20
  112. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  113. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  114. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  115. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  116. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  117. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  118. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  119. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +1 -1
  120. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  121. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  122. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  123. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  124. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  125. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +4 -3
  126. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  127. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  128. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  129. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  130. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +5 -4
  132. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  133. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  134. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  135. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  136. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  137. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  138. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  139. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  140. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  141. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  142. package/Libraries/Components/Slider/Slider.js +9 -9
  143. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  144. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  145. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  146. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  147. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  148. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  149. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  150. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  151. package/Libraries/Components/Switch/Switch.js +7 -7
  152. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  153. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  154. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  155. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  156. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  157. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  158. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  159. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  160. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  161. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  162. package/Libraries/Components/TextInput/TextInput.js +344 -38
  163. package/Libraries/Components/TextInput/TextInput.windows.js +348 -38
  164. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  165. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  166. package/Libraries/Components/TextInput/TextInputState.windows.js +22 -5
  167. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  168. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  169. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  170. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  171. package/Libraries/Components/Touchable/Touchable.js +12 -12
  172. package/Libraries/Components/Touchable/Touchable.windows.js +12 -12
  173. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  174. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  175. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  176. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +32 -9
  177. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  178. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  179. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  180. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  181. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +54 -16
  182. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  183. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  184. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +64 -10
  185. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  186. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  187. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  188. package/Libraries/Components/View/View.d.ts +29 -0
  189. package/Libraries/Components/View/View.js +91 -8
  190. package/Libraries/Components/View/View.windows.js +181 -94
  191. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  192. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  193. package/Libraries/Components/View/ViewAccessibility.windows.js +69 -0
  194. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  195. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  196. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  197. package/Libraries/Components/View/ViewPropTypes.windows.js +105 -13
  198. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  199. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  200. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  201. package/Libraries/Core/ExceptionsManager.js +8 -0
  202. package/Libraries/Core/ExtendedError.js +11 -8
  203. package/Libraries/Core/InitializeCore.js +2 -1
  204. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  205. package/Libraries/Core/RawEventEmitter.js +2 -1
  206. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  207. package/Libraries/Core/ReactNativeVersion.js +2 -2
  208. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  209. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  210. package/Libraries/Core/Timers/JSTimers.js +13 -11
  211. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  212. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  213. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  214. package/Libraries/Core/setUpReactDevTools.js +4 -1
  215. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  216. package/Libraries/Core/setUpTimers.js +1 -1
  217. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  218. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  219. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  220. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  221. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  222. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  223. package/Libraries/Events/EventPolyfill.js +1 -1
  224. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  225. package/Libraries/Image/AssetSourceResolver.js +4 -6
  226. package/Libraries/Image/Image.android.js +63 -45
  227. package/Libraries/Image/Image.d.ts +322 -0
  228. package/Libraries/Image/Image.flow.js +64 -0
  229. package/Libraries/Image/Image.ios.js +55 -28
  230. package/Libraries/Image/Image.windows.js +56 -30
  231. package/Libraries/Image/ImageBackground.js +18 -7
  232. package/Libraries/Image/ImageInjection.js +2 -1
  233. package/Libraries/Image/ImageProps.js +88 -5
  234. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  235. package/Libraries/Image/ImageSource.d.ts +76 -0
  236. package/Libraries/Image/ImageSourceUtils.js +80 -0
  237. package/Libraries/Image/ImageUtils.js +21 -0
  238. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  239. package/Libraries/Image/NativeImageEditor.js +1 -0
  240. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  241. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  242. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  243. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  244. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  245. package/Libraries/Image/nativeImageSource.js +2 -2
  246. package/Libraries/Image/resolveAssetSource.js +5 -5
  247. package/Libraries/Inspector/BorderBox.js +1 -1
  248. package/Libraries/Inspector/BoxInspector.js +3 -4
  249. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  250. package/Libraries/Inspector/ElementBox.js +4 -5
  251. package/Libraries/Inspector/ElementProperties.js +10 -11
  252. package/Libraries/Inspector/Inspector.js +22 -108
  253. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  254. package/Libraries/Inspector/InspectorPanel.js +12 -10
  255. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  256. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  257. package/Libraries/Inspector/StyleInspector.js +2 -2
  258. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  259. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  260. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  261. package/Libraries/Interaction/InteractionManager.js +8 -8
  262. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  263. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  264. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  265. package/Libraries/Interaction/PanResponder.js +4 -3
  266. package/Libraries/JSInspector/JSInspector.js +0 -3
  267. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  268. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  269. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  270. package/Libraries/Linking/Linking.d.ts +61 -0
  271. package/Libraries/Linking/Linking.js +3 -2
  272. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  273. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  274. package/Libraries/Lists/CellRenderMask.js +13 -3
  275. package/Libraries/Lists/ChildListCollection.js +72 -0
  276. package/Libraries/Lists/FillRateHelper.js +28 -17
  277. package/Libraries/Lists/FlatList.d.ts +292 -0
  278. package/Libraries/Lists/FlatList.js +70 -70
  279. package/Libraries/Lists/SectionList.d.ts +300 -0
  280. package/Libraries/Lists/SectionList.js +5 -5
  281. package/Libraries/Lists/SectionListModern.js +6 -6
  282. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  283. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  284. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  285. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  286. package/Libraries/Lists/VirtualizedList.js +548 -890
  287. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  288. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  289. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  290. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  291. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  292. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  293. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  294. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  295. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  296. package/Libraries/LogBox/LogBox.d.ts +28 -0
  297. package/Libraries/LogBox/LogBox.js +11 -11
  298. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  299. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  300. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  301. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  302. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  303. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  304. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  305. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  306. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  307. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  308. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  309. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  310. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  311. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  312. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  313. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  314. package/Libraries/Modal/Modal.d.ts +104 -0
  315. package/Libraries/Modal/Modal.js +14 -14
  316. package/Libraries/Modal/NativeModalManager.js +1 -0
  317. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  318. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  319. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  320. package/Libraries/NativeComponent/BaseViewConfig.windows.js +8 -3
  321. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  322. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  323. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  324. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  325. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  326. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  327. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  328. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  329. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  330. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  331. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  332. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  333. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  334. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  335. package/Libraries/Network/RCTNetworking.android.js +4 -3
  336. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  337. package/Libraries/Network/RCTNetworking.windows.js +1 -0
  338. package/Libraries/Network/convertRequestBody.js +1 -2
  339. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  340. package/Libraries/NewAppScreen/components/Header.js +6 -2
  341. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  342. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  343. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  344. package/Libraries/NewAppScreen/index.js +1 -1
  345. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  346. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  347. package/Libraries/Performance/Systrace.d.ts +66 -0
  348. package/Libraries/Performance/Systrace.js +110 -195
  349. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  350. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  351. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  352. package/Libraries/Pressability/Pressability.js +12 -10
  353. package/Libraries/Pressability/Pressability.windows.js +21 -12
  354. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  355. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  356. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  357. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  358. package/Libraries/ReactNative/AppContainer.js +17 -7
  359. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  360. package/Libraries/ReactNative/AppRegistry.js +11 -14
  361. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  362. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  363. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  364. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  365. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  366. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  367. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  368. package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
  369. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  370. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  371. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  372. package/Libraries/ReactNative/RendererProxy.js +26 -0
  373. package/Libraries/ReactNative/RootTag.js +0 -1
  374. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  375. package/Libraries/ReactNative/UIManager.js +1 -1
  376. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  377. package/Libraries/ReactNative/renderApplication.js +38 -20
  378. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  379. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  380. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  381. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  382. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  383. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  384. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  385. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  386. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  387. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  388. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  389. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  390. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  391. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  392. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  393. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  394. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  395. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  396. package/Libraries/Settings/Settings.d.ts +18 -0
  397. package/Libraries/Share/NativeShareModule.js +1 -0
  398. package/Libraries/Share/Share.d.ts +80 -0
  399. package/Libraries/Share/Share.js +7 -5
  400. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  401. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  402. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  403. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  404. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  405. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  406. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  407. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  408. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  409. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  410. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  411. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  412. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  413. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  414. package/Libraries/StyleSheet/processColor.js +3 -4
  415. package/Libraries/StyleSheet/processColorArray.js +1 -0
  416. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  417. package/Libraries/StyleSheet/processTransform.js +114 -105
  418. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  419. package/Libraries/Text/Text.d.ts +209 -0
  420. package/Libraries/Text/Text.js +94 -12
  421. package/Libraries/Text/Text.windows.js +87 -11
  422. package/Libraries/Text/TextNativeComponent.js +49 -41
  423. package/Libraries/Text/TextProps.js +64 -7
  424. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  425. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  426. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  427. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  428. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  429. package/Libraries/Types/CoreEventTypes.js +2 -1
  430. package/Libraries/Types/CoreEventTypes.windows.js +2 -1
  431. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  432. package/Libraries/Utilities/Appearance.d.ts +43 -0
  433. package/Libraries/Utilities/Appearance.js +3 -3
  434. package/Libraries/Utilities/BackHandler.android.js +3 -5
  435. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  436. package/Libraries/Utilities/BackHandler.windows.js +3 -5
  437. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  438. package/Libraries/Utilities/DevSettings.js +4 -2
  439. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  440. package/Libraries/Utilities/Dimensions.js +2 -2
  441. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  442. package/Libraries/Utilities/HMRClient.js +23 -8
  443. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  444. package/Libraries/Utilities/NativeAppearance.js +1 -0
  445. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  446. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  447. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  448. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  449. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  450. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  451. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  452. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  453. package/Libraries/Utilities/Platform.android.js +11 -5
  454. package/Libraries/Utilities/Platform.d.ts +102 -0
  455. package/Libraries/Utilities/Platform.ios.js +12 -5
  456. package/Libraries/Utilities/Platform.windows.js +11 -5
  457. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  458. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  459. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  460. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  461. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  462. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  463. package/Libraries/Utilities/groupByEveryN.js +1 -1
  464. package/Libraries/Utilities/stringifySafe.js +3 -1
  465. package/Libraries/Utilities/useColorScheme.js +3 -2
  466. package/Libraries/Utilities/useRefEffect.js +1 -1
  467. package/Libraries/Vibration/NativeVibration.js +1 -0
  468. package/Libraries/Vibration/Vibration.d.ts +43 -0
  469. package/Libraries/Vibration/Vibration.js +1 -0
  470. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  471. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  472. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  473. package/Libraries/WebSocket/WebSocket.js +11 -3
  474. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  475. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  476. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  477. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  478. package/Libraries/__tests__/ViewWindows-test.js +16 -0
  479. package/Libraries/platform-types.d.ts +17 -0
  480. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  481. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  482. package/Microsoft.ReactNative/ABIViewManager.cpp +19 -1
  483. package/Microsoft.ReactNative/ABIViewManager.h +9 -0
  484. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -22
  485. package/Microsoft.ReactNative/Base/CoreNativeModules.h +0 -2
  486. package/Microsoft.ReactNative/CompositionContext.idl +31 -0
  487. package/Microsoft.ReactNative/CompositionHwndHost.idl +33 -0
  488. package/Microsoft.ReactNative/CompositionRootView.idl +45 -0
  489. package/Microsoft.ReactNative/CompositionSwitcher.idl +123 -0
  490. package/Microsoft.ReactNative/CompositionUIService.idl +24 -0
  491. package/Microsoft.ReactNative/Fabric/ComponentView.h +10 -0
  492. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +83 -0
  493. package/Microsoft.ReactNative/Fabric/{ComponentViewRegistry.h → Composition/ComponentViewRegistry.h} +9 -12
  494. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +816 -0
  495. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +33 -0
  496. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +833 -0
  497. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +116 -0
  498. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.cpp +137 -0
  499. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +44 -0
  500. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +145 -0
  501. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +49 -0
  502. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +359 -0
  503. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +81 -0
  504. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +27 -0
  505. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.h +23 -0
  506. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1217 -0
  507. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +113 -0
  508. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +332 -0
  509. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +90 -0
  510. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +415 -0
  511. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +62 -0
  512. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +355 -0
  513. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +103 -0
  514. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +177 -0
  515. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1076 -0
  516. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +99 -0
  517. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.cpp +0 -0
  518. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.h +0 -0
  519. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.cpp +1 -31
  520. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.h +15 -28
  521. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.cpp +16 -14
  522. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.h +3 -3
  523. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.cpp +27 -10
  524. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.h +5 -16
  525. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -157
  526. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +10 -9
  527. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +34 -0
  528. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +5 -7
  529. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +23 -8
  530. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +35 -0
  531. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +125 -0
  532. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +20 -0
  533. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +5 -0
  534. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +5 -0
  535. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +4 -6
  536. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +17 -0
  537. package/Microsoft.ReactNative/INativeUIManager.h +1 -1
  538. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -9
  539. package/Microsoft.ReactNative/IViewManager.idl +14 -0
  540. package/Microsoft.ReactNative/IViewManagerCore.idl +1 -0
  541. package/Microsoft.ReactNative/JsiApi.cpp +94 -0
  542. package/Microsoft.ReactNative/JsiApi.h +13 -0
  543. package/Microsoft.ReactNative/JsiApi.idl +13 -0
  544. package/Microsoft.ReactNative/LayoutService.cpp +51 -0
  545. package/Microsoft.ReactNative/LayoutService.h +32 -0
  546. package/Microsoft.ReactNative/LayoutService.idl +41 -0
  547. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +32 -20
  548. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +11 -1
  549. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.cpp +33 -16
  550. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.h +3 -2
  551. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.cpp +17 -2
  552. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.h +19 -1
  553. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.cpp +23 -0
  554. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.h +17 -0
  555. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.cpp +49 -18
  556. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.h +29 -7
  557. package/Microsoft.ReactNative/Modules/Animated/AnimationUtils.h +45 -0
  558. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.cpp +6 -5
  559. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.h +1 -3
  560. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.cpp +31 -5
  561. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.h +3 -1
  562. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.cpp +30 -15
  563. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.h +4 -2
  564. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.cpp +43 -20
  565. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.h +3 -2
  566. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.cpp +2 -2
  567. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.h +1 -1
  568. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.cpp +45 -8
  569. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.h +7 -2
  570. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.cpp +76 -38
  571. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.h +6 -5
  572. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.cpp +25 -13
  573. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.h +4 -2
  574. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.cpp +33 -16
  575. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.h +3 -2
  576. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +245 -209
  577. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +91 -41
  578. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +336 -82
  579. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +33 -10
  580. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +185 -57
  581. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +28 -5
  582. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.cpp +72 -20
  583. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.h +8 -4
  584. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.cpp +20 -5
  585. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.h +3 -2
  586. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.cpp +42 -20
  587. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.h +3 -1
  588. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.cpp +20 -11
  589. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.h +5 -6
  590. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.cpp +36 -9
  591. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.h +5 -2
  592. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.cpp +60 -32
  593. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +11 -4
  594. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +58 -37
  595. package/Microsoft.ReactNative/Modules/AppearanceModule.h +25 -32
  596. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +3 -1
  597. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +42 -10
  598. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +157 -39
  599. package/Microsoft.ReactNative/Modules/LogBoxModule.h +6 -0
  600. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +72 -85
  601. package/Microsoft.ReactNative/Modules/NativeUIManager.h +8 -4
  602. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +7 -19
  603. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +1 -0
  604. package/Microsoft.ReactNative/Modules/TimingModule.cpp +48 -87
  605. package/Microsoft.ReactNative/Modules/TimingModule.h +20 -30
  606. package/Microsoft.ReactNative/QuirkSettings.cpp +22 -0
  607. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  608. package/Microsoft.ReactNative/QuirkSettings.idl +7 -0
  609. package/Microsoft.ReactNative/ReactCoreInjection.cpp +7 -2
  610. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -1
  611. package/Microsoft.ReactNative/ReactCoreInjection.idl +4 -1
  612. package/Microsoft.ReactNative/ReactHost/React.h +0 -3
  613. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +28 -23
  614. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -3
  615. package/Microsoft.ReactNative/ReactNativeHost.cpp +2 -1
  616. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +8 -3
  617. package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -3
  618. package/Microsoft.ReactNative/ReactRootView.cpp +3 -75
  619. package/Microsoft.ReactNative/ReactRootView.h +0 -6
  620. package/Microsoft.ReactNative/ReactRootView.idl +1 -9
  621. package/Microsoft.ReactNative/RedBox.cpp +69 -8
  622. package/Microsoft.ReactNative/RedBox.h +2 -0
  623. package/Microsoft.ReactNative/RedBoxHandler.cpp +3 -1
  624. package/Microsoft.ReactNative/Utils/Helpers.cpp +13 -0
  625. package/Microsoft.ReactNative/Utils/Helpers.h +1 -0
  626. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +94 -0
  627. package/Microsoft.ReactNative/Utils/ImageUtils.h +35 -0
  628. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +3 -2
  629. package/Microsoft.ReactNative/Utils/PropertyUtils.h +31 -9
  630. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +19 -0
  631. package/Microsoft.ReactNative/Views/ControlViewManager.h +7 -0
  632. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +8 -4
  633. package/Microsoft.ReactNative/Views/ICompositionRootView.h +19 -0
  634. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +14 -0
  635. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +7 -0
  636. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +8 -76
  637. package/Microsoft.ReactNative/Views/Image/ReactImage.h +1 -23
  638. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +16 -3
  639. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -2
  640. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +1 -3
  641. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +10 -1
  642. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -12
  643. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +2 -4
  644. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -7
  645. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +58 -42
  646. package/Microsoft.ReactNative/Views/TextViewManager.cpp +47 -31
  647. package/Microsoft.ReactNative/Views/TextViewManager.h +2 -0
  648. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +22 -247
  649. package/Microsoft.ReactNative/Views/TouchEventHandler.h +1 -6
  650. package/Microsoft.ReactNative/Views/ViewControl.cpp +2 -2
  651. package/Microsoft.ReactNative/Views/ViewControl.h +1 -1
  652. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +25 -13
  653. package/Microsoft.ReactNative/Views/ViewManagerBase.h +4 -0
  654. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +74 -35
  655. package/Microsoft.ReactNative/Views/ViewViewManager.h +1 -0
  656. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +4 -4
  657. package/Microsoft.ReactNative/XamlHelper.cpp +13 -0
  658. package/Microsoft.ReactNative/XamlHelper.h +4 -0
  659. package/Microsoft.ReactNative/XamlHelper.idl +9 -0
  660. package/Microsoft.ReactNative/XamlUIService.cpp +16 -0
  661. package/Microsoft.ReactNative/XamlUIService.h +2 -0
  662. package/Microsoft.ReactNative/XamlUIService.idl +4 -0
  663. package/Microsoft.ReactNative/XamlView.cpp +10 -0
  664. package/Microsoft.ReactNative/XamlView.h +7 -2
  665. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +76 -0
  666. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +13 -0
  667. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +71 -2
  668. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  669. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +1 -2
  670. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +14 -4
  671. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +5 -2
  672. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +2 -0
  673. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +1 -2
  674. package/Microsoft.ReactNative.Managed/IReactPromise.cs +0 -20
  675. package/Microsoft.ReactNative.Managed/JSValue.cs +1 -1
  676. package/Microsoft.ReactNative.Managed/JSValueReader.cs +438 -444
  677. package/Microsoft.ReactNative.Managed/JSValueWriter.cs +8 -7
  678. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +22 -7
  679. package/Microsoft.ReactNative.Managed/ReactAttributes.cs +16 -0
  680. package/Microsoft.ReactNative.Managed/ReactConstantProvider.cs +5 -0
  681. package/Microsoft.ReactNative.Managed/ReactContext.cs +19 -2
  682. package/Microsoft.ReactNative.Managed/ReactDispatcher.cs +34 -0
  683. package/Microsoft.ReactNative.Managed/ReactError.cs +36 -0
  684. package/Microsoft.ReactNative.Managed/ReactNotificationArgsOf.cs +23 -0
  685. package/Microsoft.ReactNative.Managed/ReactNotificationHandlerOf.cs +7 -0
  686. package/Microsoft.ReactNative.Managed/ReactNotificationIdOf.cs +44 -0
  687. package/Microsoft.ReactNative.Managed/ReactNotificationService.cs +146 -0
  688. package/Microsoft.ReactNative.Managed/ReactNotificationSubscription.cs +43 -0
  689. package/Microsoft.ReactNative.Managed/ReactNotificationSubscriptionRevoker.cs +64 -0
  690. package/Microsoft.ReactNative.Managed/ReactPromise.cs +123 -81
  691. package/Microsoft.ReactNative.Managed/ReactPropertyBag.cs +91 -0
  692. package/Microsoft.ReactNative.Managed/ReactPropertyIdOf.cs +44 -0
  693. package/Microsoft.ReactNative.Managed/ReactPropertyName.cs +39 -0
  694. package/Microsoft.ReactNative.Managed/ReactPropertyNamespace.cs +26 -0
  695. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +44 -0
  696. package/Microsoft.ReactNative.Managed/ReactTaskExtensions.cs +15 -4
  697. package/Microsoft.ReactNative.Managed/packages.lock.json +51 -2
  698. package/Microsoft.ReactNative.Managed.CodeGen/App.cs +1 -1
  699. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +793 -731
  700. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +81 -44
  701. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Serializers.cs +57 -18
  702. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +36 -4
  703. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +5 -5
  704. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +3 -3
  705. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactGetConstants.cs +17 -0
  706. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactMethod.cs +11 -2
  707. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactModule.cs +2 -0
  708. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +10 -4
  709. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  710. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  711. package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +29 -3
  712. package/Microsoft.ReactNative.Managed.CodeGen/SyntaxHelpers.cs +6 -0
  713. package/Mso/smartPtr/cntPtr.h +21 -21
  714. package/PropertySheets/Codegen.props +15 -0
  715. package/PropertySheets/Codegen.targets +19 -0
  716. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  717. package/PropertySheets/External/Microsoft.ReactNative.CSharp.Dependencies.props +17 -0
  718. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  719. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +0 -3
  720. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props +1 -0
  721. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +3 -0
  722. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets +1 -0
  723. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props +1 -0
  724. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +3 -0
  725. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets +1 -0
  726. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +11 -0
  727. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +1 -0
  728. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +51 -0
  729. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +10 -1
  730. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  731. package/PropertySheets/JSEngine.props +10 -3
  732. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  733. package/PropertySheets/NewAPIDeclarations.props +25 -0
  734. package/PropertySheets/React.Cpp.props +2 -2
  735. package/PropertySheets/WinUI.props +1 -1
  736. package/README.md +2 -2
  737. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +2 -1
  738. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +182 -0
  739. package/ReactCommon/Yoga.cpp +76 -29
  740. package/Scripts/IntegrationTests.ps1 +1 -1
  741. package/Scripts/JustMyXaml.ps1 +8 -8
  742. package/Scripts/Microsoft.ReactNative.Managed.nuspec +1 -1
  743. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +3 -3
  744. package/Scripts/OfficeReact.Win32.nuspec +2 -0
  745. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +31 -1
  746. package/Scripts/UnitTest.ps1 +1 -1
  747. package/Scripts/rnw-dependencies.ps1 +317 -162
  748. package/Shared/Composition/CompositionSwitcher.interop.h +39 -0
  749. package/Shared/HermesShim.h +1 -1
  750. package/Shared/JSI/ChakraRuntime.cpp +42 -0
  751. package/Shared/JSI/ChakraRuntime.h +13 -0
  752. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -2
  753. package/Shared/Networking/IWebSocketResource.h +1 -0
  754. package/Shared/Networking/OriginPolicyHttpFilter.cpp +6 -6
  755. package/Shared/OInstance.cpp +2 -0
  756. package/Shared/Shared.vcxitems +34 -4
  757. package/Shared/Shared.vcxitems.filters +1 -12
  758. package/Shared/V8JSIRuntimeHolder.h +0 -2
  759. package/codegen/NativeAccessibilityInfoSpec.g.h +12 -12
  760. package/codegen/NativeAccessibilityManagerSpec.g.h +37 -31
  761. package/codegen/NativeActionSheetManagerSpec.g.h +6 -6
  762. package/codegen/NativeAlertManagerSpec.g.h +4 -2
  763. package/codegen/NativeAnimatedModuleSpec.g.h +48 -48
  764. package/codegen/NativeAnimatedTurboModuleSpec.g.h +48 -48
  765. package/codegen/NativeAnimationsDebugModuleSpec.g.h +4 -4
  766. package/codegen/NativeAppStateSpec.g.h +6 -6
  767. package/codegen/NativeAppearanceSpec.g.h +6 -6
  768. package/codegen/NativeBlobModuleSpec.g.h +12 -12
  769. package/codegen/NativeBugReportingSpec.g.h +6 -6
  770. package/codegen/NativeClipboardSpec.g.h +4 -4
  771. package/codegen/NativeDatePickerAndroidSpec.g.h +2 -2
  772. package/codegen/NativeDevLoadingViewSpec.g.h +4 -4
  773. package/codegen/NativeDevMenuSpec.g.h +10 -10
  774. package/codegen/NativeDevSettingsSpec.g.h +22 -22
  775. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +2 -2
  776. package/codegen/NativeDeviceEventManagerSpec.g.h +2 -2
  777. package/codegen/NativeDialogManagerAndroidSpec.g.h +2 -2
  778. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -2
  779. package/codegen/NativeExceptionsManagerSpec.g.h +10 -10
  780. package/codegen/NativeFileReaderModuleSpec.g.h +4 -4
  781. package/codegen/NativeFrameRateLoggerSpec.g.h +8 -8
  782. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +4 -4
  783. package/codegen/NativeI18nManagerSpec.g.h +6 -6
  784. package/codegen/NativeImageEditorSpec.g.h +2 -2
  785. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -10
  786. package/codegen/NativeImageLoaderIOSSpec.g.h +10 -10
  787. package/codegen/NativeImageStoreAndroidSpec.g.h +2 -2
  788. package/codegen/NativeImageStoreIOSSpec.g.h +8 -8
  789. package/codegen/NativeIntentAndroidSpec.g.h +10 -10
  790. package/codegen/NativeJSCHeapCaptureSpec.g.h +2 -2
  791. package/codegen/NativeJSCSamplingProfilerSpec.g.h +2 -2
  792. package/codegen/NativeKeyboardObserverSpec.g.h +4 -4
  793. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  794. package/codegen/NativeLogBoxSpec.g.h +4 -4
  795. package/codegen/NativeModalManagerSpec.g.h +4 -4
  796. package/codegen/NativeNetworkingAndroidSpec.g.h +10 -10
  797. package/codegen/NativeNetworkingIOSSpec.g.h +10 -10
  798. package/codegen/NativePerformanceObserverSpec.g.h +69 -0
  799. package/codegen/NativePermissionsAndroidSpec.g.h +8 -8
  800. package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -2
  801. package/codegen/NativePushNotificationManagerIOSSpec.g.h +36 -36
  802. package/codegen/NativeRedBoxSpec.g.h +4 -4
  803. package/codegen/NativeSampleTurboModuleSpec.g.h +22 -22
  804. package/codegen/NativeSegmentFetcherSpec.g.h +4 -4
  805. package/codegen/NativeSettingsManagerSpec.g.h +4 -4
  806. package/codegen/NativeShareModuleSpec.g.h +2 -2
  807. package/codegen/NativeSoundManagerSpec.g.h +2 -2
  808. package/codegen/NativeStatusBarManagerAndroidSpec.g.h +8 -8
  809. package/codegen/NativeStatusBarManagerIOSSpec.g.h +12 -12
  810. package/codegen/NativeTimingSpec.g.h +6 -6
  811. package/codegen/NativeToastAndroidSpec.g.h +6 -6
  812. package/codegen/NativeUIManagerSpec.g.h +50 -50
  813. package/codegen/NativeVibrationSpec.g.h +6 -6
  814. package/codegen/NativeWebSocketModuleSpec.g.h +14 -14
  815. package/codegen/react/components/rnwcore/ComponentDescriptors.h +3 -4
  816. package/codegen/react/components/rnwcore/EventEmitters.cpp +5 -4
  817. package/codegen/react/components/rnwcore/EventEmitters.h +21 -26
  818. package/codegen/react/components/rnwcore/Props.cpp +3 -10
  819. package/codegen/react/components/rnwcore/Props.h +19 -28
  820. package/codegen/react/components/rnwcore/ShadowNodes.cpp +3 -4
  821. package/codegen/react/components/rnwcore/ShadowNodes.h +36 -30
  822. package/codegen/react/components/rnwcore/States.cpp +18 -0
  823. package/codegen/react/components/rnwcore/States.h +156 -0
  824. package/codegen/rnwcoreJSI-generated.cpp +1670 -0
  825. package/codegen/rnwcoreJSI.h +5620 -0
  826. package/fmt/cgmanifest.json +1 -0
  827. package/fmt/fmt.vcxproj +2 -1
  828. package/index.js +89 -55
  829. package/index.windows.js +89 -55
  830. package/interface.js +8 -0
  831. package/jest/react-native-env.js +18 -0
  832. package/jest/renderer.js +2 -2
  833. package/jest/setup.js +7 -9
  834. package/just-task.js +5 -1
  835. package/package.json +37 -37
  836. package/template/cpp-app/proj/MyApp.sln +2 -2
  837. package/template/cpp-app/proj/MyApp.vcxproj +3 -3
  838. package/template/cpp-app/src/ReactPackageProvider.cpp +1 -1
  839. package/template/cpp-lib/proj/MyLib.sln +2 -2
  840. package/template/cpp-lib/proj/MyLib.vcxproj +3 -3
  841. package/template/cpp-lib/src/ReactPackageProvider.cpp +1 -1
  842. package/template/cs-app/proj/MyApp.csproj +10 -8
  843. package/template/cs-app/proj/MyApp.sln +2 -2
  844. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +3 -3
  845. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +2 -1
  846. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +19 -15
  847. package/template/cs-app-WinAppSDK/proj/MyApp.sln +2 -2
  848. package/template/cs-lib/proj/MyLib.csproj +14 -8
  849. package/template/cs-lib/proj/MyLib.sln +2 -2
  850. package/template/shared-app/proj/ExperimentalFeatures.props +2 -0
  851. package/template/shared-lib/proj/ExperimentalFeatures.props +2 -0
  852. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  853. package/Libraries/Components/MaskedView/MaskedViewIOS.windows.js +0 -9
  854. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  855. package/Libraries/Core/setUpSystrace.js +0 -21
  856. package/Libraries/Image/ImagePickerIOS.js +0 -103
  857. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  858. package/Libraries/Lists/VirtualizedList.windows.js +0 -9
  859. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  860. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  861. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  862. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  863. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  864. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  865. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  866. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  867. package/Libraries/Storage/AsyncStorage.js +0 -385
  868. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  869. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  870. package/Libraries/StyleSheet/processTransform.windows.js +0 -274
  871. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  872. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  873. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.cpp +0 -81
  874. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.h +0 -46
  875. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +0 -118
  876. package/Microsoft.ReactNative/Fabric/ImageComponentView.cpp +0 -138
  877. package/Microsoft.ReactNative/Fabric/ImageComponentView.h +0 -49
  878. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +0 -160
  879. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.h +0 -40
  880. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +0 -200
  881. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.h +0 -62
  882. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +0 -107
  883. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +0 -51
  884. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +0 -109
  885. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +0 -52
  886. package/Microsoft.ReactNative/Fabric/TextComponentView.cpp +0 -98
  887. package/Microsoft.ReactNative/Fabric/TextComponentView.h +0 -39
  888. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +0 -197
  889. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +0 -308
  890. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +0 -52
  891. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +0 -229
  892. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +0 -56
  893. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +0 -46
  894. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +0 -30
  895. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -145
  896. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -344
  897. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseTextProps.cpp +0 -313
  898. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -455
  899. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/PropsMacros.h +0 -91
  900. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/CompactValue.h +0 -206
  901. package/codegen/NativeAsyncLocalStorageSpec.g.h +0 -111
  902. package/codegen/NativeAsyncSQLiteDBStorageSpec.g.h +0 -111
  903. package/codegen/NativeImagePickerIOSSpec.g.h +0 -79
  904. package/codegen/NativeJSDevSupportSpec.g.h +0 -57
  905. package/rntypes/BatchedBridge.d.ts +0 -23
  906. package/rntypes/Devtools.d.ts +0 -20
  907. package/rntypes/LaunchScreen.d.ts +0 -9
  908. package/rntypes/globals.d.ts +0 -497
  909. package/rntypes/index.d.ts +0 -9754
  910. package/rntypes/legacy-properties.d.ts +0 -238
  911. package/typings-index.d.ts +0 -19
  912. package/typings-index.js +0 -44
  913. package/typings-index.js.map +0 -1
@@ -25,12 +25,41 @@
25
25
  #include <Modules/NativeUIManager.h>
26
26
  #include <Modules/PaperUIManagerModule.h>
27
27
  #include <Windows.Foundation.h>
28
+ #include <queue>
29
+
30
+ #ifdef USE_FABRIC
31
+ #include <Fabric/Composition/CompositionContextHelper.h>
32
+ #include <Fabric/Composition/CompositionUIService.h>
33
+ #endif
28
34
 
29
35
  namespace Microsoft::ReactNative {
36
+
37
+ NativeAnimatedNodeManager::NativeAnimatedNodeManager(winrt::Microsoft::ReactNative::ReactContext const &reactContext)
38
+ : m_context(reactContext) {}
39
+
40
+ const winrt::Microsoft::ReactNative::ReactContext &NativeAnimatedNodeManager::ReactContext() const noexcept {
41
+ return m_context;
42
+ }
43
+
44
+ comp::Compositor NativeAnimatedNodeManager::Compositor() const noexcept {
45
+ #ifdef USE_FABRIC
46
+ auto compositionContext =
47
+ winrt::Microsoft::ReactNative::Composition::implementation::CompositionUIService::GetCompositionContext(
48
+ m_context.Properties().Handle());
49
+ if (compositionContext) {
50
+ return winrt::Microsoft::ReactNative::Composition::implementation::CompositionContextHelper::InnerCompositor(
51
+ compositionContext);
52
+ }
53
+ #endif
54
+ // TODO: Islands - need to get the XamlView associated with this animation in order to
55
+ // use the compositor Microsoft::ReactNative::GetCompositor(xamlView)
56
+ return Microsoft::ReactNative::GetCompositor();
57
+ }
58
+
30
59
  void NativeAnimatedNodeManager::CreateAnimatedNode(
31
60
  int64_t tag,
32
- const folly::dynamic &config,
33
- const Mso::CntPtr<Mso::React::IReactContext> &context,
61
+ const ::React::JSValueObject &config,
62
+ const winrt::Microsoft::ReactNative::ReactContext &context,
34
63
  const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
35
64
  if (m_transformNodes.count(tag) > 0 || m_propsNodes.count(tag) > 0 || m_styleNodes.count(tag) > 0 ||
36
65
  m_valueNodes.count(tag) > 0) {
@@ -38,7 +67,7 @@ void NativeAnimatedNodeManager::CreateAnimatedNode(
38
67
  return;
39
68
  }
40
69
 
41
- switch (const auto type = AnimatedNodeTypeFromString(config.find("type").dereference().second.getString())) {
70
+ switch (const auto type = AnimatedNodeTypeFromString(config["type"].AsString())) {
42
71
  case AnimatedNodeType::Style: {
43
72
  m_styleNodes.emplace(tag, std::make_unique<StyleAnimatedNode>(tag, config, manager));
44
73
  break;
@@ -94,29 +123,50 @@ void NativeAnimatedNodeManager::CreateAnimatedNode(
94
123
  }
95
124
  }
96
125
 
97
- void NativeAnimatedNodeManager::GetValue(int64_t animatedNodeTag, const Callback &saveValueCallback) {
126
+ void NativeAnimatedNodeManager::GetValue(
127
+ int64_t animatedNodeTag,
128
+ std::function<void(double)> const &saveValueCallback) {
98
129
  if (const auto valueNode = m_valueNodes.at(animatedNodeTag).get()) {
99
- saveValueCallback(std::vector<folly::dynamic>{folly::dynamic(valueNode->Value())});
130
+ saveValueCallback(valueNode->Value());
100
131
  }
101
132
  }
102
133
 
103
134
  void NativeAnimatedNodeManager::ConnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag) {
104
- m_propsNodes.at(propsNodeTag)->ConnectToView(viewTag);
135
+ const auto &propsNode = m_propsNodes.at(propsNodeTag);
136
+ propsNode->ConnectToView(viewTag);
137
+ if (!propsNode->UseComposition()) {
138
+ m_updatedNodes.insert(propsNodeTag);
139
+ EnsureRendering();
140
+ }
105
141
  }
106
142
 
107
143
  void NativeAnimatedNodeManager::DisconnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag) {
108
144
  m_propsNodes.at(propsNodeTag)->DisconnectFromView(viewTag);
109
145
  }
110
146
 
147
+ void NativeAnimatedNodeManager::RestoreDefaultValues(int64_t tag) {
148
+ if (const auto propsNode = GetPropsAnimatedNode(tag)) {
149
+ propsNode->RestoreDefaultValues();
150
+ }
151
+ }
152
+
111
153
  void NativeAnimatedNodeManager::ConnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag) {
112
154
  if (const auto parentNode = GetAnimatedNode(parentNodeTag)) {
113
155
  parentNode->AddChild(childNodeTag);
156
+ if (!parentNode->UseComposition()) {
157
+ m_updatedNodes.insert(childNodeTag);
158
+ EnsureRendering();
159
+ }
114
160
  }
115
161
  }
116
162
 
117
163
  void NativeAnimatedNodeManager::DisconnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag) {
118
164
  if (const auto parentNode = GetAnimatedNode(parentNodeTag)) {
119
165
  parentNode->RemoveChild(childNodeTag);
166
+ if (!parentNode->UseComposition()) {
167
+ m_updatedNodes.insert(childNodeTag);
168
+ EnsureRendering();
169
+ }
120
170
  }
121
171
  }
122
172
 
@@ -125,33 +175,38 @@ void NativeAnimatedNodeManager::StopAnimation(int64_t animationId, bool isTracki
125
175
  if (const auto animation = m_activeAnimations.at(animationId)) {
126
176
  animation->StopAnimation(isTrackingAnimation);
127
177
 
128
- // Insert the animation into the pending completion set to ensure it is
129
- // not destroyed before the callback occurs. It's safe to assume the
130
- // scoped batch completion callback has not run, since if it had, the
131
- // animation would have been removed from the set of active animations.
132
- m_pendingCompletionAnimations.insert({animationId, animation});
133
-
134
- const auto nodeTag = animation->AnimatedValueTag();
135
- if (nodeTag != -1) {
136
- const auto deferredAnimation = m_deferredAnimationForValues.find(nodeTag);
137
- if (deferredAnimation != m_deferredAnimationForValues.end()) {
138
- // We can assume that the currently deferred animation is the one
139
- // being stopped given the constraint that only one animation can
140
- // be active for a given value node.
141
- assert(deferredAnimation->second == animationId);
142
- // If the animation is deferred, just remove the deferred animation
143
- // entry as two animations cannot animate the same value concurrently.
144
- m_deferredAnimationForValues.erase(nodeTag);
145
- } else {
146
- // Since only one animation can be active at a time, there shouldn't
147
- // be any stopped animations for the value node if the animation has
148
- // not been deferred.
149
- assert(!m_valuesWithStoppedAnimation.count(nodeTag));
150
- // In this case, add the value tag to the set of values with stopped
151
- // animations. This is used to optimize the lookup when determining
152
- // if an animation needs to be deferred (rather than iterating over
153
- // the map of pending completion animations).
154
- m_valuesWithStoppedAnimation.insert(nodeTag);
178
+ // We need to update the node manager state for composition animations
179
+ // to ensure new animations on the same animated value do not start until
180
+ // the completion callback has fired for the stopped animation.
181
+ if (animation->UseComposition()) {
182
+ // Insert the animation into the pending completion set to ensure it is
183
+ // not destroyed before the callback occurs. It's safe to assume the
184
+ // scoped batch completion callback has not run, since if it had, the
185
+ // animation would have been removed from the set of active animations.
186
+ m_pendingCompletionAnimations.insert({animationId, animation});
187
+
188
+ const auto nodeTag = animation->AnimatedValueTag();
189
+ if (nodeTag != -1) {
190
+ const auto deferredAnimation = m_deferredAnimationForValues.find(nodeTag);
191
+ if (deferredAnimation != m_deferredAnimationForValues.end()) {
192
+ // We can assume that the currently deferred animation is the one
193
+ // being stopped given the constraint that only one animation can
194
+ // be active for a given value node.
195
+ assert(deferredAnimation->second == animationId);
196
+ // If the animation is deferred, just remove the deferred animation
197
+ // entry as two animations cannot animate the same value concurrently.
198
+ m_deferredAnimationForValues.erase(nodeTag);
199
+ } else {
200
+ // Since only one animation can be active at a time, there shouldn't
201
+ // be any stopped animations for the value node if the animation has
202
+ // not been deferred.
203
+ assert(!m_valuesWithStoppedAnimation.count(nodeTag));
204
+ // In this case, add the value tag to the set of values with stopped
205
+ // animations. This is used to optimize the lookup when determining
206
+ // if an animation needs to be deferred (rather than iterating over
207
+ // the map of pending completion animations).
208
+ m_valuesWithStoppedAnimation.insert(nodeTag);
209
+ }
155
210
  }
156
211
  }
157
212
 
@@ -166,8 +221,9 @@ void NativeAnimatedNodeManager::RestartTrackingAnimatedNode(
166
221
  const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
167
222
  if (m_activeAnimations.count(animationId)) {
168
223
  if (const auto animation = m_activeAnimations.at(animationId).get()) {
224
+ assert(animation->UseComposition());
169
225
  auto const animatedValueTag = animation->AnimatedValueTag();
170
- auto const animationConfig = animation->AnimationConfig();
226
+ auto const &animationConfig = animation->AnimationConfig();
171
227
  auto const endCallback = animation->EndCallback();
172
228
  animation->StopAnimation(true);
173
229
  m_activeAnimations.erase(animationId);
@@ -187,40 +243,35 @@ void NativeAnimatedNodeManager::StartTrackingAnimatedNode(
187
243
  int64_t animationId,
188
244
  int64_t animatedNodeTag,
189
245
  int64_t animatedToValueTag,
190
- const folly::dynamic &animationConfig,
191
- const Callback &endCallback,
246
+ const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
247
+ const EndCallback &endCallback,
192
248
  const std::shared_ptr<NativeAnimatedNodeManager> &manager,
193
249
  bool track) {
194
- auto updatedAnimationConfig = animationConfig;
250
+ auto updatedAnimationConfig = animationConfig.Copy();
195
251
  for (auto &item : m_activeAnimations) {
196
252
  if (item.second->AnimatedValueTag() == animatedToValueTag) {
197
- updatedAnimationConfig.insert(static_cast<folly::StringPiece>(s_toValueIdName), item.second->ToValue());
198
-
199
- switch (AnimationTypeFromString(animationConfig.find("type").dereference().second.getString())) {
200
- case AnimationType::Frames:
253
+ updatedAnimationConfig[s_toValueIdName] = item.second->ToValue();
254
+
255
+ switch (AnimationTypeFromString(animationConfig["type"].AsString())) {
256
+ case AnimationType::Frames: {
257
+ winrt::Microsoft::ReactNative::JSValueArray frames;
258
+ for (auto const &frame : animationConfig["frames"].AsArray()) {
259
+ frames.push_back(0.0);
260
+ }
261
+ for (auto const &frame : item.second->Frames()) {
262
+ frames.push_back(frame);
263
+ }
201
264
  updatedAnimationConfig.insert(
202
- static_cast<folly::StringPiece>(s_framesName), [animationConfig, activeFrames = item.second->Frames()]() {
203
- auto frames = folly::dynamic::array();
204
- for (auto const &frame : animationConfig.find("frames").dereference().second) {
205
- (void)frame;
206
- frames.push_back(0.0);
207
- }
208
- for (auto const &frame : activeFrames) {
209
- frames.push_back(frame);
210
- }
211
- return frames;
212
- }());
213
- break;
214
- case AnimationType::Spring:
265
+ std::make_pair(s_framesName, winrt::Microsoft::ReactNative::JSValue(std::move(frames))));
266
+ } break;
267
+ case AnimationType::Spring: {
268
+ winrt::Microsoft::ReactNative::JSValueArray frames;
269
+ for (auto const &frame : item.second->Frames()) {
270
+ frames.push_back(frame);
271
+ }
215
272
  updatedAnimationConfig.insert(
216
- static_cast<folly::StringPiece>(s_dynamicToValuesName), [activeFrames = item.second->Frames()]() {
217
- auto dynamicToValues = folly::dynamic::array();
218
- for (auto const &frame : activeFrames) {
219
- dynamicToValues.push_back(frame);
220
- }
221
- return dynamicToValues;
222
- }());
223
- break;
273
+ std::make_pair(s_dynamicToValuesName, winrt::Microsoft::ReactNative::JSValue(std::move(frames))));
274
+ } break;
224
275
  // Animated.Decay does not have a to value,
225
276
  // so they cannot track other nodes. So we'll never
226
277
  // have a decay tracking node.
@@ -242,10 +293,10 @@ void NativeAnimatedNodeManager::StartTrackingAnimatedNode(
242
293
  void NativeAnimatedNodeManager::StartAnimatingNode(
243
294
  int64_t animationId,
244
295
  int64_t animatedNodeTag,
245
- const folly::dynamic &animationConfig,
246
- const Callback &endCallback,
296
+ const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
297
+ const EndCallback &endCallback,
247
298
  const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
248
- switch (AnimationTypeFromString(animationConfig.find("type").dereference().second.getString())) {
299
+ switch (AnimationTypeFromString(animationConfig["type"].AsString())) {
249
300
  case AnimationType::Decay:
250
301
  m_activeAnimations.emplace(
251
302
  animationId,
@@ -257,14 +308,15 @@ void NativeAnimatedNodeManager::StartAnimatingNode(
257
308
  std::make_shared<FrameAnimationDriver>(animationId, animatedNodeTag, endCallback, animationConfig, manager));
258
309
  break;
259
310
  case AnimationType::Spring: {
260
- folly::dynamic dynamicValues = [animationConfig]() {
261
- const auto dynamicValues = animationConfig.count(s_dynamicToValuesName);
262
- return dynamicValues ? animationConfig.at(s_dynamicToValuesName) : folly::dynamic::array();
263
- }();
264
311
  m_activeAnimations.emplace(
265
312
  animationId,
266
313
  std::make_shared<SpringAnimationDriver>(
267
- animationId, animatedNodeTag, endCallback, animationConfig, manager, dynamicValues));
314
+ animationId,
315
+ animatedNodeTag,
316
+ endCallback,
317
+ animationConfig,
318
+ manager,
319
+ animationConfig[s_dynamicToValuesName].AsArray()));
268
320
  break;
269
321
  }
270
322
  default:
@@ -275,14 +327,19 @@ void NativeAnimatedNodeManager::StartAnimatingNode(
275
327
  // If the animated value node has any stopped animations, defer start until
276
328
  // all stopped animations fire completion callback and have latest values.
277
329
  if (m_activeAnimations.count(animationId)) {
278
- if (m_valuesWithStoppedAnimation.count(animatedNodeTag)) {
279
- // Since only one animation can be active per value at a time, there will
280
- // not be any other deferred animations for the value node.
281
- assert(!m_deferredAnimationForValues.count(animatedNodeTag));
282
- // Add the animation to the deferred animation map for the value tag.
283
- m_deferredAnimationForValues.insert({animatedNodeTag, animationId});
330
+ const auto &animation = m_activeAnimations.at(animationId);
331
+ if (animation->UseComposition()) {
332
+ if (m_valuesWithStoppedAnimation.count(animatedNodeTag)) {
333
+ // Since only one animation can be active per value at a time, there will
334
+ // not be any other deferred animations for the value node.
335
+ assert(!m_deferredAnimationForValues.count(animatedNodeTag));
336
+ // Add the animation to the deferred animation map for the value tag.
337
+ m_deferredAnimationForValues.insert({animatedNodeTag, animationId});
338
+ } else {
339
+ StartAnimationAndTrackingNodes(animationId, animatedNodeTag, manager);
340
+ }
284
341
  } else {
285
- StartAnimationAndTrackingNodes(animationId, animatedNodeTag, manager);
342
+ EnsureRendering();
286
343
  }
287
344
  }
288
345
  }
@@ -292,17 +349,27 @@ void NativeAnimatedNodeManager::DropAnimatedNode(int64_t tag) {
292
349
  m_propsNodes.erase(tag);
293
350
  m_styleNodes.erase(tag);
294
351
  m_transformNodes.erase(tag);
352
+ m_updatedNodes.erase(tag);
295
353
  }
296
354
 
297
355
  void NativeAnimatedNodeManager::SetAnimatedNodeValue(int64_t tag, double value) {
298
356
  if (const auto valueNode = m_valueNodes.at(tag).get()) {
299
357
  valueNode->RawValue(static_cast<float>(value));
358
+ if (!valueNode->UseComposition()) {
359
+ StopAnimationsForNode(tag);
360
+ m_updatedNodes.insert(tag);
361
+ EnsureRendering();
362
+ }
300
363
  }
301
364
  }
302
365
 
303
366
  void NativeAnimatedNodeManager::SetAnimatedNodeOffset(int64_t tag, double offset) {
304
367
  if (const auto valueNode = m_valueNodes.at(tag).get()) {
305
368
  valueNode->Offset(static_cast<float>(offset));
369
+ if (!valueNode->UseComposition()) {
370
+ m_updatedNodes.insert(tag);
371
+ EnsureRendering();
372
+ }
306
373
  }
307
374
  }
308
375
 
@@ -318,13 +385,25 @@ void NativeAnimatedNodeManager::ExtractAnimatedNodeOffset(int64_t tag) {
318
385
  }
319
386
  }
320
387
 
388
+ void NativeAnimatedNodeManager::StartListeningToAnimatedNodeValue(int64_t tag, const ValueListenerCallback &callback) {
389
+ if (const auto valueNode = m_valueNodes.at(tag).get()) {
390
+ valueNode->ValueListener(callback);
391
+ }
392
+ }
393
+
394
+ void NativeAnimatedNodeManager::StopListeningToAnimatedNodeValue(int64_t tag) {
395
+ if (const auto valueNode = m_valueNodes.at(tag).get()) {
396
+ valueNode->ValueListener(nullptr);
397
+ }
398
+ }
399
+
321
400
  void NativeAnimatedNodeManager::AddAnimatedEventToView(
322
401
  int64_t viewTag,
323
402
  const std::string &eventName,
324
- const folly::dynamic &eventMapping,
403
+ const ReactNativeSpecs::AnimatedModuleSpec_EventMapping &eventMapping,
325
404
  const std::shared_ptr<NativeAnimatedNodeManager> &manager) {
326
- const auto valueNodeTag = static_cast<int64_t>(eventMapping.find("animatedValueTag").dereference().second.asDouble());
327
- const auto pathList = eventMapping.find("nativeEventPath").dereference().second;
405
+ const auto valueNodeTag = eventMapping.animatedValueTag ? static_cast<int64_t>(*eventMapping.animatedValueTag) : 0;
406
+ const auto pathList = eventMapping.nativeEventPath;
328
407
 
329
408
  const auto key = std::make_tuple(viewTag, eventName);
330
409
  if (m_eventDrivers.count(key)) {
@@ -375,10 +454,13 @@ void NativeAnimatedNodeManager::ProcessDelayedPropsNodes() {
375
454
 
376
455
  void NativeAnimatedNodeManager::AddDelayedPropsNode(
377
456
  int64_t propsNodeTag,
378
- const Mso::CntPtr<Mso::React::IReactContext> &context) {
457
+ const winrt::Microsoft::ReactNative::ReactContext &context) {
458
+ #if DEBUG
459
+ assert(m_propsNodes.at(propsNodeTag)->UseComposition());
460
+ #endif
379
461
  m_delayedPropsNodes.push_back(propsNodeTag);
380
462
  if (m_delayedPropsNodes.size() <= 1) {
381
- if (const auto uiManger = Microsoft::ReactNative::GetNativeUIManager(*context).lock()) {
463
+ if (const auto uiManger = Microsoft::ReactNative::GetNativeUIManager(context).lock()) {
382
464
  uiManger->AddBatchCompletedCallback([this]() { ProcessDelayedPropsNodes(); });
383
465
  }
384
466
  }
@@ -480,4 +562,176 @@ void NativeAnimatedNodeManager::StartAnimationAndTrackingNodes(
480
562
  }
481
563
  }
482
564
  }
565
+
566
+ void NativeAnimatedNodeManager::RunUpdates(winrt::TimeSpan renderingTime) {
567
+ auto hasFinishedAnimations = false;
568
+ std::unordered_set<int64_t> updatingNodes{};
569
+ updatingNodes = std::move(m_updatedNodes);
570
+
571
+ // Increment animation drivers
572
+ for (auto id : m_activeAnimationIds) {
573
+ auto &animation = m_activeAnimations.at(id);
574
+ animation->RunAnimationStep(renderingTime);
575
+ updatingNodes.insert(animation->AnimatedValueTag());
576
+ if (animation->IsComplete()) {
577
+ hasFinishedAnimations = true;
578
+ }
579
+ }
580
+
581
+ UpdateNodes(updatingNodes);
582
+
583
+ if (hasFinishedAnimations) {
584
+ for (auto id : m_activeAnimationIds) {
585
+ auto &animation = m_activeAnimations.at(id);
586
+ if (animation->IsComplete()) {
587
+ animation->DoCallback(true);
588
+ m_activeAnimations.erase(id);
589
+ }
590
+ }
591
+ }
592
+ }
593
+
594
+ void NativeAnimatedNodeManager::EnsureRendering() {
595
+ m_renderingRevoker =
596
+ xaml::Media::CompositionTarget::Rendering(winrt::auto_revoke, {this, &NativeAnimatedNodeManager::OnRendering});
597
+ }
598
+
599
+ void NativeAnimatedNodeManager::OnRendering(winrt::IInspectable const &sender, winrt::IInspectable const &args) {
600
+ // The `UpdateActiveAnimationIds` method only tracks animations where
601
+ // composition is not used, so if only UI.Composition animations are active,
602
+ // this rendering callback will not run.
603
+ UpdateActiveAnimationIds();
604
+ if (m_activeAnimationIds.size() > 0 || m_updatedNodes.size() > 0) {
605
+ if (const auto renderingArgs = args.try_as<xaml::Media::RenderingEventArgs>()) {
606
+ RunUpdates(renderingArgs.RenderingTime());
607
+ }
608
+ } else {
609
+ m_renderingRevoker.revoke();
610
+ }
611
+ }
612
+
613
+ void NativeAnimatedNodeManager::StopAnimationsForNode(int64_t tag) {
614
+ UpdateActiveAnimationIds();
615
+ for (auto id : m_activeAnimationIds) {
616
+ auto &animation = m_activeAnimations.at(id);
617
+ if (tag == animation->AnimatedValueTag()) {
618
+ animation->DoCallback(false);
619
+ m_activeAnimations.erase(id);
620
+ }
621
+ }
622
+ }
623
+
624
+ void NativeAnimatedNodeManager::UpdateActiveAnimationIds() {
625
+ m_activeAnimationIds.clear();
626
+ for (const auto &pair : m_activeAnimations) {
627
+ if (!pair.second->UseComposition()) {
628
+ m_activeAnimationIds.push_back(pair.first);
629
+ }
630
+ }
631
+ }
632
+
633
+ void NativeAnimatedNodeManager::UpdateNodes(std::unordered_set<int64_t> &nodes) {
634
+ auto activeNodesCount = 0;
635
+ auto updatedNodesCount = 0;
636
+
637
+ // BFS state
638
+ std::unordered_map<int64_t, int64_t> bfsColors;
639
+ std::unordered_map<int64_t, int64_t> incomingNodeCounts;
640
+
641
+ // STEP 1.
642
+ // BFS over graph of nodes starting from IDs in `nodes` argument and IDs that are attached to
643
+ // active animations (from `m_activeAnimations)`. Update `incomingNodeCounts` map for each node
644
+ // during that BFS. Store number of visited nodes in `activeNodesCount`. We "execute" active
645
+ // animations as a part of this step.
646
+
647
+ m_animatedGraphBFSColor++; /* use new color */
648
+ if (m_animatedGraphBFSColor == 0) {
649
+ // value "0" is used as an initial color for a new node, using it in BFS may cause some nodes to be skipped.
650
+ m_animatedGraphBFSColor++;
651
+ }
652
+
653
+ std::queue<int64_t> nodesQueue{};
654
+ for (auto id : nodes) {
655
+ if (!bfsColors.count(id) || bfsColors.at(id) != m_animatedGraphBFSColor) {
656
+ bfsColors[id] = m_animatedGraphBFSColor;
657
+ activeNodesCount++;
658
+ nodesQueue.push(id);
659
+ }
660
+ }
661
+
662
+ while (nodesQueue.size() > 0) {
663
+ auto id = nodesQueue.front();
664
+ nodesQueue.pop();
665
+ if (auto node = GetAnimatedNode(id)) {
666
+ for (auto &childId : node->Children()) {
667
+ if (!incomingNodeCounts.count(childId)) {
668
+ incomingNodeCounts[childId] = 1;
669
+ } else {
670
+ incomingNodeCounts.at(childId)++;
671
+ }
672
+
673
+ if (!bfsColors.count(childId) || bfsColors.at(childId) != m_animatedGraphBFSColor) {
674
+ bfsColors[childId] = m_animatedGraphBFSColor;
675
+ activeNodesCount++;
676
+ nodesQueue.push(childId);
677
+ }
678
+ }
679
+ }
680
+ }
681
+
682
+ // STEP 2
683
+ // BFS over the graph of active nodes in topological order -> visit node only when all its
684
+ // "predecessors" in the graph have already been visited. It is important to visit nodes in that
685
+ // order as they may often use values of their predecessors in order to calculate "next state"
686
+ // of their own. We start by determining the starting set of nodes by looking for nodes with
687
+ // `incomingNodeCounts[id] = 0` (those can only be the ones that we start BFS in the previous
688
+ // step). We store number of visited nodes in this step in `updatedNodesCount`
689
+
690
+ m_animatedGraphBFSColor++;
691
+ if (m_animatedGraphBFSColor == 0) {
692
+ // see reasoning for this check a few lines above
693
+ m_animatedGraphBFSColor++;
694
+ }
695
+
696
+ // find nodes with zero "incoming nodes", those can be either nodes from `m_updatedNodes` or
697
+ // ones connected to active animations
698
+ for (auto id : nodes) {
699
+ if (!incomingNodeCounts.count(id) ||
700
+ incomingNodeCounts.at(id) == 0 && bfsColors.at(id) != m_animatedGraphBFSColor) {
701
+ bfsColors[id] = m_animatedGraphBFSColor;
702
+ updatedNodesCount++;
703
+ nodesQueue.push(id);
704
+ }
705
+ }
706
+
707
+ // Run main "update" loop
708
+ while (nodesQueue.size() > 0) {
709
+ auto id = nodesQueue.front();
710
+ nodesQueue.pop();
711
+ if (auto node = GetAnimatedNode(id)) {
712
+ node->Update();
713
+ if (auto propsNode = GetPropsAnimatedNode(id)) {
714
+ propsNode->UpdateView();
715
+ } else if (auto valueNode = GetValueAnimatedNode(id)) {
716
+ valueNode->OnValueUpdate();
717
+ }
718
+
719
+ for (auto &childId : node->Children()) {
720
+ auto &incomingCount = incomingNodeCounts.at(childId);
721
+ auto &bfsColor = bfsColors.at(childId);
722
+ incomingCount--;
723
+ if (bfsColor != m_animatedGraphBFSColor && incomingCount == 0) {
724
+ bfsColor = m_animatedGraphBFSColor;
725
+ updatedNodesCount++;
726
+ nodesQueue.push(childId);
727
+ }
728
+ }
729
+ }
730
+ }
731
+
732
+ // Verify that we've visited *all* active nodes. Throw otherwise as this would mean there is a
733
+ // cycle in animated node graph. We also take advantage of the fact that all active nodes are
734
+ // visited in the step above so that `incomingNodeCounts` for all node IDs are set to zero
735
+ assert(activeNodesCount == updatedNodesCount);
736
+ }
483
737
  } // namespace Microsoft::ReactNative
@@ -5,6 +5,7 @@
5
5
  // Licensed under the MIT License.
6
6
 
7
7
  #include <IReactInstance.h>
8
+ #include <UI.Xaml.Media.h>
8
9
  #include <cxxreact/CxxModule.h>
9
10
  #include <folly/dynamic.h>
10
11
  #include "AnimatedNode.h"
@@ -16,6 +17,8 @@
16
17
  #include "TransformAnimatedNode.h"
17
18
  #include "ValueAnimatedNode.h"
18
19
 
20
+ #include "codegen/NativeAnimatedModuleSpec.g.h"
21
+
19
22
  namespace Microsoft::ReactNative {
20
23
  /// <summary>
21
24
  /// This is the main class that coordinates how native animated JS
@@ -27,7 +30,8 @@ namespace Microsoft::ReactNative {
27
30
  ///
28
31
  /// </summary>
29
32
 
30
- typedef std::function<void(std::vector<folly::dynamic>)> Callback;
33
+ typedef std::function<void(bool)> EndCallback;
34
+ typedef std::function<void(double)> ValueListenerCallback;
31
35
 
32
36
  class AnimatedNode;
33
37
  class StyleAnimatedNode;
@@ -39,14 +43,18 @@ class AnimationDriver;
39
43
  class EventAnimationDriver;
40
44
  class NativeAnimatedNodeManager {
41
45
  public:
46
+ NativeAnimatedNodeManager(winrt::Microsoft::ReactNative::ReactContext const &reactContext);
47
+ const winrt::Microsoft::ReactNative::ReactContext &ReactContext() const noexcept;
48
+ comp::Compositor Compositor() const noexcept;
42
49
  void CreateAnimatedNode(
43
50
  int64_t tag,
44
- const folly::dynamic &config,
45
- const Mso::CntPtr<Mso::React::IReactContext> &context,
51
+ const winrt::Microsoft::ReactNative::JSValueObject &config,
52
+ const winrt::Microsoft::ReactNative::ReactContext &context,
46
53
  const std::shared_ptr<NativeAnimatedNodeManager> &manager);
47
- void GetValue(int64_t animatedNodeTag, const Callback &endCallback);
54
+ void GetValue(int64_t animatedNodeTag, std::function<void(double)> const &endCallback);
48
55
  void ConnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag);
49
56
  void DisconnectAnimatedNodeToView(int64_t propsNodeTag, int64_t viewTag);
57
+ void RestoreDefaultValues(int64_t tag);
50
58
  void ConnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag);
51
59
  void DisconnectAnimatedNode(int64_t parentNodeTag, int64_t childNodeTag);
52
60
  void StopAnimation(int64_t animationId, bool isTrackingAnimation = false);
@@ -58,29 +66,31 @@ class NativeAnimatedNodeManager {
58
66
  int64_t animationId,
59
67
  int64_t animatedNodeTag,
60
68
  int64_t animatedToValueTag,
61
- const folly::dynamic &animationConfig,
62
- const Callback &endCallback,
69
+ const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
70
+ const EndCallback &endCallback,
63
71
  const std::shared_ptr<NativeAnimatedNodeManager> &manager,
64
72
  bool track = true);
65
73
  void StartAnimatingNode(
66
74
  int64_t animationId,
67
75
  int64_t animatedNodeTag,
68
- const folly::dynamic &animationConfig,
69
- const Callback &endCallback,
76
+ const winrt::Microsoft::ReactNative::JSValueObject &animationConfig,
77
+ const EndCallback &endCallback,
70
78
  const std::shared_ptr<NativeAnimatedNodeManager> &manager);
71
79
  void DropAnimatedNode(int64_t tag);
72
80
  void SetAnimatedNodeValue(int64_t tag, double value);
73
81
  void SetAnimatedNodeOffset(int64_t tag, double offset);
74
82
  void FlattenAnimatedNodeOffset(int64_t tag);
75
83
  void ExtractAnimatedNodeOffset(int64_t tag);
84
+ void StartListeningToAnimatedNodeValue(int64_t tag, const ValueListenerCallback &callback);
85
+ void StopListeningToAnimatedNodeValue(int64_t tag);
76
86
  void AddAnimatedEventToView(
77
87
  int64_t viewTag,
78
88
  const std::string &eventName,
79
- const folly::dynamic &eventMapping,
89
+ const ReactNativeSpecs::AnimatedModuleSpec_EventMapping &eventMapping,
80
90
  const std::shared_ptr<NativeAnimatedNodeManager> &manager);
81
91
  void RemoveAnimatedEventFromView(int64_t viewTag, const std::string &eventName, int64_t animatedValueTag);
82
92
  void ProcessDelayedPropsNodes();
83
- void AddDelayedPropsNode(int64_t propsNodeTag, const Mso::CntPtr<Mso::React::IReactContext> &context);
93
+ void AddDelayedPropsNode(int64_t propsNodeTag, const winrt::Microsoft::ReactNative::ReactContext &context);
84
94
 
85
95
  AnimatedNode *GetAnimatedNode(int64_t tag);
86
96
  ValueAnimatedNode *GetValueAnimatedNode(int64_t tag);
@@ -100,6 +110,13 @@ class NativeAnimatedNodeManager {
100
110
  const std::shared_ptr<NativeAnimatedNodeManager> &manager);
101
111
 
102
112
  private:
113
+ void EnsureRendering();
114
+ void OnRendering(winrt::IInspectable const &sender, winrt::IInspectable const &args);
115
+ void RunUpdates(winrt::TimeSpan renderingTime);
116
+ void StopAnimationsForNode(int64_t tag);
117
+ void UpdateActiveAnimationIds();
118
+ void UpdateNodes(std::unordered_set<int64_t> &nodes);
119
+
103
120
  std::unordered_map<int64_t, std::unique_ptr<ValueAnimatedNode>> m_valueNodes{};
104
121
  std::unordered_map<int64_t, std::unique_ptr<PropsAnimatedNode>> m_propsNodes{};
105
122
  std::unordered_map<int64_t, std::unique_ptr<StyleAnimatedNode>> m_styleNodes{};
@@ -113,6 +130,12 @@ class NativeAnimatedNodeManager {
113
130
  std::unordered_map<int64_t, int64_t> m_deferredAnimationForValues{};
114
131
  std::vector<std::tuple<int64_t, int64_t>> m_trackingAndLeadNodeTags{};
115
132
  std::vector<int64_t> m_delayedPropsNodes{};
133
+ winrt::Microsoft::ReactNative::ReactContext m_context;
134
+
135
+ std::unordered_set<int64_t> m_updatedNodes{};
136
+ std::vector<int64_t> m_activeAnimationIds{};
137
+ int64_t m_animatedGraphBFSColor{};
138
+ xaml::Media::CompositionTarget::Rendering_revoker m_renderingRevoker;
116
139
 
117
140
  static constexpr std::string_view s_toValueIdName{"toValue"};
118
141
  static constexpr std::string_view s_framesName{"frames"};