react-native-windows 0.71.8 → 0.72.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 (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +71 -45
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +11 -5
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +142 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.js +1 -1
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +1 -2
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +12 -4
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  475. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  476. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  477. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  478. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  479. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  480. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  481. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  482. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  483. package/codegen/NativePerformanceSpec.g.h +63 -0
  484. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  485. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  486. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  487. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  488. package/codegen/NativeShareModuleSpec.g.h +9 -3
  489. package/codegen/NativeUIManagerSpec.g.h +12 -12
  490. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  491. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  492. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  493. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  494. package/codegen/react/components/rnwcore/Props.h +59 -166
  495. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  496. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  497. package/codegen/react/components/rnwcore/States.h +15 -30
  498. package/codegen/rnwcoreJSI-generated.cpp +87 -25
  499. package/codegen/rnwcoreJSI.h +1077 -417
  500. package/generate.js +6 -1
  501. package/include/Include.vcxitems +0 -1
  502. package/include/Include.vcxitems.filters +0 -3
  503. package/index.js +56 -42
  504. package/index.windows.js +56 -42
  505. package/interface.js +1 -1
  506. package/jest/local-setup.js +33 -0
  507. package/jest/mockComponent.js +4 -2
  508. package/jest/mockNativeComponent.js +1 -1
  509. package/jest/mockScrollView.js +2 -1
  510. package/jest/react-native-env.js +1 -3
  511. package/jest/setup.js +11 -8
  512. package/just-task.js +12 -5
  513. package/package.json +32 -29
  514. package/rn-get-polyfills.js +1 -1
  515. package/template/metro.config.js +2 -0
  516. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  517. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  518. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  519. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  520. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  521. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  522. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  524. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  525. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  526. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  527. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  528. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  529. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  530. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  531. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  532. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  533. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  534. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  535. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  536. package/Libraries/Components/Popup/Popup.js.map +0 -1
  537. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  538. package/Libraries/Components/Popup/PopupProps.js +0 -8
  539. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  540. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  544. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  545. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  546. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  547. package/Libraries/Components/Slider/Slider.js +0 -282
  548. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  549. package/Libraries/Interaction/Batchinator.js +0 -76
  550. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  551. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  552. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  553. package/Libraries/Lists/CellRenderMask.js +0 -155
  554. package/Libraries/Lists/ChildListCollection.js +0 -72
  555. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  556. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  557. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  558. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  559. package/Libraries/Performance/PureComponentDebug.js +0 -74
  560. package/Libraries/Reliability/UserFlow.js +0 -158
  561. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  562. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  563. package/Libraries/Utilities/MatrixMath.js +0 -748
  564. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  565. package/Libraries/Utilities/clamp.js +0 -23
  566. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  567. package/Libraries/Utilities/groupByEveryN.js +0 -51
  568. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  569. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  570. package/Libraries/Utilities/truncate.js +0 -51
  571. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  592. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  594. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  595. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  596. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  597. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  598. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  599. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  600. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  601. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  602. package/Shared/AsyncStorageModule.h +0 -25
  603. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  604. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  605. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  606. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  607. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
@@ -7,243 +7,21 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <butter/map.h>
11
- #include <glog/logging.h>
12
- #include <react/debug/react_native_assert.h>
13
- #include <react/renderer/core/PropsParserContext.h>
14
- #include <react/renderer/core/RawProps.h>
15
- #include <react/renderer/graphics/Color.h>
16
- #include <react/renderer/graphics/Geometry.h>
17
- // [Windows Windows does not parse PlatformColor to RGB
18
- // #include <react/renderer/graphis/PlatformColorParser.h>
19
- // WIndows]
20
-
21
- namespace facebook {
22
- namespace react {
23
-
24
- #pragma mark - Color
25
-
26
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, SharedColor &result) {
27
- ColorComponents colorComponents = {0, 0, 0, 0};
28
-
29
- if (value.hasType<int>()) {
30
- auto argb = (int64_t)value;
31
- auto ratio = 255.f;
32
- colorComponents.alpha = ((argb >> 24) & 0xFF) / ratio;
33
- colorComponents.red = ((argb >> 16) & 0xFF) / ratio;
34
- colorComponents.green = ((argb >> 8) & 0xFF) / ratio;
35
- colorComponents.blue = (argb & 0xFF) / ratio;
36
- } else if (value.hasType<std::vector<float>>()) {
37
- auto items = (std::vector<float>)value;
38
- auto length = items.size();
39
- react_native_assert(length == 3 || length == 4);
40
- colorComponents.red = items.at(0);
41
- colorComponents.green = items.at(1);
42
- colorComponents.blue = items.at(2);
43
- colorComponents.alpha = length == 4 ? items.at(3) : 1.0f;
44
- // [Windows - Embed WindowBrush into SharedColor instead of trying to parse PlatformColor into RGB
45
- } else if (value.hasType<butter::map<std::string, std::string>>()) {
46
- auto map = (butter::map<std::string, std::string>)value;
47
- for (const auto &pair : map) {
48
- if (pair.first == "windowsbrush") {
49
- result = SharedColor(std::string(pair.second));
50
- return;
51
- }
52
- }
53
- }
54
- // Windows]
55
-
56
- result = colorFromComponents(colorComponents);
57
- }
58
-
59
- #ifdef ANDROID
60
-
61
- inline int toAndroidRepr(const SharedColor &color) {
62
- ColorComponents components = colorComponentsFromColor(color);
63
- auto ratio = 255.f;
64
- return (
65
- ((int)round(components.alpha * ratio) & 0xff) << 24 | ((int)round(components.red * ratio) & 0xff) << 16 |
66
- ((int)round(components.green * ratio) & 0xff) << 8 | ((int)round(components.blue * ratio) & 0xff));
67
- }
68
-
69
- #endif
70
-
71
- inline std::string toString(const SharedColor &value) {
72
- ColorComponents components = colorComponentsFromColor(value);
73
- auto ratio = 255.f;
74
- return "rgba(" + folly::to<std::string>(round(components.red * ratio)) + ", " +
75
- folly::to<std::string>(round(components.green * ratio)) + ", " +
76
- folly::to<std::string>(round(components.blue * ratio)) + ", " +
77
- folly::to<std::string>(round(components.alpha * ratio)) + ")";
78
- }
79
-
80
- #pragma mark - Geometry
81
-
82
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, Point &result) {
83
- if (value.hasType<butter::map<std::string, Float>>()) {
84
- auto map = (butter::map<std::string, Float>)value;
85
- for (const auto &pair : map) {
86
- if (pair.first == "x") {
87
- result.x = pair.second;
88
- } else if (pair.first == "y") {
89
- result.y = pair.second;
90
- }
91
- }
92
- return;
93
- }
94
-
95
- react_native_assert(value.hasType<std::vector<Float>>());
96
- if (value.hasType<std::vector<Float>>()) {
97
- auto array = (std::vector<Float>)value;
98
- react_native_assert(array.size() == 2);
99
- if (array.size() >= 2) {
100
- result = {array.at(0), array.at(1)};
101
- } else {
102
- result = {0, 0};
103
- LOG(ERROR) << "Unsupported Point vector size: " << array.size();
104
- }
105
- } else {
106
- LOG(ERROR) << "Unsupported Point type";
107
- }
108
- }
109
-
110
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, Size &result) {
111
- if (value.hasType<butter::map<std::string, Float>>()) {
112
- auto map = (butter::map<std::string, Float>)value;
113
- for (const auto &pair : map) {
114
- if (pair.first == "width") {
115
- result.width = pair.second;
116
- } else if (pair.first == "height") {
117
- result.height = pair.second;
118
- } else {
119
- LOG(ERROR) << "Unsupported Size map key: " << pair.first;
120
- react_native_assert(false);
121
- }
122
- }
123
- return;
124
- }
125
-
126
- react_native_assert(value.hasType<std::vector<Float>>());
127
- if (value.hasType<std::vector<Float>>()) {
128
- auto array = (std::vector<Float>)value;
129
- react_native_assert(array.size() == 2);
130
- if (array.size() >= 2) {
131
- result = {array.at(0), array.at(1)};
132
- } else {
133
- result = {0, 0};
134
- LOG(ERROR) << "Unsupported Size vector size: " << array.size();
135
- }
136
- } else {
137
- LOG(ERROR) << "Unsupported Size type";
138
- }
139
- }
140
-
141
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, EdgeInsets &result) {
142
- if (value.hasType<Float>()) {
143
- auto number = (Float)value;
144
- result = {number, number, number, number};
145
- return;
146
- }
147
-
148
- if (value.hasType<butter::map<std::string, Float>>()) {
149
- auto map = (butter::map<std::string, Float>)value;
150
- for (const auto &pair : map) {
151
- if (pair.first == "top") {
152
- result.top = pair.second;
153
- } else if (pair.first == "left") {
154
- result.left = pair.second;
155
- } else if (pair.first == "bottom") {
156
- result.bottom = pair.second;
157
- } else if (pair.first == "right") {
158
- result.right = pair.second;
159
- } else {
160
- LOG(ERROR) << "Unsupported EdgeInsets map key: " << pair.first;
161
- react_native_assert(false);
162
- }
163
- }
164
- return;
165
- }
166
-
167
- react_native_assert(value.hasType<std::vector<Float>>());
168
- if (value.hasType<std::vector<Float>>()) {
169
- auto array = (std::vector<Float>)value;
170
- react_native_assert(array.size() == 4);
171
- if (array.size() >= 4) {
172
- result = {array.at(0), array.at(1), array.at(2), array.at(3)};
173
- } else {
174
- result = {0, 0, 0, 0};
175
- LOG(ERROR) << "Unsupported EdgeInsets vector size: " << array.size();
176
- }
177
- } else {
178
- LOG(ERROR) << "Unsupported EdgeInsets type";
179
- }
180
- }
181
-
182
- inline void fromRawValue(const PropsParserContext &context, const RawValue &value, CornerInsets &result) {
183
- if (value.hasType<Float>()) {
184
- auto number = (Float)value;
185
- result = {number, number, number, number};
186
- return;
187
- }
188
-
189
- if (value.hasType<butter::map<std::string, Float>>()) {
190
- auto map = (butter::map<std::string, Float>)value;
191
- for (const auto &pair : map) {
192
- if (pair.first == "topLeft") {
193
- result.topLeft = pair.second;
194
- } else if (pair.first == "topRight") {
195
- result.topRight = pair.second;
196
- } else if (pair.first == "bottomLeft") {
197
- result.bottomLeft = pair.second;
198
- } else if (pair.first == "bottomRight") {
199
- result.bottomRight = pair.second;
200
- } else {
201
- LOG(ERROR) << "Unsupported CornerInsets map key: " << pair.first;
202
- react_native_assert(false);
203
- }
204
- }
205
- return;
206
- }
207
-
208
- react_native_assert(value.hasType<std::vector<Float>>());
209
- if (value.hasType<std::vector<Float>>()) {
210
- auto array = (std::vector<Float>)value;
211
- react_native_assert(array.size() == 4);
212
- if (array.size() >= 4) {
213
- result = {array.at(0), array.at(1), array.at(2), array.at(3)};
214
- } else {
215
- LOG(ERROR) << "Unsupported CornerInsets vector size: " << array.size();
216
- }
217
- }
218
-
219
- // Error case - we should only here if all other supported cases fail
220
- // In dev we would crash on assert before this point
221
- result = {0, 0, 0, 0};
222
- LOG(ERROR) << "Unsupported CornerInsets type";
223
- }
224
-
225
- inline std::string toString(const Point &point) {
226
- return "{" + folly::to<std::string>(point.x) + ", " + folly::to<std::string>(point.y) + "}";
227
- }
228
-
229
- inline std::string toString(const Size &size) {
230
- return "{" + folly::to<std::string>(size.width) + ", " + folly::to<std::string>(size.height) + "}";
231
- }
232
-
233
- inline std::string toString(const Rect &rect) {
234
- return "{" + toString(rect.origin) + ", " + toString(rect.size) + "}";
235
- }
236
-
237
- inline std::string toString(const EdgeInsets &edgeInsets) {
238
- return "{" + folly::to<std::string>(edgeInsets.left) + ", " + folly::to<std::string>(edgeInsets.top) + ", " +
239
- folly::to<std::string>(edgeInsets.right) + ", " + folly::to<std::string>(edgeInsets.bottom) + "}";
240
- }
241
-
242
- inline std::string toString(const CornerInsets &cornerInsets) {
243
- return "{" + folly::to<std::string>(cornerInsets.topLeft) + ", " + folly::to<std::string>(cornerInsets.topRight) +
244
- ", " + folly::to<std::string>(cornerInsets.bottomLeft) + ", " + folly::to<std::string>(cornerInsets.bottomRight) +
245
- "}";
246
- }
247
-
248
- } // namespace react
249
- } // namespace facebook
10
+ #include <react/renderer/core/graphicsConversions.h>
11
+
12
+ // This file belongs to the React-graphics module.
13
+ // This file also used to have a reference to two files that are located in the
14
+ // react/renderer/core folder. That folder belongs to a module that is called
15
+ // React-Fabric.
16
+ // The React-Fabric module declares an explicit dependency on
17
+ // React-graphics. Including those files in a React-graphics' file created a
18
+ // circular dependency because React-Fabric was explicitly depending on
19
+ // React-graphics, which was implicitly depending on React-Fabric. We break that
20
+ // dependency by moving the old `graphics/conversions.h` file to the
21
+ // React-Fabric module and renaming it `core/graphicsConversions.h`.
22
+
23
+ #warning \
24
+ "[DEPRECATION] `graphics/conversions.h` is deprecated and will be removed in the future. \
25
+ If this warning appears due to a library, please open an issue in that library, and ask for an update. \
26
+ Please, replace the `#include <react/renderer/graphics/conversions.h>` statements \
27
+ with `#include <react/renderer/core/graphicsConversions.h>`."
@@ -6,7 +6,10 @@
6
6
  #include "pch.h"
7
7
 
8
8
  #include <Fabric/DWriteHelpers.h>
9
+ #include <Utils/TransformableText.h>
9
10
  #include <dwrite.h>
11
+ #include <dwrite_1.h>
12
+ #include <react/renderer/telemetry/TransactionTelemetry.h>
10
13
  #include "TextLayoutManager.h"
11
14
 
12
15
  #include <unicode.h>
@@ -17,7 +20,6 @@ void TextLayoutManager::GetTextLayout(
17
20
  AttributedStringBox attributedStringBox,
18
21
  ParagraphAttributes paragraphAttributes,
19
22
  LayoutConstraints layoutConstraints,
20
- const std::optional<TextAlignment> &textAlignment,
21
23
  winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept {
22
24
  if (attributedStringBox.getValue().isEmpty())
23
25
  return;
@@ -45,9 +47,23 @@ void TextLayoutManager::GetTextLayout(
45
47
  L"",
46
48
  spTextFormat.put()));
47
49
 
50
+ if (!isnan(outerFragment.textAttributes.lineHeight)) {
51
+ winrt::check_hresult(spTextFormat->SetLineSpacing(
52
+ DWRITE_LINE_SPACING_METHOD_UNIFORM,
53
+ outerFragment.textAttributes.lineHeight,
54
+ // Recommended ratio of baseline to lineSpacing is 80%
55
+ // https://learn.microsoft.com/en-us/windows/win32/api/dwrite/nf-dwrite-idwritetextformat-getlinespacing
56
+ // It is possible we need to load full font metrics to calculate a better baseline value.
57
+ // For a particular font, you can determine what lineSpacing and baseline should be by examing a
58
+ // DWRITE_FONT_METRICS method available from the GetMetrics method of IDWriteFont or IDWriteFontFace. For normal
59
+ // behavior, you'd set lineSpacing to the sum of ascent, descent and lineGap (adjusted for the em size, of
60
+ // course), and baseline to the ascent value.
61
+ outerFragment.textAttributes.lineHeight * 0.8f));
62
+ }
63
+
48
64
  DWRITE_TEXT_ALIGNMENT alignment = DWRITE_TEXT_ALIGNMENT_LEADING;
49
- if (textAlignment) {
50
- switch (*textAlignment) {
65
+ if (outerFragment.textAttributes.alignment) {
66
+ switch (*outerFragment.textAttributes.alignment) {
51
67
  case facebook::react::TextAlignment::Center:
52
68
  alignment = DWRITE_TEXT_ALIGNMENT_CENTER;
53
69
  break;
@@ -70,11 +86,11 @@ void TextLayoutManager::GetTextLayout(
70
86
  }
71
87
  winrt::check_hresult(spTextFormat->SetTextAlignment(alignment));
72
88
 
73
- auto str = Microsoft::Common::Unicode::Utf8ToUtf16(attributedStringBox.getValue().getString());
89
+ auto str = GetTransformedText(attributedStringBox);
74
90
 
75
91
  winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextLayout(
76
92
  str.c_str(), // The string to be laid out and formatted.
77
- static_cast<UINT32>(str.length()), // The length of the string.
93
+ static_cast<UINT32>(str.size()), // The length of the string.
78
94
  spTextFormat.get(), // The text format to apply to the string (contains font information, etc).
79
95
  layoutConstraints.maximumSize.width, // The width of the layout box.
80
96
  layoutConstraints.maximumSize.height, // The height of the layout box.
@@ -104,6 +120,11 @@ void TextLayoutManager::GetTextLayout(
104
120
  winrt::check_hresult(spTextLayout->SetFontStyle(fragmentStyle, range));
105
121
  winrt::check_hresult(spTextLayout->SetFontSize(attributes.fontSize, range));
106
122
 
123
+ if (!isnan(attributes.letterSpacing)) {
124
+ winrt::check_hresult(
125
+ spTextLayout.as<IDWriteTextLayout1>()->SetCharacterSpacing(0, attributes.letterSpacing, 0, range));
126
+ }
127
+
107
128
  position += length;
108
129
  }
109
130
  }
@@ -111,18 +132,50 @@ void TextLayoutManager::GetTextLayout(
111
132
  TextMeasurement TextLayoutManager::measure(
112
133
  AttributedStringBox attributedStringBox,
113
134
  ParagraphAttributes paragraphAttributes,
114
- LayoutConstraints layoutConstraints) const {
115
- winrt::com_ptr<IDWriteTextLayout> spTextLayout;
116
-
117
- GetTextLayout(attributedStringBox, paragraphAttributes, layoutConstraints, TextAlignment::Left, spTextLayout);
118
-
119
- TextMeasurement tm{};
120
- if (spTextLayout) {
121
- DWRITE_TEXT_METRICS dtm{};
122
- winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
123
- tm.size = {dtm.width, dtm.height};
124
- }
125
- return tm;
135
+ LayoutConstraints layoutConstraints,
136
+ std::shared_ptr<void> /* hostTextStorage */) const {
137
+ TextMeasurement measurement{};
138
+ auto &attributedString = attributedStringBox.getValue();
139
+ measurement = m_measureCache.get(
140
+ {attributedString, paragraphAttributes, layoutConstraints}, [&](TextMeasureCacheKey const &key) {
141
+ auto telemetry = TransactionTelemetry::threadLocalTelemetry();
142
+ if (telemetry) {
143
+ telemetry->willMeasureText();
144
+ }
145
+
146
+ winrt::com_ptr<IDWriteTextLayout> spTextLayout;
147
+
148
+ GetTextLayout(attributedStringBox, paragraphAttributes, layoutConstraints, spTextLayout);
149
+
150
+ if (spTextLayout) {
151
+ auto maxHeight = std::numeric_limits<float>().max();
152
+ if (paragraphAttributes.maximumNumberOfLines > 0) {
153
+ std::vector<DWRITE_LINE_METRICS> lineMetrics;
154
+ uint32_t actualLineCount;
155
+ spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
156
+ lineMetrics.resize(static_cast<size_t>(actualLineCount));
157
+ winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
158
+ maxHeight = 0;
159
+ const auto count =
160
+ std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount);
161
+ for (uint32_t i = 0; i < count; ++i) {
162
+ maxHeight += lineMetrics[i].height;
163
+ }
164
+ }
165
+
166
+ DWRITE_TEXT_METRICS dtm{};
167
+ winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
168
+ measurement.size = {dtm.width, std::min(dtm.height, maxHeight)};
169
+ }
170
+
171
+ if (telemetry) {
172
+ telemetry->didMeasureText();
173
+ }
174
+
175
+ return measurement;
176
+ });
177
+
178
+ return measurement;
126
179
  }
127
180
 
128
181
  /**
@@ -145,8 +198,45 @@ LinesMeasurements TextLayoutManager::measureLines(
145
198
  return {};
146
199
  }
147
200
 
201
+ std::shared_ptr<void> TextLayoutManager::getHostTextStorage(
202
+ AttributedString attributedString,
203
+ ParagraphAttributes paragraphAttributes,
204
+ LayoutConstraints layoutConstraints) const {
205
+ return nullptr;
206
+ }
207
+
148
208
  void *TextLayoutManager::getNativeTextLayoutManager() const {
149
209
  return (void *)this;
150
210
  }
151
211
 
212
+ Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTransform> const &transform) {
213
+ if (transform) {
214
+ switch (transform.value()) {
215
+ case TextTransform::Capitalize:
216
+ return Microsoft::ReactNative::TextTransform::Capitalize;
217
+ case TextTransform::Lowercase:
218
+ return Microsoft::ReactNative::TextTransform::Lowercase;
219
+ case TextTransform::Uppercase:
220
+ return Microsoft::ReactNative::TextTransform::Uppercase;
221
+ case TextTransform::None:
222
+ return Microsoft::ReactNative::TextTransform::None;
223
+ default:
224
+ break;
225
+ }
226
+ }
227
+
228
+ return Microsoft::ReactNative::TextTransform::Undefined;
229
+ }
230
+
231
+ winrt::hstring TextLayoutManager::GetTransformedText(AttributedStringBox const &attributedStringBox) {
232
+ winrt::hstring result{};
233
+ for (const auto &fragment : attributedStringBox.getValue().getFragments()) {
234
+ result = result +
235
+ Microsoft::ReactNative::TransformableText::TransformText(
236
+ winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
237
+ ConvertTextTransform(fragment.textAttributes.textTransform));
238
+ }
239
+ return result;
240
+ }
241
+
152
242
  } // namespace facebook::react
@@ -36,7 +36,8 @@ class TextLayoutManager {
36
36
  TextMeasurement measure(
37
37
  AttributedStringBox attributedStringBox,
38
38
  ParagraphAttributes paragraphAttributes,
39
- LayoutConstraints layoutConstraints) const;
39
+ LayoutConstraints layoutConstraints,
40
+ std::shared_ptr<void> /* hostTextStorage */) const;
40
41
 
41
42
  /*
42
43
  * Measures lines of `attributedString` using native text rendering
@@ -45,6 +46,11 @@ class TextLayoutManager {
45
46
  LinesMeasurements measureLines(AttributedString attributedString, ParagraphAttributes paragraphAttributes, Size size)
46
47
  const;
47
48
 
49
+ std::shared_ptr<void> getHostTextStorage(
50
+ AttributedString attributedString,
51
+ ParagraphAttributes paragraphAttributes,
52
+ LayoutConstraints layoutConstraints) const;
53
+
48
54
  /**
49
55
  * Measures an AttributedString on the platform, as identified by some
50
56
  * opaque cache ID.
@@ -64,13 +70,18 @@ class TextLayoutManager {
64
70
  AttributedStringBox attributedStringBox,
65
71
  ParagraphAttributes paragraphAttributes,
66
72
  LayoutConstraints layoutConstraints,
67
- const std::optional<TextAlignment> &textAlignment,
68
73
  winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept;
69
74
 
70
75
  #pragma endregion
71
76
 
72
77
  private:
78
+ static winrt::hstring GetTransformedText(AttributedStringBox const &attributedStringBox);
79
+
73
80
  ContextContainer::Shared m_contextContainer;
81
+ #pragma warning(push)
82
+ #pragma warning(disable : 5028)
83
+ TextMeasureCache m_measureCache{};
84
+ #pragma warning(pop)
74
85
  };
75
86
 
76
87
  } // namespace react
@@ -0,0 +1,87 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include "DocString.h"
5
+ import "CompositionSwitcher.idl";
6
+ import "IJSValueReader.idl";
7
+ import "ViewProps.idl";
8
+
9
+ namespace Microsoft.ReactNative.Composition
10
+ {
11
+ [webhosthidden]
12
+ [experimental]
13
+ struct LayoutMetrics {
14
+ Windows.Foundation.Rect Frame;
15
+ Single PointScaleFactor;
16
+ };
17
+
18
+ [experimental]
19
+ DOC_STRING("Provides a factory method to create an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetCreateView")
20
+ delegate Object CompositionComponentFactory(ICompositionContext context);
21
+
22
+ // TODO should make an event args, with a handled bit instead of return value
23
+ [experimental]
24
+ DOC_STRING("A delegate that handles commands for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetCommandHandler")
25
+ delegate Boolean CommandHandler(Object handle, String commandName, Microsoft.ReactNative.IJSValueReader args);
26
+
27
+ [experimental]
28
+ DOC_STRING("A delegate that updates the properties for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetPropsUpdater")
29
+ delegate void PropsUpdater(Object handle, Microsoft.ReactNative.IComponentProps props);
30
+
31
+ [experimental]
32
+ DOC_STRING("A delegate that updates the @LayoutMetrics for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetLayoutMetricsUpdater")
33
+ delegate void LayoutMetricsUpdater(Object handle, LayoutMetrics metrics);
34
+
35
+ [experimental]
36
+ DOC_STRING("A delegate that finalizes the updates for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetUpdateFinalizer")
37
+ delegate void UpdateFinalizer(Object handle);
38
+
39
+ [experimental]
40
+ DOC_STRING("A delegate that creates the @IVisual for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetVisualCreator")
41
+ delegate IVisual VisualCreator(Object handle);
42
+
43
+ [experimental]
44
+ DOC_STRING("A delegate that handles input messages for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetMessageHandler")
45
+ delegate Int64 MessageHandler(Object handle, UInt32 Msg, UInt64 WParam, Int64 LParam);
46
+
47
+ [webhosthidden]
48
+ [experimental]
49
+ DOC_STRING(".")
50
+ interface IReactCompositionViewComponentBuilder
51
+ {
52
+ // (ICompositionContext) => Handle
53
+ void SetCreateView(CompositionComponentFactory impl);
54
+
55
+ DOC_STRING("Called when a command is run against this component. If the command is handled this function should return true.")
56
+ // (Object handle, String commandName, Microsoft.ReactNative.IJSValueReader args) => bool
57
+ void SetCommandHandler(CommandHandler commandHandler);
58
+
59
+ // TODO -void UpdateEventEmitter(IEventEmitter emitter);
60
+
61
+ DOC_STRING("Called whenever the properties change.")
62
+ // (Object handle, Microsoft.ReactNative.IComponentProps props) => void
63
+ void SetPropsUpdater(PropsUpdater impl);
64
+
65
+ DOC_STRING("Called whenever the layout metrics change.")
66
+ // (Object handle, LayoutMetrics metrics) => void
67
+ void SetLayoutMetricsUpdater(LayoutMetricsUpdater impl);
68
+
69
+ // TODO - void UpdateState(...);
70
+
71
+ DOC_STRING("Called on any update, after props, layout, and state have been updated.")
72
+ // (Object handle) => void
73
+ void SetUpdateFinalizer(UpdateFinalizer impl);
74
+
75
+ DOC_STRING("This visual will be added to the visual tree, and should be used to display this component.")
76
+ // (Object handle) => IVisual
77
+ void SetVisualCreator(VisualCreator impl);
78
+
79
+ DOC_STRING("Used to handle native input into this component.")
80
+ // (Object handle, UInt32 Msg, UInt64 WParam, Int64 LParam) => Int64
81
+ void SetMessageHandler(MessageHandler impl);
82
+ };
83
+
84
+
85
+
86
+
87
+ } // namespace Microsoft.ReactNative
@@ -61,6 +61,10 @@ hstring ReactSettingsSnapshot::JavaScriptBundleFile() const noexcept {
61
61
  return winrt::to_hstring(m_settings->JavaScriptBundleFile());
62
62
  }
63
63
 
64
+ hstring ReactSettingsSnapshot::BundleAppId() const noexcept {
65
+ return winrt::to_hstring(m_settings->BundleAppId());
66
+ }
67
+
64
68
  Mso::React::IReactSettingsSnapshot const &ReactSettingsSnapshot::GetInner() const noexcept {
65
69
  return *m_settings;
66
70
  }
@@ -23,6 +23,7 @@ struct ReactSettingsSnapshot : winrt::implements<ReactSettingsSnapshot, IReactSe
23
23
  uint16_t SourceBundlePort() const noexcept;
24
24
  bool RequestInlineSourceMap() const noexcept;
25
25
  hstring JavaScriptBundleFile() const noexcept;
26
+ hstring BundleAppId() const noexcept;
26
27
 
27
28
  public:
28
29
  // Internal accessor for within the Microsoft.ReactNative dll to allow calling into internal methods
@@ -120,6 +120,11 @@ namespace Microsoft.ReactNative
120
120
  "The `.bundle` extension will be appended to the end, when looking for the bundle file.")
121
121
  String JavaScriptBundleFile { get; };
122
122
 
123
+ DOC_STRING(
124
+ "A read-only snapshot of the @ReactInstanceSettings.BundleAppId property value "
125
+ "at the time when the React instance was created.\n"
126
+ "The name of the app passed to the packager server via the 'app' query parameter.")
127
+ String BundleAppId { get; };
123
128
  }
124
129
 
125
130
  [webhosthidden]
@@ -124,6 +124,10 @@ void ReactDispatcher::InvokeElsePost(Mso::DispatchTask &&task) const noexcept {
124
124
  return jsThreadDispatcherProperty;
125
125
  }
126
126
 
127
+ /*static*/ IReactDispatcher ReactDispatcher::GetJSDispatcher(IReactPropertyBag const &properties) noexcept {
128
+ return properties.Get(JSDispatcherProperty()).try_as<IReactDispatcher>();
129
+ }
130
+
127
131
  /*static*/ IReactPropertyName ReactDispatcher::JSDispatcherTaskStartingEventName() noexcept {
128
132
  static IReactPropertyName jsThreadDispatcherProperty{ReactPropertyBagHelper::GetName(
129
133
  ReactPropertyBagHelper::GetNamespace(L"ReactNative.Dispatcher"), L"JSDispatcherTaskStartingEventName")};
@@ -38,6 +38,7 @@ struct ReactDispatcher : implements<ReactDispatcher, IReactDispatcher, Mso::Reac
38
38
  static void SetUIThreadDispatcher(IReactPropertyBag const &properties) noexcept;
39
39
 
40
40
  static IReactPropertyName JSDispatcherProperty() noexcept;
41
+ static IReactDispatcher GetJSDispatcher(IReactPropertyBag const &properties) noexcept;
41
42
  static IReactPropertyName JSDispatcherTaskStartingEventName() noexcept;
42
43
  static IReactPropertyName JSDispatcherIdleWaitStartingEventName() noexcept;
43
44
  static IReactPropertyName JSDispatcherIdleWaitCompletedEventName() noexcept;
@@ -0,0 +1,23 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ import "IReactViewComponentBuilder.idl";
5
+
6
+ #include "DocString.h"
7
+
8
+ namespace Microsoft.ReactNative
9
+ {
10
+ [experimental]
11
+ DOC_STRING("Provides information about a custom view component. See @IReactPackageBuilderFabric.AddViewComponent")
12
+ delegate void ReactViewComponentProvider(IReactViewComponentBuilder viewComponentBuilder);
13
+
14
+ [webhosthidden]
15
+ [experimental]
16
+ DOC_STRING("Provides ability to register custom ViewComponents when running fabric. Methods on this interface will eventually be moved onto @IReactPackageProvider once fabric ships.")
17
+ interface IReactPackageBuilderFabric
18
+ {
19
+ DOC_STRING("Registers a custom native view component.")
20
+ void AddViewComponent(String componentName, ReactViewComponentProvider componentProvider);
21
+ };
22
+
23
+ } // namespace Microsoft.ReactNative
@@ -0,0 +1,23 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ import "ViewProps.idl";
5
+
6
+ #include "DocString.h"
7
+
8
+ namespace Microsoft.ReactNative
9
+ {
10
+ [experimental]
11
+ DOC_STRING("A delegate that creates a @IComponentProps object for an instance of @ViewProps. See @IReactViewComponentBuilder.SetCreateProps")
12
+ delegate IComponentProps ViewPropsFactory(ViewProps props);
13
+
14
+ [webhosthidden]
15
+ [experimental]
16
+ DOC_STRING(".")
17
+ interface IReactViewComponentBuilder
18
+ {
19
+ DOC_STRING("Create an implementation of your custom Props type that will be passed to your components @Composition.ICompositionViewComponent.UpdateProps method.")
20
+ void SetCreateProps(ViewPropsFactory impl);
21
+ };
22
+
23
+ } // namespace Microsoft.ReactNative