react-native-windows 0.74.12 → 0.75.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 (335) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Utilities.cpp +2 -2
  3. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  4. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  5. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  6. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  7. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  8. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  9. package/Libraries/Animated/useAnimatedProps.js +56 -28
  10. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  11. package/Libraries/Components/Button.js +10 -5
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  13. package/Libraries/Components/Flyout/Flyout.js +10 -10
  14. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  15. package/Libraries/Components/Pressable/Pressable.js +13 -6
  16. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  17. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  18. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  19. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  20. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  21. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  22. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  23. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  24. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  25. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  26. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  27. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  28. package/Libraries/Components/TextInput/TextInput.js +14 -70
  29. package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
  30. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  31. package/Libraries/Components/Touchable/Touchable.js +2 -2
  32. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  33. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  34. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  35. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  36. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  37. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  39. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  40. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  41. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  42. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  43. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  44. package/Libraries/Components/View/View.js +0 -11
  45. package/Libraries/Components/View/View.windows.js +0 -11
  46. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  47. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  48. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  49. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  50. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  51. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  52. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  53. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  54. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  55. package/Libraries/Core/ErrorHandlers.js +116 -0
  56. package/Libraries/Core/ExceptionsManager.js +2 -2
  57. package/Libraries/Core/ReactNativeVersion.js +3 -3
  58. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  59. package/Libraries/Core/setUpPerformance.js +6 -4
  60. package/Libraries/Core/setUpReactDevTools.js +70 -10
  61. package/Libraries/Core/setUpTimers.js +50 -31
  62. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  63. package/Libraries/Image/Image.android.js +23 -13
  64. package/Libraries/Image/Image.d.ts +14 -15
  65. package/Libraries/Image/Image.ios.js +21 -11
  66. package/Libraries/Image/Image.windows.js +21 -11
  67. package/Libraries/Image/ImageProps.js +16 -5
  68. package/Libraries/Image/ImageTypes.flow.js +7 -2
  69. package/Libraries/Image/ImageUtils.js +1 -0
  70. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  71. package/Libraries/Inspector/ElementBox.js +6 -3
  72. package/Libraries/Inspector/ElementProperties.js +1 -1
  73. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  74. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  75. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  76. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  77. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  78. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  79. package/Libraries/LogBox/LogBox.js +29 -12
  80. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  81. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  82. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  83. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  84. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  85. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  86. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  87. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  88. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  89. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  90. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  91. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  92. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  93. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  94. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  95. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  96. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  97. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  98. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  99. package/Libraries/Network/XMLHttpRequest.js +5 -1
  100. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  101. package/Libraries/Pressability/Pressability.js +3 -51
  102. package/Libraries/Pressability/Pressability.windows.js +3 -51
  103. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  104. package/Libraries/ReactNative/AppRegistry.js +2 -4
  105. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  106. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  107. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  108. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  109. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  110. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  111. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  112. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  113. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  114. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  115. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  116. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  117. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  118. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  119. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  120. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  121. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  122. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  123. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  124. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  125. package/Libraries/Share/Share.d.ts +16 -10
  126. package/Libraries/Share/Share.js +14 -15
  127. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  128. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  129. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  130. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  131. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  132. package/Libraries/StyleSheet/processFilter.js +132 -0
  133. package/Libraries/StyleSheet/processTransform.js +18 -3
  134. package/Libraries/Text/Text.js +151 -128
  135. package/Libraries/Text/Text.windows.js +144 -128
  136. package/Libraries/Text/TextNativeComponent.js +5 -4
  137. package/Libraries/Text/TextProps.js +6 -6
  138. package/Libraries/Text/TextProps.windows.js +6 -6
  139. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  140. package/Libraries/Types/CodegenTypes.js +3 -0
  141. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  142. package/Libraries/Utilities/Dimensions.js +1 -0
  143. package/Libraries/Utilities/HMRClient.js +36 -8
  144. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  145. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  146. package/Libraries/Utilities/Platform.android.js +4 -4
  147. package/Libraries/Utilities/RCTLog.js +1 -0
  148. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  149. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  150. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  151. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  152. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  153. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  154. package/Microsoft.ReactNative/Composition.Input.idl +3 -3
  155. package/Microsoft.ReactNative/CompositionSwitcher.idl +0 -1
  156. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  157. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  158. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +0 -3
  159. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +2 -2
  160. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +4 -4
  161. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -10
  162. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +27 -16
  163. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +1 -1
  164. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +48 -85
  165. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +0 -4
  166. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +24 -24
  167. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +6 -8
  168. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
  169. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
  170. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
  171. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -3
  172. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +6 -43
  173. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +23 -34
  174. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  175. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  176. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  177. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +17 -48
  178. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -7
  179. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -16
  180. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  184. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  185. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  186. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  187. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  188. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  189. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  190. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  191. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +13 -20
  192. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  193. package/Microsoft.ReactNative/Timer.idl +1 -3
  194. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  195. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  196. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  197. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  198. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  199. package/Microsoft.ReactNative/packages.lock.json +41 -78
  200. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  201. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  202. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  203. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  204. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  205. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  206. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  207. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  208. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  209. package/README.md +21 -21
  210. package/ReactCommon/ReactCommon.vcxproj +2 -0
  211. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  224. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  225. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  226. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  227. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  228. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +4 -0
  229. package/Scripts/rnw-dependencies.ps1 +36 -23
  230. package/Shared/HermesRuntimeHolder.cpp +19 -1
  231. package/Shared/HermesRuntimeHolder.h +8 -1
  232. package/Shared/HermesSamplingProfiler.cpp +1 -2
  233. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  234. package/Shared/OInstance.cpp +1 -2
  235. package/Shared/Shared.vcxitems +21 -15
  236. package/Shared/Shared.vcxitems.filters +8 -3
  237. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  238. package/Shared/Threading/BatchingQueueThread.h +2 -2
  239. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  240. package/codegen/NativeAppStateSpec.g.h +8 -8
  241. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  242. package/codegen/NativeDOMSpec.g.h +136 -0
  243. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  244. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  245. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  246. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  247. package/codegen/NativePerformanceSpec.g.h +35 -7
  248. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  249. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  250. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  251. package/codegen/NativeUIManagerSpec.g.h +5 -17
  252. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  253. package/codegen/react/components/rnwcore/Props.h +16 -12
  254. package/codegen/react/components/rnwcore/States.h +0 -26
  255. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  256. package/codegen/rnwcoreJSI.h +1374 -2867
  257. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  258. package/fmt/fmt.vcxproj +1 -1
  259. package/jest/mockComponent.js +7 -0
  260. package/jest/renderer.js +25 -14
  261. package/jest/setup.js +19 -13
  262. package/package.json +29 -27
  263. package/rn-get-polyfills.js +1 -0
  264. package/src/private/core/composeStyles.js +27 -0
  265. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  266. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  267. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  268. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  269. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  270. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  271. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  272. package/src/private/specs/modules/NativeUIManager.js +0 -7
  273. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  274. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  275. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  276. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  277. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  278. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  279. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  280. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  281. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  282. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  283. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  284. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  285. package/src/private/webapis/performance/EventCounts.js +1 -1
  286. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  287. package/src/private/webapis/performance/Performance.js +10 -56
  288. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  289. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  290. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  291. package/src/private/webapis/performance/UserTiming.js +63 -0
  292. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  293. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  294. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  295. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  296. package/stubs/glog/logging.h +1 -0
  297. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  298. package/template/cs-lib/proj/MyLib.csproj +1 -1
  299. package/template/metro.config.js +13 -2
  300. package/templates/cpp-app/template.config.js +1 -1
  301. package/templates/cpp-lib/example/metro.config.js +2 -2
  302. package/templates/cpp-lib/template.config.js +1 -1
  303. package/templates/old/generateWrapper.js +4 -1
  304. package/types/modules/globals.d.ts +4 -0
  305. package/Libraries/Lists/FlatList.windows.js +0 -717
  306. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  307. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  308. package/Libraries/Utilities/LoadingView.js +0 -16
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  312. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  313. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2377
  314. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
  315. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
  316. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  317. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
  318. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
  319. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
  320. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  321. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  322. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  323. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  324. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  325. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  326. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  327. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  328. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  329. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  330. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  331. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  332. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  333. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  334. package/template/metro.devMode.config.js +0 -56
  335. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -0,0 +1,468 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ import type {
12
+ InternalInstanceHandle as InstanceHandle,
13
+ Node as ShadowNode,
14
+ } from '../../../../../../Libraries/Renderer/shims/ReactNativeTypes';
15
+ import type {TurboModule} from '../../../../../../Libraries/TurboModule/RCTExport';
16
+
17
+ import * as TurboModuleRegistry from '../../../../../../Libraries/TurboModule/TurboModuleRegistry';
18
+ import nullthrows from 'nullthrows';
19
+
20
+ export type MeasureInWindowOnSuccessCallback = (
21
+ x: number,
22
+ y: number,
23
+ width: number,
24
+ height: number,
25
+ ) => void;
26
+
27
+ export type MeasureOnSuccessCallback = (
28
+ x: number,
29
+ y: number,
30
+ width: number,
31
+ height: number,
32
+ pageX: number,
33
+ pageY: number,
34
+ ) => void;
35
+
36
+ export type MeasureLayoutOnSuccessCallback = (
37
+ left: number,
38
+ top: number,
39
+ width: number,
40
+ height: number,
41
+ ) => void;
42
+
43
+ export interface Spec extends TurboModule {
44
+ +getParentNode: (
45
+ shadowNode: mixed /* ShadowNode */,
46
+ ) => mixed /* ?InstanceHandle */;
47
+
48
+ +getChildNodes: (
49
+ shadowNode: mixed /* ShadowNode */,
50
+ ) => $ReadOnlyArray<mixed> /* $ReadOnlyArray<InstanceHandle> */;
51
+
52
+ +isConnected: (shadowNode: mixed /* ShadowNode */) => boolean;
53
+
54
+ +compareDocumentPosition: (
55
+ shadowNode: mixed /* ShadowNode */,
56
+ otherShadowNode: mixed /* ShadowNode */,
57
+ ) => number;
58
+
59
+ +getTextContent: (shadowNode: mixed /* ShadowNode */) => string;
60
+
61
+ +getBoundingClientRect: (
62
+ shadowNode: mixed /* ShadowNode */,
63
+ includeTransform: boolean,
64
+ ) => $ReadOnlyArray<number> /* [x: number, y: number, width: number, height: number] */;
65
+
66
+ +getOffset: (
67
+ shadowNode: mixed /* ShadowNode */,
68
+ ) => $ReadOnlyArray<mixed> /* [offsetParent: ?InstanceHandle, top: number, left: number] */;
69
+
70
+ +getScrollPosition: (
71
+ shadowNode: mixed /* ShadowNode */,
72
+ ) => $ReadOnlyArray<number> /* [scrollLeft: number, scrollTop: number] */;
73
+
74
+ +getScrollSize: (
75
+ shadowNode: mixed /* ShadowNode */,
76
+ ) => $ReadOnlyArray<number> /* [scrollWidth: number, scrollHeight: number] */;
77
+
78
+ +getInnerSize: (
79
+ shadowNode: mixed /* ShadowNode */,
80
+ ) => $ReadOnlyArray<number> /* [width: number, height: number] */;
81
+
82
+ +getBorderWidth: (
83
+ shadowNode: mixed /* ShadowNode */,
84
+ ) => $ReadOnlyArray<number> /* [topWidth: number, rightWidth: number, bottomWidth: number, leftWidth: number] */;
85
+
86
+ +getTagName: (shadowNode: mixed /* ShadowNode */) => string;
87
+
88
+ +hasPointerCapture: (
89
+ shadowNode: mixed /* ShadowNode */,
90
+ pointerId: number,
91
+ ) => boolean;
92
+
93
+ +setPointerCapture: (
94
+ shadowNode: mixed /* ShadowNode */,
95
+ pointerId: number,
96
+ ) => void;
97
+
98
+ +releasePointerCapture: (
99
+ shadowNode: mixed /* ShadowNode */,
100
+ pointerId: number,
101
+ ) => void;
102
+
103
+ /**
104
+ * Legacy layout APIs
105
+ */
106
+
107
+ +measure: (shadowNode: mixed, callback: MeasureOnSuccessCallback) => void;
108
+
109
+ +measureInWindow: (
110
+ shadowNode: mixed,
111
+ callback: MeasureInWindowOnSuccessCallback,
112
+ ) => void;
113
+
114
+ +measureLayout: (
115
+ shadowNode: mixed,
116
+ relativeNode: mixed,
117
+ onFail: () => void,
118
+ onSuccess: MeasureLayoutOnSuccessCallback,
119
+ ) => void;
120
+ }
121
+
122
+ const RawNativeDOM = (TurboModuleRegistry.get<Spec>('NativeDOMCxx'): ?Spec);
123
+
124
+ // This is the actual interface of this module, but the native module codegen
125
+ // isn't expressive enough yet.
126
+ export interface RefinedSpec {
127
+ /**
128
+ * This is a React Native implementation of `Node.prototype.parentNode`
129
+ * (see https://developer.mozilla.org/en-US/docs/Web/API/Node/parentNode).
130
+ *
131
+ * If a version of the given shadow node is present in the current revision of
132
+ * an active shadow tree, it returns the instance handle of its parent.
133
+ * Otherwise, it returns `null`.
134
+ */
135
+ +getParentNode: (shadowNode: ShadowNode) => ?InstanceHandle;
136
+
137
+ /**
138
+ * This is a React Native implementation of `Node.prototype.childNodes`
139
+ * (see https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes).
140
+ *
141
+ * If a version of the given shadow node is present in the current revision
142
+ * of an active shadow tree, it returns an array of instance handles of its
143
+ * children. Otherwise, it returns an empty array.
144
+ */
145
+ +getChildNodes: (shadowNode: ShadowNode) => $ReadOnlyArray<InstanceHandle>;
146
+
147
+ /**
148
+ * This is a React Native implementation of `Node.prototype.isConnected`
149
+ * (see https://developer.mozilla.org/en-US/docs/Web/API/Node/isConnected).
150
+ *
151
+ * Indicates whether a version of the given shadow node is present in the
152
+ * current revision of an active shadow tree.
153
+ */
154
+ +isConnected: (shadowNode: ShadowNode) => boolean;
155
+
156
+ /**
157
+ * This is a React Native implementation of `Node.prototype.compareDocumentPosition`
158
+ * (see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition).
159
+ *
160
+ * It uses the version of the shadow nodes that are present in the current
161
+ * revision of the shadow tree (if any). If any of the nodes is not present,
162
+ * it just indicates they are disconnected.
163
+ */
164
+ +compareDocumentPosition: (
165
+ shadowNode: ShadowNode,
166
+ otherShadowNode: ShadowNode,
167
+ ) => number;
168
+
169
+ /**
170
+ * This is a React Native implementation of `Element.prototype.textContent`
171
+ * (see https://developer.mozilla.org/en-US/docs/Web/API/Element/textContent).
172
+ *
173
+ * It uses the version of the shadow node that is present in the current
174
+ * revision of the shadow tree.
175
+ * If the version is present, is traverses all its children in DFS and
176
+ * concatenates all the text contents. Otherwise, it returns an empty string.
177
+ *
178
+ * This is also used to access the text content of text nodes, which does not
179
+ * need any traversal.
180
+ */
181
+ +getTextContent: (shadowNode: ShadowNode) => string;
182
+
183
+ /**
184
+ * This is a React Native implementation of `Element.prototype.getBoundingClientRect`
185
+ * (see https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).
186
+ *
187
+ * This is similar to `measureInWindow`, except it's explicitly synchronous
188
+ * (returns the result instead of passing it to a callback).
189
+ *
190
+ * It allows indicating whether to include transforms so it can also be used
191
+ * to implement methods like [`offsetWidth`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth)
192
+ * and [`offsetHeight`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight).
193
+ */
194
+ +getBoundingClientRect: (
195
+ shadowNode: ShadowNode,
196
+ includeTransform: boolean,
197
+ ) => $ReadOnly<
198
+ [
199
+ /* x: */ number,
200
+ /* y: */ number,
201
+ /* width: */ number,
202
+ /* height: */ number,
203
+ ],
204
+ >;
205
+
206
+ /**
207
+ * This is a method to access the offset information for a shadow node, to
208
+ * implement these methods:
209
+ * - `HTMLElement.prototype.offsetParent`: see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent.
210
+ * - `HTMLElement.prototype.offsetTop`: see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop.
211
+ * - `HTMLElement.prototype.offsetLeft`: see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetLeft.
212
+ *
213
+ * It uses the version of the shadow node that is present in the current
214
+ * revision of the shadow tree. If the node is not present or is not
215
+ * displayed (because any of its ancestors or itself have 'display: none'),
216
+ * it returns `undefined`. Otherwise, it returns its parent (as all nodes in
217
+ * React Native are currently "positioned") and its offset relative to its
218
+ * parent.
219
+ */
220
+ +getOffset: (
221
+ shadowNode: ShadowNode,
222
+ ) => $ReadOnly<
223
+ [
224
+ /* offsetParent: */ ?InstanceHandle,
225
+ /* top: */ number,
226
+ /* left: */ number,
227
+ ],
228
+ >;
229
+
230
+ /**
231
+ * This is a method to access scroll information for a shadow node, to
232
+ * implement these methods:
233
+ * - `Element.prototype.scrollLeft`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft.
234
+ * - `Element.prototype.scrollTop`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop.
235
+ *
236
+ * It uses the version of the shadow node that is present in the current
237
+ * revision of the shadow tree. If the node is not present or is not displayed
238
+ * (because any of its ancestors or itself have 'display: none'), it returns
239
+ * `undefined`. Otherwise, it returns the scroll position.
240
+ */
241
+ +getScrollPosition: (
242
+ shadowNode: ShadowNode,
243
+ ) => $ReadOnly<[/* scrollLeft: */ number, /* scrollTop: */ number]>;
244
+
245
+ /**
246
+ *
247
+ * This is a method to access the scroll information of a shadow node, to
248
+ * implement these methods:
249
+ * - `Element.prototype.scrollWidth`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollWidth.
250
+ * - `Element.prototype.scrollHeight`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight.
251
+ *
252
+ * It uses the version of the shadow node that is present in the current
253
+ * revision of the shadow tree. If the node is not present or is not displayed
254
+ * (because any of its ancestors or itself have 'display: none'), it returns
255
+ * `undefined`. Otherwise, it returns the scroll size.
256
+ */
257
+ +getScrollSize: (
258
+ shadowNode: ShadowNode,
259
+ ) => $ReadOnly<[/* scrollWidth: */ number, /* scrollHeight: */ number]>;
260
+
261
+ /**
262
+ * This is a method to access the inner size of a shadow node, to implement
263
+ * these methods:
264
+ * - `Element.prototype.clientWidth`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth.
265
+ * - `Element.prototype.clientHeight`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight.
266
+ *
267
+ * It uses the version of the shadow node that is present in the current
268
+ * revision of the shadow tree. If the node is not present, it is not
269
+ * displayed (because any of its ancestors or itself have 'display: none'), or
270
+ * it has an inline display, it returns `undefined`. Otherwise, it returns its
271
+ * inner size.
272
+ */
273
+ +getInnerSize: (
274
+ shadowNode: ShadowNode,
275
+ ) => $ReadOnly<[/* width: */ number, /* height: */ number]>;
276
+
277
+ /**
278
+ * This is a method to access the border size of a shadow node, to implement
279
+ * these methods:
280
+ * - `Element.prototype.clientLeft`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientLeft.
281
+ * - `Element.prototype.clientTop`: see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientTop.
282
+ *
283
+ * It uses the version of the shadow node that is present in the current
284
+ * revision of the shadow tree. If the node is not present, it is not
285
+ * displayed (because any of its ancestors or itself have 'display: none'), or
286
+ * it has an inline display, it returns `undefined`. Otherwise, it returns its
287
+ * border size.
288
+ */
289
+ +getBorderWidth: (
290
+ shadowNode: ShadowNode,
291
+ ) => $ReadOnly<
292
+ [
293
+ /* topWidth: */ number,
294
+ /* rightWidth: */ number,
295
+ /* bottomWidth: */ number,
296
+ /* leftWidth: */ number,
297
+ ],
298
+ >;
299
+
300
+ /**
301
+ * This is a method to access the normalized tag name of a shadow node, to
302
+ * implement `Element.prototype.tagName` (see https://developer.mozilla.org/en-US/docs/Web/API/Element/tagName).
303
+ */
304
+ +getTagName: (shadowNode: ShadowNode) => string;
305
+
306
+ /**
307
+ * Pointer Capture APIs
308
+ */
309
+
310
+ +hasPointerCapture: (shadowNode: ShadowNode, pointerId: number) => boolean;
311
+
312
+ +setPointerCapture: (shadowNode: ShadowNode, pointerId: number) => void;
313
+
314
+ +releasePointerCapture: (shadowNode: ShadowNode, pointerId: number) => void;
315
+
316
+ /**
317
+ * Legacy layout APIs
318
+ */
319
+
320
+ +measure: (
321
+ shadowNode: ShadowNode,
322
+ callback: MeasureOnSuccessCallback,
323
+ ) => void;
324
+
325
+ +measureInWindow: (
326
+ shadowNode: ShadowNode,
327
+ callback: MeasureInWindowOnSuccessCallback,
328
+ ) => void;
329
+
330
+ +measureLayout: (
331
+ shadowNode: ShadowNode,
332
+ relativeNode: ShadowNode,
333
+ onFail: () => void,
334
+ onSuccess: MeasureLayoutOnSuccessCallback,
335
+ ) => void;
336
+ }
337
+
338
+ const NativeDOM: RefinedSpec = {
339
+ getParentNode(shadowNode) {
340
+ // $FlowExpectedError[incompatible-cast]
341
+ return (nullthrows(RawNativeDOM).getParentNode(
342
+ shadowNode,
343
+ ): ?InstanceHandle);
344
+ },
345
+
346
+ getChildNodes(shadowNode) {
347
+ // $FlowExpectedError[incompatible-cast]
348
+ return (nullthrows(RawNativeDOM).getChildNodes(
349
+ shadowNode,
350
+ ): $ReadOnlyArray<InstanceHandle>);
351
+ },
352
+
353
+ isConnected(shadowNode) {
354
+ return nullthrows(RawNativeDOM).isConnected(shadowNode);
355
+ },
356
+
357
+ compareDocumentPosition(shadowNode, otherShadowNode) {
358
+ return nullthrows(RawNativeDOM).compareDocumentPosition(
359
+ shadowNode,
360
+ otherShadowNode,
361
+ );
362
+ },
363
+
364
+ getTextContent(shadowNode) {
365
+ return nullthrows(RawNativeDOM).getTextContent(shadowNode);
366
+ },
367
+
368
+ getBoundingClientRect(shadowNode, includeTransform: boolean) {
369
+ // $FlowExpectedError[incompatible-cast]
370
+ return (nullthrows(RawNativeDOM).getBoundingClientRect(
371
+ shadowNode,
372
+ includeTransform,
373
+ ): $ReadOnly<
374
+ [
375
+ /* x: */ number,
376
+ /* y: */ number,
377
+ /* width: */ number,
378
+ /* height: */ number,
379
+ ],
380
+ >);
381
+ },
382
+
383
+ getOffset(shadowNode) {
384
+ // $FlowExpectedError[incompatible-cast]
385
+ return (nullthrows(RawNativeDOM).getOffset(shadowNode): $ReadOnly<
386
+ [
387
+ /* offsetParent: */ ?InstanceHandle,
388
+ /* top: */ number,
389
+ /* left: */ number,
390
+ ],
391
+ >);
392
+ },
393
+
394
+ getScrollPosition(shadowNode) {
395
+ // $FlowExpectedError[incompatible-cast]
396
+ return (nullthrows(RawNativeDOM).getScrollPosition(shadowNode): $ReadOnly<
397
+ [/* scrollLeft: */ number, /* scrollTop: */ number],
398
+ >);
399
+ },
400
+
401
+ getScrollSize(shadowNode) {
402
+ // $FlowExpectedError[incompatible-cast]
403
+ return (nullthrows(RawNativeDOM).getScrollSize(shadowNode): $ReadOnly<
404
+ [/* scrollWidth: */ number, /* scrollHeight: */ number],
405
+ >);
406
+ },
407
+
408
+ getInnerSize(shadowNode) {
409
+ // $FlowExpectedError[incompatible-cast]
410
+ return (nullthrows(RawNativeDOM).getInnerSize(shadowNode): $ReadOnly<
411
+ [/* width: */ number, /* height: */ number],
412
+ >);
413
+ },
414
+
415
+ getBorderWidth(shadowNode) {
416
+ // $FlowExpectedError[incompatible-cast]
417
+ return (nullthrows(RawNativeDOM).getBorderWidth(shadowNode): $ReadOnly<
418
+ [
419
+ /* topWidth: */ number,
420
+ /* rightWidth: */ number,
421
+ /* bottomWidth: */ number,
422
+ /* leftWidth: */ number,
423
+ ],
424
+ >);
425
+ },
426
+
427
+ getTagName(shadowNode) {
428
+ return nullthrows(RawNativeDOM).getTagName(shadowNode);
429
+ },
430
+
431
+ hasPointerCapture(shadowNode, pointerId) {
432
+ return nullthrows(RawNativeDOM).hasPointerCapture(shadowNode, pointerId);
433
+ },
434
+
435
+ setPointerCapture(shadowNode, pointerId) {
436
+ return nullthrows(RawNativeDOM).setPointerCapture(shadowNode, pointerId);
437
+ },
438
+
439
+ releasePointerCapture(shadowNode, pointerId) {
440
+ return nullthrows(RawNativeDOM).releasePointerCapture(
441
+ shadowNode,
442
+ pointerId,
443
+ );
444
+ },
445
+
446
+ /**
447
+ * Legacy layout APIs
448
+ */
449
+
450
+ measure(shadowNode, callback) {
451
+ return nullthrows(RawNativeDOM).measure(shadowNode, callback);
452
+ },
453
+
454
+ measureInWindow(shadowNode, callback) {
455
+ return nullthrows(RawNativeDOM).measureInWindow(shadowNode, callback);
456
+ },
457
+
458
+ measureLayout(shadowNode, relativeNode, onFail, onSuccess) {
459
+ return nullthrows(RawNativeDOM).measureLayout(
460
+ shadowNode,
461
+ relativeNode,
462
+ onFail,
463
+ onSuccess,
464
+ );
465
+ },
466
+ };
467
+
468
+ export default NativeDOM;