react-native-windows 0.84.0 → 0.85.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/.flowconfig +1 -5
  2. package/Directory.Build.props +1 -16
  3. package/Directory.Build.targets +12 -4
  4. package/Folly/ThreadNameStub.cpp +4 -6
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  6. package/Libraries/Animated/Animated.d.ts +8 -1
  7. package/Libraries/Animated/AnimatedEvent.js +4 -4
  8. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  9. package/Libraries/Animated/animations/Animation.js +3 -3
  10. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  11. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  12. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  13. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  14. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  17. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  18. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  19. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  20. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  21. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  25. package/Libraries/Animated/useAnimatedColor.js +25 -0
  26. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  28. package/Libraries/AppState/AppState.js +1 -1
  29. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  30. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  34. package/Libraries/Components/Button.js +2 -2
  35. package/Libraries/Components/Button.windows.js +2 -2
  36. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  37. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  38. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  39. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  40. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  41. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  42. package/Libraries/Components/Pressable/Pressable.js +3 -3
  43. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  44. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  45. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  46. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  47. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  48. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  49. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  50. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  51. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  52. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  53. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  54. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  56. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  57. package/Libraries/Components/StaticRenderer.js +1 -1
  58. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  59. package/Libraries/Components/Switch/Switch.js +3 -3
  60. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  61. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  62. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  64. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  65. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  66. package/Libraries/Components/TextInput/TextInput.js +8 -4
  67. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  68. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  69. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  70. package/Libraries/Components/Touchable/Touchable.js +2 -2
  71. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  72. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  73. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  74. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  75. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  76. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  77. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  78. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  79. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  80. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  81. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  82. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  83. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  84. package/Libraries/Components/View/View.windows.js +1 -1
  85. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  86. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  87. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  88. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  89. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  90. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  91. package/Libraries/Core/ExceptionsManager.js +2 -2
  92. package/Libraries/Core/ExtendedError.js +3 -3
  93. package/Libraries/Core/RawEventEmitter.js +1 -1
  94. package/Libraries/Core/ReactNativeVersion.js +2 -2
  95. package/Libraries/Core/Timers/JSTimers.js +3 -2
  96. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  97. package/Libraries/Core/setUpErrorHandling.js +4 -2
  98. package/Libraries/Core/setUpReactDevTools.js +23 -6
  99. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  100. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  101. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  102. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  103. package/Libraries/Image/AssetSourceResolver.js +1 -1
  104. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  105. package/Libraries/Image/Image.android.js +172 -306
  106. package/Libraries/Image/ImageProps.js +9 -11
  107. package/Libraries/Image/ImageSource.js +2 -2
  108. package/Libraries/Image/ImageSourceUtils.js +8 -4
  109. package/Libraries/Image/ImageTypes.flow.js +2 -2
  110. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  111. package/Libraries/Image/nativeImageSource.js +1 -1
  112. package/Libraries/Interaction/InteractionManager.js +5 -4
  113. package/Libraries/Interaction/PanResponder.js +1 -1
  114. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  115. package/Libraries/Linking/Linking.js +1 -1
  116. package/Libraries/Lists/FlatList.js +3 -3
  117. package/Libraries/Lists/SectionList.js +1 -1
  118. package/Libraries/Lists/SectionListModern.js +2 -2
  119. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  120. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  121. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  122. package/Libraries/LogBox/LogBox.js +42 -19
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  126. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  128. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  129. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  135. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  136. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  137. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  138. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  139. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  140. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  142. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  143. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  144. package/Libraries/Modal/Modal.d.ts +4 -0
  145. package/Libraries/Modal/Modal.js +3 -3
  146. package/Libraries/Modal/Modal.windows.js +7 -3
  147. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  148. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  149. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  150. package/Libraries/Network/RCTNetworking.android.js +1 -1
  151. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  152. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  153. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  154. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  155. package/Libraries/Network/XMLHttpRequest.js +1 -1
  156. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  157. package/Libraries/Pressability/Pressability.js +5 -5
  158. package/Libraries/Pressability/Pressability.windows.js +5 -5
  159. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  160. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  161. package/Libraries/Pressability/usePressability.js +3 -14
  162. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  163. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  164. package/Libraries/ReactNative/AppContainer.js +1 -1
  165. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  166. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  167. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  168. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  169. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  170. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  171. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  173. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  174. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  175. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  176. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  178. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  179. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  180. package/Libraries/StyleSheet/PointPropType.js +1 -1
  181. package/Libraries/StyleSheet/Rect.js +1 -1
  182. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  183. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  185. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  186. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  187. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  188. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  189. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  190. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  191. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  192. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  193. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  194. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  195. package/Libraries/StyleSheet/processColorArray.js +2 -2
  196. package/Libraries/StyleSheet/processFilter.js +2 -2
  197. package/Libraries/Text/Text.js +295 -627
  198. package/Libraries/Text/Text.windows.js +342 -717
  199. package/Libraries/Text/TextNativeComponent.js +14 -7
  200. package/Libraries/Text/TextProps.js +4 -4
  201. package/Libraries/Text/TextProps.windows.js +4 -4
  202. package/Libraries/Types/CodegenTypes.js +1 -1
  203. package/Libraries/Types/CoreEventTypes.js +21 -21
  204. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  205. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  206. package/Libraries/Utilities/Appearance.js +6 -1
  207. package/Libraries/Utilities/Dimensions.js +1 -1
  208. package/Libraries/Utilities/HMRClient.js +32 -5
  209. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  210. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  211. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  212. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  213. package/Libraries/Utilities/logError.js +1 -1
  214. package/Libraries/Utilities/stringifySafe.js +3 -3
  215. package/Libraries/Utilities/useMergeRefs.js +2 -2
  216. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  217. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  218. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  219. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  220. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  221. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  222. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  223. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  225. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +4 -4
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  229. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  231. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +3 -1
  232. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  233. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  234. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  235. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  236. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  237. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  238. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +2 -7
  239. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  240. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -61
  241. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  242. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  243. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  244. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  245. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  246. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  247. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  248. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  249. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  250. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  251. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  252. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  253. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  254. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  255. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  256. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  257. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  258. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  259. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  260. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  261. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  262. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  263. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  264. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  265. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  266. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  267. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  268. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  269. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  270. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  271. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  272. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  273. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  274. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  275. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  276. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  277. package/PropertySheets/Autolink.props +1 -1
  278. package/PropertySheets/Bundle.props +1 -1
  279. package/PropertySheets/Codegen.props +1 -1
  280. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  281. package/PropertySheets/NuGet.LockFile.props +8 -0
  282. package/PropertySheets/React.Cpp.props +4 -4
  283. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  284. package/ReactCommon/ReactCommon.vcxproj +5 -6
  285. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  286. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  287. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  288. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  289. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  290. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  291. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  292. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  293. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  294. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  295. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  296. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  297. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  298. package/Scripts/creaternwapp.cmd +1 -9
  299. package/Scripts/creaternwlib.cmd +4 -24
  300. package/Shared/DevSettings.h +0 -3
  301. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  302. package/Shared/Networking/WinRTWebSocketResource.h +3 -119
  303. package/Shared/Shared.vcxitems +63 -38
  304. package/Shared/Shared.vcxitems.filters +54 -0
  305. package/Shared/Utils.cpp +0 -88
  306. package/Shared/Utils.h +0 -14
  307. package/Shared/WebSocketResourceFactory.cpp +28 -0
  308. package/Shared/tracing/fbsystrace.h +1 -0
  309. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  310. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  311. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  312. package/codegen/react/components/rnwcore/Props.h +3 -1
  313. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  314. package/codegen/rnwcoreJSI.h +93 -77
  315. package/index.js +9 -0
  316. package/index.windows.js +9 -0
  317. package/jest/RefreshControlMock.js +2 -2
  318. package/jest/assetFileTransformer.js +8 -3
  319. package/jest/mockComponent.js +3 -4
  320. package/jest/mockNativeComponent.js +1 -1
  321. package/jest/mocks/ActivityIndicator.js +2 -2
  322. package/jest/mocks/Image.js +2 -2
  323. package/jest/mocks/Modal.js +2 -2
  324. package/jest/mocks/RefreshControl.js +3 -3
  325. package/jest/mocks/RendererProxy.js +2 -2
  326. package/jest/mocks/ScrollView.js +5 -5
  327. package/jest/mocks/Text.js +2 -2
  328. package/jest/mocks/TextInput.js +2 -2
  329. package/jest/mocks/View.js +2 -2
  330. package/jest/mocks/ViewNativeComponent.js +1 -1
  331. package/jest/mocks/requireNativeComponent.js +1 -1
  332. package/jest/mocks/useColorScheme.js +1 -1
  333. package/jest/setup.js +68 -31
  334. package/package.json +27 -22
  335. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  336. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  337. package/src/private/components/virtualview/VirtualView.js +14 -21
  338. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  339. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  340. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  341. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  342. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  343. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  344. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  345. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  346. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  347. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  348. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  349. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  350. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  351. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  352. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  353. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  354. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  355. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  356. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  357. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  358. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  359. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  360. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  361. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  362. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  363. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  364. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  365. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  366. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  367. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  368. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  369. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  370. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  371. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  372. package/src/private/styles/composeStyles.js +1 -1
  373. package/src/private/utilities/toError.js +27 -0
  374. package/src/private/utilities/toExtendedError.js +30 -0
  375. package/src/private/webapis/dom/events/Event.js +1 -1
  376. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  377. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  378. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  379. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  380. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  381. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  382. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  383. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  384. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  385. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  386. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  387. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  388. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  389. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  390. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  391. package/src/private/webapis/performance/LongTasks.js +3 -3
  392. package/src/private/webapis/performance/Performance.js +4 -4
  393. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  394. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  395. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  396. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  397. package/src/types/globals.d.ts +4 -4
  398. package/template/cpp-lib/proj/MyLib.sln +0 -33
  399. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  400. package/template/cs-lib/proj/MyLib.sln +0 -33
  401. package/template/metro.config.js +12 -2
  402. package/templates/cpp-app/metro.config.js +12 -2
  403. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  404. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +1 -1
  405. package/templates/cpp-app/windows/MyApp.sln +0 -33
  406. package/templates/cpp-lib/example/metro.config.js +12 -2
  407. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
  408. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  409. package/types/index.d.ts +2 -0
  410. package/Folly/.clang-format +0 -2
  411. package/Folly/Folly.natvis +0 -25
  412. package/Folly/Folly.vcxproj +0 -378
  413. package/Folly/Folly.vcxproj.filters +0 -558
  414. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  415. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  416. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  417. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  418. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  419. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  420. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  421. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  422. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  423. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  424. package/Folly/cgmanifest.json +0 -25
  425. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  426. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  427. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  428. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  429. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  430. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  431. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  432. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  433. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  434. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  435. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  436. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  437. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -23
  438. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  439. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  440. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  454. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  455. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  456. package/fmt/.clang-format +0 -2
  457. package/fmt/cgmanifest.json +0 -15
  458. package/fmt/fmt.vcxproj +0 -153
  459. package/fmt/fmt.vcxproj.filters +0 -59
  460. package/fmt/pch.cpp +0 -4
  461. package/fmt/pch.h +0 -2
@@ -145,7 +145,7 @@ void ParagraphShadowNode::setTextLayoutManager(
145
145
  template <typename ParagraphStateT>
146
146
  void ParagraphShadowNode::updateStateIfNeeded(
147
147
  const Content& content,
148
- const MeasuredPreparedLayout& layout) {
148
+ const MeasuredPreparedTextLayout& layout) {
149
149
  ensureUnsealed();
150
150
 
151
151
  auto& state = static_cast<const ParagraphStateT&>(getStateData());
@@ -183,10 +183,10 @@ void ParagraphShadowNode::updateStateIfNeeded(const Content& content) {
183
183
  textLayoutManager_});
184
184
  }
185
185
 
186
- MeasuredPreparedLayout* ParagraphShadowNode::findUsableLayout() {
187
- MeasuredPreparedLayout* ret = nullptr;
186
+ MeasuredPreparedTextLayout* ParagraphShadowNode::findUsableLayout() {
187
+ MeasuredPreparedTextLayout* ret = nullptr;
188
188
 
189
- if constexpr (TextLayoutManagerExtended::supportsPreparedLayout()) {
189
+ if constexpr (TextLayoutManagerExtended::supportsPreparedTextLayout()) {
190
190
  // We consider the layout to be reusable, if our content measurement,
191
191
  // combined with padding/border (not snapped) exactly corresponds to the
192
192
  // measurement of the node, before layout rounding. We may not find a
@@ -223,7 +223,7 @@ Size ParagraphShadowNode::rawContentSize() {
223
223
  Size ParagraphShadowNode::measureContent(
224
224
  const LayoutContext& layoutContext,
225
225
  const LayoutConstraints& layoutConstraints) const {
226
- if constexpr (TextLayoutManagerExtended::supportsPreparedLayout()) {
226
+ if constexpr (TextLayoutManagerExtended::supportsPreparedTextLayout()) {
227
227
  for (const auto& layout : measuredLayouts_) {
228
228
  if (layout.layoutConstraints == layoutConstraints) {
229
229
  return layout.measurement.size;
@@ -239,7 +239,7 @@ Size ParagraphShadowNode::measureContent(
239
239
  .surfaceId = getSurfaceId(),
240
240
  };
241
241
 
242
- if constexpr (TextLayoutManagerExtended::supportsPreparedLayout()) {
242
+ if constexpr (TextLayoutManagerExtended::supportsPreparedTextLayout()) {
243
243
  if (ReactNativeFeatureFlags::enablePreparedTextLayout()) {
244
244
  TextLayoutManagerExtended tme(*textLayoutManager_);
245
245
 
@@ -252,12 +252,12 @@ Size ParagraphShadowNode::measureContent(
252
252
  preparedLayout, textLayoutContext, layoutConstraints);
253
253
 
254
254
  measuredLayouts_.push_back(
255
- MeasuredPreparedLayout{
255
+ MeasuredPreparedTextLayout{
256
256
  .layoutConstraints = layoutConstraints,
257
257
  .measurement = measurement,
258
- // PreparedLayout is not trivially copyable on all platforms
258
+ // PreparedTextLayout is not trivially copyable on all platforms
259
259
  // NOLINTNEXTLINE(performance-move-const-arg)
260
- .preparedLayout = std::move(preparedLayout)});
260
+ .preparedTextLayout = std::move(preparedLayout)});
261
261
  assert_valid_size(measurement.size, layoutConstraints);
262
262
  return measurement.size;
263
263
  }
@@ -317,7 +317,7 @@ void ParagraphShadowNode::layout(LayoutContext layoutContext) {
317
317
  auto measuredLayout = findUsableLayout();
318
318
 
319
319
  if constexpr (
320
- TextLayoutManagerExtended::supportsPreparedLayout() &&
320
+ TextLayoutManagerExtended::supportsPreparedTextLayout() &&
321
321
  std::is_constructible_v<
322
322
  ParagraphState,
323
323
  decltype(content.attributedString),
@@ -56,17 +56,13 @@ inline static bool operator==(const AccessibilityAction &lhs, const Accessibilit
56
56
  return lhs.name == rhs.name && lhs.label == rhs.label;
57
57
  }
58
58
 
59
- inline static bool operator!=(const AccessibilityAction &lhs, const AccessibilityAction &rhs)
60
- {
61
- return !(rhs == lhs);
62
- }
63
-
64
59
  struct AccessibilityState {
65
60
  bool disabled{false};
66
61
  std::optional<bool> selected{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionItemProvider Implementation
67
62
  bool busy{false};
68
63
  std::optional<bool> expanded{std::nullopt};
69
- enum CheckedState { Unchecked, Checked, Mixed, None } checked{None};
64
+ enum CheckedState { Unchecked, Checked, Mixed, None };
65
+ CheckedState checked{CheckedState::None};
70
66
  std::optional<bool> readOnly{std::nullopt}; // [Windows] - Do not remove; required for Windows IRangeValueProvider and IValueProvider Implementation
71
67
  std::optional<bool> multiselectable{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionProvider Implementation
72
68
  std::optional<bool> required{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionProvider Implementation
@@ -78,11 +74,6 @@ constexpr bool operator==(const AccessibilityState &lhs, const AccessibilityStat
78
74
  lhs.busy == rhs.busy && lhs.expanded == rhs.expanded;
79
75
  }
80
76
 
81
- constexpr bool operator!=(const AccessibilityState &lhs, const AccessibilityState &rhs)
82
- {
83
- return !(rhs == lhs);
84
- }
85
-
86
77
  struct AccessibilityLabelledBy {
87
78
  std::vector<std::string> value{};
88
79
  };
@@ -92,11 +83,6 @@ inline static bool operator==(const AccessibilityLabelledBy &lhs, const Accessib
92
83
  return lhs.value == rhs.value;
93
84
  }
94
85
 
95
- inline static bool operator!=(const AccessibilityLabelledBy &lhs, const AccessibilityLabelledBy &rhs)
96
- {
97
- return !(lhs == rhs);
98
- }
99
-
100
86
  struct AccessibilityValue {
101
87
  std::optional<int> min;
102
88
  std::optional<int> max;
@@ -109,11 +95,6 @@ constexpr bool operator==(const AccessibilityValue &lhs, const AccessibilityValu
109
95
  return lhs.min == rhs.min && lhs.max == rhs.max && lhs.now == rhs.now && lhs.text == rhs.text;
110
96
  }
111
97
 
112
- constexpr bool operator!=(const AccessibilityValue &lhs, const AccessibilityValue &rhs)
113
- {
114
- return !(rhs == lhs);
115
- }
116
-
117
98
  enum class ImportantForAccessibility : uint8_t {
118
99
  Auto,
119
100
  Yes,
@@ -0,0 +1,151 @@
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
+
8
+ #include "TouchEventEmitter.h"
9
+
10
+ namespace facebook::react {
11
+
12
+ #pragma mark - Touches
13
+
14
+ static jsi::Value touchesPayload(
15
+ jsi::Runtime& runtime,
16
+ const Touches& touches) {
17
+ auto array = jsi::Array(runtime, touches.size());
18
+ int i = 0;
19
+ for (const auto& touch : touches) {
20
+ auto object = jsi::Object(runtime);
21
+ setTouchPayloadOnObject(object, runtime, touch);
22
+ array.setValueAtIndex(runtime, i++, object);
23
+ }
24
+ return array;
25
+ }
26
+
27
+ static jsi::Value touchEventPayload(
28
+ jsi::Runtime& runtime,
29
+ const TouchEvent& event) {
30
+ auto object = jsi::Object(runtime);
31
+ object.setProperty(
32
+ runtime, "touches", touchesPayload(runtime, event.touches));
33
+ object.setProperty(
34
+ runtime, "changedTouches", touchesPayload(runtime, event.changedTouches));
35
+ object.setProperty(
36
+ runtime, "targetTouches", touchesPayload(runtime, event.targetTouches));
37
+
38
+ if (!event.changedTouches.empty()) {
39
+ const auto& firstChangedTouch = *event.changedTouches.begin();
40
+ setTouchPayloadOnObject(object, runtime, firstChangedTouch);
41
+ }
42
+ return object;
43
+ }
44
+
45
+ void TouchEventEmitter::dispatchTouchEvent(
46
+ std::string type,
47
+ TouchEvent event,
48
+ RawEvent::Category category) const {
49
+ dispatchEvent(
50
+ std::move(type),
51
+ [event = std::move(event)](jsi::Runtime& runtime) {
52
+ return touchEventPayload(runtime, event);
53
+ },
54
+ category);
55
+ }
56
+
57
+ void TouchEventEmitter::dispatchPointerEvent(
58
+ std::string type,
59
+ PointerEvent event,
60
+ RawEvent::Category category) const {
61
+ dispatchEvent(
62
+ std::move(type),
63
+ std::make_shared<PointerEvent>(std::move(event)),
64
+ category);
65
+ }
66
+
67
+ void TouchEventEmitter::onTouchStart(TouchEvent event) const {
68
+ dispatchTouchEvent(
69
+ "touchStart", std::move(event), RawEvent::Category::ContinuousStart);
70
+ }
71
+
72
+ void TouchEventEmitter::onTouchMove(TouchEvent event) const {
73
+ dispatchUniqueEvent(
74
+ "touchMove", [event = std::move(event)](jsi::Runtime& runtime) {
75
+ return touchEventPayload(runtime, event);
76
+ });
77
+ }
78
+
79
+ void TouchEventEmitter::onTouchEnd(TouchEvent event) const {
80
+ dispatchTouchEvent(
81
+ "touchEnd", std::move(event), RawEvent::Category::ContinuousEnd);
82
+ }
83
+
84
+ void TouchEventEmitter::onTouchCancel(TouchEvent event) const {
85
+ dispatchTouchEvent(
86
+ "touchCancel", std::move(event), RawEvent::Category::ContinuousEnd);
87
+ }
88
+
89
+ void TouchEventEmitter::onAuxClick(PointerEvent event) const {
90
+ dispatchPointerEvent("auxClick", std::move(event), RawEvent::Category::Discrete);
91
+ }
92
+
93
+ void TouchEventEmitter::onClick(PointerEvent event) const {
94
+ dispatchPointerEvent("click", std::move(event), RawEvent::Category::Discrete);
95
+ }
96
+
97
+ void TouchEventEmitter::onPointerCancel(PointerEvent event) const {
98
+ dispatchPointerEvent(
99
+ "pointerCancel", std::move(event), RawEvent::Category::ContinuousEnd);
100
+ }
101
+
102
+ void TouchEventEmitter::onPointerDown(PointerEvent event) const {
103
+ dispatchPointerEvent(
104
+ "pointerDown", std::move(event), RawEvent::Category::ContinuousStart);
105
+ }
106
+
107
+ void TouchEventEmitter::onPointerMove(PointerEvent event) const {
108
+ dispatchUniqueEvent(
109
+ "pointerMove", std::make_shared<PointerEvent>(std::move(event)));
110
+ }
111
+
112
+ void TouchEventEmitter::onPointerUp(PointerEvent event) const {
113
+ dispatchPointerEvent(
114
+ "pointerUp", std::move(event), RawEvent::Category::ContinuousEnd);
115
+ }
116
+
117
+ void TouchEventEmitter::onPointerEnter(PointerEvent event) const {
118
+ dispatchPointerEvent(
119
+ "pointerEnter", std::move(event), RawEvent::Category::ContinuousStart);
120
+ }
121
+
122
+ void TouchEventEmitter::onPointerLeave(PointerEvent event) const {
123
+ dispatchPointerEvent(
124
+ "pointerLeave", std::move(event), RawEvent::Category::ContinuousEnd);
125
+ }
126
+
127
+ void TouchEventEmitter::onPointerOver(PointerEvent event) const {
128
+ dispatchPointerEvent(
129
+ "pointerOver", std::move(event), RawEvent::Category::ContinuousStart);
130
+ }
131
+
132
+ void TouchEventEmitter::onPointerOut(PointerEvent event) const {
133
+ dispatchPointerEvent(
134
+ "pointerOut", std::move(event), RawEvent::Category::ContinuousStart);
135
+ }
136
+
137
+ void TouchEventEmitter::onGotPointerCapture(PointerEvent event) const {
138
+ dispatchPointerEvent(
139
+ "gotPointerCapture",
140
+ std::move(event),
141
+ RawEvent::Category::ContinuousStart);
142
+ }
143
+
144
+ void TouchEventEmitter::onLostPointerCapture(PointerEvent event) const {
145
+ dispatchPointerEvent(
146
+ "lostPointerCapture",
147
+ std::move(event),
148
+ RawEvent::Category::ContinuousEnd);
149
+ }
150
+
151
+ } // namespace facebook::react
@@ -0,0 +1,50 @@
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
+
8
+ #pragma once
9
+
10
+ #include <react/renderer/components/view/PointerEvent.h>
11
+ #include <react/renderer/components/view/TouchEvent.h>
12
+ #include <react/renderer/core/EventEmitter.h>
13
+ #include <react/renderer/core/LayoutMetrics.h>
14
+ #include <react/renderer/core/ReactPrimitives.h>
15
+ #include <react/renderer/debug/DebugStringConvertible.h>
16
+
17
+ namespace facebook::react {
18
+
19
+ class TouchEventEmitter;
20
+
21
+ using SharedTouchEventEmitter = std::shared_ptr<const TouchEventEmitter>;
22
+
23
+ class TouchEventEmitter : public EventEmitter {
24
+ public:
25
+ using EventEmitter::EventEmitter;
26
+
27
+ void onTouchStart(TouchEvent event) const;
28
+ void onTouchMove(TouchEvent event) const;
29
+ void onTouchEnd(TouchEvent event) const;
30
+ void onTouchCancel(TouchEvent event) const;
31
+
32
+ void onAuxClick(PointerEvent event) const; // [Windows]
33
+ void onClick(PointerEvent event) const;
34
+ void onPointerCancel(PointerEvent event) const;
35
+ void onPointerDown(PointerEvent event) const;
36
+ void onPointerMove(PointerEvent event) const;
37
+ void onPointerUp(PointerEvent event) const;
38
+ void onPointerEnter(PointerEvent event) const;
39
+ void onPointerLeave(PointerEvent event) const;
40
+ void onPointerOver(PointerEvent event) const;
41
+ void onPointerOut(PointerEvent event) const;
42
+ void onGotPointerCapture(PointerEvent event) const;
43
+ void onLostPointerCapture(PointerEvent event) const;
44
+
45
+ private:
46
+ void dispatchTouchEvent(std::string type, TouchEvent event, RawEvent::Category category) const;
47
+ void dispatchPointerEvent(std::string type, PointerEvent event, RawEvent::Category category) const;
48
+ };
49
+
50
+ } // namespace facebook::react
@@ -0,0 +1,178 @@
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
+
8
+ #include "MapBuffer.h"
9
+ #include <react/renderer/mapbuffer/MapBufferBuilder.h>
10
+
11
+ namespace facebook::react {
12
+
13
+ static inline int32_t bucketOffset(int32_t index) {
14
+ return sizeof(MapBuffer::Header) + sizeof(MapBuffer::Bucket) * index;
15
+ }
16
+
17
+ static inline int32_t valueOffset(int32_t bucketIndex) {
18
+ return bucketOffset(bucketIndex) + offsetof(MapBuffer::Bucket, data);
19
+ }
20
+
21
+ // TODO T83483191: Extend MapBuffer C++ implementation to support basic random
22
+ // access
23
+ MapBuffer::MapBuffer(std::vector<uint8_t> data) : bytes_(std::move(data)) {
24
+ auto header = reinterpret_cast<const Header*>(bytes_.data());
25
+ count_ = header->count;
26
+
27
+ if (static_cast<size_t>(header->bufferSize) != bytes_.size()) { // [Windows #16261]
28
+ LOG(ERROR) << "Error: Data size does not match, expected "
29
+ << header->bufferSize << " found: " << bytes_.size();
30
+ abort();
31
+ }
32
+ }
33
+
34
+ int32_t MapBuffer::getKeyBucket(Key key) const {
35
+ int32_t lo = 0;
36
+ int32_t hi = count_ - 1;
37
+ while (lo <= hi) {
38
+ int32_t mid = (lo + hi) >> 1;
39
+
40
+ Key midVal =
41
+ *reinterpret_cast<const Key*>(bytes_.data() + bucketOffset(mid));
42
+
43
+ if (midVal < key) {
44
+ lo = mid + 1;
45
+ } else if (midVal > key) {
46
+ hi = mid - 1;
47
+ } else {
48
+ return mid;
49
+ }
50
+ }
51
+
52
+ return -1;
53
+ }
54
+
55
+ inline int32_t MapBuffer::getIntAtBucket(int32_t bucketIndex) const {
56
+ return *reinterpret_cast<const int32_t*>(
57
+ bytes_.data() + valueOffset(bucketIndex));
58
+ }
59
+
60
+ int32_t MapBuffer::getInt(Key key) const {
61
+ auto bucketIndex = getKeyBucket(key);
62
+ react_native_assert(bucketIndex != -1 && "Key not found in MapBuffer");
63
+ if (bucketIndex == -1) {
64
+ return 0;
65
+ }
66
+
67
+ return getIntAtBucket(bucketIndex);
68
+ }
69
+
70
+ int64_t MapBuffer::getLong(Key key) const {
71
+ auto bucketIndex = getKeyBucket(key);
72
+ react_native_assert(bucketIndex != -1 && "Key not found in MapBuffer");
73
+ if (bucketIndex == -1) {
74
+ return 0;
75
+ }
76
+
77
+ return *reinterpret_cast<const int64_t*>(
78
+ bytes_.data() + valueOffset(bucketIndex));
79
+ }
80
+
81
+ bool MapBuffer::getBool(Key key) const {
82
+ return getInt(key) != 0;
83
+ }
84
+
85
+ double MapBuffer::getDouble(Key key) const {
86
+ auto bucketIndex = getKeyBucket(key);
87
+ react_native_assert(bucketIndex != -1 && "Key not found in MapBuffer");
88
+ if (bucketIndex == -1) {
89
+ return 0;
90
+ }
91
+
92
+ return *reinterpret_cast<const double*>(
93
+ bytes_.data() + valueOffset(bucketIndex));
94
+ }
95
+
96
+ int32_t MapBuffer::getDynamicDataOffset() const {
97
+ // The start of dynamic data can be calculated as the offset of the next
98
+ // key in the map
99
+ return bucketOffset(count_);
100
+ }
101
+
102
+ std::string MapBuffer::getString(Key key) const {
103
+ auto bucketIndex = getKeyBucket(key);
104
+ react_native_assert(bucketIndex != -1 && "Key not found in MapBuffer");
105
+ if (bucketIndex == -1) {
106
+ return "";
107
+ }
108
+
109
+ int32_t offset = getDynamicDataOffset() + getIntAtBucket(bucketIndex);
110
+ int32_t stringLength =
111
+ *reinterpret_cast<const int32_t*>(bytes_.data() + offset);
112
+ const uint8_t* stringPtr = bytes_.data() + offset + sizeof(int);
113
+
114
+ return {stringPtr, stringPtr + stringLength};
115
+ }
116
+
117
+ MapBuffer MapBuffer::getMapBuffer(Key key) const {
118
+ auto bucketIndex = getKeyBucket(key);
119
+ react_native_assert(bucketIndex != -1 && "Key not found in MapBuffer");
120
+ if (bucketIndex == -1) {
121
+ return MapBufferBuilder::EMPTY();
122
+ }
123
+
124
+ int32_t offset = getDynamicDataOffset() + getIntAtBucket(bucketIndex);
125
+ int32_t mapBufferLength =
126
+ *reinterpret_cast<const int32_t*>(bytes_.data() + offset);
127
+ int32_t maxLength = static_cast<int32_t>(bytes_.size() - offset - sizeof(int32_t)); // [Windows #16261]
128
+ if (mapBufferLength > maxLength) {
129
+ mapBufferLength = maxLength;
130
+ }
131
+
132
+ std::vector<uint8_t> value(mapBufferLength);
133
+
134
+ memcpy(
135
+ value.data(), bytes_.data() + offset + sizeof(int32_t), mapBufferLength);
136
+
137
+ return MapBuffer(std::move(value));
138
+ }
139
+
140
+ std::vector<MapBuffer> MapBuffer::getMapBufferList(MapBuffer::Key key) const {
141
+ auto bucketIndex = getKeyBucket(key);
142
+ react_native_assert(bucketIndex != -1 && "Key not found in MapBuffer");
143
+ if (bucketIndex == -1) {
144
+ return {};
145
+ }
146
+
147
+ std::vector<MapBuffer> mapBufferList;
148
+ int32_t offset = getDynamicDataOffset() + getIntAtBucket(bucketIndex);
149
+ int32_t mapBufferListLength =
150
+ *reinterpret_cast<const int32_t*>(bytes_.data() + offset);
151
+ offset = offset + sizeof(uint32_t);
152
+
153
+ int32_t curLen = 0;
154
+ while (curLen < mapBufferListLength) {
155
+ int32_t mapBufferLength =
156
+ *reinterpret_cast<const int32_t*>(bytes_.data() + offset + curLen);
157
+ curLen = curLen + sizeof(uint32_t);
158
+ std::vector<uint8_t> value(mapBufferLength);
159
+ memcpy(value.data(), bytes_.data() + offset + curLen, mapBufferLength);
160
+ mapBufferList.emplace_back(std::move(value));
161
+ curLen = curLen + mapBufferLength;
162
+ }
163
+ return mapBufferList;
164
+ }
165
+
166
+ size_t MapBuffer::size() const {
167
+ return bytes_.size();
168
+ }
169
+
170
+ const uint8_t* MapBuffer::data() const {
171
+ return bytes_.data();
172
+ }
173
+
174
+ uint16_t MapBuffer::count() const {
175
+ return count_;
176
+ }
177
+
178
+ } // namespace facebook::react