react-native-windows 0.76.2 → 0.77.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 (459) hide show
  1. package/.flowconfig +5 -1
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  6. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  7. package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
  8. package/Libraries/Animated/animations/Animation.js +60 -25
  9. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  10. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  11. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  12. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  13. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  14. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  15. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  17. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  18. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  19. package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
  20. package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
  22. package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  24. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  26. package/Libraries/Animated/useAnimatedProps.js +41 -35
  27. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  28. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  29. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
  30. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  31. package/Libraries/Components/Button.js +9 -4
  32. package/Libraries/Components/Button.windows.js +19 -5
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  34. package/Libraries/Components/Glyph/Glyph.js +2 -1
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  36. package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
  37. package/Libraries/Components/Pressable/Pressable.js +4 -4
  38. package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
  39. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  40. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  41. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  42. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  43. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  44. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  45. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  46. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  47. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
  48. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  49. package/Libraries/Components/Switch/Switch.js +8 -6
  50. package/Libraries/Components/Switch/Switch.windows.js +8 -6
  51. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  52. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  53. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  54. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  55. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  56. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  57. package/Libraries/Components/TextInput/TextInput.js +37 -13
  58. package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
  59. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  60. package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  62. package/Libraries/Components/Touchable/Position.js +7 -2
  63. package/Libraries/Components/Touchable/Touchable.js +4 -0
  64. package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
  65. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  66. package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  68. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  71. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
  74. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  75. package/Libraries/Components/View/View.js +4 -4
  76. package/Libraries/Components/View/View.windows.js +88 -57
  77. package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
  78. package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
  79. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  80. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  81. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  82. package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
  83. package/Libraries/Core/ExceptionsManager.js +50 -29
  84. package/Libraries/Core/ReactNativeVersion.js +3 -3
  85. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  86. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  87. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  88. package/Libraries/Core/setUpErrorHandling.js +20 -18
  89. package/Libraries/Core/setUpReactDevTools.js +107 -8
  90. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  91. package/Libraries/Core/setUpTimers.js +21 -18
  92. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  93. package/Libraries/Image/AssetSourceResolver.js +12 -1
  94. package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
  95. package/Libraries/Image/Image.android.js +1 -5
  96. package/Libraries/Image/Image.d.ts +20 -29
  97. package/Libraries/Image/Image.ios.js +0 -2
  98. package/Libraries/Image/Image.windows.js +5 -1
  99. package/Libraries/Image/ImageBackground.js +2 -5
  100. package/Libraries/Image/ImageProps.js +7 -6
  101. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  102. package/Libraries/Image/ImageResizeMode.js +4 -1
  103. package/Libraries/Image/ImageSource.d.ts +0 -2
  104. package/Libraries/Image/ImageSource.js +0 -2
  105. package/Libraries/Image/ImageTypes.flow.js +11 -9
  106. package/Libraries/Image/ImageUtils.js +6 -3
  107. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  108. package/Libraries/Inspector/Inspector.js +1 -0
  109. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  110. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  111. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  112. package/Libraries/Interaction/InteractionManager.js +6 -1
  113. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  114. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  115. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  116. package/Libraries/Lists/FlatList.d.ts +1 -2
  117. package/Libraries/Lists/FlatList.js +2 -2
  118. package/Libraries/Lists/SectionListModern.js +7 -7
  119. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  120. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  121. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  122. package/Libraries/LogBox/LogBox.js +18 -5
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
  128. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  129. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  132. package/Libraries/Modal/Modal.d.ts +12 -0
  133. package/Libraries/Modal/Modal.js +31 -4
  134. package/Libraries/Modal/Modal.windows.js +370 -0
  135. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  136. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  137. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
  138. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  139. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  140. package/Libraries/Network/XHRInterceptor.js +63 -14
  141. package/Libraries/Network/XMLHttpRequest.js +26 -1
  142. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  143. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  144. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  145. package/Libraries/Pressability/HoverState.js +2 -0
  146. package/Libraries/Pressability/Pressability.js +2 -3
  147. package/Libraries/Pressability/Pressability.windows.js +2 -3
  148. package/Libraries/Pressability/usePressability.js +4 -1
  149. package/Libraries/ReactNative/AppContainer.js +1 -1
  150. package/Libraries/ReactNative/AppRegistry.js +1 -11
  151. package/Libraries/ReactNative/DisplayMode.js +1 -1
  152. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  153. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  154. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  155. package/Libraries/ReactNative/renderApplication.js +9 -8
  156. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  157. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  158. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  159. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  160. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  161. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  162. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  163. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  164. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  166. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  167. package/Libraries/StyleSheet/processTransform.js +3 -34
  168. package/Libraries/Text/Text.js +248 -249
  169. package/Libraries/Text/Text.windows.js +298 -292
  170. package/Libraries/Text/TextNativeComponent.js +0 -1
  171. package/Libraries/Text/TextProps.windows.js +2 -0
  172. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  173. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  174. package/Libraries/Types/CoreEventTypes.js +4 -6
  175. package/Libraries/Types/CoreEventTypes.windows.js +4 -6
  176. package/Libraries/Utilities/Appearance.js +3 -1
  177. package/Libraries/Utilities/BackHandler.android.js +6 -18
  178. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  179. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  180. package/Libraries/Utilities/BackHandler.windows.js +6 -18
  181. package/Libraries/Utilities/HMRClient.js +3 -4
  182. package/Libraries/Utilities/Platform.flow.js +2 -2
  183. package/Libraries/Utilities/Platform.flow.windows.js +3 -2
  184. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  185. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  186. package/Libraries/Utilities/useMergeRefs.js +26 -7
  187. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  188. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  189. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  190. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  191. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
  192. package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
  193. package/Microsoft.ReactNative/CompositionComponentView.idl +2 -1
  194. package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
  195. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +6 -3
  196. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +1 -1
  197. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +7 -0
  198. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +2 -0
  199. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +45 -50
  200. package/Microsoft.ReactNative/Fabric/ComponentView.h +14 -22
  201. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +943 -0
  202. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +80 -0
  203. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +223 -21
  204. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
  205. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +187 -6
  206. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +10 -1
  207. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +8 -32
  208. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +349 -929
  209. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +32 -29
  210. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +9 -2
  211. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +2 -1
  212. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  213. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +181 -123
  214. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +16 -8
  215. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +99 -37
  216. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +25 -3
  217. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +64 -3
  218. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +12 -0
  219. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +51 -3
  220. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +3 -0
  221. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +18 -8
  222. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +3 -0
  223. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
  224. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +56 -7
  225. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +8 -0
  226. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
  227. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +9 -3
  228. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  229. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +35 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +7 -0
  231. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +1 -1
  232. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
  233. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
  234. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
  235. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
  236. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +1 -5
  237. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +26 -0
  238. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +1 -1
  239. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
  240. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
  241. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
  242. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
  243. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  244. package/Microsoft.ReactNative/ReactNativeIsland.idl +3 -2
  245. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
  246. package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
  247. package/Microsoft.ReactNative/ViewProps.idl +2 -0
  248. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
  249. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
  250. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
  251. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
  252. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
  253. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
  254. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
  255. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
  256. package/Microsoft.ReactNative.Cxx/ComponentView.Experimental.interop.h +14 -0
  257. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
  258. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
  259. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
  260. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
  261. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
  262. package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
  263. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
  264. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
  265. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
  266. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
  267. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
  268. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
  269. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
  270. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
  271. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
  272. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
  273. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
  274. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
  275. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
  276. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
  277. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
  278. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
  279. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
  280. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
  281. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
  282. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
  283. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
  284. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
  285. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
  286. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
  287. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
  288. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
  289. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
  290. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
  291. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
  292. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
  293. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
  294. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
  295. package/PropertySheets/Bundle.Common.targets +1 -1
  296. package/PropertySheets/Bundle.props +3 -0
  297. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  298. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  299. package/PropertySheets/OutputMSBuildProperties.targets +3 -1
  300. package/ReactCommon/ReactCommon.vcxproj +5 -0
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
  309. package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  310. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
  311. package/Shared/InspectorPackagerConnection.cpp +3 -6
  312. package/Shared/InspectorPackagerConnection.h +2 -2
  313. package/Shared/InstanceManager.h +1 -1
  314. package/Shared/OInstance.h +1 -1
  315. package/Shared/Shared.vcxitems +20 -2
  316. package/Shared/Shared.vcxitems.filters +4 -1
  317. package/Shared/TurboModuleManager.cpp +29 -4
  318. package/codegen/NativeAccessibilityInfoSpec.g.h +28 -9
  319. package/codegen/NativeAccessibilityManagerSpec.g.h +20 -13
  320. package/codegen/NativeActionSheetManagerSpec.g.h +5 -0
  321. package/codegen/NativeAlertManagerSpec.g.h +1 -0
  322. package/codegen/NativeAnimatedModuleSpec.g.h +1 -0
  323. package/codegen/NativeAnimatedTurboModuleSpec.g.h +1 -0
  324. package/codegen/NativeAppStateSpec.g.h +1 -0
  325. package/codegen/NativeAppThemeSpec.g.h +1 -0
  326. package/codegen/NativeAppearanceSpec.g.h +1 -0
  327. package/codegen/NativeBlobModuleSpec.g.h +1 -0
  328. package/codegen/NativeBugReportingSpec.g.h +1 -0
  329. package/codegen/NativeClipboardSpec.g.h +1 -0
  330. package/codegen/NativeDOMSpec.g.h +1 -0
  331. package/codegen/NativeDevLoadingViewSpec.g.h +1 -0
  332. package/codegen/NativeDevMenuSpec.g.h +1 -0
  333. package/codegen/NativeDevSettingsSpec.g.h +1 -0
  334. package/codegen/NativeDeviceEventManagerSpec.g.h +1 -0
  335. package/codegen/NativeDeviceInfoSpec.g.h +1 -0
  336. package/codegen/NativeDialogManagerAndroidSpec.g.h +1 -0
  337. package/codegen/NativeDialogManagerWindowsSpec.g.h +1 -0
  338. package/codegen/NativeExceptionsManagerSpec.g.h +2 -7
  339. package/codegen/NativeFileReaderModuleSpec.g.h +1 -0
  340. package/codegen/NativeFrameRateLoggerSpec.g.h +1 -0
  341. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +1 -0
  342. package/codegen/NativeI18nManagerSpec.g.h +1 -0
  343. package/codegen/NativeIdleCallbacksSpec.g.h +1 -0
  344. package/codegen/NativeImageEditorSpec.g.h +1 -0
  345. package/codegen/NativeImageLoaderAndroidSpec.g.h +1 -0
  346. package/codegen/NativeImageLoaderIOSSpec.g.h +1 -0
  347. package/codegen/NativeImageStoreAndroidSpec.g.h +1 -0
  348. package/codegen/NativeImageStoreIOSSpec.g.h +1 -0
  349. package/codegen/NativeIntentAndroidSpec.g.h +1 -0
  350. package/codegen/NativeIntersectionObserverSpec.g.h +3 -0
  351. package/codegen/NativeJSCHeapCaptureSpec.g.h +1 -0
  352. package/codegen/NativeJSCSamplingProfilerSpec.g.h +1 -0
  353. package/codegen/NativeKeyboardObserverSpec.g.h +1 -0
  354. package/codegen/NativeLinkingManagerSpec.g.h +1 -0
  355. package/codegen/NativeLogBoxSpec.g.h +1 -0
  356. package/codegen/NativeMicrotasksSpec.g.h +1 -0
  357. package/codegen/NativeModalManagerSpec.g.h +1 -0
  358. package/codegen/NativeMutationObserverSpec.g.h +1 -0
  359. package/codegen/NativeNetworkingAndroidSpec.g.h +1 -0
  360. package/codegen/NativeNetworkingIOSSpec.g.h +1 -0
  361. package/codegen/NativePerformanceSpec.g.h +128 -3
  362. package/codegen/NativePermissionsAndroidSpec.g.h +1 -0
  363. package/codegen/NativePlatformConstantsAndroidSpec.g.h +1 -0
  364. package/codegen/NativePlatformConstantsIOSSpec.g.h +1 -0
  365. package/codegen/NativePlatformConstantsWindowsSpec.g.h +1 -0
  366. package/codegen/NativePushNotificationManagerIOSSpec.g.h +1 -0
  367. package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
  368. package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
  369. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +126 -137
  370. package/codegen/NativeRedBoxSpec.g.h +1 -0
  371. package/codegen/NativeSampleTurboModuleSpec.g.h +1 -0
  372. package/codegen/NativeSegmentFetcherSpec.g.h +1 -0
  373. package/codegen/NativeSettingsManagerSpec.g.h +1 -0
  374. package/codegen/NativeShareModuleSpec.g.h +1 -0
  375. package/codegen/NativeSoundManagerSpec.g.h +1 -0
  376. package/codegen/NativeSourceCodeSpec.g.h +1 -0
  377. package/codegen/NativeStatusBarManagerAndroidSpec.g.h +1 -0
  378. package/codegen/NativeStatusBarManagerIOSSpec.g.h +1 -0
  379. package/codegen/NativeTimingSpec.g.h +1 -0
  380. package/codegen/NativeToastAndroidSpec.g.h +1 -0
  381. package/codegen/NativeUIManagerSpec.g.h +1 -0
  382. package/codegen/NativeVibrationSpec.g.h +1 -0
  383. package/codegen/NativeWebSocketModuleSpec.g.h +1 -0
  384. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  385. package/codegen/react/components/rnwcore/Props.cpp +1 -0
  386. package/codegen/react/components/rnwcore/Props.h +1 -0
  387. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  388. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
  389. package/codegen/react/components/rnwcore/States.h +0 -12
  390. package/codegen/rnwcoreJSI-generated.cpp +219 -186
  391. package/codegen/rnwcoreJSI.h +942 -511
  392. package/index.js +10 -3
  393. package/index.windows.js +10 -3
  394. package/jest/setup.js +36 -1
  395. package/just-task.js +15 -0
  396. package/package.json +22 -22
  397. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  398. package/src/private/animated/useAnimatedPropsMemo.js +348 -0
  399. package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
  400. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  401. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  402. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  403. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  404. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  405. package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
  406. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  407. package/src/private/devmenu/DevMenu.d.ts +20 -0
  408. package/src/private/devmenu/DevMenu.js +31 -0
  409. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  410. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  411. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  412. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  413. package/src/private/setup/setUpDOM.js +14 -6
  414. package/src/private/setup/setUpMutationObserver.js +5 -0
  415. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  416. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  417. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  418. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  419. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  420. package/src/private/specs/modules/NativeAppearance.js +4 -10
  421. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  422. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  423. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  424. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  425. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  426. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  427. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  428. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  429. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  430. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  431. package/src/private/webapis/performance/EventTiming.js +13 -8
  432. package/src/private/webapis/performance/Performance.js +66 -73
  433. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  434. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  435. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  436. package/src/private/webapis/performance/UserTiming.js +11 -7
  437. package/src/private/webapis/performance/Utilities.js +18 -0
  438. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  439. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  440. package/templates/cpp-lib/template.config.js +13 -7
  441. package/templates/templateUtils.js +10 -0
  442. package/types/index.d.ts +1 -1
  443. package/types/public/ReactNativeTypes.d.ts +4 -8
  444. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  445. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  446. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  447. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
  448. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  449. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
  452. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -52
  453. package/codegen/NativePerformanceObserverSpec.g.h +0 -130
  454. package/src/private/components/useSyncOnScroll.js +0 -48
  455. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  456. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  457. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  458. package/types/experimental.d.ts +0 -59
  459. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -57,10 +57,10 @@ const childrenWithImportantForAccessibility = children => {
57
57
  *
58
58
  * @see https://reactnative.dev/docs/view
59
59
  */
60
- const View: React.AbstractComponent<
61
- ViewProps,
62
- React.ElementRef<typeof ViewNativeComponent>,
63
- > = React.forwardRef(
60
+ const View: component(
61
+ ref: React.RefSetter<React.ElementRef<typeof ViewNativeComponent>>,
62
+ ...props: ViewProps
63
+ ) = React.forwardRef(
64
64
  (
65
65
  {
66
66
  accessibilityElementsHidden,
@@ -76,6 +76,8 @@ const View: React.AbstractComponent<
76
76
  'aria-checked': ariaChecked,
77
77
  'aria-disabled': ariaDisabled,
78
78
  'aria-expanded': ariaExpanded,
79
+ 'aria-multiselectable': ariaMultiselectable, // Windows
80
+ 'aria-required': ariaRequired, // Windows
79
81
  'aria-hidden': ariaHidden,
80
82
  'aria-label': ariaLabel,
81
83
  'aria-labelledby': ariaLabelledBy,
@@ -108,7 +110,9 @@ const View: React.AbstractComponent<
108
110
  ariaChecked != null ||
109
111
  ariaDisabled != null ||
110
112
  ariaExpanded != null ||
111
- ariaSelected != null
113
+ ariaSelected != null ||
114
+ ariaMultiselectable != null || // Windows
115
+ ariaRequired != null // Windows
112
116
  ) {
113
117
  _accessibilityState = {
114
118
  busy: ariaBusy ?? accessibilityState?.busy,
@@ -116,6 +120,9 @@ const View: React.AbstractComponent<
116
120
  disabled: ariaDisabled ?? accessibilityState?.disabled,
117
121
  expanded: ariaExpanded ?? accessibilityState?.expanded,
118
122
  selected: ariaSelected ?? accessibilityState?.selected,
123
+ multiselectable:
124
+ ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows
125
+ required: ariaRequired ?? accessibilityState?.required, // Windows
119
126
  };
120
127
  }
121
128
  let _accessibilityValue;
@@ -134,65 +141,89 @@ const View: React.AbstractComponent<
134
141
  };
135
142
  }
136
143
 
137
- const _keyDown = (event: KeyEvent) => {
138
- if (otherProps.keyDownEvents && event.isPropagationStopped() !== true) {
139
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
140
- for (const el of otherProps.keyDownEvents) {
141
- if (
142
- event.nativeEvent.code === el.code &&
143
- el.handledEventPhase === 3
144
- ) {
145
- event.stopPropagation();
144
+ const _keyDown =
145
+ otherProps.keyDownEvents || otherProps.onKeyDown
146
+ ? (event: KeyEvent) => {
147
+ if (
148
+ otherProps.keyDownEvents &&
149
+ event.isPropagationStopped() !== true
150
+ ) {
151
+ // $FlowFixMe - keyDownEvents was already checked to not be undefined
152
+ for (const el of otherProps.keyDownEvents) {
153
+ if (
154
+ event.nativeEvent.code === el.code &&
155
+ el.handledEventPhase === 3
156
+ ) {
157
+ event.stopPropagation();
158
+ }
159
+ }
160
+ }
161
+ otherProps.onKeyDown && otherProps.onKeyDown(event);
146
162
  }
147
- }
148
- }
149
- otherProps.onKeyDown && otherProps.onKeyDown(event);
150
- };
163
+ : undefined;
151
164
 
152
- const _keyUp = (event: KeyEvent) => {
153
- if (otherProps.keyUpEvents && event.isPropagationStopped() !== true) {
154
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
155
- for (const el of otherProps.keyUpEvents) {
156
- if (
157
- event.nativeEvent.code === el.code &&
158
- el.handledEventPhase === 3
159
- ) {
160
- event.stopPropagation();
165
+ const _keyUp =
166
+ otherProps.keyUpEvents || otherProps.onKeyUp
167
+ ? (event: KeyEvent) => {
168
+ if (
169
+ otherProps.keyUpEvents &&
170
+ event.isPropagationStopped() !== true
171
+ ) {
172
+ // $FlowFixMe - keyUpEvents was already checked to not be undefined
173
+ for (const el of otherProps.keyUpEvents) {
174
+ if (
175
+ event.nativeEvent.code === el.code &&
176
+ el.handledEventPhase === 3
177
+ ) {
178
+ event.stopPropagation();
179
+ }
180
+ }
181
+ }
182
+ otherProps.onKeyUp && otherProps.onKeyUp(event);
161
183
  }
162
- }
163
- }
164
- otherProps.onKeyUp && otherProps.onKeyUp(event);
165
- };
184
+ : undefined;
166
185
 
167
- const _keyDownCapture = (event: KeyEvent) => {
168
- if (otherProps.keyDownEvents && event.isPropagationStopped() !== true) {
169
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
170
- for (const el of otherProps.keyDownEvents) {
171
- if (
172
- event.nativeEvent.code === el.code &&
173
- el.handledEventPhase === 1
174
- ) {
175
- event.stopPropagation();
186
+ const _keyDownCapture =
187
+ otherProps.keyDownEvents || otherProps.onKeyDownCapture
188
+ ? (event: KeyEvent) => {
189
+ if (
190
+ otherProps.keyDownEvents &&
191
+ event.isPropagationStopped() !== true
192
+ ) {
193
+ // $FlowFixMe - keyDownEvents was already checked to not be undefined
194
+ for (const el of otherProps.keyDownEvents) {
195
+ if (
196
+ event.nativeEvent.code === el.code &&
197
+ el.handledEventPhase === 1
198
+ ) {
199
+ event.stopPropagation();
200
+ }
201
+ }
202
+ }
203
+ otherProps.onKeyDownCapture && otherProps.onKeyDownCapture(event);
176
204
  }
177
- }
178
- }
179
- otherProps.onKeyDownCapture && otherProps.onKeyDownCapture(event);
180
- };
205
+ : undefined;
181
206
 
182
- const _keyUpCapture = (event: KeyEvent) => {
183
- if (otherProps.keyUpEvents && event.isPropagationStopped() !== true) {
184
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
185
- for (const el of otherProps.keyUpEvents) {
186
- if (
187
- event.nativeEvent.code === el.code &&
188
- el.handledEventPhase === 1
189
- ) {
190
- event.stopPropagation();
207
+ const _keyUpCapture =
208
+ otherProps.keyUpEvents || otherProps.onKeyUpCapture
209
+ ? (event: KeyEvent) => {
210
+ if (
211
+ otherProps.keyUpEvents &&
212
+ event.isPropagationStopped() !== true
213
+ ) {
214
+ // $FlowFixMe - keyUpEvents was already checked to not be undefined
215
+ for (const el of otherProps.keyUpEvents) {
216
+ if (
217
+ event.nativeEvent.code === el.code &&
218
+ el.handledEventPhase === 1
219
+ ) {
220
+ event.stopPropagation();
221
+ }
222
+ }
223
+ }
224
+ otherProps.onKeyUpCapture && otherProps.onKeyUpCapture(event);
191
225
  }
192
- }
193
- }
194
- otherProps.onKeyUpCapture && otherProps.onKeyUpCapture(event);
195
- };
226
+ : undefined;
196
227
 
197
228
  // [Windows
198
229
  const _focusable = tabIndex !== undefined ? !tabIndex : focusable;
@@ -183,6 +183,16 @@ export interface AccessibilityState {
183
183
  * When present, informs accessible tools the element is expanded or collapsed
184
184
  */
185
185
  expanded?: boolean | undefined;
186
+ /**
187
+ * When present, informs accessible tools the element can have multiple items selected
188
+ * @platform windows
189
+ */
190
+ multiselectable?: boolean | undefined;
191
+ /**
192
+ * When present, informs accessible tools the element requires selection
193
+ * @platform windows
194
+ */
195
+ required?: boolean | undefined;
186
196
  }
187
197
 
188
198
  export interface AccessibilityValue {
@@ -181,6 +181,8 @@ export type AccessibilityState = {
181
181
  checked?: ?boolean | 'mixed',
182
182
  busy?: ?boolean,
183
183
  expanded?: ?boolean,
184
+ multiselectable?: ?boolean, // Windows
185
+ required?: ?boolean, // Windows
184
186
  ...
185
187
  };
186
188
 
@@ -10,113 +10,21 @@
10
10
 
11
11
  import type {
12
12
  HostComponent,
13
- PartialViewConfig,
13
+ HostInstance,
14
14
  } from '../../Renderer/shims/ReactNativeTypes';
15
15
 
16
16
  import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
17
17
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
18
- import Platform from '../../Utilities/Platform';
19
18
  import {type ViewProps as Props} from './ViewPropTypes';
20
- import * as React from 'react';
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
- borderEndEndRadius: true,
49
- borderEndStartRadius: true,
50
- borderStartEndRadius: true,
51
- borderStartStartRadius: true,
52
- borderStyle: true,
53
- hitSlop: true,
54
- pointerEvents: true,
55
- nativeBackgroundAndroid: true,
56
- nativeForegroundAndroid: true,
57
- needsOffscreenAlphaCompositing: true,
58
-
59
- borderWidth: true,
60
- borderLeftWidth: true,
61
- borderRightWidth: true,
62
- borderTopWidth: true,
63
- borderBottomWidth: true,
64
- borderStartWidth: true,
65
- borderEndWidth: true,
66
-
67
- borderColor: {
68
- process: require('../../StyleSheet/processColor').default,
69
- },
70
- borderLeftColor: {
71
- process: require('../../StyleSheet/processColor').default,
72
- },
73
- borderRightColor: {
74
- process: require('../../StyleSheet/processColor').default,
75
- },
76
- borderTopColor: {
77
- process: require('../../StyleSheet/processColor').default,
78
- },
79
- borderBottomColor: {
80
- process: require('../../StyleSheet/processColor').default,
81
- },
82
- borderStartColor: {
83
- process: require('../../StyleSheet/processColor').default,
84
- },
85
- borderEndColor: {
86
- process: require('../../StyleSheet/processColor').default,
87
- },
88
- borderBlockColor: {
89
- process: require('../../StyleSheet/processColor').default,
90
- },
91
- borderBlockEndColor: {
92
- process: require('../../StyleSheet/processColor').default,
93
- },
94
- borderBlockStartColor: {
95
- process: require('../../StyleSheet/processColor').default,
96
- },
97
- focusable: true,
98
- overflow: true,
99
- backfaceVisibility: true,
100
- experimental_layoutConformance: true,
101
- },
102
- }
103
- : {
104
- uiViewClassName: 'RCTView',
105
- };
106
19
 
107
20
  const ViewNativeComponent: HostComponent<Props> =
108
- NativeComponentRegistry.get<Props>('RCTView', () => __INTERNAL_VIEW_CONFIG);
21
+ NativeComponentRegistry.get<Props>('RCTView', () => ({
22
+ uiViewClassName: 'RCTView',
23
+ }));
109
24
 
110
25
  interface NativeCommands {
111
- +hotspotUpdate: (
112
- viewRef: React.ElementRef<HostComponent<mixed>>,
113
- x: number,
114
- y: number,
115
- ) => void;
116
- +setPressed: (
117
- viewRef: React.ElementRef<HostComponent<mixed>>,
118
- pressed: boolean,
119
- ) => void;
26
+ +hotspotUpdate: (viewRef: HostInstance, x: number, y: number) => void;
27
+ +setPressed: (viewRef: HostInstance, pressed: boolean) => void;
120
28
  }
121
29
 
122
30
  export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
@@ -318,4 +318,11 @@ export interface ViewProps
318
318
  * Used to reference react managed views from native code.
319
319
  */
320
320
  nativeID?: string | undefined;
321
+
322
+ /**
323
+ * Contols whether this view, and its transitive children, are laid in a way
324
+ * consistent with web browsers ('strict'), or consistent with existing
325
+ * React Native code which may rely on incorrect behavior ('classic').
326
+ */
327
+ experimental_layoutConformance?: 'strict' | 'classic' | undefined;
321
328
  }
@@ -567,9 +567,6 @@ export type ViewProps = $ReadOnly<{|
567
567
  * optimization. Set this property to `false` to disable this optimization and
568
568
  * ensure that this `View` exists in the native view hierarchy.
569
569
  *
570
- * @platform android
571
- * In Fabric, this prop is used in ios as well.
572
- *
573
570
  * See https://reactnative.dev/docs/view#collapsable
574
571
  */
575
572
  collapsable?: ?boolean,
@@ -626,6 +626,8 @@ export type ViewProps = $ReadOnly<{|
626
626
  * See https://reactnative.dev/docs/view#aria-hidden
627
627
  */
628
628
  'aria-hidden'?: ?boolean,
629
+ 'aria-multiselectable'?: ?boolean, // Windows
630
+ 'aria-required'?: ?boolean, // Windows
629
631
 
630
632
  /**
631
633
  * Views that are only used to layout their children or otherwise don't draw
@@ -633,9 +635,6 @@ export type ViewProps = $ReadOnly<{|
633
635
  * optimization. Set this property to `false` to disable this optimization and
634
636
  * ensure that this `View` exists in the native view hierarchy.
635
637
  *
636
- * @platform android
637
- * In Fabric, this prop is used in ios as well.
638
- *
639
638
  * See https://reactnative.dev/docs/view#collapsable
640
639
  */
641
640
  collapsable?: ?boolean,
@@ -22,10 +22,11 @@ type ExceptionDecorator = ExceptionData => ExceptionData;
22
22
  let userExceptionDecorator: ?ExceptionDecorator;
23
23
  let inUserExceptionDecorator = false;
24
24
 
25
- // This Symbol is used to decorate an ExtendedError with extra data in select usecases.
25
+ // This string is used to decorate an ExtendedError with extra data in select usecases.
26
26
  // Note that data passed using this method should be strictly contained,
27
27
  // as data that's not serializable/too large may cause issues with passing the error to the native code.
28
- const decoratedExtraDataKey: symbol = Symbol('decoratedExtraDataKey');
28
+ // TODO(T204185517): We should use a Symbol for this, but jsi through jsc doesn't support it yet.
29
+ const decoratedExtraDataKey = 'RN$ErrorExtraDataKey';
29
30
 
30
31
  /**
31
32
  * Allows the app to add information to the exception report before it is sent
@@ -120,6 +121,12 @@ function reportException(
120
121
  const NativeExceptionsManager =
121
122
  require('./NativeExceptionsManager').default;
122
123
  if (NativeExceptionsManager) {
124
+ if (isFatal) {
125
+ if (global.RN$hasHandledFatalException?.()) {
126
+ return;
127
+ }
128
+ global.RN$notifyOfFatalException?.();
129
+ }
123
130
  NativeExceptionsManager.reportException(data);
124
131
  }
125
132
  }
@@ -140,24 +147,31 @@ let inExceptionHandler = false;
140
147
  * Logs exceptions to the (native) console and displays them
141
148
  */
142
149
  function handleException(e: mixed, isFatal: boolean) {
143
- let error: Error;
144
- if (e instanceof Error) {
145
- error = e;
146
- } else {
147
- // Workaround for reporting errors caused by `throw 'some string'`
148
- // Unfortunately there is no way to figure out the stacktrace in this
149
- // case, so if you ended up here trying to trace an error, look for
150
- // `throw '<error message>'` somewhere in your codebase.
151
- error = new SyntheticError(e);
152
- }
153
- try {
154
- inExceptionHandler = true;
155
- /* $FlowFixMe[class-object-subtyping] added when improving typing for this
156
- * parameters */
157
- // $FlowFixMe[incompatible-call]
158
- reportException(error, isFatal, /*reportToConsole*/ true);
159
- } finally {
160
- inExceptionHandler = false;
150
+ // TODO(T196834299): We should really use a c++ turbomodule for this
151
+ const reportToConsole = true;
152
+ if (
153
+ !global.RN$handleException ||
154
+ !global.RN$handleException(e, isFatal, reportToConsole)
155
+ ) {
156
+ let error: Error;
157
+ if (e instanceof Error) {
158
+ error = e;
159
+ } else {
160
+ // Workaround for reporting errors caused by `throw 'some string'`
161
+ // Unfortunately there is no way to figure out the stacktrace in this
162
+ // case, so if you ended up here trying to trace an error, look for
163
+ // `throw '<error message>'` somewhere in your codebase.
164
+ error = new SyntheticError(e);
165
+ }
166
+ try {
167
+ inExceptionHandler = true;
168
+ /* $FlowFixMe[class-object-subtyping] added when improving typing for this
169
+ * parameters */
170
+ // $FlowFixMe[incompatible-call]
171
+ reportException(error, isFatal, reportToConsole);
172
+ } finally {
173
+ inExceptionHandler = false;
174
+ }
161
175
  }
162
176
  }
163
177
 
@@ -169,7 +183,7 @@ function reactConsoleErrorHandler(...args) {
169
183
  if (!console.reportErrorsAsExceptions) {
170
184
  return;
171
185
  }
172
- if (inExceptionHandler) {
186
+ if (inExceptionHandler || global.RN$inExceptionHandler?.()) {
173
187
  // The fundamental trick here is that are multiple entry point to logging errors:
174
188
  // (see D19743075 for more background)
175
189
  //
@@ -223,14 +237,21 @@ function reactConsoleErrorHandler(...args) {
223
237
  error.name = 'console.error';
224
238
  }
225
239
 
226
- reportException(
227
- /* $FlowFixMe[class-object-subtyping] added when improving typing for this
228
- * parameters */
229
- // $FlowFixMe[incompatible-call]
230
- error,
231
- false, // isFatal
232
- false, // reportToConsole
233
- );
240
+ const isFatal = false;
241
+ const reportToConsole = false;
242
+ if (
243
+ !global.RN$handleException ||
244
+ !global.RN$handleException(error, isFatal, reportToConsole)
245
+ ) {
246
+ reportException(
247
+ /* $FlowFixMe[class-object-subtyping] added when improving typing for this
248
+ * parameters */
249
+ // $FlowFixMe[incompatible-call]
250
+ error,
251
+ isFatal,
252
+ reportToConsole,
253
+ );
254
+ }
234
255
  }
235
256
 
236
257
  /**
@@ -15,9 +15,9 @@ const version: $ReadOnly<{
15
15
  prerelease: string | null,
16
16
  }> = {
17
17
  major: 0,
18
- minor: 76,
19
- patch: 2,
20
- prerelease: null,
18
+ minor: 77,
19
+ patch: 0,
20
+ prerelease: 'rc.0',
21
21
  };
22
22
 
23
23
  module.exports = {version};
@@ -14,7 +14,6 @@ import typeof NativeExceptionsManager from '../NativeExceptionsManager';
14
14
  export default ({
15
15
  reportFatalException: jest.fn(),
16
16
  reportSoftException: jest.fn(),
17
- updateExceptionMessage: jest.fn(),
18
17
  dismissRedbox: jest.fn(),
19
18
  reportException: jest.fn(),
20
19
  }: NativeExceptionsManager);
@@ -16,16 +16,7 @@ if (global.RN$Bridgeless === true && global.RN$registerCallableModule) {
16
16
  } else {
17
17
  const BatchedBridge = require('../BatchedBridge/BatchedBridge');
18
18
  registerModule = (
19
- moduleName:
20
- | $TEMPORARY$string<'GlobalPerformanceLogger'>
21
- | $TEMPORARY$string<'HMRClient'>
22
- | $TEMPORARY$string<'HeapCapture'>
23
- | $TEMPORARY$string<'JSTimers'>
24
- | $TEMPORARY$string<'RCTDeviceEventEmitter'>
25
- | $TEMPORARY$string<'RCTLog'>
26
- | $TEMPORARY$string<'RCTNativeAppEventEmitter'>
27
- | $TEMPORARY$string<'SamplingProfiler'>
28
- | $TEMPORARY$string<'Systrace'>,
19
+ moduleName: string,
29
20
  /* $FlowFixMe[missing-local-annot] The type annotation(s) required by
30
21
  * Flow's LTI update could not be added via codemod */
31
22
  factory,
@@ -42,13 +42,9 @@ if (__DEV__) {
42
42
  if (!Platform.isTesting) {
43
43
  const HMRClient = require('../Utilities/HMRClient');
44
44
 
45
- // [0.76 only] When under React Native DevTools, log "JavaScript logs will
46
- // be removed from Metro..." warning, and continue to forward logs.
47
45
  if (global.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__) {
48
46
  HMRClient.unstable_notifyFuseboxConsoleEnabled();
49
- }
50
-
51
- if (console._isPolyfilled) {
47
+ } else if (console._isPolyfilled) {
52
48
  // We assume full control over the console and send JavaScript logs to Metro.
53
49
  [
54
50
  'trace',
@@ -10,24 +10,26 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- /**
14
- * Sets up the console and exception handling (redbox) for React Native.
15
- * You can use this module directly, or just require InitializeCore.
16
- */
17
- const ExceptionsManager = require('./ExceptionsManager');
18
- ExceptionsManager.installConsoleErrorReporter();
13
+ if (global.RN$useAlwaysAvailableJSErrorHandling !== true) {
14
+ /**
15
+ * Sets up the console and exception handling (redbox) for React Native.
16
+ * You can use this module directly, or just require InitializeCore.
17
+ */
18
+ const ExceptionsManager = require('./ExceptionsManager');
19
+ ExceptionsManager.installConsoleErrorReporter();
19
20
 
20
- // Set up error handler
21
- if (!global.__fbDisableExceptionsManager) {
22
- const handleError = (e: mixed, isFatal: boolean) => {
23
- try {
24
- ExceptionsManager.handleException(e, isFatal);
25
- } catch (ee) {
26
- console.log('Failed to print error: ', ee.message);
27
- throw e;
28
- }
29
- };
21
+ // Set up error handler
22
+ if (!global.__fbDisableExceptionsManager) {
23
+ const handleError = (e: mixed, isFatal: boolean) => {
24
+ try {
25
+ ExceptionsManager.handleException(e, isFatal);
26
+ } catch (ee) {
27
+ console.log('Failed to print error: ', ee.message);
28
+ throw e;
29
+ }
30
+ };
30
31
 
31
- const ErrorUtils = require('../vendor/core/ErrorUtils');
32
- ErrorUtils.setGlobalHandler(handleError);
32
+ const ErrorUtils = require('../vendor/core/ErrorUtils');
33
+ ErrorUtils.setGlobalHandler(handleError);
34
+ }
33
35
  }