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
@@ -165,6 +165,10 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
165
165
 
166
166
  //@cmember Show the caret
167
167
  BOOL TxShowCaret(BOOL fShow) override {
168
+ // Only show the caret if we have focus
169
+ if (fShow && !m_outer->m_hasFocus) {
170
+ return false;
171
+ }
168
172
  m_outer->ShowCaret(m_outer->windowsTextInputProps().caretHidden ? false : fShow);
169
173
  return true;
170
174
  }
@@ -232,19 +236,25 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
232
236
 
233
237
  //@cmember Establish a new cursor shape
234
238
  void TxSetCursor(HCURSOR hcur, BOOL fText) override {
235
- assert(false);
239
+ m_outer->m_hcursor = hcur;
236
240
  }
237
241
 
238
242
  //@cmember Converts screen coordinates of a specified point to the client coordinates
239
243
  BOOL TxScreenToClient(LPPOINT lppt) override {
240
- assert(false);
241
- return {};
244
+ winrt::Windows::Foundation::Point pt{static_cast<float>(lppt->x), static_cast<float>(lppt->y)};
245
+ auto localpt = m_outer->ScreenToLocal(pt);
246
+ lppt->x = static_cast<LONG>(localpt.X);
247
+ lppt->y = static_cast<LONG>(localpt.Y);
248
+ return true;
242
249
  }
243
250
 
244
251
  //@cmember Converts the client coordinates of a specified point to screen coordinates
245
252
  BOOL TxClientToScreen(LPPOINT lppt) override {
246
- assert(false);
247
- return {};
253
+ winrt::Windows::Foundation::Point pt{static_cast<float>(lppt->x), static_cast<float>(lppt->y)};
254
+ auto screenpt = m_outer->LocalToScreen(pt);
255
+ lppt->x = static_cast<LONG>(screenpt.X);
256
+ lppt->y = static_cast<LONG>(screenpt.Y);
257
+ return true;
248
258
  }
249
259
 
250
260
  //@cmember Request host to activate text services
@@ -477,7 +487,7 @@ facebook::react::AttributedString WindowsTextInputComponentView::getAttributedSt
477
487
  // that effect.
478
488
  fragment.textAttributes.backgroundColor = facebook::react::clearColor();
479
489
  // fragment.parentShadowView = facebook::react::ShadowView(*this);
480
- attributedString.prependFragment(fragment);
490
+ attributedString.prependFragment(std::move(fragment));
481
491
  }
482
492
 
483
493
  return attributedString;
@@ -722,6 +732,9 @@ void WindowsTextInputComponentView::OnPointerMoved(
722
732
  auto hr = m_textServices->TxSendMessage(msg, static_cast<WPARAM>(wParam), static_cast<LPARAM>(lParam), &lresult);
723
733
  args.Handled(hr != S_FALSE);
724
734
  }
735
+
736
+ m_textServices->OnTxSetCursor(
737
+ DVASPECT_CONTENT, -1, nullptr, nullptr, nullptr, nullptr, nullptr, ptContainer.x, ptContainer.y);
725
738
  }
726
739
 
727
740
  void WindowsTextInputComponentView::OnKeyDown(
@@ -870,6 +883,7 @@ void WindowsTextInputComponentView::OnCharacterReceived(
870
883
  emitter->onKeyPress(onKeyPressArgs);
871
884
 
872
885
  WPARAM wParam = static_cast<WPARAM>(args.KeyCode());
886
+
873
887
  LPARAM lParam = 0;
874
888
  lParam = args.KeyStatus().RepeatCount; // bits 0-15
875
889
  lParam |= args.KeyStatus().ScanCode << 16; // bits 16-23
@@ -908,6 +922,7 @@ void WindowsTextInputComponentView::UnmountChildComponentView(
908
922
 
909
923
  void WindowsTextInputComponentView::onLostFocus(
910
924
  const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
925
+ m_hasFocus = false;
911
926
  Super::onLostFocus(args);
912
927
  if (m_textServices) {
913
928
  LRESULT lresult;
@@ -919,6 +934,7 @@ void WindowsTextInputComponentView::onLostFocus(
919
934
 
920
935
  void WindowsTextInputComponentView::onGotFocus(
921
936
  const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
937
+ m_hasFocus = true;
922
938
  Super::onGotFocus(args);
923
939
  if (m_textServices) {
924
940
  LRESULT lresult;
@@ -1022,6 +1038,10 @@ void WindowsTextInputComponentView::updateProps(
1022
1038
  m_submitKeyEvents.clear();
1023
1039
  }
1024
1040
 
1041
+ if (oldTextInputProps.autoCapitalize != newTextInputProps.autoCapitalize) {
1042
+ autoCapitalizeOnUpdateProps(oldTextInputProps.autoCapitalize, newTextInputProps.autoCapitalize);
1043
+ }
1044
+
1025
1045
  UpdatePropertyBits();
1026
1046
  }
1027
1047
 
@@ -1346,7 +1366,7 @@ winrt::com_ptr<::IDWriteTextLayout> WindowsTextInputComponentView::CreatePlaceho
1346
1366
  textAttributes.fontSizeMultiplier = m_fontSizeMultiplier;
1347
1367
  fragment1.string = props.placeholder;
1348
1368
  fragment1.textAttributes = textAttributes;
1349
- attributedString.appendFragment(fragment1);
1369
+ attributedString.appendFragment(std::move(fragment1));
1350
1370
 
1351
1371
  facebook::react::LayoutConstraints constraints;
1352
1372
  constraints.maximumSize.width = static_cast<FLOAT>(m_imgWidth);
@@ -1462,6 +1482,10 @@ WindowsTextInputComponentView::createVisual() noexcept {
1462
1482
  return visual;
1463
1483
  }
1464
1484
 
1485
+ std::pair<facebook::react::Cursor, HCURSOR> WindowsTextInputComponentView::cursor() const noexcept {
1486
+ return {viewProps()->cursor, m_hcursor};
1487
+ }
1488
+
1465
1489
  void WindowsTextInputComponentView::onThemeChanged() noexcept {
1466
1490
  const auto &props = windowsTextInputProps();
1467
1491
  updateCursorColor(props.cursorColor, props.textAttributes.foregroundColor);
@@ -1476,4 +1500,29 @@ winrt::Microsoft::ReactNative::ComponentView WindowsTextInputComponentView::Crea
1476
1500
  return winrt::make<WindowsTextInputComponentView>(compContext, tag, reactContext);
1477
1501
  }
1478
1502
 
1503
+ // This function assumes that previous and new capitalization types are different.
1504
+ void WindowsTextInputComponentView::autoCapitalizeOnUpdateProps(
1505
+ const std::string &previousCapitalizationType,
1506
+ const std::string &newCapitalizationType) noexcept {
1507
+ /*
1508
+ Possible values are:
1509
+ Characters - All characters.
1510
+ Words - First letter of each word.
1511
+ Sentences - First letter of each sentence.
1512
+ None - Do not autocapitalize anything.
1513
+
1514
+ For now, only characters and none are supported.
1515
+ */
1516
+
1517
+ if (previousCapitalizationType == "characters") {
1518
+ winrt::check_hresult(m_textServices->TxSendMessage(
1519
+ EM_SETEDITSTYLE, 0 /* disable */, SES_UPPERCASE /* flag affected */, nullptr /* LRESULT */));
1520
+ }
1521
+
1522
+ if (newCapitalizationType == "characters") {
1523
+ winrt::check_hresult(m_textServices->TxSendMessage(
1524
+ EM_SETEDITSTYLE, SES_UPPERCASE /* enable */, SES_UPPERCASE /* flag affected */, nullptr /* LRESULT */));
1525
+ }
1526
+ }
1527
+
1479
1528
  } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -78,6 +78,8 @@ struct WindowsTextInputComponentView
78
78
 
79
79
  winrt::Microsoft::ReactNative::Composition::Experimental::IVisual createVisual() noexcept;
80
80
 
81
+ std::pair<facebook::react::Cursor, HCURSOR> cursor() const noexcept override;
82
+
81
83
  private:
82
84
  struct DrawBlock {
83
85
  DrawBlock(WindowsTextInputComponentView &view);
@@ -104,6 +106,10 @@ struct WindowsTextInputComponentView
104
106
  void InternalFinalize() noexcept;
105
107
  void UpdatePropertyBits() noexcept;
106
108
 
109
+ void autoCapitalizeOnUpdateProps(
110
+ const std::string &previousCapitalizationType,
111
+ const std::string &newcapitalizationType) noexcept;
112
+
107
113
  winrt::Windows::UI::Composition::CompositionSurfaceBrush m_brush{nullptr};
108
114
  winrt::Microsoft::ReactNative::Composition::Experimental::ICaretVisual m_caretVisual{nullptr};
109
115
  winrt::Microsoft::ReactNative::Composition::Experimental::IDrawingSurfaceBrush m_drawingSurface{nullptr};
@@ -124,10 +130,12 @@ struct WindowsTextInputComponentView
124
130
  int m_cDrawBlock{0};
125
131
  bool m_needsRedraw{false};
126
132
  bool m_drawing{false};
133
+ bool m_hasFocus{false};
127
134
  bool m_clearTextOnSubmit{false};
128
135
  bool m_multiline{false};
129
136
  DWORD m_propBitsMask{0};
130
137
  DWORD m_propBits{0};
138
+ HCURSOR m_hcursor{nullptr};
131
139
  std::vector<facebook::react::CompWindowsTextInputSubmitKeyEventsStruct> m_submitKeyEvents;
132
140
  };
133
141
 
@@ -38,6 +38,7 @@ AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutCon
38
38
  auto attributedString = AttributedString{};
39
39
  auto attachments = BaseTextShadowNode::Attachments{};
40
40
  BaseTextShadowNode::buildAttributedString(childTextAttributes, *this, attributedString, attachments);
41
+ attributedString.setBaseTextAttributes(childTextAttributes);
41
42
 
42
43
  // BaseTextShadowNode only gets children. We must detect and prepend text
43
44
  // value attributes manually.
@@ -53,7 +54,7 @@ AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutCon
53
54
  // that effect.
54
55
  fragment.textAttributes.backgroundColor = clearColor();
55
56
  fragment.parentShadowView = ShadowView(*this);
56
- attributedString.prependFragment(fragment);
57
+ attributedString.prependFragment(std::move(fragment));
57
58
  }
58
59
 
59
60
  return attributedString;
@@ -83,7 +84,7 @@ AttributedString WindowsTextInputShadowNode::getPlaceholderAttributedString(cons
83
84
  // appended to the AttributedString (see implementation of appendFragment)
84
85
  fragment.textAttributes = textAttributes;
85
86
  fragment.parentShadowView = ShadowView(*this);
86
- textAttributedString.appendFragment(fragment);
87
+ textAttributedString.appendFragment(std::move(fragment));
87
88
 
88
89
  return textAttributedString;
89
90
  }
@@ -330,7 +330,9 @@ bool Theme::TryGetPlatformColor(const std::string &platformColor, winrt::Windows
330
330
  {"AcrylicInAppFillColorDefault", {0x9E, 0xFF, 0xFF, 0xFF}},
331
331
  {"SystemChromeMediumLowColor", {0xFF, 0xF2, 0xF2, 0xF2}},
332
332
  {"SystemControlForegroundBaseHighColor", {0xFF, 0x00, 0x00, 0x00}},
333
- {"SystemControlTransientBorderColor", {0x24, 0x00, 0x00, 0x00}}};
333
+ {"SystemControlTransientBorderColor", {0x24, 0x00, 0x00, 0x00}},
334
+ {"FocusVisualPrimary", {0xFF, 0x00, 0x00, 0x00}},
335
+ {"FocusVisualSecondary", {0x99, 0xFF, 0xFF, 0xFF}}};
334
336
 
335
337
  static std::unordered_map<std::string, winrt::Windows::UI::Color, std::hash<std::string_view>, std::equal_to<>>
336
338
  s_darkColors = {
@@ -362,7 +364,9 @@ bool Theme::TryGetPlatformColor(const std::string &platformColor, winrt::Windows
362
364
  {"AcrylicInAppFillColorDefault", {0x9E, 0x00, 0x00, 0x00}},
363
365
  {"SystemChromeMediumLowColor", {0xFF, 0x2B, 0x2B, 0x2B}},
364
366
  {"SystemControlForegroundBaseHighColor", {0xFF, 0xFF, 0xFF, 0xFF}},
365
- {"SystemControlTransientBorderColor", {0x5C, 0x00, 0x00, 0x00}}};
367
+ {"SystemControlTransientBorderColor", {0x5C, 0x00, 0x00, 0x00}},
368
+ {"FocusVisualPrimary", {0xFF, 0xFF, 0xFF, 0xFF}},
369
+ {"FocusVisualSecondary", {0x99, 0x00, 0x00, 0x00F}}};
366
370
 
367
371
  static std::unordered_map<
368
372
  std::string,
@@ -399,7 +403,9 @@ bool Theme::TryGetPlatformColor(const std::string &platformColor, winrt::Windows
399
403
  {"ControlStrongFillColorDisabled", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonFace, {}}},
400
404
  {"SystemChromeMediumLowColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonFace, {}}},
401
405
  {"SystemControlForegroundBaseHighColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}},
402
- {"SystemControlTransientBorderColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}}};
406
+ {"SystemControlTransientBorderColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}},
407
+ {"FocusVisualPrimary", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}},
408
+ {"FocusVisualSecondary", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonFace, {}}}};
403
409
 
404
410
  auto alias = s_xamlAliasedColors.find(platformColor);
405
411
  if (alias != s_xamlAliasedColors.end()) {
@@ -49,7 +49,7 @@ facebook::react::AttributedStringBox CreateTooltipAttributedString(const std::st
49
49
  auto fragment = facebook::react::AttributedString::Fragment{};
50
50
  fragment.string = tooltip;
51
51
  fragment.textAttributes.fontSize = tooltipFontSize;
52
- attributedString.appendFragment(fragment);
52
+ attributedString.appendFragment(std::move(fragment));
53
53
  return facebook::react::AttributedStringBox{attributedString};
54
54
  }
55
55
 
@@ -214,4 +214,39 @@ ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept {
214
214
  }
215
215
  }
216
216
 
217
+ void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept {
218
+ winrt::com_ptr<IRawElementProviderSimple> selectionContainer;
219
+ provider->get_SelectionContainer(selectionContainer.put());
220
+ if (!selectionContainer)
221
+ return;
222
+ auto selectionContainerProvider = selectionContainer.as<CompositionDynamicAutomationProvider>();
223
+ auto simpleProvider = static_cast<IRawElementProviderSimple *>(provider);
224
+ winrt::com_ptr<IRawElementProviderSimple> simpleProviderPtr;
225
+ simpleProviderPtr.copy_from(simpleProvider);
226
+ selectionContainerProvider->AddToSelectionItems(simpleProviderPtr);
227
+ }
228
+
229
+ void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept {
230
+ winrt::com_ptr<IRawElementProviderSimple> selectionContainer;
231
+ provider->get_SelectionContainer(selectionContainer.put());
232
+ if (!selectionContainer)
233
+ return;
234
+ auto selectionContainerProvider = selectionContainer.as<CompositionDynamicAutomationProvider>();
235
+ auto simpleProvider = static_cast<IRawElementProviderSimple *>(provider);
236
+ winrt::com_ptr<IRawElementProviderSimple> simpleProviderPtr;
237
+ simpleProviderPtr.copy_from(simpleProvider);
238
+ selectionContainerProvider->RemoveFromSelectionItems(simpleProviderPtr);
239
+ }
240
+
241
+ ToggleState GetToggleState(const std::optional<facebook::react::AccessibilityState> &state) noexcept {
242
+ if (state.has_value()) {
243
+ if (state->checked == facebook::react::AccessibilityState::Checked) {
244
+ return ToggleState::ToggleState_On;
245
+ } else if (state->checked == facebook::react::AccessibilityState::Mixed) {
246
+ return ToggleState::ToggleState_Indeterminate;
247
+ }
248
+ }
249
+ return ToggleState::ToggleState_Off;
250
+ }
251
+
217
252
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -1,6 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include <Fabric/ComponentView.h>
4
+ #include <Fabric/Composition/CompositionDynamicAutomationProvider.h>
4
5
  #include <Fabric/ReactTaggedView.h>
5
6
  #include <UIAutomation.h>
6
7
 
@@ -36,4 +37,10 @@ std::string extractAccessibilityValue(const facebook::react::AccessibilityValue
36
37
  void DispatchAccessibilityAction(::Microsoft::ReactNative::ReactTaggedView &view, const std::string &action) noexcept;
37
38
 
38
39
  ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept;
40
+
41
+ void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept;
42
+
43
+ void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept;
44
+
45
+ ToggleState GetToggleState(const std::optional<facebook::react::AccessibilityState> &state) noexcept;
39
46
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -26,7 +26,7 @@ UnimplementedNativeViewComponentView::UnimplementedNativeViewComponentView(
26
26
  ~(ComponentViewFeatures::Background | ComponentViewFeatures::ShadowProps |
27
27
  ComponentViewFeatures::NativeBorder)) {
28
28
  m_labelVisual = compContext.CreateSpriteVisual();
29
- OuterVisual().InsertAt(m_labelVisual, 1);
29
+ OuterVisual().InsertAt(m_labelVisual, 0);
30
30
  }
31
31
 
32
32
  winrt::Microsoft::ReactNative::ComponentView UnimplementedNativeViewComponentView::Create(
@@ -30,7 +30,6 @@
30
30
  #include <react/renderer/scheduler/Scheduler.h>
31
31
  #include <react/renderer/scheduler/SchedulerToolbox.h>
32
32
  #include <react/utils/ContextContainer.h>
33
- #include <react/utils/CoreFeatures.h>
34
33
  #include <winrt/Windows.Graphics.Display.h>
35
34
  #include <winrt/Windows.UI.Composition.Desktop.h>
36
35
  #include "DynamicReader.h"
@@ -52,9 +51,7 @@ FabicUIManagerProperty() noexcept {
52
51
  return props.Get(FabicUIManagerProperty()).Value();
53
52
  }
54
53
 
55
- FabricUIManager::FabricUIManager() {
56
- facebook::react::CoreFeatures::enablePropIteratorSetter = true;
57
- }
54
+ FabricUIManager::FabricUIManager() {}
58
55
 
59
56
  FabricUIManager::~FabricUIManager() {
60
57
  // Make sure that we destroy UI components on UI thread.
@@ -76,8 +73,9 @@ void FabricUIManager::installFabricUIManager() noexcept {
76
73
 
77
74
  facebook::react::RuntimeExecutor runtimeExecutor;
78
75
  auto toolbox = facebook::react::SchedulerToolbox{};
76
+ auto runtimeScheduler = SchedulerSettings::RuntimeSchedulerFromProperties(m_context.Properties());
79
77
 
80
- if (auto runtimeScheduler = SchedulerSettings::RuntimeSchedulerFromProperties(m_context.Properties())) {
78
+ if (runtimeScheduler) {
81
79
  contextContainer->insert("RuntimeScheduler", runtimeScheduler);
82
80
  runtimeExecutor = [runtimeScheduler](std::function<void(facebook::jsi::Runtime & runtime)> &&callback) {
83
81
  runtimeScheduler->scheduleWork(std::move(callback));
@@ -87,8 +85,8 @@ void FabricUIManager::installFabricUIManager() noexcept {
87
85
  }
88
86
 
89
87
  facebook::react::EventBeat::Factory asynchronousBeatFactory =
90
- [runtimeExecutor, context = m_context](facebook::react::EventBeat::SharedOwnerBox const &ownerBox) {
91
- return std::make_unique<AsynchronousEventBeat>(ownerBox, context, runtimeExecutor);
88
+ [runtimeScheduler, context = m_context](std::shared_ptr<facebook::react::EventBeat::OwnerBox> const &ownerBox) {
89
+ return std::make_unique<AsynchronousEventBeat>(ownerBox, context, runtimeScheduler);
92
90
  };
93
91
 
94
92
  contextContainer->insert("ReactNativeConfig", config);
@@ -111,7 +109,7 @@ void FabricUIManager::installFabricUIManager() noexcept {
111
109
  return registry;
112
110
  };
113
111
  toolbox.runtimeExecutor = runtimeExecutor;
114
- toolbox.asynchronousEventBeatFactory = asynchronousBeatFactory;
112
+ toolbox.eventBeatFactory = asynchronousBeatFactory;
115
113
 
116
114
  m_scheduler = std::make_shared<facebook::react::Scheduler>(
117
115
  toolbox, (/*animationDriver_ ? animationDriver_.get() :*/ nullptr), this);
@@ -299,7 +297,8 @@ void FabricUIManager::RCTPerformMountInstructions(
299
297
  }
300
298
  }
301
299
 
302
- void FabricUIManager::performTransaction(facebook::react::MountingCoordinator::Shared const &mountingCoordinator) {
300
+ void FabricUIManager::performTransaction(
301
+ std::shared_ptr<const facebook::react::MountingCoordinator> const &mountingCoordinator) {
303
302
  auto surfaceId = mountingCoordinator->getSurfaceId();
304
303
 
305
304
  mountingCoordinator->getTelemetryController().pullTransaction(
@@ -321,7 +320,8 @@ void FabricUIManager::performTransaction(facebook::react::MountingCoordinator::S
321
320
  });
322
321
  }
323
322
 
324
- void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator) {
323
+ void FabricUIManager::initiateTransaction(
324
+ std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator) {
325
325
  if (m_transactionInFlight) {
326
326
  m_followUpTransactionRequired = true;
327
327
  return;
@@ -336,7 +336,7 @@ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::
336
336
  }
337
337
 
338
338
  void FabricUIManager::schedulerDidFinishTransaction(
339
- const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {
339
+ const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) {
340
340
  // Should cache this locally
341
341
 
342
342
  if (m_context.UIDispatcher().HasThreadAccess()) {
@@ -348,7 +348,7 @@ void FabricUIManager::schedulerDidFinishTransaction(
348
348
  }
349
349
 
350
350
  void FabricUIManager::schedulerShouldRenderTransactions(
351
- const facebook::react::MountingCoordinator::Shared &mountingCoordinator) {
351
+ const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) {
352
352
  if (m_context.UIDispatcher().HasThreadAccess()) {
353
353
  initiateTransaction(mountingCoordinator);
354
354
  } else {
@@ -56,8 +56,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
56
56
 
57
57
  private:
58
58
  void installFabricUIManager() noexcept;
59
- void initiateTransaction(facebook::react::MountingCoordinator::Shared mountingCoordinator);
60
- void performTransaction(facebook::react::MountingCoordinator::Shared const &mountingCoordinator);
59
+ void initiateTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator);
60
+ void performTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> const &mountingCoordinator);
61
61
  void RCTPerformMountInstructions(
62
62
  facebook::react::ShadowViewMutationList const &mutations,
63
63
  // facebook::react::RCTComponentViewRegistry* registry,
@@ -82,9 +82,9 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
82
82
 
83
83
  // Inherited via SchedulerDelegate
84
84
  virtual void schedulerDidFinishTransaction(
85
- const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
85
+ const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) override;
86
86
  virtual void schedulerShouldRenderTransactions(
87
- const facebook::react::MountingCoordinator::Shared &mountingCoordinator) override;
87
+ const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) override;
88
88
  virtual void schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) override;
89
89
  virtual void schedulerDidDispatchCommand(
90
90
  facebook::react::ShadowView const &shadowView,
@@ -10,15 +10,11 @@ namespace facebook::react {
10
10
  ImageRequest::ImageRequest(
11
11
  ImageSource imageSource,
12
12
  std::shared_ptr<const ImageTelemetry> telemetry,
13
+ SharedFunction<> resumeFunction,
13
14
  SharedFunction<> cancelationFunction)
14
- : imageSource_(std::move(imageSource)),
15
- telemetry_(std::move(telemetry)),
16
- cancelRequest_(std::move(cancelationFunction)) {
17
- coordinator_ = std::make_shared<ImageResponseObserverCoordinator>();
18
- }
19
-
20
- void ImageRequest::cancel() const {
21
- cancelRequest_();
15
+ : imageSource_(std::move(imageSource)), telemetry_(std::move(telemetry)) {
16
+ coordinator_ =
17
+ std::make_shared<ImageResponseObserverCoordinator>(std::move(resumeFunction), std::move(cancelationFunction));
22
18
  }
23
19
 
24
20
  const ImageSource &ImageRequest::getImageSource() const {
@@ -3,10 +3,10 @@
3
3
 
4
4
  #include "HostPlatformViewProps.h"
5
5
 
6
+ #include <react/featureflags/ReactNativeFeatureFlags.h>
6
7
  #include <react/renderer/components/view/conversions.h>
7
8
  #include <react/renderer/core/graphicsConversions.h>
8
9
  #include <react/renderer/core/propsConversions.h>
9
- #include <react/utils/CoreFeatures.h>
10
10
 
11
11
  namespace facebook::react {
12
12
 
@@ -17,36 +17,37 @@ HostPlatformViewProps::HostPlatformViewProps(
17
17
  bool shouldSetRawProps)
18
18
  : BaseViewProps(context, sourceProps, rawProps),
19
19
  windowsEvents(
20
- CoreFeatures::enablePropIteratorSetter ? sourceProps.windowsEvents
21
- : convertRawProp(context, rawProps, sourceProps.windowsEvents, {})),
20
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
21
+ ? sourceProps.windowsEvents
22
+ : convertRawProp(context, rawProps, sourceProps.windowsEvents, {})),
22
23
  enableFocusRing(
23
- CoreFeatures::enablePropIteratorSetter
24
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
24
25
  ? sourceProps.enableFocusRing
25
26
  : convertRawProp(context, rawProps, "enableFocusRing", sourceProps.enableFocusRing, true)),
26
27
  focusable(
27
- CoreFeatures::enablePropIteratorSetter
28
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
28
29
  ? sourceProps.focusable
29
30
  : convertRawProp(context, rawProps, "focusable", sourceProps.focusable, {})),
30
31
  tooltip(
31
- CoreFeatures::enablePropIteratorSetter
32
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
32
33
  ? sourceProps.tooltip
33
34
  : convertRawProp(context, rawProps, "tooltip", sourceProps.tooltip, {})),
34
35
  accessibilityPosInSet(
35
- CoreFeatures::enablePropIteratorSetter
36
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
36
37
  ? sourceProps.accessibilityPosInSet
37
38
  : convertRawProp(context, rawProps, "accessibilityPosInSet", sourceProps.accessibilityPosInSet, 0)),
38
39
  accessibilitySetSize(
39
- CoreFeatures::enablePropIteratorSetter
40
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
40
41
  ? sourceProps.accessibilitySetSize
41
42
  : convertRawProp(context, rawProps, "accessibilitySetSize", sourceProps.accessibilitySetSize, 0)),
42
43
  accessibilityLiveRegion(
43
- CoreFeatures::enablePropIteratorSetter ? sourceProps.accessibilityLiveRegion
44
- : convertRawProp(
45
- context,
46
- rawProps,
47
- "accessibilityLiveRegion",
48
- sourceProps.accessibilityLiveRegion,
49
- "none")) {}
44
+ ReactNativeFeatureFlags::enableCppPropsIteratorSetter() ? sourceProps.accessibilityLiveRegion
45
+ : convertRawProp(
46
+ context,
47
+ rawProps,
48
+ "accessibilityLiveRegion",
49
+ sourceProps.accessibilityLiveRegion,
50
+ "none")) {}
50
51
 
51
52
  #define WINDOWS_VIEW_EVENT_CASE(eventType) \
52
53
  case CONSTEXPR_RAW_PROPS_KEY_HASH("on" #eventType): { \
@@ -9,11 +9,7 @@
9
9
  namespace facebook::react::HostPlatformViewTraitsInitializer {
10
10
 
11
11
  inline bool formsStackingContext(ViewProps const &viewProps) {
12
- // onFocus/onBlur are often just used for listening to bubbled events.
13
- // Only Views which are marked as focusable can actually trigger the events, which will already avoid being collapsed.
14
- constexpr decltype(WindowsViewEvents::bits) focusEventsMask = {
15
- (1 << (int)WindowsViewEvents::Offset::Focus) & (1 << (int)WindowsViewEvents::Offset::Blur)};
16
- return (viewProps.windowsEvents.bits & focusEventsMask).any() || viewProps.tooltip;
12
+ return !viewProps.keyDownEvents.empty() || !viewProps.keyUpEvents.empty() || viewProps.tooltip;
17
13
  }
18
14
 
19
15
  inline bool formsView(ViewProps const &viewProps) {
@@ -25,6 +25,29 @@ namespace Microsoft.ReactNative.Composition
25
25
  [webhosthidden]
26
26
  delegate Microsoft.UI.Composition.Visual CreateVisualDelegate(Microsoft.ReactNative.ComponentView view);
27
27
 
28
+ [experimental]
29
+ delegate void UpdateLayoutMetricsDelegate(Microsoft.ReactNative.ComponentView source, Microsoft.ReactNative.LayoutMetrics newLayoutMetrics, Microsoft.ReactNative.LayoutMetrics oldLayoutMetrics);
30
+
31
+ [experimental]
32
+ [webhosthidden]
33
+ delegate Microsoft.UI.Composition.Visual VisualToMountChildrenIntoDelegate(Microsoft.ReactNative.ComponentView view);
34
+
35
+ namespace Experimental {
36
+ [experimental]
37
+ [webhosthidden]
38
+ DOC_STRING("This type will be removed in future versions")
39
+ delegate Microsoft.ReactNative.Composition.Experimental.IVisual IVisualToMountChildrenIntoDelegate(Microsoft.ReactNative.ComponentView view);
40
+
41
+ [experimental]
42
+ [webhosthidden]
43
+ DOC_STRING("This interface is for use when running react-native-windows using a custom compositor. "
44
+ "This interface will be removed in future versions")
45
+ interface IReactCompositionViewComponentInternalBuilder
46
+ {
47
+ void SetIVisualToMountChildrenIntoHandler(IVisualToMountChildrenIntoDelegate impl);
48
+ };
49
+ }
50
+
28
51
  [webhosthidden]
29
52
  [experimental]
30
53
  DOC_STRING(".")
@@ -33,6 +56,9 @@ namespace Microsoft.ReactNative.Composition
33
56
  void SetViewComponentViewInitializer(ViewComponentViewInitializer initializer);
34
57
  void SetContentIslandComponentViewInitializer(ComponentIslandComponentViewInitializer initializer);
35
58
  void SetCreateVisualHandler(CreateVisualDelegate impl);
59
+ void SetViewFeatures(ComponentViewFeatures viewFeatures);
60
+ void SetUpdateLayoutMetricsHandler(UpdateLayoutMetricsDelegate impl);
61
+ void SetVisualToMountChildrenIntoHandler(VisualToMountChildrenIntoDelegate impl);
36
62
  };
37
63
 
38
64
  } // namespace Microsoft.ReactNative
@@ -56,7 +56,7 @@ namespace Microsoft.ReactNative
56
56
 
57
57
  [experimental]
58
58
  DOC_STRING("A delegate that creates a @IComponentProps object for an instance of @ViewProps. See @IReactViewComponentBuilder.SetCreateProps")
59
- delegate IComponentProps ViewPropsFactory(ViewProps props);
59
+ delegate IComponentProps ViewPropsFactory(ViewProps props, IComponentProps cloneFrom);
60
60
 
61
61
  [experimental]
62
62
  delegate Windows.Foundation.Size MeasureContentHandler(ShadowNode shadowNode, LayoutContext layoutContext, LayoutConstraints layoutConstraints);
@@ -30,6 +30,16 @@ void AccessibilityInfo::isReduceMotionEnabled(std::function<void(bool)> const &o
30
30
  });
31
31
  }
32
32
 
33
+ void AccessibilityInfo::isInvertColorsEnabled(std::function<void(bool)> const &onSuccess) noexcept {
34
+ // TODO: implement ##14206
35
+ onSuccess(false);
36
+ }
37
+
38
+ void AccessibilityInfo::isHighTextContrastEnabled(std::function<void(bool)> const &onSuccess) noexcept {
39
+ // TODO: implement #14099
40
+ onSuccess(false);
41
+ }
42
+
33
43
  void AccessibilityInfo::isTouchExplorationEnabled(std::function<void(bool)> const &onSuccess) noexcept {
34
44
  onSuccess(UiaClientsAreListening());
35
45
  }
@@ -76,6 +86,11 @@ void AccessibilityInfo::getRecommendedTimeoutMillis(
76
86
  onSuccess(mSec);
77
87
  }
78
88
 
89
+ void AccessibilityInfo::isGrayscaleEnabled(std::function<void(bool)> const &onSuccess) noexcept {
90
+ // TODO: implement #14207
91
+ onSuccess(false);
92
+ }
93
+
79
94
  void AccessibilityInfo::isAccessibilityServiceEnabled(std::function<void(bool)> const &onSuccess) noexcept {
80
95
  onSuccess(false);
81
96
  }
@@ -17,6 +17,12 @@ struct AccessibilityInfo : public std::enable_shared_from_this<AccessibilityInfo
17
17
  REACT_METHOD(isReduceMotionEnabled)
18
18
  void isReduceMotionEnabled(std::function<void(bool)> const &onSuccess) noexcept;
19
19
 
20
+ REACT_METHOD(isInvertColorsEnabled)
21
+ void isInvertColorsEnabled(std::function<void(bool)> const &onSuccess) noexcept;
22
+
23
+ REACT_METHOD(isHighTextContrastEnabled)
24
+ void isHighTextContrastEnabled(std::function<void(bool)> const &onSuccess) noexcept;
25
+
20
26
  REACT_METHOD(isTouchExplorationEnabled)
21
27
  void isTouchExplorationEnabled(std::function<void(bool)> const &onSuccess) noexcept;
22
28
 
@@ -29,6 +35,9 @@ struct AccessibilityInfo : public std::enable_shared_from_this<AccessibilityInfo
29
35
  REACT_METHOD(getRecommendedTimeoutMillis)
30
36
  void getRecommendedTimeoutMillis(double mSec, std::function<void(double)> const &onSuccess) noexcept;
31
37
 
38
+ REACT_METHOD(isGrayscaleEnabled)
39
+ void isGrayscaleEnabled(std::function<void(bool)> const &onSuccess) noexcept;
40
+
32
41
  REACT_METHOD(isAccessibilityServiceEnabled)
33
42
  void isAccessibilityServiceEnabled(std::function<void(bool)> const &onSuccess) noexcept;
34
43