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
@@ -17,14 +17,11 @@
17
17
  namespace facebook::react {
18
18
 
19
19
  void TextLayoutManager::GetTextLayout(
20
- AttributedStringBox attributedStringBox,
21
- ParagraphAttributes paragraphAttributes,
22
- LayoutConstraints layoutConstraints,
20
+ const AttributedString &attributedString,
21
+ const ParagraphAttributes &paragraphAttributes,
22
+ Size size,
23
23
  winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept {
24
- if (attributedStringBox.getValue().isEmpty())
25
- return;
26
-
27
- auto fragments = attributedStringBox.getValue().getFragments();
24
+ auto fragments = attributedString.getFragments();
28
25
  auto outerFragment = fragments[0];
29
26
 
30
27
  DWRITE_FONT_STYLE style = DWRITE_FONT_STYLE_NORMAL;
@@ -86,14 +83,14 @@ void TextLayoutManager::GetTextLayout(
86
83
  }
87
84
  winrt::check_hresult(spTextFormat->SetTextAlignment(alignment));
88
85
 
89
- auto str = GetTransformedText(attributedStringBox);
86
+ auto str = GetTransformedText(attributedString);
90
87
 
91
88
  winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextLayout(
92
89
  str.c_str(), // The string to be laid out and formatted.
93
90
  static_cast<UINT32>(str.size()), // The length of the string.
94
91
  spTextFormat.get(), // The text format to apply to the string (contains font information, etc).
95
- layoutConstraints.maximumSize.width, // The width of the layout box.
96
- layoutConstraints.maximumSize.height, // The height of the layout box.
92
+ size.width, // The width of the layout box.
93
+ size.height, // The height of the layout box.
97
94
  spTextLayout.put() // The IDWriteTextLayout interface pointer.
98
95
  ));
99
96
 
@@ -129,12 +126,22 @@ void TextLayoutManager::GetTextLayout(
129
126
  }
130
127
  }
131
128
 
129
+ void TextLayoutManager::GetTextLayout(
130
+ const AttributedStringBox &attributedStringBox,
131
+ const ParagraphAttributes &paragraphAttributes,
132
+ LayoutConstraints layoutConstraints,
133
+ winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept {
134
+ if (attributedStringBox.getValue().isEmpty())
135
+ return;
136
+
137
+ GetTextLayout(attributedStringBox.getValue(), paragraphAttributes, layoutConstraints.maximumSize, spTextLayout);
138
+ }
139
+
132
140
  TextMeasurement TextLayoutManager::measure(
133
- AttributedStringBox attributedStringBox,
134
- ParagraphAttributes paragraphAttributes,
141
+ const AttributedStringBox &attributedStringBox,
142
+ const ParagraphAttributes &paragraphAttributes,
135
143
  const TextLayoutContext &layoutContext,
136
- LayoutConstraints layoutConstraints,
137
- std::shared_ptr<void> /* hostTextStorage */) const {
144
+ LayoutConstraints layoutConstraints) const {
138
145
  TextMeasurement measurement{};
139
146
  auto &attributedString = attributedStringBox.getValue();
140
147
  measurement = m_measureCache.get(
@@ -185,31 +192,12 @@ TextMeasurement TextLayoutManager::measure(
185
192
  */
186
193
  TextMeasurement TextLayoutManager::measureCachedSpannableById(
187
194
  int64_t cacheId,
188
- ParagraphAttributes const &paragraphAttributes,
195
+ const ParagraphAttributes &paragraphAttributes,
189
196
  LayoutConstraints layoutConstraints) const {
190
197
  assert(false);
191
198
  return {};
192
199
  }
193
200
 
194
- LinesMeasurements TextLayoutManager::measureLines(
195
- AttributedString attributedString,
196
- ParagraphAttributes paragraphAttributes,
197
- Size size) const {
198
- assert(false);
199
- return {};
200
- }
201
-
202
- std::shared_ptr<void> TextLayoutManager::getHostTextStorage(
203
- AttributedString attributedString,
204
- ParagraphAttributes paragraphAttributes,
205
- LayoutConstraints layoutConstraints) const {
206
- return nullptr;
207
- }
208
-
209
- void *TextLayoutManager::getNativeTextLayoutManager() const {
210
- return (void *)this;
211
- }
212
-
213
201
  Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTransform> const &transform) {
214
202
  if (transform) {
215
203
  switch (transform.value()) {
@@ -229,9 +217,92 @@ Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTra
229
217
  return Microsoft::ReactNative::TextTransform::Undefined;
230
218
  }
231
219
 
232
- winrt::hstring TextLayoutManager::GetTransformedText(AttributedStringBox const &attributedStringBox) {
220
+ LinesMeasurements TextLayoutManager::measureLines(
221
+ const AttributedString &attributedString,
222
+ const ParagraphAttributes &paragraphAttributes,
223
+ Size size) const {
224
+ LinesMeasurements lineMeasurements{};
225
+
226
+ winrt::com_ptr<IDWriteTextLayout> spTextLayout;
227
+
228
+ GetTextLayout(attributedString, paragraphAttributes, size, spTextLayout);
229
+
230
+ if (spTextLayout) {
231
+ std::vector<DWRITE_LINE_METRICS> lineMetrics;
232
+ uint32_t actualLineCount;
233
+ spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
234
+ lineMetrics.resize(static_cast<size_t>(actualLineCount));
235
+ winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
236
+ uint32_t startRange = 0;
237
+ const auto count = (paragraphAttributes.maximumNumberOfLines > 0)
238
+ ? std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount)
239
+ : actualLineCount;
240
+ for (uint32_t i = 0; i < count; ++i) {
241
+ UINT32 actualHitTestCount = 0;
242
+ spTextLayout->HitTestTextRange(
243
+ startRange,
244
+ lineMetrics[i].length,
245
+ 0, // x
246
+ 0, // y
247
+ NULL,
248
+ 0, // metrics count
249
+ &actualHitTestCount);
250
+
251
+ // Allocate enough room to return all hit-test metrics.
252
+ std::vector<DWRITE_HIT_TEST_METRICS> hitTestMetrics(actualHitTestCount);
253
+ spTextLayout->HitTestTextRange(
254
+ startRange,
255
+ lineMetrics[i].length,
256
+ 0, // x
257
+ 0, // y
258
+ &hitTestMetrics[0],
259
+ static_cast<UINT32>(hitTestMetrics.size()),
260
+ &actualHitTestCount);
261
+
262
+ float width = 0;
263
+ for (auto tm : hitTestMetrics) {
264
+ width += tm.width;
265
+ }
266
+
267
+ std::string str;
268
+ for (const auto &fragment : attributedString.getFragments()) {
269
+ str = str +
270
+ winrt::to_string(Microsoft::ReactNative::TransformableText::TransformText(
271
+ winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
272
+ ConvertTextTransform(fragment.textAttributes.textTransform)));
273
+ }
274
+
275
+ lineMeasurements.emplace_back(LineMeasurement(
276
+ str.substr(startRange, lineMetrics[i].length),
277
+ {{hitTestMetrics[0].left, hitTestMetrics[0].top}, // origin
278
+ {width, lineMetrics[i].height}},
279
+ 0.0f, // TODO descender
280
+ 0.0f, // TODO: capHeight
281
+ 0.0f, // TODO ascender
282
+ 0.0f // TODO: xHeight
283
+ ));
284
+
285
+ startRange += lineMetrics[i].length;
286
+ }
287
+ }
288
+
289
+ return lineMeasurements;
290
+ }
291
+
292
+ std::shared_ptr<void> TextLayoutManager::getHostTextStorage(
293
+ const AttributedString &attributedString,
294
+ const ParagraphAttributes &paragraphAttributes,
295
+ LayoutConstraints layoutConstraints) const {
296
+ return nullptr;
297
+ }
298
+
299
+ void *TextLayoutManager::getNativeTextLayoutManager() const {
300
+ return (void *)this;
301
+ }
302
+
303
+ winrt::hstring TextLayoutManager::GetTransformedText(const AttributedString &attributedString) {
233
304
  winrt::hstring result{};
234
- for (const auto &fragment : attributedStringBox.getValue().getFragments()) {
305
+ for (const auto &fragment : attributedString.getFragments()) {
235
306
  result = result +
236
307
  Microsoft::ReactNative::TransformableText::TransformText(
237
308
  winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
@@ -35,22 +35,23 @@ class TextLayoutManager {
35
35
  * Measures `attributedStringBox` using native text rendering infrastructure.
36
36
  */
37
37
  TextMeasurement measure(
38
- AttributedStringBox attributedStringBox,
39
- ParagraphAttributes paragraphAttributes,
38
+ const AttributedStringBox &attributedStringBox,
39
+ const ParagraphAttributes &paragraphAttributes,
40
40
  const TextLayoutContext &layoutContext,
41
- LayoutConstraints layoutConstraints,
42
- std::shared_ptr<void> /* hostTextStorage */) const;
41
+ LayoutConstraints layoutConstraints) const;
43
42
 
44
43
  /*
45
44
  * Measures lines of `attributedString` using native text rendering
46
45
  * infrastructure.
47
46
  */
48
- LinesMeasurements measureLines(AttributedString attributedString, ParagraphAttributes paragraphAttributes, Size size)
49
- const;
47
+ LinesMeasurements measureLines(
48
+ const AttributedString &attributedString,
49
+ const ParagraphAttributes &paragraphAttributes,
50
+ Size size) const;
50
51
 
51
52
  std::shared_ptr<void> getHostTextStorage(
52
- AttributedString attributedString,
53
- ParagraphAttributes paragraphAttributes,
53
+ const AttributedString &attributedString,
54
+ const ParagraphAttributes &paragraphAttributes,
54
55
  LayoutConstraints layoutConstraints) const;
55
56
 
56
57
  /**
@@ -59,7 +60,7 @@ class TextLayoutManager {
59
60
  */
60
61
  TextMeasurement measureCachedSpannableById(
61
62
  int64_t cacheId,
62
- ParagraphAttributes const &paragraphAttributes,
63
+ const ParagraphAttributes &paragraphAttributes,
63
64
  LayoutConstraints layoutConstraints) const;
64
65
 
65
66
  /*
@@ -69,15 +70,20 @@ class TextLayoutManager {
69
70
  void *getNativeTextLayoutManager() const;
70
71
 
71
72
  static void GetTextLayout(
72
- AttributedStringBox attributedStringBox,
73
- ParagraphAttributes paragraphAttributes,
73
+ const AttributedStringBox &attributedStringBox,
74
+ const ParagraphAttributes &paragraphAttributes,
74
75
  LayoutConstraints layoutConstraints,
75
76
  winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept;
76
77
 
77
78
  #pragma endregion
78
79
 
79
80
  private:
80
- static winrt::hstring GetTransformedText(AttributedStringBox const &attributedStringBox);
81
+ static winrt::hstring GetTransformedText(const AttributedString &attributedString);
82
+ static void GetTextLayout(
83
+ const AttributedString &attributedString,
84
+ const ParagraphAttributes &paragraphAttributes,
85
+ Size size,
86
+ winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept;
81
87
 
82
88
  ContextContainer::Shared m_contextContainer;
83
89
  #pragma warning(push)
@@ -50,6 +50,10 @@ void DevSettings::toggleElementInspector() noexcept {
50
50
  "RCTDeviceEventEmitter", "emit", folly::dynamic::array("toggleElementInspector", nullptr));
51
51
  }
52
52
 
53
+ void DevSettings::openDebugger() noexcept {
54
+ assert(false);
55
+ }
56
+
53
57
  void DevSettings::addMenuItem(std::string title) noexcept {
54
58
  assert(false);
55
59
  }
@@ -24,6 +24,7 @@ struct DevSettings {
24
24
  REACT_METHOD(setIsDebuggingRemotely) void setIsDebuggingRemotely(bool isDebuggingRemotelyEnabled) noexcept;
25
25
  REACT_METHOD(setProfilingEnabled) void setProfilingEnabled(bool isProfilingEnabled) noexcept;
26
26
  REACT_METHOD(toggleElementInspector) void toggleElementInspector() noexcept;
27
+ REACT_METHOD(openDebugger) void openDebugger() noexcept;
27
28
  REACT_METHOD(addMenuItem) void addMenuItem(std::string title) noexcept;
28
29
  REACT_METHOD(setIsShakeToShowDevMenuEnabled) void setIsShakeToShowDevMenuEnabled(bool enabled) noexcept;
29
30
 
@@ -78,8 +78,7 @@ winrt::fire_and_forget GetImageSizeAsync(
78
78
  #ifdef USE_FABRIC
79
79
  } else {
80
80
  auto result = wicBitmapSourceFromStream(memoryStream);
81
- auto &errorInfo = std::get<std::string>(result);
82
- if (errorInfo.empty()) {
81
+ if (!std::get<std::shared_ptr<facebook::react::ImageErrorInfo>>(result)) {
83
82
  auto imagingFactory = std::get<winrt::com_ptr<IWICImagingFactory>>(result);
84
83
  auto wicBmpSource = std::get<winrt::com_ptr<IWICBitmapSource>>(result);
85
84
  UINT width, height;
@@ -234,15 +234,18 @@ void NativeUIManager::AddRootView(ShadowNode &shadowNode, facebook::react::IReac
234
234
  Microsoft::ReactNative::SetTag(element, rootTag);
235
235
 
236
236
  // Add listener to size change so we can redo the layout when that happens
237
- m_sizeChangedVector.push_back(view.as<xaml::FrameworkElement>().SizeChanged(
238
- winrt::auto_revoke, [this, rootTag](auto &&, xaml::SizeChangedEventArgs const &args) {
239
- ApplyLayout(rootTag, args.NewSize().Width, args.NewSize().Height);
240
- }));
237
+ m_sizeChangedMap.insert(
238
+ {rootTag,
239
+ view.as<xaml::FrameworkElement>().SizeChanged(
240
+ winrt::auto_revoke, [this, rootTag](auto &&, xaml::SizeChangedEventArgs const &args) {
241
+ ApplyLayout(rootTag, args.NewSize().Width, args.NewSize().Height);
242
+ })});
241
243
  }
242
244
 
243
245
  void NativeUIManager::removeRootView(Microsoft::ReactNative::ShadowNode &shadow) {
244
246
  SystraceSection s("NativeUIManager::removeRootView");
245
247
  m_tagsToXamlReactControl.erase(shadow.m_tag);
248
+ m_sizeChangedMap.erase(shadow.m_tag);
246
249
  RemoveView(shadow, true);
247
250
  }
248
251
 
@@ -118,7 +118,7 @@ class NativeUIManager final : public INativeUIManager {
118
118
 
119
119
  std::unordered_map<int64_t, YogaNodePtr> m_tagsToYogaNodes;
120
120
  std::unordered_map<int64_t, std::unique_ptr<YogaContext>> m_tagsToYogaContext;
121
- std::vector<xaml::FrameworkElement::SizeChanged_revoker> m_sizeChangedVector;
121
+ std::unordered_map<int64_t, xaml::FrameworkElement::SizeChanged_revoker> m_sizeChangedMap;
122
122
  std::vector<std::function<void()>> m_batchCompletedCallbacks;
123
123
  std::vector<int64_t> m_extraLayoutNodes;
124
124
 
@@ -10,8 +10,8 @@
10
10
 
11
11
  namespace Microsoft::ReactNative {
12
12
 
13
- ReactNativeSpecs::PlatformConstantsWinSpec_PlatformConstantsWindows PlatformConstants::GetConstants() noexcept {
14
- ReactNativeSpecs::PlatformConstantsWinSpec_PlatformConstantsWindows constants;
13
+ ReactNativeSpecs::PlatformConstantsWindowsSpec_PlatformConstantsWindows PlatformConstants::GetConstants() noexcept {
14
+ ReactNativeSpecs::PlatformConstantsWindowsSpec_PlatformConstantsWindows constants;
15
15
 
16
16
  // We don't currently treat Native code differently in a test environment
17
17
  constants.isTesting = false;
@@ -2,17 +2,17 @@
2
2
  // Licensed under the MIT License.
3
3
  #pragma once
4
4
 
5
- #include "codegen/NativePlatformConstantsWinSpec.g.h"
5
+ #include "codegen/NativePlatformConstantsWindowsSpec.g.h"
6
6
  #include <NativeModules.h>
7
7
 
8
8
  namespace Microsoft::ReactNative {
9
9
 
10
10
  REACT_MODULE(PlatformConstants)
11
11
  struct PlatformConstants {
12
- using ModuleSpec = ReactNativeSpecs::PlatformConstantsWinSpec;
12
+ using ModuleSpec = ReactNativeSpecs::PlatformConstantsWindowsSpec;
13
13
 
14
14
  REACT_GET_CONSTANTS(GetConstants)
15
- ReactNativeSpecs::PlatformConstantsWinSpec_PlatformConstantsWindows GetConstants() noexcept;
15
+ ReactNativeSpecs::PlatformConstantsWindowsSpec_PlatformConstantsWindows GetConstants() noexcept;
16
16
  };
17
17
 
18
18
  } // namespace Microsoft::ReactNative
@@ -337,7 +337,7 @@ void ReactInstanceWin::LoadModules(
337
337
  };
338
338
 
339
339
  #ifdef USE_FABRIC
340
- if (Microsoft::ReactNative::IsFabricEnabled(m_reactContext->Properties())) {
340
+ if (!m_options.UseWebDebugger()) {
341
341
  registerTurboModule(
342
342
  L"FabricUIManagerBinding",
343
343
  winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::FabricUIManager>());
@@ -602,15 +602,14 @@ void ReactInstanceWin::InitializeBridgeless() noexcept {
602
602
 
603
603
  m_jsMessageThread.Load()->runOnQueueSync([&]() {
604
604
  ::SetThreadDescription(GetCurrentThread(), L"React-Native JavaScript Thread");
605
- auto timerRegistry =
606
- ::Microsoft::ReactNative::TimerRegistry::CreateTimerRegistry(m_reactContext->Properties());
605
+ auto timerRegistry = ::Microsoft::ReactNative::TimerRegistry::CreateTimerRegistry(m_options.Properties);
607
606
  auto timerRegistryRaw = timerRegistry.get();
608
607
 
609
608
  auto timerManager = std::make_shared<facebook::react::TimerManager>(std::move(timerRegistry));
610
609
  timerRegistryRaw->setTimerManager(timerManager);
611
610
 
612
- auto jsErrorHandlingFunc = [this](facebook::react::MapBuffer errorMap) noexcept {
613
- OnJSError(std::move(errorMap));
611
+ auto jsErrorHandlingFunc = [this](const facebook::react::JsErrorHandler::ParsedError &error) noexcept {
612
+ OnJSError(std::move(error));
614
613
  };
615
614
 
616
615
  if (devSettings->useDirectDebugger) {
@@ -1240,24 +1239,18 @@ void ReactInstanceWin::OnError(const Mso::ErrorCode &errorCode) noexcept {
1240
1239
  }
1241
1240
 
1242
1241
  #ifdef USE_FABRIC
1243
- void ReactInstanceWin::OnJSError(facebook::react::MapBuffer errorMap) noexcept {
1242
+ void ReactInstanceWin::OnJSError(const facebook::react::JsErrorHandler::ParsedError &error) noexcept {
1244
1243
  ErrorInfo errorInfo;
1245
- errorInfo.Message = errorMap.getString(facebook::react::JSErrorHandlerKey::kErrorMessage);
1244
+ errorInfo.Message = error.message;
1246
1245
  auto errorCode = Mso::React::ReactErrorProvider().MakeErrorCode(Mso::React::ReactError{errorInfo.Message.c_str()});
1247
1246
 
1248
- std::vector<facebook::react::MapBuffer> frames =
1249
- errorMap.getMapBufferList(facebook::react::JSErrorHandlerKey::kAllStackFrames);
1250
- for (const facebook::react::MapBuffer &mapBuffer : frames) {
1251
- errorInfo.Callstack.push_back(
1252
- {mapBuffer.getString(facebook::react::JSErrorHandlerKey::kFrameFileName),
1253
- mapBuffer.getString(facebook::react::JSErrorHandlerKey::kFrameMethodName),
1254
- mapBuffer.getInt(facebook::react::JSErrorHandlerKey::kFrameLineNumber),
1255
- mapBuffer.getInt(facebook::react::JSErrorHandlerKey::kFrameColumnNumber)});
1247
+ for (const facebook::react::JsErrorHandler::ParsedError::StackFrame &frame : error.frames) {
1248
+ errorInfo.Callstack.push_back({frame.fileName, frame.methodName, frame.lineNumber, frame.columnNumber});
1256
1249
  }
1257
- errorInfo.Id = errorMap.getInt(facebook::react::JSErrorHandlerKey::kExceptionId);
1258
- errorInfo.Id = errorMap.getInt(facebook::react::JSErrorHandlerKey::kExceptionId);
1259
1250
 
1260
- bool isFatal = errorMap.getBool(facebook::react::JSErrorHandlerKey::kIsFatal);
1251
+ errorInfo.Id = error.exceptionId;
1252
+
1253
+ bool isFatal = error.isFatal;
1261
1254
 
1262
1255
  m_state = ReactInstanceState::HasError;
1263
1256
  AbandonJSCallQueue();
@@ -1326,7 +1319,7 @@ void ReactInstanceWin::DrainJSCallQueue() noexcept {
1326
1319
 
1327
1320
  #ifdef USE_FABRIC
1328
1321
  if (m_bridgelessReactInstance) {
1329
- m_bridgelessReactInstance->callFunctionOnModule(entry.ModuleName, entry.MethodName, entry.Args);
1322
+ m_bridgelessReactInstance->callFunctionOnModule(entry.ModuleName, entry.MethodName, std::move(entry.Args));
1330
1323
  } else
1331
1324
  #endif
1332
1325
  if (auto instance = m_instance.LoadWithLock()) {
@@ -1365,7 +1358,7 @@ void ReactInstanceWin::CallJsFunction(
1365
1358
  if (shouldCall) {
1366
1359
  #ifdef USE_FABRIC
1367
1360
  if (m_bridgelessReactInstance) {
1368
- m_bridgelessReactInstance->callFunctionOnModule(moduleName, method, params);
1361
+ m_bridgelessReactInstance->callFunctionOnModule(moduleName, method, std::move(params));
1369
1362
  } else
1370
1363
  #endif
1371
1364
  if (auto instance = m_instance.LoadWithLock()) {
@@ -141,7 +141,7 @@ class ReactInstanceWin final : public Mso::ActiveObject<IReactInstanceInternal>
141
141
  void OnError(const Mso::ErrorCode &errorcode) noexcept;
142
142
  void OnErrorWithMessage(const std::string &errorMessage) noexcept;
143
143
  #ifdef USE_FABRIC
144
- void OnJSError(facebook::react::MapBuffer errorMap) noexcept;
144
+ void OnJSError(const facebook::react::JsErrorHandler::ParsedError &error) noexcept;
145
145
  #endif
146
146
  void OnLiveReload() noexcept;
147
147
  void OnWaitingForDebugger() noexcept;
@@ -2,9 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
 
4
4
  #include "DocString.h"
5
- import "IJSValueReader.idl";
6
- import "IJSValueWriter.idl";
7
- import "Theme.idl";
5
+ import "IReactPropertyBag.idl";
8
6
 
9
7
  namespace Microsoft.ReactNative {
10
8
 
@@ -147,7 +147,7 @@ void BatchingEventEmitter::OnFrameUI() noexcept {
147
147
  });
148
148
 
149
149
  // Don't leave the callback continuously registered as it can waste power.
150
- // See https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.compositiontarget.rendering?view=winrt-19041
150
+ // See https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.compositiontarget.rendering?view=winrt-22621
151
151
  m_renderingRevoker.revoke();
152
152
  }
153
153
 
@@ -59,11 +59,10 @@ std::future<std::string> LocalBundleReader::LoadBundleAsync(const std::wstring b
59
59
  winrt::Windows::Storage::StorageFile file{nullptr};
60
60
 
61
61
  // Supports "ms-appx://" or "ms-appdata://"
62
- // TODO: Replace call to private string function with C++ 20 `starts_with`
63
- if (bundleUri._Starts_with(L"ms-app")) {
62
+ if (bundleUri.starts_with(L"ms-app")) {
64
63
  winrt::Windows::Foundation::Uri uri(bundleUri);
65
64
  file = co_await winrt::Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(uri);
66
- } else if (bundleUri._Starts_with(L"resource://")) {
65
+ } else if (bundleUri.starts_with(L"resource://")) {
67
66
  winrt::Windows::Foundation::Uri uri(bundleUri);
68
67
  co_return GetBundleFromEmbeddedResource(uri);
69
68
  } else {
@@ -200,7 +200,7 @@ REACTWINDOWS_API_(winrt::Color) ColorFrom(const folly::dynamic &d) {
200
200
  return ColorFromNumber(static_cast<UINT>(d.asInt()));
201
201
  }
202
202
 
203
- winrt::Color ColorFrom(const winrt::Microsoft::ReactNative::JSValue &v) {
203
+ REACTWINDOWS_API_(winrt::Color) ColorFrom(const winrt::Microsoft::ReactNative::JSValue &v) {
204
204
  if (v.Type() != winrt::Microsoft::ReactNative::JSValueType::Int64 &&
205
205
  v.Type() != winrt::Microsoft::ReactNative::JSValueType::Double)
206
206
  return winrt::Colors::Transparent();
@@ -445,14 +445,14 @@ void DynamicAutomationPeer::SetValue(double value) {
445
445
 
446
446
  // Doesn't have a React Native analog.
447
447
  // Return default value for XAML Slider.
448
- // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.smallchange?view=winrt-19041
448
+ // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.smallchange?view=winrt-22621
449
449
  double DynamicAutomationPeer::SmallChange() {
450
450
  return 1;
451
451
  }
452
452
 
453
453
  // Doesn't have a React Native analog.
454
454
  // Return default value for XAML Slider.
455
- // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.largechange?view=winrt-19041
455
+ // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.largechange?view=winrt-22621
456
456
  double DynamicAutomationPeer::LargeChange() {
457
457
  return 10;
458
458
  }
@@ -319,7 +319,7 @@ void TextInputShadowNode::registerEvents() {
319
319
  }
320
320
  }
321
321
 
322
- auto contentElement = control.GetTemplateChild(L"ContentElement");
322
+ auto contentElement = control.as<xaml::Controls::IControlProtected>().GetTemplateChild(L"ContentElement");
323
323
  auto textBoxView = contentElement.as<xaml::Controls::ScrollViewer>();
324
324
  if (textBoxView) {
325
325
  m_scrollViewerViewChangingRevoker = textBoxView.ViewChanging(