react-native-windows 0.81.1 → 0.82.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 (724) hide show
  1. package/.flowconfig +11 -10
  2. package/Directory.Build.props +3 -3
  3. package/Folly/Folly.vcxproj +1 -3
  4. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -3
  5. package/Libraries/Alert/RCTAlertManager.android.js +4 -2
  6. package/Libraries/Animated/Animated.d.ts +2 -0
  7. package/Libraries/Animated/AnimatedEvent.js +1 -1
  8. package/Libraries/Animated/AnimatedExports.js.flow +1 -0
  9. package/Libraries/Animated/AnimatedImplementation.js +4 -2
  10. package/Libraries/Animated/AnimatedMock.js +1 -1
  11. package/Libraries/Animated/Easing.js +2 -0
  12. package/Libraries/Animated/NativeAnimatedAllowlist.js +1 -0
  13. package/Libraries/Animated/animations/Animation.js +19 -20
  14. package/Libraries/Animated/animations/TimingAnimation.js +2 -0
  15. package/Libraries/Animated/components/AnimatedScrollView.js +3 -2
  16. package/Libraries/Animated/components/AnimatedSectionList.js +1 -1
  17. package/Libraries/Animated/nodes/AnimatedColor.js +9 -9
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +4 -4
  19. package/Libraries/Animated/nodes/AnimatedNode.js +14 -7
  20. package/Libraries/Animated/nodes/AnimatedObject.js +7 -7
  21. package/Libraries/Animated/nodes/AnimatedProps.js +32 -32
  22. package/Libraries/Animated/nodes/AnimatedStyle.js +23 -21
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +6 -6
  24. package/Libraries/Animated/nodes/AnimatedValue.js +18 -18
  25. package/Libraries/AppState/AppState.js +8 -4
  26. package/Libraries/BatchedBridge/MessageQueue.js +4 -0
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  28. package/Libraries/Blob/BlobManager.js +1 -1
  29. package/Libraries/Blob/URLSearchParams.js +2 -0
  30. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -2
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -2
  32. package/Libraries/Components/Button.js +1 -1
  33. package/Libraries/Components/Button.windows.js +1 -1
  34. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +2 -2
  35. package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
  36. package/Libraries/Components/Popup/PopupNativeComponent.js +1 -0
  37. package/Libraries/Components/Pressable/Pressable.d.ts +8 -0
  38. package/Libraries/Components/Pressable/Pressable.js +10 -1
  39. package/Libraries/Components/Pressable/Pressable.windows.js +30 -2
  40. package/Libraries/Components/Pressable/useAndroidRippleForView.js +2 -2
  41. package/Libraries/Components/ScrollView/ScrollView.js +13 -4
  42. package/Libraries/Components/ScrollView/ScrollView.windows.js +14 -5
  43. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  44. package/Libraries/Components/StatusBar/StatusBar.js +2 -2
  45. package/Libraries/Components/Switch/Switch.js +2 -2
  46. package/Libraries/Components/Switch/Switch.windows.js +2 -2
  47. package/Libraries/Components/TextInput/TextInput.flow.js +12 -5
  48. package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -5
  49. package/Libraries/Components/TextInput/TextInput.js +14 -5
  50. package/Libraries/Components/TextInput/TextInput.windows.js +23 -11
  51. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  52. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  53. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  54. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  55. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  56. package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
  57. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  58. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  59. package/Libraries/Components/View/View.js +81 -167
  60. package/Libraries/Components/View/View.windows.js +202 -302
  61. package/Libraries/Core/Devtools/loadBundleFromServer.js +1 -1
  62. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +1 -1
  63. package/Libraries/Core/ExceptionsManager.js +4 -2
  64. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  65. package/Libraries/Core/ReactNativeVersion.js +37 -10
  66. package/Libraries/Core/Timers/JSTimers.js +3 -1
  67. package/Libraries/Core/Timers/immediateShim.js +1 -1
  68. package/Libraries/Core/Timers/queueMicrotask.js +1 -0
  69. package/Libraries/Core/setUpPerformance.js +2 -1
  70. package/Libraries/Debugging/DebuggingOverlayRegistry.js +5 -3
  71. package/Libraries/Image/AssetSourceResolver.windows.js +2 -2
  72. package/Libraries/Image/Image.android.js +327 -111
  73. package/Libraries/Image/Image.ios.js +6 -1
  74. package/Libraries/Image/Image.windows.js +28 -61
  75. package/Libraries/Image/ImageSourceUtils.js +8 -2
  76. package/Libraries/Image/resolveAssetSource.js +1 -1
  77. package/Libraries/Image/resolveAssetSource.windows.js +1 -1
  78. package/Libraries/Interaction/InteractionManager.js +118 -167
  79. package/Libraries/Interaction/PanResponder.js +1 -1
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -0
  81. package/Libraries/Lists/FlatList.js +5 -6
  82. package/Libraries/LogBox/Data/LogBoxData.js +5 -2
  83. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  84. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -1
  85. package/Libraries/Modal/Modal.js +3 -3
  86. package/Libraries/Modal/Modal.windows.js +2 -2
  87. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  88. package/Libraries/NativeComponent/ViewConfig.js +2 -2
  89. package/Libraries/Network/RCTNetworking.android.js +1 -1
  90. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  91. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  92. package/Libraries/Network/XMLHttpRequest.js +20 -5
  93. package/Libraries/Network/convertRequestBody.js +1 -1
  94. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +10 -9
  95. package/Libraries/Pressability/HoverState.js +2 -0
  96. package/Libraries/Pressability/Pressability.js +1 -1
  97. package/Libraries/Pressability/Pressability.windows.js +5 -5
  98. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  99. package/Libraries/ReactNative/AppRegistryImpl.js +4 -2
  100. package/Libraries/ReactNative/PaperUIManager.windows.js +4 -4
  101. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -0
  102. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +3 -3
  103. package/Libraries/ReactNative/RendererImplementation.js +116 -116
  104. package/Libraries/ReactNative/UIManager.js +3 -3
  105. package/Libraries/ReactNative/renderApplication.js +1 -0
  106. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
  107. package/Libraries/Renderer/implementations/ReactFabric-dev.js +38 -35
  108. package/Libraries/Renderer/implementations/ReactFabric-prod.js +51 -22
  109. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +54 -24
  110. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +36 -33
  111. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5 -5
  112. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5 -5
  113. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  114. package/Libraries/Share/Share.js +4 -0
  115. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  116. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +2 -2
  117. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +2 -0
  118. package/Libraries/StyleSheet/StyleSheet.d.ts +7 -22
  119. package/Libraries/StyleSheet/StyleSheetExports.js +2 -8
  120. package/Libraries/StyleSheet/StyleSheetExports.js.flow +11 -18
  121. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  122. package/Libraries/StyleSheet/processAspectRatio.js +2 -0
  123. package/Libraries/StyleSheet/processFilter.js +5 -5
  124. package/Libraries/StyleSheet/splitLayoutProps.js +2 -2
  125. package/Libraries/Text/Text.js +534 -234
  126. package/Libraries/Text/Text.windows.js +622 -265
  127. package/Libraries/Text/TextNativeComponent.js +2 -2
  128. package/Libraries/Utilities/Appearance.d.ts +3 -5
  129. package/Libraries/Utilities/Appearance.js +5 -17
  130. package/Libraries/Utilities/HMRClient.js +2 -1
  131. package/Libraries/Utilities/Platform.android.js +3 -3
  132. package/Libraries/Utilities/Platform.d.ts +1 -0
  133. package/Libraries/Utilities/Platform.ios.js +1 -1
  134. package/Libraries/Utilities/Platform.windows.js +3 -3
  135. package/Libraries/Utilities/PlatformTypes.js +1 -1
  136. package/Libraries/Utilities/ReactNativeTestTools.js +12 -0
  137. package/Libraries/Utilities/SceneTracker.js +1 -1
  138. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  139. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  140. package/Libraries/Utilities/createPerformanceLogger.js +32 -0
  141. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -0
  142. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  143. package/Libraries/Utilities/useMergeRefs.js +1 -1
  144. package/Libraries/WebSocket/WebSocketInterceptor.js +2 -0
  145. package/Libraries/promiseRejectionTrackingOptions.js +17 -31
  146. package/Libraries/vendor/emitter/EventEmitter.js +1 -1
  147. package/Microsoft.ReactNative/App.xaml +5 -0
  148. package/Microsoft.ReactNative/Base/CxxReactIncludes.h +0 -3
  149. package/Microsoft.ReactNative/CompositionContext.idl +0 -2
  150. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +2 -2
  151. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +0 -2
  152. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +26 -0
  153. package/Microsoft.ReactNative/Fabric/ComponentView.h +2 -0
  154. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +0 -1
  155. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +0 -69
  156. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +1 -15
  157. package/Microsoft.ReactNative/Fabric/Composition/CompositionAnnotationProvider.cpp +2 -5
  158. package/Microsoft.ReactNative/Fabric/Composition/CompositionAnnotationProvider.h +1 -4
  159. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -31
  160. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +0 -10
  161. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -4
  162. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +65 -32
  163. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +9 -0
  164. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +8 -6
  165. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +0 -2
  166. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  167. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +0 -9
  168. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +2 -11
  169. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +0 -4
  170. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextProvider.cpp +4 -7
  171. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextProvider.h +1 -5
  172. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.cpp +68 -53
  173. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.h +1 -5
  174. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +20 -18
  175. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -3
  176. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +30 -9
  177. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +4 -1
  178. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +3 -2
  179. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +0 -2
  180. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +0 -1
  181. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +550 -4
  182. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +52 -0
  183. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +16 -0
  184. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +6 -0
  185. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +0 -6
  186. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +0 -2
  187. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +53 -2
  188. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -1
  189. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +0 -2
  190. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +0 -1
  191. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +5 -2
  192. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +4 -1
  193. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +6 -30
  194. package/Microsoft.ReactNative/Fabric/Composition/Theme.h +1 -3
  195. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  196. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +36 -14
  197. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +0 -1
  198. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +0 -1
  199. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +0 -4
  200. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
  201. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +8 -0
  202. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +3 -0
  203. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -11
  204. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.h +2 -1
  205. package/Microsoft.ReactNative/IReactContext.cpp +2 -25
  206. package/Microsoft.ReactNative/IReactContext.h +0 -7
  207. package/Microsoft.ReactNative/IReactContext.idl +4 -29
  208. package/Microsoft.ReactNative/IReactModuleBuilder.cpp +24 -140
  209. package/Microsoft.ReactNative/IReactModuleBuilder.h +0 -11
  210. package/Microsoft.ReactNative/IReactPackageBuilder.idl +1 -16
  211. package/Microsoft.ReactNative/IReactPackageProvider.idl +0 -1
  212. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +10 -0
  213. package/Microsoft.ReactNative/JsiApi.cpp +4 -3
  214. package/Microsoft.ReactNative/JsiApi.h +2 -3
  215. package/Microsoft.ReactNative/JsiApi.idl +3 -2
  216. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +6 -214
  217. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -252
  218. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +0 -37
  219. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -140
  220. package/Microsoft.ReactNative/Modules/AlertModule.h +0 -2
  221. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +5 -10
  222. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -1
  223. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +1 -96
  224. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +0 -14
  225. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +0 -53
  226. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -5
  227. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +5 -14
  228. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.h +0 -2
  229. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +1 -9
  230. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +0 -4
  231. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +0 -2
  232. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +16 -90
  233. package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +3 -8
  234. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +11 -48
  235. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +0 -3
  236. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +30 -102
  237. package/Microsoft.ReactNative/Modules/LogBoxModule.h +0 -7
  238. package/Microsoft.ReactNative/Modules/Timing.cpp +7 -9
  239. package/Microsoft.ReactNative/Pch/pch.h +0 -28
  240. package/Microsoft.ReactNative/ReactCoreInjection.h +0 -1
  241. package/Microsoft.ReactNative/ReactHost/IReactInstance.h +0 -8
  242. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -15
  243. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +0 -2
  244. package/Microsoft.ReactNative/ReactHost/React.h +0 -44
  245. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +10 -47
  246. package/Microsoft.ReactNative/ReactHost/ReactHost.h +1 -1
  247. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +30 -586
  248. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +2 -37
  249. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +0 -13
  250. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -1
  251. package/Microsoft.ReactNative/ReactInstanceSettings.cpp +0 -8
  252. package/Microsoft.ReactNative/ReactInstanceSettings.h +0 -13
  253. package/Microsoft.ReactNative/ReactInstanceSettings.idl +7 -23
  254. package/Microsoft.ReactNative/ReactNativeHost.cpp +10 -35
  255. package/Microsoft.ReactNative/ReactNativeHost.h +0 -1
  256. package/Microsoft.ReactNative/ReactNativeIsland.idl +0 -4
  257. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +9 -36
  258. package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -38
  259. package/Microsoft.ReactNative/RedBox.cpp +9 -362
  260. package/Microsoft.ReactNative/Theme.idl +0 -2
  261. package/Microsoft.ReactNative/Timer.cpp +3 -2
  262. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -47
  263. package/Microsoft.ReactNative/Utils/Helpers.h +0 -5
  264. package/Microsoft.ReactNative/Utils/IcuUtils.cpp +84 -0
  265. package/Microsoft.ReactNative/Utils/IcuUtils.h +42 -0
  266. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +0 -11
  267. package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +0 -4
  268. package/Microsoft.ReactNative/Utils/ThemeUtils.h +1 -5
  269. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -2
  270. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +0 -245
  271. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -23
  272. package/Microsoft.ReactNative/ViewProps.idl +0 -2
  273. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -278
  274. package/Microsoft.ReactNative/Views/DevMenu.h +0 -5
  275. package/Microsoft.ReactNative/XamlApplication.cpp +71 -0
  276. package/Microsoft.ReactNative/XamlApplication.h +47 -0
  277. package/Microsoft.ReactNative/XamlApplication.idl +19 -0
  278. package/Microsoft.ReactNative/XamlUIService.cpp +0 -54
  279. package/Microsoft.ReactNative/XamlUIService.h +0 -12
  280. package/Microsoft.ReactNative/XamlUIService.idl +0 -12
  281. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -19
  282. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  283. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +191 -114
  284. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +5 -0
  285. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +37 -0
  286. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +68 -0
  287. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +77 -11
  288. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  289. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -5
  290. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +93 -1
  291. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.cpp +4 -3
  292. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +2 -2
  293. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +2 -55
  294. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +4 -8
  295. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +5 -0
  296. package/Microsoft.ReactNative.Cxx/ReactCommon/react/timing/primitives.h +32 -4
  297. package/Microsoft.ReactNative.Cxx/ReactContext.h +0 -13
  298. package/Microsoft.ReactNative.Cxx/StructInfo.h +8 -1
  299. package/Microsoft.ReactNative.Cxx/UI.Composition.Effects.h +0 -4
  300. package/Microsoft.ReactNative.Cxx/UI.Composition.h +0 -4
  301. package/Microsoft.ReactNative.Cxx/UI.Input.h +0 -4
  302. package/Microsoft.ReactNative.Cxx/UI.Popups.h +0 -4
  303. package/Microsoft.ReactNative.Cxx/UI.Text.h +0 -4
  304. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -33
  305. package/Microsoft.ReactNative.Managed/JSValueReader.cs +0 -4
  306. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -3
  307. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -5
  308. package/Microsoft.ReactNative.Managed/ReactContextGenerator.cs +0 -4
  309. package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +0 -25
  310. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +0 -4
  311. package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -2
  312. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +0 -10
  313. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +0 -36
  314. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.cs +0 -6
  315. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +0 -2
  316. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +0 -2
  317. package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +0 -2
  318. package/Mso/src/dispatchQueue/queueService.cpp +3 -1
  319. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -10
  320. package/PropertySheets/Bundle.Common.targets +1 -1
  321. package/PropertySheets/Bundle.props +3 -4
  322. package/PropertySheets/External/Microsoft.ReactNative.Common.props +0 -1
  323. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +1 -1
  324. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +1 -1
  325. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  326. package/PropertySheets/JSEngine.props +1 -1
  327. package/PropertySheets/NuGet.LockFile.props +0 -8
  328. package/PropertySheets/OutputMSBuildProperties.targets +0 -1
  329. package/PropertySheets/React.Cpp.props +3 -5
  330. package/PropertySheets/WinUI.props +3 -3
  331. package/README.md +1 -5
  332. package/ReactCommon/ReactCommon.vcxproj +12 -31
  333. package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
  334. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +3 -2
  335. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +5 -2
  336. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +20 -4
  337. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +113 -1
  338. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +14 -6
  339. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/Utf8.h +1 -0
  340. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp +351 -0
  341. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +2 -2
  342. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +42 -36
  343. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +15 -3
  344. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +1 -1
  345. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +174 -0
  346. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +1 -0
  347. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +26 -3
  348. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +1 -1
  349. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +1 -1
  350. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +189 -0
  351. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +27 -8
  352. package/ReactCommon/cgmanifest.json +1 -1
  353. package/Scripts/Microsoft.ReactNative.nuspec +15 -33
  354. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +23 -23
  355. package/Scripts/OfficeReact.Win32.nuspec +0 -3
  356. package/Scripts/creaternwapp.cmd +1 -1
  357. package/Shared/DevServerHelper.h +17 -21
  358. package/Shared/DevSettings.h +1 -25
  359. package/Shared/DevSupportManager.cpp +0 -50
  360. package/Shared/DevSupportManager.h +0 -4
  361. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +5 -1
  362. package/Shared/HermesRuntimeHolder.cpp +0 -31
  363. package/Shared/HermesRuntimeHolder.h +0 -14
  364. package/Shared/IDevSupportManager.h +0 -6
  365. package/Shared/InstanceManager.cpp +0 -97
  366. package/Shared/InstanceManager.h +0 -53
  367. package/Shared/JSI/ScriptStore.h +1 -1
  368. package/Shared/Logging.cpp +1 -12
  369. package/Shared/Modules/CxxModuleUtilities.cpp +0 -9
  370. package/Shared/Modules/CxxModuleUtilities.h +0 -8
  371. package/Shared/Networking/OriginPolicyHttpFilter.cpp +9 -1
  372. package/Shared/OInstance.cpp +144 -424
  373. package/Shared/OInstance.h +0 -81
  374. package/Shared/Shared.vcxitems +83 -203
  375. package/Shared/Shared.vcxitems.filters +8 -67
  376. package/Shared/Threading/MessageQueueThreadFactory.cpp +0 -6
  377. package/Shared/Threading/MessageQueueThreadFactory.h +0 -4
  378. package/Shared/TurboModuleManager.cpp +0 -4
  379. package/Shared/Utils.cpp +26 -0
  380. package/Shared/Utils.h +3 -0
  381. package/codegen/NativeDOMSpec.g.h +41 -35
  382. package/codegen/NativeIntersectionObserverSpec.g.h +9 -21
  383. package/codegen/NativePerformanceSpec.g.h +47 -35
  384. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +177 -129
  385. package/codegen/react/components/rnwcore/ActivityIndicatorView.g.h +14 -0
  386. package/codegen/react/components/rnwcore/AndroidDrawerLayout.g.h +14 -0
  387. package/codegen/react/components/rnwcore/AndroidHorizontalScrollContentView.g.h +14 -0
  388. package/codegen/react/components/rnwcore/AndroidProgressBar.g.h +14 -0
  389. package/codegen/react/components/rnwcore/AndroidSwipeRefreshLayout.g.h +14 -0
  390. package/codegen/react/components/rnwcore/AndroidSwitch.g.h +14 -0
  391. package/codegen/react/components/rnwcore/DebuggingOverlay.g.h +14 -0
  392. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  393. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  394. package/codegen/react/components/rnwcore/InputAccessory.g.h +14 -0
  395. package/codegen/react/components/rnwcore/ModalHostView.g.h +14 -0
  396. package/codegen/react/components/rnwcore/Props.cpp +41 -2
  397. package/codegen/react/components/rnwcore/Props.h +51 -2
  398. package/codegen/react/components/rnwcore/PullToRefreshView.g.h +14 -0
  399. package/codegen/react/components/rnwcore/SafeAreaView.g.h +14 -0
  400. package/codegen/react/components/rnwcore/Switch.g.h +14 -0
  401. package/codegen/react/components/rnwcore/UnimplementedNativeView.g.h +14 -0
  402. package/codegen/react/components/rnwcore/VirtualView.g.h +18 -0
  403. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +240 -0
  404. package/codegen/rnwcoreJSI-generated.cpp +106 -51
  405. package/codegen/rnwcoreJSI.h +148 -67
  406. package/fmt/cgmanifest.json +1 -1
  407. package/fmt/fmt.vcxproj +0 -8
  408. package/index.js +8 -2
  409. package/index.windows.js +8 -2
  410. package/jest/local-setup.js +2 -2
  411. package/jest/mock.js +1 -1
  412. package/jest/mockComponent.js +9 -9
  413. package/jest/mockNativeComponent.js +3 -2
  414. package/jest/mocks/Modal.js +1 -1
  415. package/jest/mocks/ScrollView.js +1 -1
  416. package/jest/mocks/ViewNativeComponent.js +1 -1
  417. package/jest/setup.js +23 -12
  418. package/just-task.js +14 -0
  419. package/package.json +31 -32
  420. package/src/private/animated/NativeAnimatedHelper.js +16 -5
  421. package/src/private/animated/createAnimatedPropsHook.js +11 -60
  422. package/src/private/animated/createAnimatedPropsMemoHook.js +8 -54
  423. package/src/private/components/virtualview/VirtualView.js +43 -12
  424. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +93 -0
  425. package/src/private/components/virtualview/VirtualViewNativeComponent.js +6 -0
  426. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +2 -2
  427. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -2
  428. package/src/private/featureflags/ReactNativeFeatureFlags.js +80 -52
  429. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  430. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -6
  431. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
  432. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +0 -1
  433. package/src/private/types/HostInstance.js +4 -1
  434. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +22 -2
  435. package/src/private/webapis/dom/nodes/ReactNativeElement.js +1 -1
  436. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +5 -3
  437. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +16 -13
  438. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +45 -22
  439. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  440. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +26 -192
  441. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +15 -12
  442. package/src/private/webapis/dom/oldstylecollections/NodeList.js +14 -11
  443. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  444. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +19 -74
  445. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +0 -4
  446. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  447. package/src/private/webapis/performance/EventTiming.js +6 -10
  448. package/src/private/webapis/performance/Performance.js +309 -164
  449. package/src/private/webapis/performance/PerformanceEntry.js +20 -16
  450. package/src/private/webapis/performance/PerformanceObserver.js +8 -29
  451. package/src/private/webapis/performance/UserTiming.js +71 -18
  452. package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
  453. package/src/private/webapis/performance/internals/Utilities.js +9 -0
  454. package/src/private/webapis/performance/specs/NativePerformance.js +21 -23
  455. package/src/private/webapis/structuredClone/structuredClone.js +10 -10
  456. package/stubs/double-conversion/README.md +1 -1
  457. package/template/cpp-lib/proj/MyLib.sln +0 -5
  458. package/template/cpp-lib/src/pch.h +0 -5
  459. package/template/cs-lib/proj/MyLib.sln +0 -5
  460. package/template/metro.config.js +1 -0
  461. package/templates/cpp-app/metro.config.js +2 -1
  462. package/templates/cpp-app/windows/MyApp.sln +0 -5
  463. package/templates/cpp-lib/example/metro.config.js +3 -4
  464. package/templates/cpp-lib/windows/MyLib.sln +0 -5
  465. package/Chakra/Chakra.vcxitems +0 -32
  466. package/Chakra/Chakra.vcxitems.filters +0 -54
  467. package/Chakra/ChakraHelpers.cpp +0 -468
  468. package/Chakra/ChakraHelpers.h +0 -146
  469. package/Chakra/ChakraInstanceArgs.h +0 -52
  470. package/Chakra/ChakraPlatform.cpp +0 -42
  471. package/Chakra/ChakraPlatform.h +0 -51
  472. package/Chakra/ChakraTracing.cpp +0 -275
  473. package/Chakra/ChakraTracing.h +0 -11
  474. package/Chakra/ChakraUtils.cpp +0 -190
  475. package/Chakra/ChakraUtils.h +0 -72
  476. package/Chakra/ChakraValue.cpp +0 -257
  477. package/Chakra/ChakraValue.h +0 -308
  478. package/Chakra/Utf8DebugExtensions.cpp +0 -62
  479. package/Chakra/Utf8DebugExtensions.h +0 -29
  480. package/Libraries/Interaction/InteractionManagerStub.js +0 -184
  481. package/Libraries/Interaction/TaskQueue.js +0 -183
  482. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -31
  483. package/Microsoft.ReactNative/ABICxxModule.cpp +0 -51
  484. package/Microsoft.ReactNative/ABICxxModule.h +0 -38
  485. package/Microsoft.ReactNative/ABIViewManager.cpp +0 -263
  486. package/Microsoft.ReactNative/ABIViewManager.h +0 -100
  487. package/Microsoft.ReactNative/Base/CoreUIManagers.cpp +0 -55
  488. package/Microsoft.ReactNative/DevMenuControl.cpp +0 -14
  489. package/Microsoft.ReactNative/DevMenuControl.h +0 -20
  490. package/Microsoft.ReactNative/DevMenuControl.idl +0 -28
  491. package/Microsoft.ReactNative/DevMenuControl.xaml +0 -139
  492. package/Microsoft.ReactNative/GlyphViewManager.cpp +0 -167
  493. package/Microsoft.ReactNative/GlyphViewManager.h +0 -24
  494. package/Microsoft.ReactNative/INativeUIManager.h +0 -75
  495. package/Microsoft.ReactNative/IViewManager.idl +0 -120
  496. package/Microsoft.ReactNative/IViewManagerCore.idl +0 -45
  497. package/Microsoft.ReactNative/LayoutService.cpp +0 -51
  498. package/Microsoft.ReactNative/LayoutService.h +0 -32
  499. package/Microsoft.ReactNative/LayoutService.idl +0 -41
  500. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +0 -1187
  501. package/Microsoft.ReactNative/Modules/NativeUIManager.h +0 -128
  502. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +0 -891
  503. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +0 -185
  504. package/Microsoft.ReactNative/NativeModulesProvider.cpp +0 -49
  505. package/Microsoft.ReactNative/NativeModulesProvider.h +0 -25
  506. package/Microsoft.ReactNative/ReactApplication.cpp +0 -276
  507. package/Microsoft.ReactNative/ReactApplication.h +0 -156
  508. package/Microsoft.ReactNative/ReactApplication.idl +0 -48
  509. package/Microsoft.ReactNative/ReactHost/ViewManagerProvider.h +0 -19
  510. package/Microsoft.ReactNative/ReactPointerEventArgs.cpp +0 -55
  511. package/Microsoft.ReactNative/ReactPointerEventArgs.h +0 -32
  512. package/Microsoft.ReactNative/ReactPointerEventArgs.idl +0 -79
  513. package/Microsoft.ReactNative/ReactRootView.cpp +0 -592
  514. package/Microsoft.ReactNative/ReactRootView.h +0 -127
  515. package/Microsoft.ReactNative/ReactRootView.idl +0 -40
  516. package/Microsoft.ReactNative/TestHook.cpp +0 -99
  517. package/Microsoft.ReactNative/TestHook.h +0 -15
  518. package/Microsoft.ReactNative/Utils/AccessibilityUtils.cpp +0 -36
  519. package/Microsoft.ReactNative/Utils/AccessibilityUtils.h +0 -15
  520. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +0 -171
  521. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.h +0 -72
  522. package/Microsoft.ReactNative/Utils/PropertyHandlerUtils.h +0 -87
  523. package/Microsoft.ReactNative/Utils/PropertyUtils.h +0 -568
  524. package/Microsoft.ReactNative/Utils/ResourceBrushUtils.cpp +0 -182
  525. package/Microsoft.ReactNative/Utils/ResourceBrushUtils.h +0 -58
  526. package/Microsoft.ReactNative/Utils/ShadowNodeTypeUtils.h +0 -26
  527. package/Microsoft.ReactNative/Utils/XamlIslandUtils.cpp +0 -93
  528. package/Microsoft.ReactNative/Utils/XamlIslandUtils.h +0 -48
  529. package/Microsoft.ReactNative/ViewManagersProvider.cpp +0 -39
  530. package/Microsoft.ReactNative/ViewManagersProvider.h +0 -27
  531. package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.cpp +0 -62
  532. package/Microsoft.ReactNative/Views/ActivityIndicatorViewManager.h +0 -29
  533. package/Microsoft.ReactNative/Views/ConfigureBundlerDlg.cpp +0 -186
  534. package/Microsoft.ReactNative/Views/ConfigureBundlerDlg.h +0 -11
  535. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +0 -143
  536. package/Microsoft.ReactNative/Views/ControlViewManager.h +0 -38
  537. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.cpp +0 -53
  538. package/Microsoft.ReactNative/Views/DebuggingOverlayViewManager.h +0 -30
  539. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +0 -586
  540. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +0 -104
  541. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +0 -330
  542. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +0 -111
  543. package/Microsoft.ReactNative/Views/DynamicValueProvider.cpp +0 -59
  544. package/Microsoft.ReactNative/Views/DynamicValueProvider.h +0 -32
  545. package/Microsoft.ReactNative/Views/ExpressionAnimationStore.cpp +0 -61
  546. package/Microsoft.ReactNative/Views/ExpressionAnimationStore.h +0 -26
  547. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +0 -559
  548. package/Microsoft.ReactNative/Views/FlyoutViewManager.h +0 -34
  549. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +0 -126
  550. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.h +0 -23
  551. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +0 -957
  552. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.h +0 -41
  553. package/Microsoft.ReactNative/Views/IXamlRootView.h +0 -17
  554. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +0 -245
  555. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +0 -45
  556. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +0 -469
  557. package/Microsoft.ReactNative/Views/Image/ReactImage.h +0 -80
  558. package/Microsoft.ReactNative/Views/Image/ReactImageBrush.cpp +0 -247
  559. package/Microsoft.ReactNative/Views/Image/ReactImageBrush.h +0 -67
  560. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +0 -261
  561. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -132
  562. package/Microsoft.ReactNative/Views/PaperShadowNode.cpp +0 -18
  563. package/Microsoft.ReactNative/Views/PaperShadowNode.h +0 -38
  564. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +0 -349
  565. package/Microsoft.ReactNative/Views/PopupViewManager.h +0 -36
  566. package/Microsoft.ReactNative/Views/RawTextViewManager.cpp +0 -69
  567. package/Microsoft.ReactNative/Views/RawTextViewManager.h +0 -46
  568. package/Microsoft.ReactNative/Views/ReactViewInstance.cpp +0 -43
  569. package/Microsoft.ReactNative/Views/ReactViewInstance.h +0 -53
  570. package/Microsoft.ReactNative/Views/RefreshControlManager.cpp +0 -116
  571. package/Microsoft.ReactNative/Views/RefreshControlManager.h +0 -28
  572. package/Microsoft.ReactNative/Views/RootViewManager.cpp +0 -65
  573. package/Microsoft.ReactNative/Views/RootViewManager.h +0 -36
  574. package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +0 -117
  575. package/Microsoft.ReactNative/Views/SIPEventHandler.h +0 -45
  576. package/Microsoft.ReactNative/Views/ScrollContentViewManager.cpp +0 -16
  577. package/Microsoft.ReactNative/Views/ScrollContentViewManager.h +0 -19
  578. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +0 -540
  579. package/Microsoft.ReactNative/Views/ScrollViewManager.h +0 -42
  580. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +0 -228
  581. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +0 -169
  582. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -68
  583. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +0 -40
  584. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +0 -97
  585. package/Microsoft.ReactNative/Views/SliderViewManager.h +0 -32
  586. package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +0 -227
  587. package/Microsoft.ReactNative/Views/SwitchViewManager.h +0 -31
  588. package/Microsoft.ReactNative/Views/Text/TextHighlighterVisitor.cpp +0 -52
  589. package/Microsoft.ReactNative/Views/Text/TextHighlighterVisitor.h +0 -37
  590. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +0 -348
  591. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.h +0 -13
  592. package/Microsoft.ReactNative/Views/Text/TextHitTestVisitor.cpp +0 -76
  593. package/Microsoft.ReactNative/Views/Text/TextHitTestVisitor.h +0 -32
  594. package/Microsoft.ReactNative/Views/Text/TextParentVisitor.cpp +0 -12
  595. package/Microsoft.ReactNative/Views/Text/TextParentVisitor.h +0 -19
  596. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +0 -75
  597. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.h +0 -43
  598. package/Microsoft.ReactNative/Views/Text/TextTransformParentVisitor.cpp +0 -21
  599. package/Microsoft.ReactNative/Views/Text/TextTransformParentVisitor.h +0 -23
  600. package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +0 -70
  601. package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.h +0 -34
  602. package/Microsoft.ReactNative/Views/Text/TextVisitor.cpp +0 -56
  603. package/Microsoft.ReactNative/Views/Text/TextVisitor.h +0 -34
  604. package/Microsoft.ReactNative/Views/Text/TextVisitorScope.h +0 -35
  605. package/Microsoft.ReactNative/Views/Text/TextVisitors.h +0 -47
  606. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +0 -1003
  607. package/Microsoft.ReactNative/Views/TextInputViewManager.h +0 -33
  608. package/Microsoft.ReactNative/Views/TextViewManager.cpp +0 -414
  609. package/Microsoft.ReactNative/Views/TextViewManager.h +0 -47
  610. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +0 -608
  611. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -116
  612. package/Microsoft.ReactNative/Views/UnimplementedViewManager.cpp +0 -79
  613. package/Microsoft.ReactNative/Views/UnimplementedViewManager.h +0 -27
  614. package/Microsoft.ReactNative/Views/ViewControl.cpp +0 -43
  615. package/Microsoft.ReactNative/Views/ViewControl.h +0 -32
  616. package/Microsoft.ReactNative/Views/ViewManager.h +0 -33
  617. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -487
  618. package/Microsoft.ReactNative/Views/ViewManagerBase.h +0 -121
  619. package/Microsoft.ReactNative/Views/ViewPanel.cpp +0 -164
  620. package/Microsoft.ReactNative/Views/ViewPanel.h +0 -82
  621. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +0 -507
  622. package/Microsoft.ReactNative/Views/ViewViewManager.h +0 -52
  623. package/Microsoft.ReactNative/Views/VirtualTextViewManager.cpp +0 -143
  624. package/Microsoft.ReactNative/Views/VirtualTextViewManager.h +0 -57
  625. package/Microsoft.ReactNative/Views/XamlFeatures.cpp +0 -11
  626. package/Microsoft.ReactNative/Views/XamlFeatures.h +0 -11
  627. package/Microsoft.ReactNative/Views/cppwinrt/AccessibilityAction.idl +0 -12
  628. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +0 -231
  629. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +0 -48
  630. package/Microsoft.ReactNative/XamlHelper.cpp +0 -78
  631. package/Microsoft.ReactNative/XamlHelper.h +0 -54
  632. package/Microsoft.ReactNative/XamlHelper.idl +0 -30
  633. package/Microsoft.ReactNative/XamlLoadState.cpp +0 -217
  634. package/Microsoft.ReactNative/XamlLoadState.h +0 -44
  635. package/Microsoft.ReactNative/XamlView.cpp +0 -59
  636. package/Microsoft.ReactNative/XamlView.h +0 -58
  637. package/Microsoft.ReactNative/getLayoutProps.ps1 +0 -5
  638. package/Microsoft.ReactNative.Cxx/UI.Xaml.Automation.Peers.h +0 -10
  639. package/Microsoft.ReactNative.Cxx/UI.Xaml.Automation.h +0 -10
  640. package/Microsoft.ReactNative.Cxx/UI.Xaml.Controls.Primitives.h +0 -10
  641. package/Microsoft.ReactNative.Cxx/UI.Xaml.Controls.h +0 -13
  642. package/Microsoft.ReactNative.Cxx/UI.Xaml.Documents.h +0 -10
  643. package/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.DesktopWindowXamlSource.h +0 -11
  644. package/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.h +0 -10
  645. package/Microsoft.ReactNative.Cxx/UI.Xaml.Input.h +0 -10
  646. package/Microsoft.ReactNative.Cxx/UI.Xaml.Markup.h +0 -10
  647. package/Microsoft.ReactNative.Cxx/UI.Xaml.Media.Imaging.h +0 -10
  648. package/Microsoft.ReactNative.Cxx/UI.Xaml.Media.Media3D.h +0 -10
  649. package/Microsoft.ReactNative.Cxx/UI.Xaml.Media.h +0 -10
  650. package/Microsoft.ReactNative.Cxx/UI.Xaml.Navigation.h +0 -10
  651. package/Microsoft.ReactNative.Cxx/UI.Xaml.Shapes.h +0 -10
  652. package/Microsoft.ReactNative.Managed/AttributedViewManager.cs +0 -527
  653. package/Microsoft.ReactNative.Managed/ViewManagerAttributes.cs +0 -91
  654. package/Microsoft.ReactNative.Managed/ViewManagerEvent.cs +0 -13
  655. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +0 -344
  656. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/DynamicEventPayload.cpp +0 -42
  657. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -146
  658. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2435
  659. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  660. package/Shared/BatchingMessageQueueThread.h +0 -20
  661. package/Shared/ChakraRuntimeHolder.cpp +0 -62
  662. package/Shared/ChakraRuntimeHolder.h +0 -46
  663. package/Shared/CreateInstance.h +0 -25
  664. package/Shared/Executors/WebSocketJSExecutor.cpp +0 -294
  665. package/Shared/Executors/WebSocketJSExecutor.h +0 -123
  666. package/Shared/Executors/WebSocketJSExecutorFactory.cpp +0 -25
  667. package/Shared/Hermes/HermesSamplingProfiler.cpp +0 -114
  668. package/Shared/Hermes/HermesSamplingProfiler.h +0 -26
  669. package/Shared/JSI/ChakraApi.cpp +0 -436
  670. package/Shared/JSI/ChakraApi.h +0 -474
  671. package/Shared/JSI/ChakraJsiRuntime_edgemode.cpp +0 -100
  672. package/Shared/JSI/ChakraRuntime.cpp +0 -1132
  673. package/Shared/JSI/ChakraRuntime.h +0 -512
  674. package/Shared/JSI/ChakraRuntimeArgs.h +0 -45
  675. package/Shared/JSI/ChakraRuntimeFactory.h +0 -15
  676. package/Shared/JSI/JSExecutorFactoryDelegate.h +0 -12
  677. package/Shared/JSI/JSExecutorFactorySettings.cpp +0 -30
  678. package/Shared/JSI/JSExecutorFactorySettings.h +0 -21
  679. package/Shared/NativeModuleProvider.h +0 -40
  680. package/Shared/SystemChakraRuntime.h +0 -38
  681. package/Shared/Threading/BatchingQueueThread.cpp +0 -128
  682. package/Shared/Threading/BatchingQueueThread.h +0 -59
  683. package/Shared/WebSocketJSExecutorFactory.h +0 -27
  684. package/fmt/TEMP_UntilFmtUpdate/core.h +0 -2925
  685. package/template/cpp-app/proj/MyApp.sln +0 -166
  686. package/template/cpp-app/proj/MyApp.vcxproj +0 -176
  687. package/template/cpp-app/proj/MyApp.vcxproj.filters +0 -62
  688. package/template/cpp-app/src/App.cpp +0 -93
  689. package/template/cpp-app/src/App.h +0 -21
  690. package/template/cpp-app/src/App.idl +0 -3
  691. package/template/cpp-app/src/AutolinkedNativeModules.g.cpp +0 -13
  692. package/template/cpp-app/src/AutolinkedNativeModules.g.h +0 -10
  693. package/template/cpp-app/src/MainPage.cpp +0 -20
  694. package/template/cpp-app/src/MainPage.h +0 -19
  695. package/template/cpp-app/src/MainPage.idl +0 -10
  696. package/template/cpp-app/src/PropertySheet.props +0 -16
  697. package/template/cpp-app/src/ReactPackageProvider.cpp +0 -15
  698. package/template/cpp-app/src/ReactPackageProvider.h +0 -13
  699. package/template/cpp-app/src/pch.cpp +0 -1
  700. package/template/cpp-app/src/pch.h +0 -24
  701. package/template/cs-app/proj/MyApp.csproj +0 -162
  702. package/template/cs-app/proj/MyApp.sln +0 -191
  703. package/template/cs-app/src/App.xaml.cs +0 -62
  704. package/template/cs-app/src/AutolinkedNativeModules.g.cs +0 -13
  705. package/template/cs-app/src/MainPage.xaml.cs +0 -34
  706. package/template/cs-app/src/Properties/AssemblyInfo.cs +0 -29
  707. package/template/cs-app/src/Properties/Default.rd.xml +0 -32
  708. package/template/cs-app/src/ReactPackageProvider.cs +0 -17
  709. package/template/shared-app/assets/LockScreenLogo.scale-200.png +0 -0
  710. package/template/shared-app/assets/SplashScreen.scale-200.png +0 -0
  711. package/template/shared-app/assets/Square150x150Logo.scale-200.png +0 -0
  712. package/template/shared-app/assets/Square44x44Logo.scale-200.png +0 -0
  713. package/template/shared-app/assets/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
  714. package/template/shared-app/assets/StoreLogo.png +0 -0
  715. package/template/shared-app/assets/Wide310x150Logo.scale-200.png +0 -0
  716. package/template/shared-app/proj/ExperimentalFeatures.props +0 -32
  717. package/template/shared-app/proj/NuGet_Config +0 -19
  718. package/template/shared-app/src/App.xaml +0 -10
  719. package/template/shared-app/src/AutolinkedNativeModules.g.props +0 -6
  720. package/template/shared-app/src/AutolinkedNativeModules.g.targets +0 -6
  721. package/template/shared-app/src/MainPage.xaml +0 -21
  722. package/template/shared-app/src/Package.appxmanifest +0 -50
  723. package/templates/old/uwp-cpp-app/template.config.js +0 -15
  724. package/templates/old/uwp-cs-app/template.config.js +0 -15
@@ -14,12 +14,13 @@ import type {GestureResponderEvent} from '../Types/CoreEventTypes';
14
14
  import type {NativeTextProps} from './TextNativeComponent';
15
15
  import type {PressRetentionOffset, TextProps} from './TextProps';
16
16
 
17
+ import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
17
18
  import * as PressabilityDebug from '../Pressability/PressabilityDebug';
18
19
  import usePressability from '../Pressability/usePressability';
19
20
  import flattenStyle from '../StyleSheet/flattenStyle';
20
21
  import processColor from '../StyleSheet/processColor';
21
22
  import Platform from '../Utilities/Platform';
22
- import TextAncestor from './TextAncestor';
23
+ import TextAncestorContext from './TextAncestorContext';
23
24
  import {NativeText, NativeVirtualText} from './TextNativeComponent';
24
25
  import * as React from 'react';
25
26
  import {useContext, useMemo, useState} from 'react';
@@ -38,182 +39,602 @@ type TextForwardRef = React.ElementRef<
38
39
  *
39
40
  * @see https://reactnative.dev/docs/text
40
41
  */
41
- const TextImpl: component(
42
- ref?: React.RefSetter<TextForwardRef>,
43
- ...props: TextProps
44
- ) = ({
45
- ref: forwardedRef,
46
- accessible,
47
- accessibilityLabel,
48
- accessibilityLevel, // Windows
49
- accessibilityPosInSet, // Windows
50
- accessibilitySetSize, // Windows
51
- accessibilityState,
52
- allowFontScaling,
53
- 'aria-busy': ariaBusy,
54
- 'aria-checked': ariaChecked,
55
- 'aria-disabled': ariaDisabled,
56
- 'aria-expanded': ariaExpanded,
57
- 'aria-multiselectable': ariaMultiselectable, // Windows
58
- 'aria-required': ariaRequired, // Windows
59
- 'aria-label': ariaLabel,
60
- 'aria-level': ariaLevel, // Windows
61
- 'aria-posinset': ariaPosinset, // Windows
62
- 'aria-setsize': ariaSetsize, // Windows
63
- 'aria-readonly': ariaReadOnly, //Windows
64
- 'aria-selected': ariaSelected,
65
- children,
66
- ellipsizeMode,
67
- disabled,
68
- id,
69
- nativeID,
70
- numberOfLines,
71
- onLongPress,
72
- onPress,
73
- onPressIn,
74
- onPressOut,
75
- onResponderGrant,
76
- onResponderMove,
77
- onResponderRelease,
78
- onResponderTerminate,
79
- onResponderTerminationRequest,
80
- onStartShouldSetResponder,
81
- pressRetentionOffset,
82
- selectable,
83
- selectionColor,
84
- suppressHighlighting,
85
- style,
86
- ...restProps
87
- }: {
88
- ref?: React.RefSetter<TextForwardRef>,
89
- ...TextProps,
90
- }) => {
91
- const _accessibilityLabel = ariaLabel ?? accessibilityLabel;
92
- const _accessibilityLevel = ariaLevel ?? accessibilityLevel; // Windows
93
- const _accessibilityPosInSet = ariaPosinset ?? accessibilityPosInSet; // Windows
94
- const _accessibilitySetSize = ariaSetsize ?? accessibilitySetSize; // Windows
95
-
96
- let _accessibilityState: ?TextProps['accessibilityState'] =
97
- accessibilityState;
98
- if (
99
- ariaBusy != null ||
100
- ariaChecked != null ||
101
- ariaDisabled != null ||
102
- ariaExpanded != null ||
103
- ariaSelected != null ||
104
- ariaReadOnly != null || // Windows
105
- ariaMultiselectable != null || // Windows
106
- ariaRequired != null // Windows
107
- ) {
108
- if (_accessibilityState != null) {
109
- _accessibilityState = {
110
- busy: ariaBusy ?? _accessibilityState.busy,
111
- checked: ariaChecked ?? _accessibilityState.checked,
112
- disabled: ariaDisabled ?? _accessibilityState.disabled,
113
- expanded: ariaExpanded ?? _accessibilityState.expanded,
114
- selected: ariaSelected ?? _accessibilityState.selected,
115
- readOnly: ariaReadOnly ?? _accessibilityState.readOnly, // Windows
116
- multiselectable:
117
- ariaMultiselectable ?? _accessibilityState.multiselectable, // Windows
118
- required: ariaRequired ?? _accessibilityState.required, // Windows
42
+ let _TextImpl;
43
+ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
44
+ const TextImplNoDefaultProps: component(
45
+ ref?: React.RefSetter<TextForwardRef>,
46
+ ...props: TextProps
47
+ ) = ({
48
+ ref: forwardedRef,
49
+ accessible,
50
+ accessibilityLabel,
51
+ accessibilityState,
52
+ allowFontScaling,
53
+ 'aria-busy': ariaBusy,
54
+ 'aria-checked': ariaChecked,
55
+ 'aria-disabled': ariaDisabled,
56
+ 'aria-expanded': ariaExpanded,
57
+ 'aria-hidden': ariaHidden,
58
+ 'aria-label': ariaLabel,
59
+ // #[Windows properties
60
+ 'aria-multiselectable': ariaMultiselectable,
61
+ 'aria-required': ariaRequired,
62
+ 'aria-level': ariaLevel,
63
+ 'aria-posinset': ariaPosinset,
64
+ 'aria-setsize': ariaSetsize,
65
+ 'aria-readonly': ariaReadOnly,
66
+ accessibilityLevel,
67
+ accessibilityPosInSet,
68
+ accessibilitySetSize,
69
+ // #]Windows properties
70
+ 'aria-selected': ariaSelected,
71
+ children,
72
+ ellipsizeMode,
73
+ disabled,
74
+ id,
75
+ nativeID,
76
+ numberOfLines,
77
+ onLongPress,
78
+ onPress,
79
+ onPressIn,
80
+ onPressOut,
81
+ onResponderGrant,
82
+ onResponderMove,
83
+ onResponderRelease,
84
+ onResponderTerminate,
85
+ onResponderTerminationRequest,
86
+ onStartShouldSetResponder,
87
+ pressRetentionOffset,
88
+ selectable,
89
+ selectionColor,
90
+ suppressHighlighting,
91
+ style,
92
+ ...restProps
93
+ }: {
94
+ ref?: React.RefSetter<TextForwardRef>,
95
+ ...TextProps,
96
+ }) => {
97
+ const processedProps = restProps as {
98
+ ...NativeTextProps,
99
+ };
100
+ const _accessibilityLabel = ariaLabel ?? accessibilityLabel;
101
+ // #[Windows
102
+ const _accessibilityLevel = ariaLevel ?? accessibilityLevel;
103
+ const _accessibilityPosInSet = ariaPosinset ?? accessibilityPosInSet;
104
+ const _accessibilitySetSize = ariaSetsize ?? accessibilitySetSize;
105
+ // #]Windows
106
+
107
+ let _accessibilityState: ?TextProps['accessibilityState'] =
108
+ accessibilityState;
109
+ if (
110
+ ariaBusy != null ||
111
+ ariaChecked != null ||
112
+ ariaDisabled != null ||
113
+ ariaExpanded != null ||
114
+ ariaSelected != null ||
115
+ // #[Windows properties
116
+ ariaReadOnly != null ||
117
+ ariaMultiselectable != null ||
118
+ ariaRequired != null
119
+ // #]Windows properties
120
+ ) {
121
+ if (_accessibilityState != null) {
122
+ _accessibilityState = {
123
+ busy: ariaBusy ?? _accessibilityState.busy,
124
+ checked: ariaChecked ?? _accessibilityState.checked,
125
+ disabled: ariaDisabled ?? _accessibilityState.disabled,
126
+ expanded: ariaExpanded ?? _accessibilityState.expanded,
127
+ selected: ariaSelected ?? _accessibilityState.selected,
128
+ // #[Windows
129
+ readOnly: ariaReadOnly ?? _accessibilityState.readOnly,
130
+ multiselectable:
131
+ ariaMultiselectable ?? _accessibilityState.multiselectable,
132
+ required: ariaRequired ?? _accessibilityState.required,
133
+ // #]Windows
134
+ };
135
+ } else {
136
+ _accessibilityState = {
137
+ busy: ariaBusy,
138
+ checked: ariaChecked,
139
+ disabled: ariaDisabled,
140
+ expanded: ariaExpanded,
141
+ selected: ariaSelected,
142
+ // #[Windows
143
+ readOnly: ariaReadOnly,
144
+ multiselectable: ariaMultiselectable,
145
+ required: ariaRequired,
146
+ // #]Windows
147
+ };
148
+ }
149
+ }
150
+
151
+ const _accessibilityStateDisabled = _accessibilityState?.disabled;
152
+ const _disabled = disabled ?? _accessibilityStateDisabled;
153
+
154
+ // If the disabled prop and accessibilityState.disabled are out of sync but not both in
155
+ // falsy states we need to update the accessibilityState object to use the disabled prop.
156
+ if (
157
+ _accessibilityState != null &&
158
+ _disabled !== _accessibilityStateDisabled &&
159
+ ((_disabled != null && _disabled !== false) ||
160
+ (_accessibilityStateDisabled != null &&
161
+ _accessibilityStateDisabled !== false))
162
+ ) {
163
+ _accessibilityState.disabled = _disabled;
164
+ }
165
+
166
+ if (ariaHidden !== undefined) {
167
+ processedProps.accessibilityElementsHidden = ariaHidden;
168
+ if (ariaHidden === true) {
169
+ processedProps.importantForAccessibility = 'no-hide-descendants';
170
+ }
171
+ }
172
+
173
+ const _accessible = Platform.select({
174
+ ios: accessible !== false,
175
+ android:
176
+ accessible == null
177
+ ? onPress != null || onLongPress != null
178
+ : accessible,
179
+ default: accessible !== false, // [Windows #13996 - default value is accessible !== false]
180
+ });
181
+
182
+ const isPressable =
183
+ (onPress != null ||
184
+ onLongPress != null ||
185
+ onStartShouldSetResponder != null) &&
186
+ _disabled !== true;
187
+
188
+ // TODO: Move this processing to the view configuration.
189
+ const _selectionColor =
190
+ selectionColor != null ? processColor(selectionColor) : undefined;
191
+
192
+ let _style = style;
193
+ if (__DEV__) {
194
+ if (PressabilityDebug.isEnabled() && onPress != null) {
195
+ _style = [style, {color: 'magenta'}];
196
+ }
197
+ }
198
+
199
+ let _numberOfLines = numberOfLines;
200
+ if (_numberOfLines != null && !(_numberOfLines >= 0)) {
201
+ if (__DEV__) {
202
+ console.error(
203
+ `'numberOfLines' in <Text> must be a non-negative number, received: ${_numberOfLines}. The value will be set to 0.`,
204
+ );
205
+ }
206
+ _numberOfLines = 0;
207
+ }
208
+
209
+ let _selectable = selectable;
210
+
211
+ let processedStyle = flattenStyle<TextStyleProp>(_style);
212
+ if (processedStyle != null) {
213
+ let overrides: ?{...TextStyleInternal} = null;
214
+ if (typeof processedStyle.fontWeight === 'number') {
215
+ overrides = overrides || ({}: {...TextStyleInternal});
216
+ overrides.fontWeight =
217
+ // $FlowFixMe[incompatible-type]
218
+ (String(processedStyle.fontWeight): TextStyleInternal['fontWeight']);
219
+ }
220
+
221
+ if (processedStyle.userSelect != null) {
222
+ _selectable = userSelectToSelectableMap[processedStyle.userSelect];
223
+ overrides = overrides || ({}: {...TextStyleInternal});
224
+ overrides.userSelect = undefined;
225
+ }
226
+
227
+ if (processedStyle.verticalAlign != null) {
228
+ overrides = overrides || ({}: {...TextStyleInternal});
229
+ overrides.textAlignVertical =
230
+ verticalAlignToTextAlignVerticalMap[processedStyle.verticalAlign];
231
+ overrides.verticalAlign = undefined;
232
+ }
233
+
234
+ if (overrides != null) {
235
+ // $FlowFixMe[incompatible-type]
236
+ _style = [_style, overrides];
237
+ }
238
+ }
239
+
240
+ const _nativeID = id ?? nativeID;
241
+
242
+ if (_accessibilityLabel !== undefined) {
243
+ processedProps.accessibilityLabel = _accessibilityLabel;
244
+ }
245
+ if (_accessibilityState !== undefined) {
246
+ processedProps.accessibilityState = _accessibilityState;
247
+ }
248
+ if (_nativeID !== undefined) {
249
+ processedProps.nativeID = _nativeID;
250
+ }
251
+ if (_numberOfLines !== undefined) {
252
+ processedProps.numberOfLines = _numberOfLines;
253
+ }
254
+ if (_selectable !== undefined) {
255
+ processedProps.selectable = _selectable;
256
+ }
257
+ if (_style !== undefined) {
258
+ processedProps.style = _style;
259
+ }
260
+ if (_selectionColor !== undefined) {
261
+ processedProps.selectionColor = _selectionColor;
262
+ }
263
+
264
+ // [Windows accessibility properties
265
+ if (ariaLevel !== undefined) {
266
+ processedProps.accessibilityLevel = ariaLevel;
267
+ }
268
+ if (ariaPosinset !== undefined) {
269
+ processedProps.accessibilityPosInSet = ariaPosinset;
270
+ }
271
+ if (ariaSetsize !== undefined) {
272
+ processedProps.accessibilitySetSize = ariaSetsize;
273
+ }
274
+ // ]
275
+
276
+ let textPressabilityProps: ?TextPressabilityProps;
277
+ if (isPressable) {
278
+ textPressabilityProps = {
279
+ onLongPress,
280
+ onPress,
281
+ onPressIn,
282
+ onPressOut,
283
+ onResponderGrant,
284
+ onResponderMove,
285
+ onResponderRelease,
286
+ onResponderTerminate,
287
+ onResponderTerminationRequest,
288
+ onStartShouldSetResponder,
289
+ pressRetentionOffset,
290
+ suppressHighlighting,
119
291
  };
292
+ }
293
+
294
+ const hasTextAncestor = useContext(TextAncestorContext);
295
+ if (hasTextAncestor) {
296
+ processedProps.disabled = disabled;
297
+ processedProps.children = children;
298
+ if (isPressable) {
299
+ return (
300
+ <NativePressableVirtualText
301
+ ref={forwardedRef}
302
+ textProps={processedProps}
303
+ textPressabilityProps={textPressabilityProps ?? {}}
304
+ />
305
+ );
306
+ }
307
+ return <NativeVirtualText {...processedProps} ref={forwardedRef} />;
308
+ }
309
+
310
+ let nativeText = null;
311
+
312
+ processedProps.accessible = _accessible;
313
+ processedProps.allowFontScaling = allowFontScaling !== false;
314
+ processedProps.disabled = _disabled;
315
+ processedProps.ellipsizeMode = ellipsizeMode ?? 'tail';
316
+ processedProps.children = children;
317
+
318
+ if (isPressable) {
319
+ nativeText = (
320
+ <NativePressableText
321
+ ref={forwardedRef}
322
+ textProps={processedProps}
323
+ textPressabilityProps={textPressabilityProps ?? {}}
324
+ />
325
+ );
120
326
  } else {
121
- _accessibilityState = {
122
- busy: ariaBusy,
123
- checked: ariaChecked,
124
- disabled: ariaDisabled,
125
- expanded: ariaExpanded,
126
- selected: ariaSelected,
127
- readOnly: ariaReadOnly, // Windows
128
- multiselectable: ariaMultiselectable, // Windows
129
- required: ariaRequired, // Windows
130
- };
327
+ nativeText = <NativeText {...processedProps} ref={forwardedRef} />;
328
+ }
329
+
330
+ if (children == null) {
331
+ return nativeText;
131
332
  }
132
- }
133
333
 
134
- const _accessibilityStateDisabled = _accessibilityState?.disabled;
135
- const _disabled = disabled ?? _accessibilityStateDisabled;
334
+ // If the children do not contain a JSX element it would not be possible to have a
335
+ // nested `Text` component so we can skip adding the `TextAncestorContext` context wrapper
336
+ // which has a performance overhead. Since we do this for performance reasons we need
337
+ // to keep the check simple to avoid regressing overall perf. For this reason the
338
+ // `children.length` constant is set to `3`, this should be a reasonable tradeoff
339
+ // to capture the majority of `Text` uses but also not make this check too expensive.
340
+ if (Array.isArray(children) && children.length <= 3) {
341
+ let hasNonTextChild = false;
342
+ for (let child of children) {
343
+ if (child != null && typeof child === 'object') {
344
+ hasNonTextChild = true;
345
+ break;
346
+ }
347
+ }
348
+ if (!hasNonTextChild) {
349
+ return nativeText;
350
+ }
351
+ } else if (typeof children !== 'object') {
352
+ return nativeText;
353
+ }
136
354
 
137
- const isPressable =
138
- (onPress != null ||
139
- onLongPress != null ||
140
- onStartShouldSetResponder != null) &&
141
- _disabled !== true;
355
+ return <TextAncestorContext value={true}>{nativeText}</TextAncestorContext>;
356
+ };
357
+ _TextImpl = TextImplNoDefaultProps;
358
+ } else {
359
+ const TextImplLegacy: component(
360
+ ref?: React.RefSetter<TextForwardRef>,
361
+ ...props: TextProps
362
+ ) = ({
363
+ ref: forwardedRef,
364
+ accessible,
365
+ accessibilityElementsHidden,
366
+ importantForAccessibility,
367
+ accessibilityLabel,
368
+ accessibilityState,
369
+ allowFontScaling,
370
+ 'aria-busy': ariaBusy,
371
+ 'aria-checked': ariaChecked,
372
+ 'aria-disabled': ariaDisabled,
373
+ 'aria-expanded': ariaExpanded,
374
+ 'aria-hidden': ariaHidden,
375
+ 'aria-label': ariaLabel,
376
+ // #[Windows
377
+ 'aria-multiselectable': ariaMultiselectable, // Windows
378
+ 'aria-required': ariaRequired, // Windows
379
+ 'aria-level': ariaLevel, // Windows
380
+ 'aria-posinset': ariaPosinset, // Windows
381
+ 'aria-setsize': ariaSetsize, // Windows
382
+ 'aria-readonly': ariaReadOnly, //Windows
383
+ accessibilityLevel, // Windows
384
+ accessibilityPosInSet, // Windows
385
+ accessibilitySetSize, // Windows
386
+ // #]Windows
387
+ 'aria-selected': ariaSelected,
388
+ children,
389
+ ellipsizeMode,
390
+ disabled,
391
+ id,
392
+ nativeID,
393
+ numberOfLines,
394
+ onLongPress,
395
+ onPress,
396
+ onPressIn,
397
+ onPressOut,
398
+ onResponderGrant,
399
+ onResponderMove,
400
+ onResponderRelease,
401
+ onResponderTerminate,
402
+ onResponderTerminationRequest,
403
+ onStartShouldSetResponder,
404
+ pressRetentionOffset,
405
+ selectable,
406
+ selectionColor,
407
+ suppressHighlighting,
408
+ style,
409
+ ...restProps
410
+ }: {
411
+ ref?: React.RefSetter<TextForwardRef>,
412
+ ...TextProps,
413
+ }) => {
414
+ const _accessibilityLabel = ariaLabel ?? accessibilityLabel;
415
+ // [# Windows
416
+ const _accessibilityLevel = ariaLevel ?? accessibilityLevel;
417
+ const _accessibilityPosInSet = ariaPosinset ?? accessibilityPosInSet;
418
+ const _accessibilitySetSize = ariaSetsize ?? accessibilitySetSize;
419
+ // ]# Windows
420
+
421
+ let _accessibilityState: ?TextProps['accessibilityState'] =
422
+ accessibilityState;
423
+ if (
424
+ ariaBusy != null ||
425
+ ariaChecked != null ||
426
+ ariaDisabled != null ||
427
+ ariaExpanded != null ||
428
+ ariaSelected != null ||
429
+ // #[Windows
430
+ ariaReadOnly != null || // Windows
431
+ ariaMultiselectable != null || // Windows
432
+ ariaRequired != null // Windows
433
+ // #]Windows
434
+ ) {
435
+ if (_accessibilityState != null) {
436
+ _accessibilityState = {
437
+ busy: ariaBusy ?? _accessibilityState.busy,
438
+ checked: ariaChecked ?? _accessibilityState.checked,
439
+ disabled: ariaDisabled ?? _accessibilityState.disabled,
440
+ expanded: ariaExpanded ?? _accessibilityState.expanded,
441
+ selected: ariaSelected ?? _accessibilityState.selected,
442
+ // #[Windows
443
+ readOnly: ariaReadOnly ?? _accessibilityState.readOnly, // Windows
444
+ multiselectable:
445
+ ariaMultiselectable ?? _accessibilityState.multiselectable, // Windows
446
+ required: ariaRequired ?? _accessibilityState.required, // Windows
447
+ // #]Windows
448
+ };
449
+ } else {
450
+ _accessibilityState = {
451
+ busy: ariaBusy,
452
+ checked: ariaChecked,
453
+ disabled: ariaDisabled,
454
+ expanded: ariaExpanded,
455
+ selected: ariaSelected,
456
+ // #[Windows
457
+ readOnly: ariaReadOnly, // Windows
458
+ multiselectable: ariaMultiselectable, // Windows
459
+ required: ariaRequired, // Windows
460
+ // #]Windows
461
+ };
462
+ }
463
+ }
142
464
 
143
- // TODO: Move this processing to the view configuration.
144
- const _selectionColor =
145
- selectionColor != null ? processColor(selectionColor) : undefined;
465
+ const _accessibilityStateDisabled = _accessibilityState?.disabled;
466
+ const _disabled = disabled ?? _accessibilityStateDisabled;
146
467
 
147
- let _style = style;
148
- if (__DEV__) {
149
- if (PressabilityDebug.isEnabled() && onPress != null) {
150
- _style = [style, {color: 'magenta'}];
468
+ let _accessibilityElementsHidden =
469
+ ariaHidden ?? accessibilityElementsHidden;
470
+ let _importantForAccessibility = importantForAccessibility;
471
+ if (ariaHidden === true) {
472
+ _importantForAccessibility = 'no-hide-descendants';
151
473
  }
152
- }
153
474
 
154
- let _numberOfLines = numberOfLines;
155
- if (_numberOfLines != null && !(_numberOfLines >= 0)) {
475
+ const isPressable =
476
+ (onPress != null ||
477
+ onLongPress != null ||
478
+ onStartShouldSetResponder != null) &&
479
+ _disabled !== true;
480
+
481
+ // TODO: Move this processing to the view configuration.
482
+ const _selectionColor =
483
+ selectionColor != null ? processColor(selectionColor) : undefined;
484
+
485
+ let _style = style;
156
486
  if (__DEV__) {
157
- console.error(
158
- `'numberOfLines' in <Text> must be a non-negative number, received: ${_numberOfLines}. The value will be set to 0.`,
159
- );
487
+ if (PressabilityDebug.isEnabled() && onPress != null) {
488
+ _style = [style, {color: 'magenta'}];
489
+ }
160
490
  }
161
- _numberOfLines = 0;
162
- }
163
491
 
164
- let _selectable = selectable;
165
-
166
- let processedStyle = flattenStyle<TextStyleProp>(_style);
167
- if (processedStyle != null) {
168
- let overrides: ?{...TextStyleInternal} = null;
169
- if (typeof processedStyle.fontWeight === 'number') {
170
- overrides = overrides || ({}: {...TextStyleInternal});
171
- overrides.fontWeight =
172
- // $FlowFixMe[incompatible-cast]
173
- (processedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
492
+ let _numberOfLines = numberOfLines;
493
+ if (_numberOfLines != null && !(_numberOfLines >= 0)) {
494
+ if (__DEV__) {
495
+ console.error(
496
+ `'numberOfLines' in <Text> must be a non-negative number, received: ${_numberOfLines}. The value will be set to 0.`,
497
+ );
498
+ }
499
+ _numberOfLines = 0;
174
500
  }
175
501
 
176
- if (processedStyle.userSelect != null) {
177
- _selectable = userSelectToSelectableMap[processedStyle.userSelect];
178
- overrides = overrides || ({}: {...TextStyleInternal});
179
- overrides.userSelect = undefined;
502
+ let _selectable = selectable;
503
+
504
+ let processedStyle = flattenStyle<TextStyleProp>(_style);
505
+ if (processedStyle != null) {
506
+ let overrides: ?{...TextStyleInternal} = null;
507
+ if (typeof processedStyle.fontWeight === 'number') {
508
+ overrides = overrides || ({}: {...TextStyleInternal});
509
+ overrides.fontWeight =
510
+ // $FlowFixMe[incompatible-type]
511
+ (processedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
512
+ }
513
+
514
+ if (processedStyle.userSelect != null) {
515
+ _selectable = userSelectToSelectableMap[processedStyle.userSelect];
516
+ overrides = overrides || ({}: {...TextStyleInternal});
517
+ overrides.userSelect = undefined;
518
+ }
519
+
520
+ if (processedStyle.verticalAlign != null) {
521
+ overrides = overrides || ({}: {...TextStyleInternal});
522
+ overrides.textAlignVertical =
523
+ verticalAlignToTextAlignVerticalMap[processedStyle.verticalAlign];
524
+ overrides.verticalAlign = undefined;
525
+ }
526
+
527
+ if (overrides != null) {
528
+ // $FlowFixMe[incompatible-type]
529
+ _style = [_style, overrides];
530
+ }
180
531
  }
181
532
 
182
- if (processedStyle.verticalAlign != null) {
183
- overrides = overrides || ({}: {...TextStyleInternal});
184
- overrides.textAlignVertical =
185
- verticalAlignToTextAlignVerticalMap[processedStyle.verticalAlign];
186
- overrides.verticalAlign = undefined;
533
+ const _nativeID = id ?? nativeID;
534
+
535
+ const hasTextAncestor = useContext(TextAncestorContext);
536
+ if (hasTextAncestor) {
537
+ if (isPressable) {
538
+ return (
539
+ <NativePressableVirtualText
540
+ ref={forwardedRef}
541
+ textProps={{
542
+ ...restProps,
543
+ accessibilityElementsHidden: _accessibilityElementsHidden,
544
+ accessibilityLabel: _accessibilityLabel,
545
+ accessibilityState: _accessibilityState,
546
+ importantForAccessibility: _importantForAccessibility,
547
+ // #[Windows
548
+ accessibilityLevel: _accessibilityLevel, // Windows
549
+ accessibilityPosInSet: _accessibilityPosInSet, // Windows
550
+ accessibilitySetSize: _accessibilitySetSize, // Windows
551
+ ellipsizeMode: ellipsizeMode ?? 'tail', // Windows
552
+ // #]Windows
553
+ nativeID: _nativeID,
554
+ numberOfLines: _numberOfLines,
555
+ selectable: _selectable,
556
+ selectionColor: _selectionColor,
557
+ style: _style,
558
+ disabled: disabled,
559
+ children,
560
+ }}
561
+ textPressabilityProps={{
562
+ onLongPress,
563
+ onPress,
564
+ onPressIn,
565
+ onPressOut,
566
+ onResponderGrant,
567
+ onResponderMove,
568
+ onResponderRelease,
569
+ onResponderTerminate,
570
+ onResponderTerminationRequest,
571
+ onStartShouldSetResponder,
572
+ pressRetentionOffset,
573
+ suppressHighlighting,
574
+ }}
575
+ />
576
+ );
577
+ }
578
+
579
+ return (
580
+ <NativeVirtualText
581
+ {...restProps}
582
+ accessibilityElementsHidden={_accessibilityElementsHidden}
583
+ accessibilityLabel={_accessibilityLabel}
584
+ accessibilityState={_accessibilityState}
585
+ importantForAccessibility={_importantForAccessibility}
586
+ nativeID={_nativeID}
587
+ numberOfLines={_numberOfLines}
588
+ ref={forwardedRef}
589
+ selectable={_selectable}
590
+ selectionColor={_selectionColor}
591
+ style={_style}
592
+ disabled={disabled}>
593
+ {children}
594
+ </NativeVirtualText>
595
+ );
187
596
  }
188
597
 
189
- if (overrides != null) {
190
- // $FlowFixMe[incompatible-type]
191
- _style = [_style, overrides];
598
+ // If the disabled prop and accessibilityState.disabled are out of sync but not both in
599
+ // falsy states we need to update the accessibilityState object to use the disabled prop.
600
+ if (
601
+ _disabled !== _accessibilityStateDisabled &&
602
+ ((_disabled != null && _disabled !== false) ||
603
+ (_accessibilityStateDisabled != null &&
604
+ _accessibilityStateDisabled !== false))
605
+ ) {
606
+ _accessibilityState = {..._accessibilityState, disabled: _disabled};
192
607
  }
193
- }
194
608
 
195
- const _nativeID = id ?? nativeID;
609
+ const _accessible = Platform.select({
610
+ ios: accessible !== false,
611
+ android:
612
+ accessible == null
613
+ ? onPress != null || onLongPress != null
614
+ : accessible,
615
+ default: accessible !== false, // [Windows #13996 - default value is accessible !== false]
616
+ });
196
617
 
197
- const hasTextAncestor = useContext(TextAncestor);
198
- if (hasTextAncestor) {
618
+ let nativeText = null;
199
619
  if (isPressable) {
200
- return (
201
- <NativePressableVirtualText
620
+ nativeText = (
621
+ <NativePressableText
202
622
  ref={forwardedRef}
203
623
  textProps={{
204
624
  ...restProps,
625
+ accessibilityElementsHidden: _accessibilityElementsHidden,
205
626
  accessibilityLabel: _accessibilityLabel,
206
627
  accessibilityState: _accessibilityState,
207
- accessibilityLevel: _accessibilityLevel, // Windows
208
- accessibilityPosInSet: _accessibilityPosInSet, // Windows
209
- accessibilitySetSize: _accessibilitySetSize, // Windows
210
- ellipsizeMode: ellipsizeMode ?? 'tail', // Windows
628
+ accessible: _accessible,
629
+ allowFontScaling: allowFontScaling !== false,
630
+ disabled: _disabled,
631
+ ellipsizeMode: ellipsizeMode ?? 'tail',
632
+ importantForAccessibility: _importantForAccessibility,
211
633
  nativeID: _nativeID,
212
634
  numberOfLines: _numberOfLines,
213
635
  selectable: _selectable,
214
636
  selectionColor: _selectionColor,
215
637
  style: _style,
216
- disabled: disabled,
217
638
  children,
218
639
  }}
219
640
  textPressabilityProps={{
@@ -232,132 +653,68 @@ const TextImpl: component(
232
653
  }}
233
654
  />
234
655
  );
656
+ } else {
657
+ nativeText = (
658
+ <NativeText
659
+ {...restProps}
660
+ accessibilityElementsHidden={_accessibilityElementsHidden}
661
+ accessibilityLabel={_accessibilityLabel}
662
+ accessibilityState={_accessibilityState}
663
+ // #[Windows
664
+ accessibilityLevel={_accessibilityLevel} // Windows
665
+ accessibilityPosInSet={_accessibilityPosInSet} // Windows
666
+ accessibilitySetSize={_accessibilitySetSize} // Windows
667
+ // #]Windows
668
+ accessible={_accessible}
669
+ allowFontScaling={allowFontScaling !== false}
670
+ disabled={_disabled}
671
+ ellipsizeMode={ellipsizeMode ?? 'tail'}
672
+ importantForAccessibility={_importantForAccessibility}
673
+ nativeID={_nativeID}
674
+ numberOfLines={_numberOfLines}
675
+ ref={forwardedRef}
676
+ selectable={_selectable}
677
+ selectionColor={_selectionColor}
678
+ style={_style}>
679
+ {children}
680
+ </NativeText>
681
+ );
235
682
  }
236
683
 
237
- return (
238
- <NativeVirtualText
239
- {...restProps}
240
- accessibilityLabel={_accessibilityLabel}
241
- accessibilityState={_accessibilityState}
242
- nativeID={_nativeID}
243
- numberOfLines={_numberOfLines}
244
- ref={forwardedRef}
245
- selectable={_selectable}
246
- selectionColor={_selectionColor}
247
- style={_style}
248
- disabled={disabled}>
249
- {children}
250
- </NativeVirtualText>
251
- );
252
- }
253
-
254
- // If the disabled prop and accessibilityState.disabled are out of sync but not both in
255
- // falsy states we need to update the accessibilityState object to use the disabled prop.
256
- if (
257
- _disabled !== _accessibilityStateDisabled &&
258
- ((_disabled != null && _disabled !== false) ||
259
- (_accessibilityStateDisabled != null &&
260
- _accessibilityStateDisabled !== false))
261
- ) {
262
- _accessibilityState = {..._accessibilityState, disabled: _disabled};
263
- }
264
-
265
- const _accessible = Platform.select({
266
- ios: accessible !== false,
267
- android:
268
- accessible == null ? onPress != null || onLongPress != null : accessible,
269
- default: accessible !== false, // [Windows #13996 - default value is accessible !== false]
270
- });
271
-
272
- let nativeText = null;
273
- if (isPressable) {
274
- nativeText = (
275
- <NativePressableText
276
- ref={forwardedRef}
277
- textProps={{
278
- ...restProps,
279
- accessibilityLabel: _accessibilityLabel,
280
- accessibilityState: _accessibilityState,
281
- accessible: _accessible,
282
- allowFontScaling: allowFontScaling !== false,
283
- disabled: _disabled,
284
- ellipsizeMode: ellipsizeMode ?? 'tail',
285
- nativeID: _nativeID,
286
- numberOfLines: _numberOfLines,
287
- selectable: _selectable,
288
- selectionColor: _selectionColor,
289
- style: _style,
290
- children,
291
- }}
292
- textPressabilityProps={{
293
- onLongPress,
294
- onPress,
295
- onPressIn,
296
- onPressOut,
297
- onResponderGrant,
298
- onResponderMove,
299
- onResponderRelease,
300
- onResponderTerminate,
301
- onResponderTerminationRequest,
302
- onStartShouldSetResponder,
303
- pressRetentionOffset,
304
- suppressHighlighting,
305
- }}
306
- />
307
- );
308
- } else {
309
- nativeText = (
310
- <NativeText
311
- {...restProps}
312
- accessibilityLabel={_accessibilityLabel}
313
- accessibilityState={_accessibilityState}
314
- accessibilityLevel={_accessibilityLevel} // Windows
315
- accessibilityPosInSet={_accessibilityPosInSet} // Windows
316
- accessibilitySetSize={_accessibilitySetSize} // Windows
317
- accessible={_accessible}
318
- allowFontScaling={allowFontScaling !== false}
319
- disabled={_disabled}
320
- ellipsizeMode={ellipsizeMode ?? 'tail'}
321
- nativeID={_nativeID}
322
- numberOfLines={_numberOfLines}
323
- ref={forwardedRef}
324
- selectable={_selectable}
325
- selectionColor={_selectionColor}
326
- style={_style}>
327
- {children}
328
- </NativeText>
329
- );
330
- }
331
-
332
- if (children == null) {
333
- return nativeText;
334
- }
335
-
336
- // If the children do not contain a JSX element it would not be possible to have a
337
- // nested `Text` component so we can skip adding the `TextAncestor` context wrapper
338
- // which has a performance overhead. Since we do this for performance reasons we need
339
- // to keep the check simple to avoid regressing overall perf. For this reason the
340
- // `children.length` constant is set to `3`, this should be a reasonable tradeoff
341
- // to capture the majority of `Text` uses but also not make this check too expensive.
342
- if (Array.isArray(children) && children.length <= 3) {
343
- let hasNonTextChild = false;
344
- for (let child of children) {
345
- if (child != null && typeof child === 'object') {
346
- hasNonTextChild = true;
347
- break;
348
- }
684
+ if (children == null) {
685
+ return nativeText;
349
686
  }
350
- if (!hasNonTextChild) {
687
+
688
+ // If the children do not contain a JSX element it would not be possible to have a
689
+ // nested `Text` component so we can skip adding the `TextAncestorContext` context wrapper
690
+ // which has a performance overhead. Since we do this for performance reasons we need
691
+ // to keep the check simple to avoid regressing overall perf. For this reason the
692
+ // `children.length` constant is set to `3`, this should be a reasonable tradeoff
693
+ // to capture the majority of `Text` uses but also not make this check too expensive.
694
+ if (Array.isArray(children) && children.length <= 3) {
695
+ let hasNonTextChild = false;
696
+ for (let child of children) {
697
+ if (child != null && typeof child === 'object') {
698
+ hasNonTextChild = true;
699
+ break;
700
+ }
701
+ }
702
+ if (!hasNonTextChild) {
703
+ return nativeText;
704
+ }
705
+ } else if (typeof children !== 'object') {
351
706
  return nativeText;
352
707
  }
353
- } else if (typeof children !== 'object') {
354
- return nativeText;
355
- }
356
708
 
357
- return (
358
- <TextAncestor.Provider value={true}>{nativeText}</TextAncestor.Provider>
359
- );
360
- };
709
+ return <TextAncestorContext value={true}>{nativeText}</TextAncestorContext>;
710
+ };
711
+ _TextImpl = TextImplLegacy;
712
+ }
713
+
714
+ const TextImpl: component(
715
+ ref?: React.RefSetter<TextForwardRef>,
716
+ ...props: TextProps
717
+ ) = _TextImpl;
361
718
 
362
719
  TextImpl.displayName = 'Text';
363
720