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
@@ -271,6 +271,7 @@ class TouchableNativeFeedback extends React.Component<Props, State> {
271
271
  ),
272
272
  accessible: this.props.accessible !== false,
273
273
  accessibilityHint: this.props.accessibilityHint,
274
+ accessibilityLanguage: this.props.accessibilityLanguage,
274
275
  accessibilityLabel: this.props.accessibilityLabel,
275
276
  accessibilityRole: this.props.accessibilityRole,
276
277
  accessibilityState: accessibilityState,
@@ -225,6 +225,7 @@ class TouchableOpacity extends React.Component<Props, State> {
225
225
  accessible={this.props.accessible !== false}
226
226
  accessibilityLabel={this.props.accessibilityLabel}
227
227
  accessibilityHint={this.props.accessibilityHint}
228
+ accessibilityLanguage={this.props.accessibilityLanguage}
228
229
  accessibilityRole={this.props.accessibilityRole}
229
230
  accessibilityState={accessibilityState}
230
231
  accessibilityActions={this.props.accessibilityActions}
@@ -260,7 +261,12 @@ class TouchableOpacity extends React.Component<Props, State> {
260
261
 
261
262
  componentDidUpdate(prevProps: Props, prevState: State) {
262
263
  this.state.pressability.configure(this._createPressabilityConfig());
263
- if (this.props.disabled !== prevProps.disabled) {
264
+ if (
265
+ this.props.disabled !== prevProps.disabled ||
266
+ (flattenStyle(prevProps.style)?.opacity !==
267
+ flattenStyle(this.props.style)?.opacity) !==
268
+ undefined
269
+ ) {
264
270
  this._opacityInactive(250);
265
271
  }
266
272
  }
@@ -146,7 +146,7 @@ class TouchableOpacity extends React.Component<Props, State> {
146
146
  pressRectOffset: this.props.pressRetentionOffset,
147
147
  onMouseEnter: this.props.onMouseEnter, // [Windows]
148
148
  onMouseLeave: this.props.onMouseLeave, // [Windows]
149
- onBlur: (event) => {
149
+ onBlur: event => {
150
150
  if (Platform.isTV) {
151
151
  this._opacityInactive(250);
152
152
  }
@@ -154,7 +154,7 @@ class TouchableOpacity extends React.Component<Props, State> {
154
154
  this.props.onBlur(event);
155
155
  }
156
156
  },
157
- onFocus: (event) => {
157
+ onFocus: event => {
158
158
  if (Platform.isTV) {
159
159
  this._opacityActive(150);
160
160
  }
@@ -164,7 +164,7 @@ class TouchableOpacity extends React.Component<Props, State> {
164
164
  },
165
165
  onLongPress: this.props.onLongPress,
166
166
  onPress: this.props.onPress,
167
- onPressIn: (event) => {
167
+ onPressIn: event => {
168
168
  this._opacityActive(
169
169
  event.dispatchConfig.registrationName === 'onResponderGrant'
170
170
  ? 0
@@ -174,7 +174,7 @@ class TouchableOpacity extends React.Component<Props, State> {
174
174
  this.props.onPressIn(event);
175
175
  }
176
176
  },
177
- onPressOut: (event) => {
177
+ onPressOut: event => {
178
178
  this._opacityInactive(250);
179
179
  if (this.props.onPressOut != null) {
180
180
  this.props.onPressOut(event);
@@ -232,6 +232,7 @@ class TouchableOpacity extends React.Component<Props, State> {
232
232
  accessible={this.props.accessible !== false}
233
233
  accessibilityLabel={this.props.accessibilityLabel}
234
234
  accessibilityHint={this.props.accessibilityHint}
235
+ accessibilityLanguage={this.props.accessibilityLanguage}
235
236
  accessibilityRole={this.props.accessibilityRole}
236
237
  accessibilityState={accessibilityState}
237
238
  accessibilityActions={this.props.accessibilityActions}
@@ -274,7 +275,12 @@ class TouchableOpacity extends React.Component<Props, State> {
274
275
 
275
276
  componentDidUpdate(prevProps: Props, prevState: State) {
276
277
  this.state.pressability.configure(this._createPressabilityConfig());
277
- if (this.props.disabled !== prevProps.disabled) {
278
+ if (
279
+ this.props.disabled !== prevProps.disabled ||
280
+ (flattenStyle(prevProps.style)?.opacity !==
281
+ flattenStyle(this.props.style)?.opacity) !==
282
+ undefined
283
+ ) {
278
284
  this._opacityInactive(250);
279
285
  }
280
286
  }
@@ -33,6 +33,7 @@ type Props = $ReadOnly<{|
33
33
  accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
34
34
  accessibilityElementsHidden?: ?boolean,
35
35
  accessibilityHint?: ?Stringish,
36
+ accessibilityLanguage?: ?Stringish,
36
37
  accessibilityIgnoresInvertColors?: ?boolean,
37
38
  accessibilityLabel?: ?Stringish,
38
39
  accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),
@@ -72,6 +73,7 @@ const PASSTHROUGH_PROPS = [
72
73
  'accessibilityActions',
73
74
  'accessibilityElementsHidden',
74
75
  'accessibilityHint',
76
+ 'accessibilityLanguage',
75
77
  'accessibilityIgnoresInvertColors',
76
78
  'accessibilityLabel',
77
79
  'accessibilityLiveRegion',
@@ -34,6 +34,7 @@ type Props = $ReadOnly<{|
34
34
  accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
35
35
  accessibilityElementsHidden?: ?boolean,
36
36
  accessibilityHint?: ?Stringish,
37
+ accessibilityLanguage?: ?Stringish,
37
38
  accessibilityIgnoresInvertColors?: ?boolean,
38
39
  accessibilityLabel?: ?Stringish,
39
40
  accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),
@@ -80,6 +81,7 @@ const PASSTHROUGH_PROPS = [
80
81
  'accessibilityActions',
81
82
  'accessibilityElementsHidden',
82
83
  'accessibilityHint',
84
+ 'accessibilityLanguage',
83
85
  'accessibilityIgnoresInvertColors',
84
86
  'accessibilityLabel',
85
87
  'accessibilityLiveRegion',
@@ -21,6 +21,7 @@ const UIView = {
21
21
  accessibilityState: true,
22
22
  accessibilityValue: true,
23
23
  accessibilityHint: true,
24
+ accessibilityLanguage: true,
24
25
  importantForAccessibility: true,
25
26
  nativeID: true,
26
27
  testID: true,
@@ -21,6 +21,7 @@ const UIView = {
21
21
  accessibilityState: true,
22
22
  accessibilityValue: true,
23
23
  accessibilityHint: true,
24
+ accessibilityLanguage: true,
24
25
  importantForAccessibility: true,
25
26
  nativeID: true,
26
27
  testID: true,
@@ -75,13 +75,33 @@ const View: React.AbstractComponent<
75
75
  props.onKeyUpCapture && props.onKeyUpCapture(event);
76
76
  };
77
77
 
78
+ // [Windows
79
+ const childrenWithImportantForAccessibility = children => {
80
+ return React.Children.map(children, child => {
81
+ if (React.isValidElement(child)) {
82
+ if (child.props.children) {
83
+ return React.cloneElement(child, {
84
+ accessible: false,
85
+ children: childrenWithImportantForAccessibility(
86
+ child.props.children,
87
+ ),
88
+ });
89
+ } else {
90
+ return React.cloneElement(child, {accessible: false});
91
+ }
92
+ }
93
+ return child;
94
+ });
95
+ };
96
+ // Windows]
97
+
78
98
  return (
79
99
  // [Windows
80
100
  // In core this is a TextAncestor.Provider value={false} See
81
101
  // https://github.com/facebook/react-native/commit/66601e755fcad10698e61d20878d52194ad0e90c
82
102
  // But since Views are not currently supported in Text, we do not need the extra provider
83
103
  <TextAncestor.Consumer>
84
- {(hasTextAncestor) => {
104
+ {hasTextAncestor => {
85
105
  invariant(
86
106
  !hasTextAncestor,
87
107
  'Nesting of <View> within <Text> is not currently supported.',
@@ -94,6 +114,18 @@ const View: React.AbstractComponent<
94
114
  onKeyDownCapture={_keyDownCapture}
95
115
  onKeyUp={_keyUp}
96
116
  onKeyUpCapture={_keyUpCapture}
117
+ // [Windows
118
+ accessible={
119
+ props.importantForAccessibility === 'no-hide-descendants'
120
+ ? false
121
+ : props.accessible
122
+ }
123
+ children={
124
+ props.importantForAccessibility === 'no-hide-descendants'
125
+ ? childrenWithImportantForAccessibility(props.children)
126
+ : props.children
127
+ }
128
+ // Windows]
97
129
  />
98
130
  );
99
131
  }}
@@ -9,19 +9,79 @@
9
9
  */
10
10
 
11
11
  import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
12
- import {type HostComponent} from '../../Renderer/shims/ReactNativeTypes';
13
- import Platform from '../../Utilities/Platform';
12
+ import type {
13
+ HostComponent,
14
+ PartialViewConfig,
15
+ } from '../../Renderer/shims/ReactNativeTypes';
14
16
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
15
- import ReactNativeViewViewConfigAndroid from './ReactNativeViewViewConfigAndroid';
16
17
  import {type ViewProps as Props} from './ViewPropTypes';
18
+ import Platform from '../../Utilities/Platform';
19
+
17
20
  import * as React from 'react';
18
21
 
22
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
23
+ Platform.OS === 'android'
24
+ ? {
25
+ uiViewClassName: 'RCTView',
26
+ validAttributes: {
27
+ // ReactClippingViewManager @ReactProps
28
+ removeClippedSubviews: true,
29
+
30
+ // ReactViewManager @ReactProps
31
+ accessible: true,
32
+ hasTVPreferredFocus: true,
33
+ nextFocusDown: true,
34
+ nextFocusForward: true,
35
+ nextFocusLeft: true,
36
+ nextFocusRight: true,
37
+ nextFocusUp: true,
38
+
39
+ borderRadius: true,
40
+ borderTopLeftRadius: true,
41
+ borderTopRightRadius: true,
42
+ borderBottomRightRadius: true,
43
+ borderBottomLeftRadius: true,
44
+ borderTopStartRadius: true,
45
+ borderTopEndRadius: true,
46
+ borderBottomStartRadius: true,
47
+ borderBottomEndRadius: true,
48
+
49
+ borderStyle: true,
50
+ hitSlop: true,
51
+ pointerEvents: true,
52
+ nativeBackgroundAndroid: true,
53
+ nativeForegroundAndroid: true,
54
+ needsOffscreenAlphaCompositing: true,
55
+
56
+ borderWidth: true,
57
+ borderLeftWidth: true,
58
+ borderRightWidth: true,
59
+ borderTopWidth: true,
60
+ borderBottomWidth: true,
61
+ borderStartWidth: true,
62
+ borderEndWidth: true,
63
+
64
+ borderColor: {process: require('../../StyleSheet/processColor')},
65
+ borderLeftColor: {process: require('../../StyleSheet/processColor')},
66
+ borderRightColor: {process: require('../../StyleSheet/processColor')},
67
+ borderTopColor: {process: require('../../StyleSheet/processColor')},
68
+ borderBottomColor: {
69
+ process: require('../../StyleSheet/processColor'),
70
+ },
71
+ borderStartColor: {process: require('../../StyleSheet/processColor')},
72
+ borderEndColor: {process: require('../../StyleSheet/processColor')},
73
+
74
+ focusable: true,
75
+ overflow: true,
76
+ backfaceVisibility: true,
77
+ },
78
+ }
79
+ : {
80
+ uiViewClassName: 'RCTView',
81
+ };
82
+
19
83
  const ViewNativeComponent: HostComponent<Props> =
20
- NativeComponentRegistry.get<Props>('RCTView', () =>
21
- Platform.OS === 'android'
22
- ? ReactNativeViewViewConfigAndroid
23
- : {uiViewClassName: 'RCTView'},
24
- );
84
+ NativeComponentRegistry.get<Props>('RCTView', () => __INTERNAL_VIEW_CONFIG);
25
85
 
26
86
  interface NativeCommands {
27
87
  +hotspotUpdate: (
@@ -14,11 +14,12 @@ import type {
14
14
  BlurEvent,
15
15
  FocusEvent,
16
16
  MouseEvent,
17
+ PointerEvent,
17
18
  PressEvent,
18
19
  Layout,
19
20
  LayoutEvent,
20
21
  } from '../../Types/CoreEventTypes';
21
- import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
22
+ import type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';
22
23
  import type {Node} from 'react';
23
24
  import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
24
25
  import type {
@@ -84,8 +85,29 @@ type DirectEventProps = $ReadOnly<{|
84
85
  |}>;
85
86
 
86
87
  type MouseEventProps = $ReadOnly<{|
87
- onMouseEnter?: (event: MouseEvent) => void,
88
- onMouseLeave?: (event: MouseEvent) => void,
88
+ onMouseEnter?: ?(event: MouseEvent) => void,
89
+ onMouseLeave?: ?(event: MouseEvent) => void,
90
+ |}>;
91
+
92
+ // Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)
93
+ type PointerEventProps = $ReadOnly<{|
94
+ onPointerEnter?: ?(event: PointerEvent) => void,
95
+ onPointerLeave?: ?(event: PointerEvent) => void,
96
+ onPointerMove?: ?(event: PointerEvent) => void,
97
+ onPointerCancel?: ?(e: PointerEvent) => void,
98
+ onPointerCancelCapture?: ?(e: PointerEvent) => void,
99
+ onPointerDown?: ?(e: PointerEvent) => void,
100
+ onPointerDownCapture?: ?(e: PointerEvent) => void,
101
+ onPointerUp?: ?(e: PointerEvent) => void,
102
+ onPointerUpCapture?: ?(e: PointerEvent) => void,
103
+
104
+ // FIXME: these events are temporary while we converge pointer event handling
105
+ onPointerEnter2?: ?(e: PointerEvent) => void,
106
+ onPointerEnter2Capture?: ?(e: PointerEvent) => void,
107
+ onPointerLeave2?: ?(e: PointerEvent) => void,
108
+ onPointerLeave2Capture?: ?(e: PointerEvent) => void,
109
+ onPointerMove2?: ?(e: PointerEvent) => void,
110
+ onPointerMove2Capture?: ?(e: PointerEvent) => void,
89
111
  |}>;
90
112
 
91
113
  type TouchEventProps = $ReadOnly<{|
@@ -381,6 +403,7 @@ export type ViewProps = $ReadOnly<{|
381
403
  ...DirectEventProps,
382
404
  ...GestureResponderEventProps,
383
405
  ...MouseEventProps,
406
+ ...PointerEventProps,
384
407
  ...TouchEventProps,
385
408
  ...AndroidViewProps,
386
409
  ...IOSViewProps,
@@ -415,6 +438,15 @@ export type ViewProps = $ReadOnly<{|
415
438
  */
416
439
  accessibilityHint?: ?Stringish,
417
440
 
441
+ /**
442
+ * Indicates to the accessibility services that the UI component is in
443
+ * a specific language. The provided string should be formatted following
444
+ * the BCP 47 specification (https://www.rfc-editor.org/info/bcp47).
445
+ *
446
+ * @platform ios
447
+ */
448
+ accessibilityLanguage?: ?Stringish,
449
+
418
450
  /**
419
451
  * Indicates to accessibility services to treat UI component like a specific role.
420
452
  */
@@ -481,7 +513,7 @@ export type ViewProps = $ReadOnly<{|
481
513
  *
482
514
  * See https://reactnative.dev/docs/view#hitslop
483
515
  */
484
- hitSlop?: ?EdgeInsetsProp,
516
+ hitSlop?: ?EdgeInsetsOrSizeProp,
485
517
 
486
518
  /**
487
519
  * Controls whether the `View` can be the target of touch events.
@@ -14,12 +14,13 @@ import type {
14
14
  BlurEvent,
15
15
  FocusEvent,
16
16
  MouseEvent,
17
+ PointerEvent,
17
18
  PressEvent,
18
19
  Layout,
19
20
  LayoutEvent,
20
21
  KeyEvent, // [Windows]
21
22
  } from '../../Types/CoreEventTypes';
22
- import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
23
+ import type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';
23
24
  import type {Node} from 'react';
24
25
  import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
25
26
  import type {
@@ -85,8 +86,29 @@ type DirectEventProps = $ReadOnly<{|
85
86
  |}>;
86
87
 
87
88
  type MouseEventProps = $ReadOnly<{|
88
- onMouseEnter?: (event: MouseEvent) => void,
89
- onMouseLeave?: (event: MouseEvent) => void,
89
+ onMouseEnter?: ?(event: MouseEvent) => void,
90
+ onMouseLeave?: ?(event: MouseEvent) => void,
91
+ |}>;
92
+
93
+ // Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)
94
+ type PointerEventProps = $ReadOnly<{|
95
+ onPointerEnter?: ?(event: PointerEvent) => void,
96
+ onPointerLeave?: ?(event: PointerEvent) => void,
97
+ onPointerMove?: ?(event: PointerEvent) => void,
98
+ onPointerCancel?: ?(e: PointerEvent) => void,
99
+ onPointerCancelCapture?: ?(e: PointerEvent) => void,
100
+ onPointerDown?: ?(e: PointerEvent) => void,
101
+ onPointerDownCapture?: ?(e: PointerEvent) => void,
102
+ onPointerUp?: ?(e: PointerEvent) => void,
103
+ onPointerUpCapture?: ?(e: PointerEvent) => void,
104
+
105
+ // FIXME: these events are temporary while we converge pointer event handling
106
+ onPointerEnter2?: ?(e: PointerEvent) => void,
107
+ onPointerEnter2Capture?: ?(e: PointerEvent) => void,
108
+ onPointerLeave2?: ?(e: PointerEvent) => void,
109
+ onPointerLeave2Capture?: ?(e: PointerEvent) => void,
110
+ onPointerMove2?: ?(e: PointerEvent) => void,
111
+ onPointerMove2Capture?: ?(e: PointerEvent) => void,
90
112
  |}>;
91
113
 
92
114
  type TouchEventProps = $ReadOnly<{|
@@ -429,6 +451,7 @@ export type ViewProps = $ReadOnly<{|
429
451
  ...DirectEventProps,
430
452
  ...GestureResponderEventProps,
431
453
  ...MouseEventProps,
454
+ ...PointerEventProps,
432
455
  ...TouchEventProps,
433
456
  ...AndroidViewProps,
434
457
  ...IOSViewProps,
@@ -464,6 +487,15 @@ export type ViewProps = $ReadOnly<{|
464
487
  */
465
488
  accessibilityHint?: ?Stringish,
466
489
 
490
+ /**
491
+ * Indicates to the accessibility services that the UI component is in
492
+ * a specific language. The provided string should be formatted following
493
+ * the BCP 47 specification (https://www.rfc-editor.org/info/bcp47).
494
+ *
495
+ * @platform ios
496
+ */
497
+ accessibilityLanguage?: ?Stringish,
498
+
467
499
  /**
468
500
  * Indicates to accessibility services to treat UI component like a specific role.
469
501
  */
@@ -530,7 +562,7 @@ export type ViewProps = $ReadOnly<{|
530
562
  *
531
563
  * See https://reactnative.dev/docs/view#hitslop
532
564
  */
533
- hitSlop?: ?EdgeInsetsProp,
565
+ hitSlop?: ?EdgeInsetsOrSizeProp,
534
566
 
535
567
  /**
536
568
  * Controls whether the `View` can be the target of touch events.
@@ -100,7 +100,7 @@ function parseLine(line: string): ?HermesStackEntry {
100
100
 
101
101
  module.exports = function parseHermesStack(stack: string): HermesParsedStack {
102
102
  const lines = stack.split(/\n/);
103
- let entries = [];
103
+ let entries: Array<HermesStackEntryFrame | HermesStackEntrySkipped> = [];
104
104
  let lastMessageLine = -1;
105
105
  for (let i = 0; i < lines.length; ++i) {
106
106
  const line = lines[i];
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @format
8
- * @flow strict-local
8
+ * @flow strict
9
9
  */
10
10
 
11
11
  'use strict';
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ import EventEmitter from '../vendor/emitter/EventEmitter';
12
+ import type {IEventEmitter} from '../vendor/emitter/EventEmitter';
13
+
14
+ export type RawEventEmitterEvent = $ReadOnly<{|
15
+ eventName: string,
16
+ // We expect, but do not/cannot require, that nativeEvent is an object
17
+ // with the properties: key, elementType (string), type (string), tag (numeric),
18
+ // and a stateNode of the native element/Fiber the event was emitted to.
19
+ nativeEvent: {[string]: mixed},
20
+ |}>;
21
+
22
+ type RawEventDefinitions = {
23
+ [eventChannel: string]: [RawEventEmitterEvent],
24
+ };
25
+
26
+ const RawEventEmitter: IEventEmitter<RawEventDefinitions> =
27
+ new EventEmitter<RawEventDefinitions>();
28
+
29
+ // See the React renderer / react repo for how this is used.
30
+ // Raw events are emitted here when they are received in JS
31
+ // and before any event Plugins process them or before components
32
+ // have a chance to respond to them. This allows you to implement
33
+ // app-specific perf monitoring, which is unimplemented by default,
34
+ // making this entire RawEventEmitter do nothing by default until
35
+ // *you* add listeners for your own app.
36
+ // Besides perf monitoring and maybe debugging, this RawEventEmitter
37
+ // should not be used.
38
+ export default RawEventEmitter;
@@ -11,7 +11,7 @@
11
11
 
12
12
  exports.version = {
13
13
  major: 0,
14
- minor: 68,
14
+ minor: 69,
15
15
  patch: 0,
16
- prerelease: null,
16
+ prerelease: 'rc.0',
17
17
  };
@@ -11,6 +11,7 @@
11
11
  'use strict';
12
12
 
13
13
  const {polyfillGlobal} = require('../Utilities/PolyfillFunctions');
14
+ const warnOnce = require('../Utilities/warnOnce');
14
15
 
15
16
  /**
16
17
  * Set up Promise. The native Promise implementation throws the following error:
@@ -36,3 +37,34 @@ if (global?.HermesInternal?.hasPromise?.()) {
36
37
  } else {
37
38
  polyfillGlobal('Promise', () => require('../Promise'));
38
39
  }
40
+
41
+ if (__DEV__) {
42
+ // $FlowFixMe
43
+ const done = Promise.prototype.done;
44
+ if (done != null) {
45
+ let depth = 0;
46
+ /* eslint-disable no-extend-native */
47
+ // $FlowFixMe
48
+ Promise.prototype.done = function () {
49
+ ++depth;
50
+ try {
51
+ // Avoid infinite recursion if done() happens to be triggered by warnOnce.
52
+ if (depth === 1) {
53
+ // Warn once per unique call stack. Not super efficient, but we're in
54
+ // __DEV__ and .done() calls are rare to begin with.
55
+ const key = new Error().stack;
56
+ warnOnce(
57
+ key,
58
+ 'Promise.prototype.done(): This nonstandard polyfill ' +
59
+ 'has been deprecated and will be removed in a future release. ' +
60
+ 'Please instead use `.then()`.',
61
+ );
62
+ }
63
+ } finally {
64
+ --depth;
65
+ }
66
+ return done.apply(this, arguments);
67
+ };
68
+ /* eslint-enable no-extend-native */
69
+ }
70
+ }
@@ -58,12 +58,13 @@ if (__DEV__) {
58
58
  isWebSocketOpen = true;
59
59
  });
60
60
 
61
- const viewConfig = require('../Components/View/ReactNativeViewViewConfig');
61
+ const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
62
+
62
63
  reactDevTools.connectToDevTools({
63
64
  isAppActive,
64
65
  resolveRNStyle: require('../StyleSheet/flattenStyle'),
65
66
  nativeStyleEditorValidAttributes: Object.keys(
66
- viewConfig.validAttributes.style,
67
+ ReactNativeStyleAttributes,
67
68
  ),
68
69
  websocket: ws,
69
70
  });
@@ -10,9 +10,9 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import {
14
- type EventSubscription,
15
- type IEventEmitter,
13
+ import type {
14
+ EventSubscription,
15
+ IEventEmitter,
16
16
  } from '../vendor/emitter/EventEmitter';
17
17
  import Platform from '../Utilities/Platform';
18
18
  import RCTDeviceEventEmitter from './RCTDeviceEventEmitter';
@@ -8,7 +8,8 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import EventEmitter, {type IEventEmitter} from '../vendor/emitter/EventEmitter';
11
+ import EventEmitter from '../vendor/emitter/EventEmitter';
12
+ import type {IEventEmitter} from '../vendor/emitter/EventEmitter';
12
13
 
13
14
  // FIXME: use typed events
14
15
  type RCTDeviceEventDefinitions = $FlowFixMe;
@@ -8,9 +8,9 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- import {
12
- type EventSubscription,
13
- type IEventEmitter,
11
+ import type {
12
+ EventSubscription,
13
+ IEventEmitter,
14
14
  } from '../../vendor/emitter/EventEmitter';
15
15
  import RCTDeviceEventEmitter from '../RCTDeviceEventEmitter';
16
16
 
@@ -0,0 +1,32 @@
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
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ // Make sure global Event is defined
12
+ import EventPolyfill from './EventPolyfill';
13
+
14
+ type CustomEvent$Options = $ReadOnly<{|
15
+ bubbles?: boolean,
16
+ cancelable?: boolean,
17
+ composed?: boolean,
18
+ detail?: {...},
19
+ |}>;
20
+
21
+ class CustomEvent extends EventPolyfill {
22
+ detail: ?{...};
23
+
24
+ constructor(typeArg: string, options: CustomEvent$Options) {
25
+ const {bubbles, cancelable, composed} = options;
26
+ super(typeArg, {bubbles, cancelable, composed});
27
+
28
+ this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent
29
+ }
30
+ }
31
+
32
+ export default CustomEvent;