react-native-windows 0.68.3 → 0.69.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 (378) hide show
  1. package/.flowconfig +1 -3
  2. package/Chakra/ChakraHelpers.cpp +0 -1
  3. package/Directory.Build.props +3 -0
  4. package/Directory.Build.targets +1 -1
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
  6. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
  8. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  9. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  10. package/Libraries/Alert/Alert.windows.js +2 -2
  11. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  12. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  13. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  14. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  16. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  19. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  20. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  21. package/Libraries/AppState/AppState.js +1 -1
  22. package/Libraries/Blob/URL.js +7 -1
  23. package/Libraries/Components/Button.js +3 -0
  24. package/Libraries/Components/Button.windows.js +4 -0
  25. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  26. package/Libraries/Components/Pressable/Pressable.js +3 -3
  27. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  28. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  29. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  30. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  31. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  32. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  33. package/Libraries/Components/Slider/Slider.js +0 -2
  34. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  35. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  36. package/Libraries/Components/Switch/Switch.js +11 -1
  37. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  38. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  39. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  40. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  41. package/Libraries/Components/TextInput/TextInput.js +1 -8
  42. package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
  43. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  44. package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
  45. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  46. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  47. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  48. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
  49. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  50. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  51. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  52. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  53. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
  54. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  55. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  56. package/Libraries/Components/View/View.windows.js +33 -1
  57. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  58. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  59. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
  60. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  61. package/Libraries/Core/ExceptionsManager.js +1 -1
  62. package/Libraries/Core/RawEventEmitter.js +38 -0
  63. package/Libraries/Core/ReactNativeVersion.js +2 -2
  64. package/Libraries/Core/polyfillPromise.js +32 -0
  65. package/Libraries/Core/setUpReactDevTools.js +3 -2
  66. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  67. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  68. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  69. package/Libraries/Events/CustomEvent.js +32 -0
  70. package/Libraries/Events/EventPolyfill.js +239 -0
  71. package/Libraries/Image/Image.android.js +0 -6
  72. package/Libraries/Image/Image.ios.js +0 -6
  73. package/Libraries/Image/Image.windows.js +2 -8
  74. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  75. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  76. package/Libraries/Inspector/Inspector.js +2 -4
  77. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  78. package/Libraries/Interaction/InteractionManager.js +1 -12
  79. package/Libraries/Interaction/TaskQueue.js +5 -4
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  81. package/Libraries/Linking/Linking.js +1 -1
  82. package/Libraries/Lists/FlatList.js +27 -6
  83. package/Libraries/Lists/VirtualizedList.js +71 -55
  84. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  85. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  86. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  87. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  88. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  89. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  90. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
  91. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
  92. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  93. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  94. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  95. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  96. package/Libraries/LogBox/LogBox.js +2 -21
  97. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  98. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  99. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  101. package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
  102. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  103. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  104. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  105. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  106. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  107. package/Libraries/Network/FormData.js +7 -1
  108. package/Libraries/Pressability/Pressability.js +115 -46
  109. package/Libraries/Pressability/Pressability.windows.js +190 -74
  110. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  111. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  112. package/Libraries/ReactNative/AppContainer.js +1 -1
  113. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  114. package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
  115. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  116. package/Libraries/ReactNative/UIManager.js +2 -3
  117. package/Libraries/ReactNative/renderApplication.js +4 -0
  118. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  119. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  120. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  121. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  124. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  125. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  126. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  127. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  128. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  131. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  132. package/Libraries/StyleSheet/processTransform.windows.js +272 -0
  133. package/Libraries/Text/Text.js +13 -7
  134. package/Libraries/Text/Text.windows.js +16 -7
  135. package/Libraries/Text/TextNativeComponent.js +2 -0
  136. package/Libraries/Text/TextProps.js +10 -0
  137. package/Libraries/Types/CoreEventTypes.js +13 -1
  138. package/Libraries/Types/CoreEventTypes.windows.js +26 -1
  139. package/Libraries/Utilities/Appearance.js +0 -8
  140. package/Libraries/Utilities/HMRClient.js +1 -1
  141. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  142. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  143. package/Libraries/Utilities/stringifySafe.js +4 -1
  144. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  145. package/Libraries/WebSocket/WebSocket.js +1 -1
  146. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  147. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  148. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  149. package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
  150. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
  151. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
  152. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
  153. package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
  154. package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
  155. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
  156. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  157. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
  158. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
  159. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
  160. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
  161. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
  162. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
  163. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
  166. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
  167. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
  168. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
  169. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
  170. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
  171. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
  172. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
  173. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
  174. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
  175. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
  176. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
  179. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
  180. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
  184. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
  185. package/Microsoft.ReactNative/IViewManager.idl +3 -3
  186. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
  187. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
  188. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
  189. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
  190. package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
  191. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
  192. package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
  193. package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
  194. package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
  195. package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
  196. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +14 -1
  197. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  198. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
  199. package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
  200. package/Microsoft.ReactNative/RedBox.cpp +3 -2
  201. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
  202. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
  203. package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
  204. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
  205. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
  206. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
  207. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  208. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
  209. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
  210. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
  211. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  212. package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
  213. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
  214. package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
  215. package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
  216. package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
  217. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
  218. package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
  219. package/Microsoft.ReactNative/XamlView.h +8 -3
  220. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
  221. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  222. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
  223. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -1
  225. package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
  226. package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
  227. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
  228. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
  229. package/Microsoft.ReactNative.Cxx/NativeModules.h +1 -1
  230. package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
  231. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
  232. package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
  233. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
  234. package/Mso/activeObject/activeObject.h +2 -2
  235. package/Mso/compilerAdapters/cppMacros.h +3 -5
  236. package/Mso/errorCode/errorProvider.h +2 -2
  237. package/Mso/errorCode/maybe.h +4 -4
  238. package/Mso/functional/functor.h +6 -6
  239. package/Mso/functional/functorRef.h +2 -2
  240. package/Mso/future/details/executor.h +2 -2
  241. package/Mso/future/details/futureFuncInl.h +4 -4
  242. package/Mso/future/details/ifuture.h +3 -3
  243. package/Mso/future/details/maybeInvoker.h +6 -6
  244. package/Mso/future/details/promiseGroupInl.h +4 -4
  245. package/Mso/future/details/promiseInl.h +4 -4
  246. package/Mso/future/details/resultTraits.h +4 -4
  247. package/Mso/future/details/whenAllInl.h +1 -1
  248. package/Mso/future/future.h +13 -13
  249. package/Mso/guid/msoGuidDetails.h +1 -1
  250. package/Mso/memoryApi/memoryApi.h +13 -7
  251. package/Mso/motifCpp/gTestAdapter.h +1 -1
  252. package/Mso/motifCpp/testInfo.h +7 -9
  253. package/Mso/object/make.h +8 -8
  254. package/Mso/object/objectRefCount.h +3 -5
  255. package/Mso/object/objectWithWeakRef.h +10 -14
  256. package/Mso/object/queryCast.h +4 -4
  257. package/Mso/object/refCountedObject.h +4 -4
  258. package/Mso/object/unknownObject.h +7 -7
  259. package/Mso/platformAdapters/windowsFirst.h +1 -1
  260. package/Mso/smartPtr/cntPtr.h +8 -8
  261. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
  262. package/Mso/src/future/futureImpl.h +1 -1
  263. package/Mso/src/memoryApi/memoryApi.cpp +4 -4
  264. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  265. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
  266. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
  267. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  268. package/PropertySheets/React.Cpp.props +13 -0
  269. package/PropertySheets/WinUI.props +3 -6
  270. package/ReactCommon/ReactCommon.vcxproj +2 -4
  271. package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
  276. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
  277. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
  278. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
  279. package/ReactCommon/Yoga.cpp +1 -1
  280. package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
  281. package/Scripts/OfficeReact.Win32.nuspec +1 -3
  282. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
  283. package/Scripts/copyRNLibraries.js +8 -8
  284. package/Scripts/just.js +1 -1
  285. package/Scripts/rnw-dependencies.ps1 +41 -10
  286. package/Scripts/run-desktop-integration-tests.js +6 -6
  287. package/Shared/AbiSafe.h +3 -3
  288. package/Shared/BaseScriptStoreImpl.cpp +1 -1
  289. package/Shared/CppRuntimeOptions.h +50 -0
  290. package/Shared/DevSupportManager.cpp +32 -36
  291. package/Shared/DevSupportManager.h +1 -2
  292. package/Shared/HermesRuntimeHolder.cpp +23 -14
  293. package/Shared/HermesRuntimeHolder.h +8 -2
  294. package/Shared/IDevSupportManager.h +1 -2
  295. package/Shared/InspectorPackagerConnection.cpp +7 -5
  296. package/Shared/InspectorPackagerConnection.h +2 -2
  297. package/Shared/JSI/ChakraApi.cpp +0 -1
  298. package/Shared/JSI/ChakraRuntime.cpp +1 -2
  299. package/Shared/JSI/RuntimeHolder.h +2 -0
  300. package/Shared/Modules/HttpModule.cpp +1 -1
  301. package/Shared/Modules/HttpModule.h +2 -2
  302. package/Shared/Modules/WebSocketModule.cpp +1 -1
  303. package/Shared/Modules/WebSocketModule.h +8 -5
  304. package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
  305. package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
  306. package/Shared/Networking/OriginPolicy.h +15 -0
  307. package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
  308. package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
  309. package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
  310. package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
  311. package/Shared/Networking/WinRTTypes.h +30 -0
  312. package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
  313. package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
  314. package/Shared/OInstance.cpp +5 -5
  315. package/Shared/RuntimeOptions.cpp +93 -15
  316. package/Shared/RuntimeOptions.h +22 -9
  317. package/Shared/Shared.vcxitems +122 -7
  318. package/Shared/Shared.vcxitems.filters +40 -21
  319. package/Shared/Threading/BatchingQueueThread.cpp +1 -1
  320. package/Shared/tracing/fbsystrace.h +2 -2
  321. package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
  322. package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
  323. package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
  324. package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
  325. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  326. package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
  327. package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
  328. package/codegen/react/components/rnwcore/Props.cpp +0 -13
  329. package/codegen/react/components/rnwcore/Props.h +0 -16
  330. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  331. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
  332. package/include/Shared/cdebug.h +9 -9
  333. package/index.js +30 -25
  334. package/index.windows.js +30 -25
  335. package/jest/preprocessor.js +24 -107
  336. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  337. package/metro.config.js +3 -70
  338. package/package.json +29 -28
  339. package/react-native.config.js +40 -6
  340. package/rntypes/index.d.ts +19 -7
  341. package/stubs/glog/logging.h +1 -1
  342. package/template/cpp-app/src/App.h +0 -4
  343. package/template/cs-app/src/App.xaml.cs +0 -5
  344. package/template/cs-app/src/MainPage.xaml.cs +1 -10
  345. package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
  346. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
  347. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
  348. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
  349. package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
  350. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
  351. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
  352. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
  353. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
  354. package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
  355. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
  356. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
  357. package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
  358. package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
  359. package/template/metro.devMode.config.js +2 -51
  360. package/typings-index.js +5 -1
  361. package/typings-index.js.map +1 -1
  362. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  363. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  364. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  365. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
  366. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  367. package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
  368. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  369. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  370. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  371. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  372. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  373. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  374. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  375. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  376. package/PropertySheets/CppEnablePackageReferences.props +0 -13
  377. package/Shared/cdebug.cpp +0 -6
  378. package/include/Shared/ViewManager.h +0 -34
@@ -24,6 +24,8 @@ import Platform from '../Utilities/Platform';
24
24
  import UIManager from '../ReactNative/UIManager';
25
25
  import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
26
26
  import * as React from 'react';
27
+ import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
28
+ import {type PointerEvent} from '../Types/CoreEventTypes';
27
29
 
28
30
  export type PressabilityConfig = $ReadOnly<{|
29
31
  /**
@@ -158,6 +160,8 @@ export type EventHandlers = $ReadOnly<{|
158
160
  onFocus: (event: FocusEvent) => void,
159
161
  onMouseEnter?: (event: MouseEvent) => void,
160
162
  onMouseLeave?: (event: MouseEvent) => void,
163
+ onPointerEnter2?: (event: PointerEvent) => void,
164
+ onPointerLeave2?: (event: PointerEvent) => void,
161
165
  onResponderGrant: (event: PressEvent) => void,
162
166
  onResponderMove: (event: PressEvent) => void,
163
167
  onResponderRelease: (event: PressEvent) => void,
@@ -549,58 +553,108 @@ export default class Pressability {
549
553
  () => this._config;
550
554
  }
551
555
 
552
- const mouseEventHandlers =
553
- Platform.OS === 'ios' || Platform.OS === 'android'
554
- ? null
555
- : {
556
- onMouseEnter: (event: MouseEvent): void => {
557
- if (isHoverEnabled()) {
558
- this._isHovered = true;
559
- this._cancelHoverOutDelayTimeout();
560
- const {onHoverIn} = this._config;
561
- if (onHoverIn != null) {
562
- const delayHoverIn = normalizeDelay(
563
- this._config.delayHoverIn,
564
- );
565
- if (delayHoverIn > 0) {
566
- event.persist();
567
- this._hoverInDelayTimeout = setTimeout(() => {
556
+ if (
557
+ ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()
558
+ ) {
559
+ const hoverPointerEvents = {
560
+ onPointerEnter2: undefined,
561
+ onPointerLeave2: undefined,
562
+ };
563
+ const {onHoverIn, onHoverOut} = this._config;
564
+ if (onHoverIn != null) {
565
+ hoverPointerEvents.onPointerEnter2 = (event: PointerEvent) => {
566
+ this._isHovered = true;
567
+ this._cancelHoverOutDelayTimeout();
568
+ if (onHoverIn != null) {
569
+ const delayHoverIn = normalizeDelay(this._config.delayHoverIn);
570
+ if (delayHoverIn > 0) {
571
+ event.persist();
572
+ this._hoverInDelayTimeout = setTimeout(() => {
573
+ onHoverIn(convertPointerEventToMouseEvent(event));
574
+ }, delayHoverIn);
575
+ } else {
576
+ onHoverIn(convertPointerEventToMouseEvent(event));
577
+ }
578
+ }
579
+ };
580
+ }
581
+ if (onHoverOut != null) {
582
+ hoverPointerEvents.onPointerLeave2 = (event: PointerEvent) => {
583
+ if (this._isHovered) {
584
+ this._isHovered = false;
585
+ this._cancelHoverInDelayTimeout();
586
+ if (onHoverOut != null) {
587
+ const delayHoverOut = normalizeDelay(this._config.delayHoverOut);
588
+ if (delayHoverOut > 0) {
589
+ event.persist();
590
+ this._hoverOutDelayTimeout = setTimeout(() => {
591
+ onHoverOut(convertPointerEventToMouseEvent(event));
592
+ }, delayHoverOut);
593
+ } else {
594
+ onHoverOut(convertPointerEventToMouseEvent(event));
595
+ }
596
+ }
597
+ }
598
+ };
599
+ }
600
+ return {
601
+ ...focusEventHandlers,
602
+ ...responderEventHandlers,
603
+ ...hoverPointerEvents,
604
+ };
605
+ } else {
606
+ const mouseEventHandlers =
607
+ Platform.OS === 'ios' || Platform.OS === 'android'
608
+ ? null
609
+ : {
610
+ onMouseEnter: (event: MouseEvent): void => {
611
+ if (isHoverEnabled()) {
612
+ this._isHovered = true;
613
+ this._cancelHoverOutDelayTimeout();
614
+ const {onHoverIn} = this._config;
615
+ if (onHoverIn != null) {
616
+ const delayHoverIn = normalizeDelay(
617
+ this._config.delayHoverIn,
618
+ );
619
+ if (delayHoverIn > 0) {
620
+ event.persist();
621
+ this._hoverInDelayTimeout = setTimeout(() => {
622
+ onHoverIn(event);
623
+ }, delayHoverIn);
624
+ } else {
568
625
  onHoverIn(event);
569
- }, delayHoverIn);
570
- } else {
571
- onHoverIn(event);
626
+ }
572
627
  }
573
628
  }
574
- }
575
- },
576
-
577
- onMouseLeave: (event: MouseEvent): void => {
578
- if (this._isHovered) {
579
- this._isHovered = false;
580
- this._cancelHoverInDelayTimeout();
581
- const {onHoverOut} = this._config;
582
- if (onHoverOut != null) {
583
- const delayHoverOut = normalizeDelay(
584
- this._config.delayHoverOut,
585
- );
586
- if (delayHoverOut > 0) {
587
- event.persist();
588
- this._hoverInDelayTimeout = setTimeout(() => {
629
+ },
630
+
631
+ onMouseLeave: (event: MouseEvent): void => {
632
+ if (this._isHovered) {
633
+ this._isHovered = false;
634
+ this._cancelHoverInDelayTimeout();
635
+ const {onHoverOut} = this._config;
636
+ if (onHoverOut != null) {
637
+ const delayHoverOut = normalizeDelay(
638
+ this._config.delayHoverOut,
639
+ );
640
+ if (delayHoverOut > 0) {
641
+ event.persist();
642
+ this._hoverInDelayTimeout = setTimeout(() => {
643
+ onHoverOut(event);
644
+ }, delayHoverOut);
645
+ } else {
589
646
  onHoverOut(event);
590
- }, delayHoverOut);
591
- } else {
592
- onHoverOut(event);
647
+ }
593
648
  }
594
649
  }
595
- }
596
- },
597
- };
598
-
599
- return {
600
- ...focusEventHandlers,
601
- ...responderEventHandlers,
602
- ...mouseEventHandlers,
603
- };
650
+ },
651
+ };
652
+ return {
653
+ ...focusEventHandlers,
654
+ ...responderEventHandlers,
655
+ ...mouseEventHandlers,
656
+ };
657
+ }
604
658
  }
605
659
 
606
660
  /**
@@ -879,3 +933,18 @@ const getTouchFromPressEvent = (event: PressEvent) => {
879
933
  }
880
934
  return event.nativeEvent;
881
935
  };
936
+
937
+ function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
938
+ const {touchHistory: _, ...synthEvent} = input;
939
+ const {clientX, clientY, timestamp} = input.nativeEvent;
940
+ return {
941
+ ...synthEvent,
942
+ nativeEvent: {
943
+ clientX,
944
+ clientY,
945
+ pageX: clientX,
946
+ pageY: clientY,
947
+ timestamp,
948
+ },
949
+ };
950
+ }
@@ -25,6 +25,8 @@ import Platform from '../Utilities/Platform';
25
25
  import UIManager from '../ReactNative/UIManager';
26
26
  import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
27
27
  import * as React from 'react';
28
+ import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
29
+ import {type PointerEvent} from '../Types/CoreEventTypes';
28
30
 
29
31
  export type PressabilityConfig = $ReadOnly<{|
30
32
  /**
@@ -185,6 +187,8 @@ export type EventHandlers = $ReadOnly<{|
185
187
  onFocus: (event: FocusEvent) => void,
186
188
  onMouseEnter?: (event: MouseEvent) => void,
187
189
  onMouseLeave?: (event: MouseEvent) => void,
190
+ onPointerEnter2?: (event: PointerEvent) => void,
191
+ onPointerLeave2?: (event: PointerEvent) => void,
188
192
  onResponderGrant: (event: PressEvent) => void,
189
193
  onResponderMove: (event: PressEvent) => void,
190
194
  onResponderRelease: (event: PressEvent) => void,
@@ -282,20 +286,20 @@ const Transitions = Object.freeze({
282
286
  },
283
287
  });
284
288
 
285
- const isActiveSignal = (signal) =>
289
+ const isActiveSignal = signal =>
286
290
  signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
287
291
  signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
288
292
 
289
- const isActivationSignal = (signal) =>
293
+ const isActivationSignal = signal =>
290
294
  signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||
291
295
  signal === 'RESPONDER_ACTIVE_PRESS_IN';
292
296
 
293
- const isPressInSignal = (signal) =>
297
+ const isPressInSignal = signal =>
294
298
  signal === 'RESPONDER_INACTIVE_PRESS_IN' ||
295
299
  signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
296
300
  signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
297
301
 
298
- const isTerminalSignal = (signal) =>
302
+ const isTerminalSignal = signal =>
299
303
  signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';
300
304
 
301
305
  const DEFAULT_LONG_PRESS_DELAY_MS = 500;
@@ -486,7 +490,6 @@ export default class Pressability {
486
490
 
487
491
  onResponderGrant: (event: PressEvent): void => {
488
492
  event.persist();
489
-
490
493
  this._cancelPressOutDelayTimeout();
491
494
 
492
495
  this._responderID = event.currentTarget;
@@ -580,65 +583,6 @@ export default class Pressability {
580
583
  () => this._config;
581
584
  }
582
585
 
583
- const mouseEventHandlers =
584
- Platform.OS === 'ios' || Platform.OS === 'android'
585
- ? null
586
- : {
587
- onMouseEnter: (event: MouseEvent): void => {
588
- // [Windows Add attached raw mouse event handler for compat
589
- if (this._config.onMouseEnter) {
590
- this._config.onMouseEnter(event);
591
- }
592
- // Windows]
593
-
594
- if (isHoverEnabled()) {
595
- this._isHovered = true;
596
- this._cancelHoverOutDelayTimeout();
597
- const {onHoverIn} = this._config;
598
- if (onHoverIn != null) {
599
- const delayHoverIn = normalizeDelay(
600
- this._config.delayHoverIn,
601
- );
602
- if (delayHoverIn > 0) {
603
- event.persist();
604
- this._hoverInDelayTimeout = setTimeout(() => {
605
- onHoverIn(event);
606
- }, delayHoverIn);
607
- } else {
608
- onHoverIn(event);
609
- }
610
- }
611
- }
612
- },
613
-
614
- onMouseLeave: (event: MouseEvent): void => {
615
- // [Windows Add attached raw mouse event handler for compat
616
- if (this._config.onMouseLeave) {
617
- this._config.onMouseLeave(event);
618
- }
619
- // Windows]
620
-
621
- if (this._isHovered) {
622
- this._isHovered = false;
623
- this._cancelHoverInDelayTimeout();
624
- const {onHoverOut} = this._config;
625
- if (onHoverOut != null) {
626
- const delayHoverOut = normalizeDelay(
627
- this._config.delayHoverOut,
628
- );
629
- if (delayHoverOut > 0) {
630
- event.persist();
631
- this._hoverInDelayTimeout = setTimeout(() => {
632
- onHoverOut(event);
633
- }, delayHoverOut);
634
- } else {
635
- onHoverOut(event);
636
- }
637
- }
638
- }
639
- },
640
- };
641
-
642
586
  // [Windows
643
587
  const keyboardEventHandlers = {
644
588
  onKeyUp: (event: KeyEvent): void => {
@@ -676,12 +620,123 @@ export default class Pressability {
676
620
  };
677
621
  // Windows]
678
622
 
679
- return {
680
- ...focusEventHandlers,
681
- ...responderEventHandlers,
682
- ...mouseEventHandlers,
683
- ...keyboardEventHandlers, // [Windows]
684
- };
623
+ if (
624
+ ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()
625
+ ) {
626
+ const hoverPointerEvents = {
627
+ onPointerEnter2: undefined,
628
+ onPointerLeave2: undefined,
629
+ };
630
+ const {onHoverIn, onHoverOut} = this._config;
631
+ if (onHoverIn != null) {
632
+ hoverPointerEvents.onPointerEnter2 = (event: PointerEvent) => {
633
+ this._isHovered = true;
634
+ this._cancelHoverOutDelayTimeout();
635
+ if (onHoverIn != null) {
636
+ const delayHoverIn = normalizeDelay(this._config.delayHoverIn);
637
+ if (delayHoverIn > 0) {
638
+ event.persist();
639
+ this._hoverInDelayTimeout = setTimeout(() => {
640
+ onHoverIn(convertPointerEventToMouseEvent(event));
641
+ }, delayHoverIn);
642
+ } else {
643
+ onHoverIn(convertPointerEventToMouseEvent(event));
644
+ }
645
+ }
646
+ };
647
+ }
648
+ if (onHoverOut != null) {
649
+ hoverPointerEvents.onPointerLeave2 = (event: PointerEvent) => {
650
+ if (this._isHovered) {
651
+ this._isHovered = false;
652
+ this._cancelHoverInDelayTimeout();
653
+ if (onHoverOut != null) {
654
+ const delayHoverOut = normalizeDelay(this._config.delayHoverOut);
655
+ if (delayHoverOut > 0) {
656
+ event.persist();
657
+ this._hoverOutDelayTimeout = setTimeout(() => {
658
+ onHoverOut(convertPointerEventToMouseEvent(event));
659
+ }, delayHoverOut);
660
+ } else {
661
+ onHoverOut(convertPointerEventToMouseEvent(event));
662
+ }
663
+ }
664
+ }
665
+ };
666
+ }
667
+ return {
668
+ ...focusEventHandlers,
669
+ ...responderEventHandlers,
670
+ ...hoverPointerEvents,
671
+ ...keyboardEventHandlers, // [Windows]
672
+ };
673
+ } else {
674
+ const mouseEventHandlers =
675
+ Platform.OS === 'ios' || Platform.OS === 'android'
676
+ ? null
677
+ : {
678
+ onMouseEnter: (event: MouseEvent): void => {
679
+ // [Windows Add attached raw mouse event handler for compat
680
+ if (this._config.onMouseEnter) {
681
+ this._config.onMouseEnter(event);
682
+ }
683
+ // Windows]
684
+
685
+ if (isHoverEnabled()) {
686
+ this._isHovered = true;
687
+ this._cancelHoverOutDelayTimeout();
688
+ const {onHoverIn} = this._config;
689
+ if (onHoverIn != null) {
690
+ const delayHoverIn = normalizeDelay(
691
+ this._config.delayHoverIn,
692
+ );
693
+ if (delayHoverIn > 0) {
694
+ event.persist();
695
+ this._hoverInDelayTimeout = setTimeout(() => {
696
+ onHoverIn(event);
697
+ }, delayHoverIn);
698
+ } else {
699
+ onHoverIn(event);
700
+ }
701
+ }
702
+ }
703
+ },
704
+
705
+ onMouseLeave: (event: MouseEvent): void => {
706
+ // [Windows Add attached raw mouse event handler for compat
707
+ if (this._config.onMouseLeave) {
708
+ this._config.onMouseLeave(event);
709
+ }
710
+ // Windows]
711
+
712
+ if (this._isHovered) {
713
+ this._isHovered = false;
714
+ this._cancelHoverInDelayTimeout();
715
+ const {onHoverOut} = this._config;
716
+ if (onHoverOut != null) {
717
+ const delayHoverOut = normalizeDelay(
718
+ this._config.delayHoverOut,
719
+ );
720
+ if (delayHoverOut > 0) {
721
+ event.persist();
722
+ this._hoverInDelayTimeout = setTimeout(() => {
723
+ onHoverOut(event);
724
+ }, delayHoverOut);
725
+ } else {
726
+ onHoverOut(event);
727
+ }
728
+ }
729
+ }
730
+ },
731
+ };
732
+
733
+ return {
734
+ ...focusEventHandlers,
735
+ ...responderEventHandlers,
736
+ ...mouseEventHandlers,
737
+ ...keyboardEventHandlers, // [Windows]
738
+ };
739
+ }
685
740
  }
686
741
 
687
742
  /**
@@ -722,6 +777,11 @@ export default class Pressability {
722
777
  }
723
778
  }
724
779
 
780
+ // [Windows]
781
+ _isDefaultPressButton(button) {
782
+ return !button; // Treat 0 or undefined as default press
783
+ }
784
+
725
785
  /**
726
786
  * Performs a transition between touchable states and identify any activations
727
787
  * or deactivations (and callback invocations).
@@ -771,7 +831,11 @@ export default class Pressability {
771
831
  this._deactivate(event);
772
832
  }
773
833
  const {onLongPress, onPress, android_disableSound} = this._config;
774
- if (onPress != null) {
834
+
835
+ if (
836
+ onPress != null &&
837
+ this._isDefaultPressButton(getTouchFromPressEvent(event).button)
838
+ ) {
775
839
  const isPressCanceledByLongPress =
776
840
  onLongPress != null &&
777
841
  prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&
@@ -790,17 +854,20 @@ export default class Pressability {
790
854
 
791
855
  _activate(event: PressEvent): void {
792
856
  const {onPressIn} = this._config;
793
- const {pageX, pageY} = getTouchFromPressEvent(event);
857
+ const {pageX, pageY, button} = getTouchFromPressEvent(event);
794
858
  this._touchActivatePosition = {pageX, pageY};
795
859
  this._touchActivateTime = Date.now();
796
- if (onPressIn != null) {
860
+ if (onPressIn != null && button === 0) {
797
861
  onPressIn(event);
798
862
  }
799
863
  }
800
864
 
801
865
  _deactivate(event: PressEvent): void {
802
866
  const {onPressOut} = this._config;
803
- if (onPressOut != null) {
867
+ if (
868
+ onPressOut != null &&
869
+ this._isDefaultPressButton(getTouchFromPressEvent(event).button)
870
+ ) {
804
871
  const minPressDuration = normalizeDelay(
805
872
  this._config.minPressDuration,
806
873
  0,
@@ -960,3 +1027,52 @@ const getTouchFromPressEvent = (event: PressEvent) => {
960
1027
  }
961
1028
  return event.nativeEvent;
962
1029
  };
1030
+
1031
+ function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
1032
+ const {touchHistory: _, ...synthEvent} = input;
1033
+ const {clientX, clientY, timestamp} = input.nativeEvent;
1034
+ // [Windows
1035
+ const {
1036
+ pointerType,
1037
+ pressure,
1038
+ isLeftButton,
1039
+ isRightButton,
1040
+ isMiddleButton,
1041
+ isBarrelButtonPressed,
1042
+ isHorizontalScrollWheel,
1043
+ isEraser,
1044
+ shiftKey,
1045
+ ctrlKey,
1046
+ altKey,
1047
+ } = input.nativeEvent;
1048
+ // Windows]
1049
+ return {
1050
+ ...synthEvent,
1051
+ nativeEvent: {
1052
+ clientX,
1053
+ clientY,
1054
+ pageX: clientX,
1055
+ pageY: clientY,
1056
+ timestamp,
1057
+ // [Windows
1058
+ target:
1059
+ input.nativeEvent.target ??
1060
+ (typeof input.target === 'number' ? input.target : -1),
1061
+ identifier: input.nativeEvent.pointerId,
1062
+ locationX: clientX,
1063
+ locationY: clientY,
1064
+ pointerType,
1065
+ force: pressure,
1066
+ isLeftButton,
1067
+ isRightButton,
1068
+ isMiddleButton,
1069
+ isBarrelButtonPressed,
1070
+ isHorizontalScrollWheel,
1071
+ isEraser,
1072
+ shiftKey,
1073
+ ctrlKey,
1074
+ altKey,
1075
+ // Windows]
1076
+ },
1077
+ };
1078
+ }
@@ -10,18 +10,14 @@
10
10
 
11
11
  import normalizeColor from '../StyleSheet/normalizeColor';
12
12
  import type {ColorValue} from '../StyleSheet/StyleSheet';
13
+ import {normalizeRect, type RectOrSize} from '../StyleSheet/Rect';
13
14
 
14
15
  import View from '../Components/View/View';
15
16
  import * as React from 'react';
16
17
 
17
18
  type Props = $ReadOnly<{|
18
19
  color: ColorValue,
19
- hitSlop: ?$ReadOnly<{|
20
- bottom?: ?number,
21
- left?: ?number,
22
- right?: ?number,
23
- top?: ?number,
24
- |}>,
20
+ hitSlop: ?RectOrSize,
25
21
  |}>;
26
22
 
27
23
  /**
@@ -39,16 +35,16 @@ type Props = $ReadOnly<{|
39
35
  * );
40
36
  *
41
37
  */
42
- export function PressabilityDebugView({color, hitSlop}: Props): React.Node {
38
+ export function PressabilityDebugView(props: Props): React.Node {
43
39
  if (__DEV__) {
44
40
  if (isEnabled()) {
45
- const normalizedColor = normalizeColor(color);
41
+ const normalizedColor = normalizeColor(props.color);
46
42
  if (typeof normalizedColor !== 'number') {
47
43
  return null;
48
44
  }
49
45
  const baseColor =
50
46
  '#' + (normalizedColor ?? 0).toString(16).padStart(8, '0');
51
-
47
+ const hitSlop = normalizeRect(props.hitSlop);
52
48
  return (
53
49
  <View
54
50
  pointerEvents="none"
@@ -29,6 +29,7 @@ type Notification = {|
29
29
  +repeatInterval?: ?string,
30
30
  +applicationIconBadgeNumber?: ?number,
31
31
  +isSilent?: ?boolean,
32
+ +soundName?: ?string,
32
33
  |};
33
34
 
34
35
  export interface Spec extends TurboModule {
@@ -88,7 +88,7 @@ class AppContainer extends React.Component<Props, State> {
88
88
  }
89
89
  }
90
90
 
91
- let innerView = (
91
+ let innerView: React.Node = (
92
92
  <View
93
93
  collapsable={!this.state.inspector}
94
94
  key={this.state.mainKey}