react-native-windows 0.72.13 → 0.73.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 (587) hide show
  1. package/.flowconfig +16 -5
  2. package/Chakra/ChakraHelpers.cpp +1 -1
  3. package/Chakra/ChakraUtils.cpp +1 -1
  4. package/Chakra/ChakraValue.h +1 -1
  5. package/Common/packages.lock.json +13 -0
  6. package/Directory.Build.props +6 -2
  7. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
  8. package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
  10. package/Folly/cgmanifest.json +1 -1
  11. package/Folly/packages.lock.json +23 -0
  12. package/Libraries/Animated/Animated.js +1 -1
  13. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  14. package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
  15. package/Libraries/Animated/NativeAnimatedModule.js +6 -2
  16. package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
  17. package/Libraries/Animated/animations/Animation.js +57 -3
  18. package/Libraries/Animated/animations/DecayAnimation.js +9 -0
  19. package/Libraries/Animated/animations/SpringAnimation.js +8 -0
  20. package/Libraries/Animated/animations/TimingAnimation.js +8 -0
  21. package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
  22. package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
  23. package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
  24. package/Libraries/Animated/createAnimatedComponent.js +1 -0
  25. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  26. package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
  27. package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
  28. package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
  29. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  31. package/Libraries/Animated/useAnimatedProps.js +9 -10
  32. package/Libraries/AppState/AppState.d.ts +1 -1
  33. package/Libraries/AppState/NativeAppState.js +8 -4
  34. package/Libraries/AppTheme/AppTheme.js +5 -5
  35. package/Libraries/BatchedBridge/MessageQueue.js +45 -36
  36. package/Libraries/Blob/Blob.js +6 -2
  37. package/Libraries/Blob/BlobManager.js +9 -10
  38. package/Libraries/Blob/BlobRegistry.js +14 -9
  39. package/Libraries/Blob/File.js +1 -1
  40. package/Libraries/Blob/FileReader.js +1 -2
  41. package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
  42. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
  43. package/Libraries/Components/Glyph/Glyph.js +1 -1
  44. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
  45. package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
  46. package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
  47. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  48. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
  49. package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
  50. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  51. package/Libraries/Components/Pressable/Pressable.js +3 -2
  52. package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
  53. package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
  54. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
  55. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
  57. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
  58. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  59. package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
  60. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
  61. package/Libraries/Components/Switch/Switch.js +1 -0
  62. package/Libraries/Components/Switch/Switch.windows.js +259 -0
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  64. package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
  65. package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
  66. package/Libraries/Components/TextInput/TextInput.js +62 -10
  67. package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
  68. package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
  69. package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
  70. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  71. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  72. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
  73. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  74. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
  75. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
  76. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
  77. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
  78. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
  79. package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
  80. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  81. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  82. package/Libraries/Components/View/View.js +46 -32
  83. package/Libraries/Components/View/View.windows.js +23 -7
  84. package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
  85. package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
  86. package/Libraries/Components/View/ViewNativeComponent.js +1 -0
  87. package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
  88. package/Libraries/Components/View/ViewPropTypes.js +18 -3
  89. package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
  90. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  91. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
  92. package/Libraries/Core/ExceptionsManager.js +16 -7
  93. package/Libraries/Core/ExtendedError.js +12 -0
  94. package/Libraries/Core/ReactNativeVersion.js +3 -3
  95. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  96. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  97. package/Libraries/Core/setUpDeveloperTools.js +5 -1
  98. package/Libraries/Core/setUpIntersectionObserver.js +16 -0
  99. package/Libraries/Core/setUpMutationObserver.js +16 -0
  100. package/Libraries/Core/setUpPerformance.js +6 -13
  101. package/Libraries/Core/setUpPerformanceObserver.js +16 -0
  102. package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
  103. package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
  104. package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
  105. package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
  106. package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
  107. package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
  108. package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
  109. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
  110. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
  111. package/Libraries/Image/Image.android.js +8 -2
  112. package/Libraries/Image/Image.d.ts +1 -1
  113. package/Libraries/Image/Image.ios.js +4 -1
  114. package/Libraries/Image/Image.windows.js +6 -3
  115. package/Libraries/Image/ImageBackground.js +3 -0
  116. package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
  117. package/Libraries/Inspector/NetworkOverlay.js +2 -2
  118. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
  119. package/Libraries/Interaction/PanResponder.js +1 -4
  120. package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
  121. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
  122. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
  123. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
  124. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
  125. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  126. package/Libraries/Lists/FlatList.d.ts +2 -1
  127. package/Libraries/Lists/FlatList.js +15 -5
  128. package/Libraries/Lists/SectionList.js +4 -0
  129. package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
  130. package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
  131. package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
  132. package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
  136. package/Libraries/MutationObserver/MutationObserver.js +184 -0
  137. package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
  138. package/Libraries/MutationObserver/MutationRecord.js +82 -0
  139. package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
  140. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
  141. package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
  142. package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
  143. package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
  144. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
  145. package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
  146. package/Libraries/Network/RCTNetworking.android.js +2 -1
  147. package/Libraries/Network/XMLHttpRequest.js +1 -1
  148. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
  149. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
  150. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
  151. package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
  152. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  153. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
  154. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
  155. package/Libraries/Pressability/Pressability.js +28 -3
  156. package/Libraries/Pressability/Pressability.windows.js +30 -5
  157. package/Libraries/ReactNative/AppContainer.js +2 -3
  158. package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
  159. package/Libraries/ReactNative/AppRegistry.js +66 -53
  160. package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
  161. package/Libraries/ReactNative/FabricUIManager.js +143 -34
  162. package/Libraries/ReactNative/I18nManager.js +5 -11
  163. package/Libraries/ReactNative/NativeI18nManager.js +7 -5
  164. package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
  165. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
  166. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
  167. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  168. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
  169. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
  170. package/Libraries/ReactNative/UIManager.js +8 -0
  171. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
  172. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
  173. package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
  174. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  175. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  176. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
  177. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
  178. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
  179. package/Libraries/Renderer/shims/ReactFabric.js +5 -6
  180. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
  181. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  182. package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
  183. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
  184. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
  185. package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
  186. package/Libraries/Share/Share.d.ts +3 -9
  187. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
  188. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
  189. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
  190. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  191. package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
  192. package/Libraries/StyleSheet/StyleSheet.js +3 -0
  193. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
  194. package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
  195. package/Libraries/StyleSheet/flattenStyle.js +4 -0
  196. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
  197. package/Libraries/StyleSheet/processColor.js +1 -2
  198. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  199. package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
  200. package/Libraries/Text/Text.d.ts +5 -5
  201. package/Libraries/Text/Text.js +17 -10
  202. package/Libraries/Text/Text.windows.js +53 -20
  203. package/Libraries/Text/TextProps.windows.js +275 -0
  204. package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
  205. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  206. package/Libraries/Types/CoreEventTypes.d.ts +5 -2
  207. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
  208. package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
  209. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
  210. package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
  211. package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
  212. package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
  213. package/Libraries/Utilities/Platform.android.js +12 -8
  214. package/Libraries/Utilities/Platform.d.ts +1 -0
  215. package/Libraries/Utilities/Platform.flow.js +84 -0
  216. package/Libraries/Utilities/Platform.flow.windows.js +111 -0
  217. package/Libraries/Utilities/Platform.ios.js +12 -8
  218. package/Libraries/Utilities/Platform.windows.js +12 -8
  219. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  220. package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
  221. package/Libraries/Utilities/SceneTracker.js +1 -1
  222. package/Libraries/Utilities/createPerformanceLogger.js +63 -32
  223. package/Libraries/Utilities/useColorScheme.js +7 -8
  224. package/Libraries/WebPerformance/MemoryInfo.js +1 -1
  225. package/Libraries/WebPerformance/NativePerformance.js +3 -8
  226. package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
  227. package/Libraries/WebPerformance/Performance.js +42 -15
  228. package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
  229. package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
  230. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
  231. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
  232. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
  233. package/Libraries/__tests__/ViewWindows-test.js +3 -3
  234. package/Libraries/platform-types.d.ts +6 -2
  235. package/Libraries/promiseRejectionTrackingOptions.js +1 -3
  236. package/Libraries/vendor/emitter/EventEmitter.js +20 -18
  237. package/Microsoft.ReactNative/Composition.Input.idl +103 -0
  238. package/Microsoft.ReactNative/CompositionContext.idl +31 -8
  239. package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
  240. package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
  241. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
  242. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
  243. package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
  244. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
  245. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
  246. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
  247. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
  248. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
  249. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
  250. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
  251. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
  252. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
  253. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
  254. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
  255. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
  256. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
  257. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
  258. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
  259. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
  260. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
  261. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
  262. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
  263. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
  264. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
  265. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
  266. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
  267. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
  268. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
  269. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
  270. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
  271. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
  272. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
  273. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
  274. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
  276. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
  277. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
  278. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
  279. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
  280. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
  281. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
  282. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
  283. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
  284. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
  285. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
  286. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
  287. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
  288. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
  289. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
  290. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
  291. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
  292. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
  293. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
  294. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
  295. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
  296. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
  297. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
  298. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
  299. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
  300. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
  301. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
  302. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
  303. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
  304. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
  305. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
  306. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
  307. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
  308. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
  309. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
  310. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
  311. package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
  312. package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
  313. package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
  314. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
  315. package/Microsoft.ReactNative/IReactContext.cpp +1 -1
  316. package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
  317. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
  318. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
  319. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
  320. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
  321. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
  322. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
  323. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
  324. package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
  325. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
  326. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
  327. package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
  328. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
  329. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
  330. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
  331. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
  332. package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
  333. package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
  334. package/Microsoft.ReactNative/ReactApplication.h +4 -4
  335. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
  336. package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
  337. package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
  338. package/Microsoft.ReactNative/ReactHost/React.h +3 -6
  339. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
  340. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
  341. package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
  342. package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
  343. package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
  344. package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
  345. package/Microsoft.ReactNative/ReactRootView.h +2 -2
  346. package/Microsoft.ReactNative/ReactSupport.h +1 -1
  347. package/Microsoft.ReactNative/RedBox.cpp +1 -1
  348. package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
  349. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
  350. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
  351. package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
  352. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
  353. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
  354. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
  355. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
  356. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
  357. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
  358. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
  359. package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
  360. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  361. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
  362. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
  363. package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
  364. package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
  365. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
  366. package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
  367. package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
  368. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
  369. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  370. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
  371. package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
  372. package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
  373. package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
  374. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
  375. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
  376. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
  377. package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
  378. package/Microsoft.ReactNative/XamlHelper.h +1 -1
  379. package/Microsoft.ReactNative/packages.lock.json +128 -0
  380. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
  381. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
  382. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
  383. package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
  384. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
  385. package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
  386. package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
  387. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
  388. package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
  389. package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
  390. package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
  391. package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
  392. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
  393. package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
  394. package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
  395. package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
  396. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
  397. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
  398. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
  399. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
  400. package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
  401. package/Mso/compilerAdapters/compilerFeatures.h +1 -1
  402. package/Mso/compilerAdapters/functionDecorations.h +6 -6
  403. package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
  404. package/Mso/dispatchQueue/dispatchQueue.h +3 -3
  405. package/Mso/motifCpp/motifCppTest.h +1 -1
  406. package/Mso/motifCpp/testCheck.h +1 -1
  407. package/Mso/oacr/oacr.h +1 -1
  408. package/Mso/smartPtr/smartPointerBase.h +1 -1
  409. package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
  410. package/Mso/src/dispatchQueue/queueService.cpp +1 -1
  411. package/Mso/src/dispatchQueue/taskQueue.h +1 -1
  412. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
  413. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
  414. package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
  415. package/Mso/src/future/futureImpl.cpp +5 -5
  416. package/Mso/src/future/futureImpl.h +1 -1
  417. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  418. package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
  419. package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
  420. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
  421. package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
  422. package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
  423. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
  424. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  425. package/PropertySheets/HybridCRT.props +34 -0
  426. package/PropertySheets/JSEngine.props +1 -2
  427. package/PropertySheets/React.Cpp.props +0 -1
  428. package/PropertySheets/Warnings.props +1 -1
  429. package/PropertySheets/WinUI.props +1 -1
  430. package/ReactCommon/ReactCommon.vcxproj +15 -9
  431. package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
  444. package/ReactCommon/Yoga.cpp +497 -3895
  445. package/ReactCommon/packages.lock.json +30 -0
  446. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
  447. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  448. package/Scripts/rnw-dependencies.ps1 +79 -26
  449. package/Shared/BaseScriptStoreImpl.cpp +42 -13
  450. package/Shared/BaseScriptStoreImpl.h +1 -1
  451. package/Shared/Composition/AutoDraw.h +36 -0
  452. package/Shared/CxxMessageQueue.cpp +1 -1
  453. package/Shared/DevSettings.h +3 -0
  454. package/Shared/DevSupportManager.h +1 -1
  455. package/Shared/Hasher.cpp +64 -0
  456. package/Shared/Hasher.h +24 -0
  457. package/Shared/HermesRuntimeHolder.cpp +6 -6
  458. package/Shared/IDevSupportManager.h +1 -1
  459. package/Shared/JSI/ChakraApi.cpp +1 -1
  460. package/Shared/JSI/ChakraRuntime.cpp +10 -10
  461. package/Shared/JSI/ChakraRuntime.h +6 -6
  462. package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
  463. package/Shared/Modules/IRequestBodyHandler.h +1 -1
  464. package/Shared/Modules/IUriHandler.h +1 -1
  465. package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
  466. package/Shared/Modules/WebSocketModule.cpp +1 -1
  467. package/Shared/Networking/DefaultBlobResource.cpp +2 -2
  468. package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
  469. package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
  470. package/Shared/OInstance.cpp +9 -23
  471. package/Shared/OInstance.h +1 -1
  472. package/Shared/PackagerConnection.h +1 -1
  473. package/Shared/SafeLoadLibrary.cpp +8 -44
  474. package/Shared/SafeLoadLibrary.h +1 -5
  475. package/Shared/Shared.vcxitems +50 -20
  476. package/Shared/Shared.vcxitems.filters +26 -17
  477. package/Shared/Threading/BatchingQueueThread.cpp +5 -5
  478. package/Shared/Threading/BatchingQueueThread.h +4 -4
  479. package/Shared/TurboModuleManager.cpp +1 -1
  480. package/Shared/Utils.cpp +1 -1
  481. package/Shared/tracing/fbsystrace.h +1 -1
  482. package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
  483. package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
  484. package/codegen/NativeAppStateSpec.g.h +11 -21
  485. package/codegen/NativeDeviceInfoSpec.g.h +4 -14
  486. package/codegen/NativeI18nManagerSpec.g.h +6 -16
  487. package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
  488. package/codegen/NativeMutationObserverSpec.g.h +90 -0
  489. package/codegen/NativePerformanceObserverSpec.g.h +19 -13
  490. package/codegen/NativePerformanceSpec.g.h +6 -23
  491. package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
  492. package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
  493. package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
  494. package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
  495. package/codegen/NativeSourceCodeSpec.g.h +3 -13
  496. package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
  497. package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
  498. package/codegen/react/components/rnwcore/Props.h +16 -17
  499. package/codegen/rnwcoreJSI-generated.cpp +1462 -319
  500. package/codegen/rnwcoreJSI.h +1609 -462
  501. package/fmt/packages.lock.json +13 -0
  502. package/index.windows.js +3 -3
  503. package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
  504. package/jest/__tests__/setup-test.js +18 -0
  505. package/jest/mockModal.js +6 -4
  506. package/jest/setup.js +61 -30
  507. package/just-task.js +1 -0
  508. package/package.json +37 -42
  509. package/template/cs-app/proj/MyApp.csproj +0 -1
  510. package/template/cs-lib/proj/MyLib.csproj +0 -1
  511. package/templates/.clang-format +4 -0
  512. package/templates/cpp-app/metro.config.js +51 -0
  513. package/templates/cpp-app/template.config.js +119 -0
  514. package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
  515. package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
  516. package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
  517. package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
  518. package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
  519. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
  520. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
  521. package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
  522. package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
  523. package/templates/cpp-app/windows/MyApp/pch.h +35 -0
  524. package/templates/cpp-app/windows/MyApp/resource.h +18 -0
  525. package/templates/cpp-app/windows/MyApp/small.ico +0 -0
  526. package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
  527. package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
  528. package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
  529. package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
  530. package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
  531. package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
  532. package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
  533. package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
  534. package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
  535. package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
  536. package/templates/cpp-app/windows/MyApp.sln +176 -0
  537. package/templates/cpp-app/windows/_gitignore +41 -0
  538. package/templates/old/generateWrapper.js +67 -0
  539. package/templates/old/uwp-cpp-app/template.config.js +15 -0
  540. package/templates/old/uwp-cpp-lib/template.config.js +15 -0
  541. package/templates/old/uwp-cs-app/template.config.js +15 -0
  542. package/templates/old/uwp-cs-lib/template.config.js +15 -0
  543. package/types/experimental.d.ts +44 -0
  544. package/types/index.d.ts +2 -1
  545. package/types/modules/Devtools.d.ts +1 -0
  546. package/types/modules/globals.d.ts +16 -1
  547. package/Libraries/Components/View/ViewWindows.d.ts +0 -19
  548. package/Libraries/Components/View/ViewWindows.js +0 -22
  549. package/Libraries/Components/View/ViewWindows.js.map +0 -1
  550. package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
  551. package/Libraries/Components/View/ViewWindowsProps.js +0 -8
  552. package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
  553. package/Libraries/Utilities/AcessibilityMapping.js +0 -154
  554. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
  555. package/Libraries/Utilities/useColorScheme.windows.js +0 -26
  556. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
  557. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
  558. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
  559. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
  560. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
  561. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
  562. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
  563. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
  564. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
  565. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
  566. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
  567. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
  568. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
  569. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
  570. package/Shared/V8JSIRuntimeHolder.cpp +0 -71
  571. package/Shared/V8JSIRuntimeHolder.h +0 -56
  572. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
  573. package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
  574. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
  575. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
  576. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
  577. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
  578. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
  579. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
  580. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
  581. package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
  582. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
  583. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
  584. package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
  585. package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
  586. /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
  587. /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
@@ -0,0 +1,895 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <folly/Conv.h>
11
+ #include <folly/dynamic.h>
12
+ #include <glog/logging.h>
13
+ #include <react/debug/react_native_expect.h>
14
+ #include <react/renderer/components/view/primitives.h>
15
+ #include <react/renderer/core/LayoutMetrics.h>
16
+ #include <react/renderer/core/PropsParserContext.h>
17
+ #include <react/renderer/graphics/Transform.h>
18
+ #include <react/renderer/graphics/ValueUnit.h>
19
+ #include <stdlib.h>
20
+ #include <yoga/YGEnums.h>
21
+ #include <yoga/node/Node.h>
22
+ #include <algorithm>
23
+ #include <cmath>
24
+ #include <optional>
25
+ #include <unordered_map>
26
+
27
+ namespace facebook::react {
28
+
29
+ /*
30
+ * Yoga's `float` <-> React Native's `Float` (can be `double` or `float`)
31
+ *
32
+ * Regular Yoga `float` values represent some onscreen-position-related values.
33
+ * They can be real numbers or special value `YGUndefined` (which actually is
34
+ * `NaN`). Conceptually, layout computation process inside Yoga should never
35
+ * produce `NaN` values from non-`NaN` values. At the same time, ` YGUndefined`
36
+ * values have special "no limit" meaning in Yoga, therefore ` YGUndefined`
37
+ * usually corresponds to `Infinity` value.
38
+ */
39
+ inline Float floatFromYogaFloat(float value) {
40
+ static_assert(
41
+ YGUndefined != YGUndefined,
42
+ "The code of this function assumes that YGUndefined is NaN.");
43
+ if (std::isnan(value) /* means: `value == YGUndefined` */) {
44
+ return std::numeric_limits<Float>::infinity();
45
+ }
46
+
47
+ return (Float)value;
48
+ }
49
+
50
+ inline float yogaFloatFromFloat(Float value) {
51
+ if (!std::isfinite(value)) {
52
+ return YGUndefined;
53
+ }
54
+
55
+ return (float)value;
56
+ }
57
+
58
+ /*
59
+ * `yoga::FloatOptional` <-> React Native's `Float`
60
+ *
61
+ * `yoga::FloatOptional` represents optional dimensionless float values in Yoga
62
+ * Style object (e.g. `flex`). The most suitable analogy to empty
63
+ * `yoga::FloatOptional` is `NaN` value.
64
+ * `yoga::FloatOptional` values are usually parsed from some outside data source
65
+ * which usually has some special corresponding representation for an empty
66
+ * value.
67
+ */
68
+ inline Float floatFromYogaOptionalFloat(yoga::FloatOptional value) {
69
+ if (value.isUndefined()) {
70
+ return std::numeric_limits<Float>::quiet_NaN();
71
+ }
72
+
73
+ return floatFromYogaFloat(value.unwrap());
74
+ }
75
+
76
+ inline yoga::FloatOptional yogaOptionalFloatFromFloat(Float value) {
77
+ if (std::isnan(value)) {
78
+ return yoga::FloatOptional();
79
+ }
80
+
81
+ return yoga::FloatOptional((float)value);
82
+ }
83
+
84
+ inline std::optional<Float> optionalFloatFromYogaValue(
85
+ const YGValue value,
86
+ std::optional<Float> base = {}) {
87
+ switch (value.unit) {
88
+ case YGUnitUndefined:
89
+ return {};
90
+ case YGUnitPoint:
91
+ return floatFromYogaFloat(value.value);
92
+ case YGUnitPercent:
93
+ return base.has_value()
94
+ ? std::optional<Float>(base.value() * floatFromYogaFloat(value.value))
95
+ : std::optional<Float>();
96
+ case YGUnitAuto:
97
+ return {};
98
+ }
99
+ }
100
+
101
+ inline LayoutMetrics layoutMetricsFromYogaNode(yoga::Node& yogaNode) {
102
+ auto layoutMetrics = LayoutMetrics{};
103
+
104
+ layoutMetrics.frame = Rect{
105
+ Point{
106
+ floatFromYogaFloat(YGNodeLayoutGetLeft(&yogaNode)),
107
+ floatFromYogaFloat(YGNodeLayoutGetTop(&yogaNode))},
108
+ Size{
109
+ floatFromYogaFloat(YGNodeLayoutGetWidth(&yogaNode)),
110
+ floatFromYogaFloat(YGNodeLayoutGetHeight(&yogaNode))}};
111
+
112
+ layoutMetrics.borderWidth = EdgeInsets{
113
+ floatFromYogaFloat(YGNodeLayoutGetBorder(&yogaNode, YGEdgeLeft)),
114
+ floatFromYogaFloat(YGNodeLayoutGetBorder(&yogaNode, YGEdgeTop)),
115
+ floatFromYogaFloat(YGNodeLayoutGetBorder(&yogaNode, YGEdgeRight)),
116
+ floatFromYogaFloat(YGNodeLayoutGetBorder(&yogaNode, YGEdgeBottom))};
117
+
118
+ layoutMetrics.contentInsets = EdgeInsets{
119
+ layoutMetrics.borderWidth.left +
120
+ floatFromYogaFloat(YGNodeLayoutGetPadding(&yogaNode, YGEdgeLeft)),
121
+ layoutMetrics.borderWidth.top +
122
+ floatFromYogaFloat(YGNodeLayoutGetPadding(&yogaNode, YGEdgeTop)),
123
+ layoutMetrics.borderWidth.right +
124
+ floatFromYogaFloat(YGNodeLayoutGetPadding(&yogaNode, YGEdgeRight)),
125
+ layoutMetrics.borderWidth.bottom +
126
+ floatFromYogaFloat(YGNodeLayoutGetPadding(&yogaNode, YGEdgeBottom))};
127
+
128
+ layoutMetrics.displayType =
129
+ yogaNode.getStyle().display() == yoga::Display::None ? DisplayType::None
130
+ : DisplayType::Flex;
131
+
132
+ layoutMetrics.layoutDirection =
133
+ YGNodeLayoutGetDirection(&yogaNode) == YGDirectionRTL
134
+ ? LayoutDirection::RightToLeft
135
+ : LayoutDirection::LeftToRight;
136
+
137
+ return layoutMetrics;
138
+ }
139
+
140
+ inline YGDirection yogaDirectionFromLayoutDirection(LayoutDirection direction) {
141
+ switch (direction) {
142
+ case LayoutDirection::Undefined:
143
+ return YGDirectionInherit;
144
+ case LayoutDirection::LeftToRight:
145
+ return YGDirectionLTR;
146
+ case LayoutDirection::RightToLeft:
147
+ return YGDirectionRTL;
148
+ }
149
+ }
150
+
151
+ inline void fromRawValue(
152
+ const PropsParserContext& context,
153
+ const RawValue& value,
154
+ yoga::Direction& result) {
155
+ result = yoga::Direction::Inherit;
156
+ react_native_expect(value.hasType<std::string>());
157
+ if (!value.hasType<std::string>()) {
158
+ return;
159
+ }
160
+ auto stringValue = (std::string)value;
161
+ if (stringValue == "inherit") {
162
+ result = yoga::Direction::Inherit;
163
+ return;
164
+ }
165
+ if (stringValue == "ltr") {
166
+ result = yoga::Direction::LTR;
167
+ return;
168
+ }
169
+ if (stringValue == "rtl") {
170
+ result = yoga::Direction::RTL;
171
+ return;
172
+ }
173
+ LOG(ERROR) << "Could not parse Direction:" << stringValue;
174
+ react_native_expect(false);
175
+ }
176
+
177
+ inline void fromRawValue(
178
+ const PropsParserContext& context,
179
+ const RawValue& value,
180
+ yoga::FlexDirection& result) {
181
+ result = yoga::FlexDirection::Column;
182
+ react_native_expect(value.hasType<std::string>());
183
+ if (!value.hasType<std::string>()) {
184
+ return;
185
+ }
186
+ auto stringValue = (std::string)value;
187
+ if (stringValue == "row") {
188
+ result = yoga::FlexDirection::Row;
189
+ return;
190
+ }
191
+ if (stringValue == "column") {
192
+ result = yoga::FlexDirection::Column;
193
+ return;
194
+ }
195
+ if (stringValue == "column-reverse") {
196
+ result = yoga::FlexDirection::ColumnReverse;
197
+ return;
198
+ }
199
+ if (stringValue == "row-reverse") {
200
+ result = yoga::FlexDirection::RowReverse;
201
+ return;
202
+ }
203
+ LOG(ERROR) << "Could not parse yoga::FlexDirection:" << stringValue;
204
+ react_native_expect(false);
205
+ }
206
+
207
+ inline void fromRawValue(
208
+ const PropsParserContext& context,
209
+ const RawValue& value,
210
+ yoga::Justify& result) {
211
+ result = yoga::Justify::FlexStart;
212
+ react_native_expect(value.hasType<std::string>());
213
+ if (!value.hasType<std::string>()) {
214
+ return;
215
+ }
216
+ auto stringValue = (std::string)value;
217
+ if (stringValue == "flex-start") {
218
+ result = yoga::Justify::FlexStart;
219
+ return;
220
+ }
221
+ if (stringValue == "center") {
222
+ result = yoga::Justify::Center;
223
+ return;
224
+ }
225
+ if (stringValue == "flex-end") {
226
+ result = yoga::Justify::FlexEnd;
227
+ return;
228
+ }
229
+ if (stringValue == "space-between") {
230
+ result = yoga::Justify::SpaceBetween;
231
+ return;
232
+ }
233
+ if (stringValue == "space-around") {
234
+ result = yoga::Justify::SpaceAround;
235
+ return;
236
+ }
237
+ if (stringValue == "space-evenly") {
238
+ result = yoga::Justify::SpaceEvenly;
239
+ return;
240
+ }
241
+ LOG(ERROR) << "Could not parse yoga::Justify:" << stringValue;
242
+ react_native_expect(false);
243
+ }
244
+
245
+ inline void fromRawValue(
246
+ const PropsParserContext& context,
247
+ const RawValue& value,
248
+ yoga::Align& result) {
249
+ result = yoga::Align::Stretch;
250
+ react_native_expect(value.hasType<std::string>());
251
+ if (!value.hasType<std::string>()) {
252
+ return;
253
+ }
254
+ auto stringValue = (std::string)value;
255
+ if (stringValue == "auto") {
256
+ result = yoga::Align::Auto;
257
+ return;
258
+ }
259
+ if (stringValue == "flex-start") {
260
+ result = yoga::Align::FlexStart;
261
+ return;
262
+ }
263
+ if (stringValue == "center") {
264
+ result = yoga::Align::Center;
265
+ return;
266
+ }
267
+ if (stringValue == "flex-end") {
268
+ result = yoga::Align::FlexEnd;
269
+ return;
270
+ }
271
+ if (stringValue == "stretch") {
272
+ result = yoga::Align::Stretch;
273
+ return;
274
+ }
275
+ if (stringValue == "baseline") {
276
+ result = yoga::Align::Baseline;
277
+ return;
278
+ }
279
+ if (stringValue == "space-between") {
280
+ result = yoga::Align::SpaceBetween;
281
+ return;
282
+ }
283
+ if (stringValue == "space-around") {
284
+ result = yoga::Align::SpaceAround;
285
+ return;
286
+ }
287
+ LOG(ERROR) << "Could not parse yoga::Align:" << stringValue;
288
+ react_native_expect(false);
289
+ }
290
+
291
+ inline void fromRawValue(
292
+ const PropsParserContext& context,
293
+ const RawValue& value,
294
+ yoga::PositionType& result) {
295
+ result = yoga::PositionType::Relative;
296
+ react_native_expect(value.hasType<std::string>());
297
+ if (!value.hasType<std::string>()) {
298
+ return;
299
+ }
300
+ auto stringValue = (std::string)value;
301
+ if (stringValue == "static") {
302
+ result = yoga::PositionType::Static;
303
+ return;
304
+ }
305
+ if (stringValue == "relative") {
306
+ result = yoga::PositionType::Relative;
307
+ return;
308
+ }
309
+ if (stringValue == "absolute") {
310
+ result = yoga::PositionType::Absolute;
311
+ return;
312
+ }
313
+ LOG(ERROR) << "Could not parse yoga::PositionType:" << stringValue;
314
+ react_native_expect(false);
315
+ }
316
+
317
+ inline void fromRawValue(
318
+ const PropsParserContext& context,
319
+ const RawValue& value,
320
+ yoga::Wrap& result) {
321
+ result = yoga::Wrap::NoWrap;
322
+ react_native_expect(value.hasType<std::string>());
323
+ if (!value.hasType<std::string>()) {
324
+ return;
325
+ }
326
+ auto stringValue = (std::string)value;
327
+ if (stringValue == "nowrap") {
328
+ result = yoga::Wrap::NoWrap;
329
+ return;
330
+ }
331
+ if (stringValue == "wrap") {
332
+ result = yoga::Wrap::Wrap;
333
+ return;
334
+ }
335
+ if (stringValue == "wrap-reverse") {
336
+ result = yoga::Wrap::WrapReverse;
337
+ return;
338
+ }
339
+ LOG(ERROR) << "Could not parse yoga::Wrap:" << stringValue;
340
+ react_native_expect(false);
341
+ }
342
+
343
+ inline void fromRawValue(
344
+ const PropsParserContext& context,
345
+ const RawValue& value,
346
+ yoga::Overflow& result) {
347
+ result = yoga::Overflow::Visible;
348
+ react_native_expect(value.hasType<std::string>());
349
+ if (!value.hasType<std::string>()) {
350
+ return;
351
+ }
352
+ auto stringValue = (std::string)value;
353
+ if (stringValue == "visible") {
354
+ result = yoga::Overflow::Visible;
355
+ return;
356
+ }
357
+ if (stringValue == "hidden") {
358
+ result = yoga::Overflow::Hidden;
359
+ return;
360
+ }
361
+ if (stringValue == "scroll") {
362
+ result = yoga::Overflow::Scroll;
363
+ return;
364
+ }
365
+ LOG(ERROR) << "Could not parse yoga::Overflow:" << stringValue;
366
+ react_native_expect(false);
367
+ }
368
+
369
+ inline void fromRawValue(
370
+ const PropsParserContext& context,
371
+ const RawValue& value,
372
+ yoga::Display& result) {
373
+ result = yoga::Display::Flex;
374
+ react_native_expect(value.hasType<std::string>());
375
+ if (!value.hasType<std::string>()) {
376
+ return;
377
+ }
378
+ auto stringValue = (std::string)value;
379
+ if (stringValue == "flex") {
380
+ result = yoga::Display::Flex;
381
+ return;
382
+ }
383
+ if (stringValue == "none") {
384
+ result = yoga::Display::None;
385
+ return;
386
+ }
387
+ LOG(ERROR) << "Could not parse yoga::Display:" << stringValue;
388
+ react_native_expect(false);
389
+ }
390
+
391
+ inline void fromRawValue(
392
+ const PropsParserContext& context,
393
+ const RawValue& value,
394
+ yoga::Style::ValueRepr& result) {
395
+ if (value.hasType<Float>()) {
396
+ result = yoga::CompactValue::ofMaybe<YGUnitPoint>((float)value);
397
+ return;
398
+ } else if (value.hasType<std::string>()) {
399
+ const auto stringValue = (std::string)value;
400
+ if (stringValue == "auto") {
401
+ result = context.treatAutoAsYGValueUndefined() ? YGValueUndefined
402
+ : YGValueAuto;
403
+ return;
404
+ } else {
405
+ if (stringValue.back() == '%') {
406
+ auto tryValue = folly::tryTo<float>(
407
+ std::string_view(stringValue).substr(0, stringValue.length() - 1));
408
+ if (tryValue.hasValue()) {
409
+ result = YGValue{tryValue.value(), YGUnitPercent};
410
+ return;
411
+ }
412
+ } else {
413
+ auto tryValue = folly::tryTo<float>(stringValue);
414
+ if (tryValue.hasValue()) {
415
+ result = YGValue{tryValue.value(), YGUnitPoint};
416
+ return;
417
+ }
418
+ }
419
+ }
420
+ }
421
+ result = YGValueUndefined;
422
+ }
423
+
424
+ inline void fromRawValue(
425
+ const PropsParserContext& context,
426
+ const RawValue& value,
427
+ YGValue& result) {
428
+ yoga::Style::ValueRepr ygValue{};
429
+ fromRawValue(context, value, ygValue);
430
+ result = ygValue;
431
+ }
432
+
433
+ inline void fromRawValue(
434
+ const PropsParserContext& context,
435
+ const RawValue& value,
436
+ yoga::FloatOptional& result) {
437
+ result = value.hasType<float>() ? yoga::FloatOptional((float)value)
438
+ : yoga::FloatOptional();
439
+ }
440
+
441
+ inline Float toRadians(
442
+ const RawValue& value,
443
+ std::optional<Float> defaultValue) {
444
+ if (value.hasType<Float>()) {
445
+ return (Float)value;
446
+ }
447
+ react_native_expect(value.hasType<std::string>());
448
+ if (!value.hasType<std::string>() && defaultValue.has_value()) {
449
+ return *defaultValue;
450
+ }
451
+ auto stringValue = (std::string)value;
452
+ char* suffixStart;
453
+ double num = strtod(
454
+ stringValue.c_str(), &suffixStart); // can't use std::stod, probably
455
+ // because of old Android NDKs
456
+ if (0 == strncmp(suffixStart, "deg", 3)) {
457
+ return static_cast<Float>(num * M_PI / 180.0f);
458
+ }
459
+ return static_cast<Float>(num); // assume suffix is "rad"
460
+ }
461
+
462
+ inline void fromRawValue(
463
+ const PropsParserContext& context,
464
+ const RawValue& value,
465
+ Transform& result) {
466
+ auto transformMatrix = Transform{};
467
+ react_native_expect(value.hasType<std::vector<RawValue>>());
468
+ if (!value.hasType<std::vector<RawValue>>()) {
469
+ result = transformMatrix;
470
+ return;
471
+ }
472
+
473
+ auto configurations = static_cast<std::vector<RawValue>>(value);
474
+ for (const auto& configuration : configurations) {
475
+ if (!configuration.hasType<std::unordered_map<std::string, RawValue>>()) {
476
+ // TODO: The following checks have to be removed after codegen is shipped.
477
+ // See T45151459.
478
+ continue;
479
+ }
480
+
481
+ auto configurationPair =
482
+ static_cast<std::unordered_map<std::string, RawValue>>(configuration);
483
+ auto pair = configurationPair.begin();
484
+ auto operation = pair->first;
485
+ auto& parameters = pair->second;
486
+
487
+ if (operation == "matrix") {
488
+ react_native_expect(parameters.hasType<std::vector<Float>>());
489
+ auto numbers = (std::vector<Float>)parameters;
490
+ react_native_expect(numbers.size() == transformMatrix.matrix.size());
491
+ auto i = 0;
492
+ for (auto number : numbers) {
493
+ transformMatrix.matrix[i++] = number;
494
+ }
495
+ transformMatrix.operations.push_back(
496
+ TransformOperation{TransformOperationType::Arbitrary, 0, 0, 0});
497
+ } else if (operation == "perspective") {
498
+ transformMatrix =
499
+ transformMatrix * Transform::Perspective((Float)parameters);
500
+ } else if (operation == "rotateX") {
501
+ transformMatrix = transformMatrix *
502
+ Transform::Rotate(toRadians(parameters, 0.0f), 0, 0);
503
+ } else if (operation == "rotateY") {
504
+ transformMatrix = transformMatrix *
505
+ Transform::Rotate(0, toRadians(parameters, 0.0f), 0);
506
+ } else if (operation == "rotateZ" || operation == "rotate") {
507
+ transformMatrix = transformMatrix *
508
+ Transform::Rotate(0, 0, toRadians(parameters, 0.0f));
509
+ } else if (operation == "scale") {
510
+ auto number = (Float)parameters;
511
+ transformMatrix =
512
+ transformMatrix * Transform::Scale(number, number, number);
513
+ } else if (operation == "scaleX") {
514
+ transformMatrix =
515
+ transformMatrix * Transform::Scale((Float)parameters, 1, 1);
516
+ } else if (operation == "scaleY") {
517
+ transformMatrix =
518
+ transformMatrix * Transform::Scale(1, (Float)parameters, 1);
519
+ } else if (operation == "scaleZ") {
520
+ transformMatrix =
521
+ transformMatrix * Transform::Scale(1, 1, (Float)parameters);
522
+ } else if (operation == "translate") {
523
+ auto numbers = (std::vector<Float>)parameters;
524
+ transformMatrix = transformMatrix *
525
+ Transform::Translate(numbers.at(0), numbers.at(1), 0);
526
+ } else if (operation == "translateX") {
527
+ transformMatrix =
528
+ transformMatrix * Transform::Translate((Float)parameters, 0, 0);
529
+ } else if (operation == "translateY") {
530
+ transformMatrix =
531
+ transformMatrix * Transform::Translate(0, (Float)parameters, 0);
532
+ } else if (operation == "skewX") {
533
+ transformMatrix =
534
+ transformMatrix * Transform::Skew(toRadians(parameters, 0.0f), 0);
535
+ } else if (operation == "skewY") {
536
+ transformMatrix =
537
+ transformMatrix * Transform::Skew(0, toRadians(parameters, 0.0f));
538
+ }
539
+ }
540
+
541
+ result = transformMatrix;
542
+ }
543
+
544
+ inline void fromRawValue(
545
+ const PropsParserContext& /*context*/,
546
+ const RawValue& value,
547
+ TransformOrigin& result) {
548
+ react_native_expect(value.hasType<std::vector<RawValue>>());
549
+ auto origins = (std::vector<RawValue>)value;
550
+
551
+ TransformOrigin transformOrigin;
552
+
553
+ const size_t maxIndex = 2;
554
+
555
+ for (size_t i = 0; i < std::min(origins.size(), maxIndex); i++) {
556
+ const auto& origin = origins[i];
557
+ if (origin.hasType<Float>()) {
558
+ auto originFloat = (float)origin;
559
+ if (std::isfinite(originFloat)) {
560
+ transformOrigin.xy[i] = ValueUnit(originFloat, UnitType::Point);
561
+ } else {
562
+ transformOrigin.xy[i] = ValueUnit(0.0f, UnitType::Undefined);
563
+ }
564
+ } else if (origin.hasType<std::string>()) {
565
+ const auto stringValue = (std::string)origin;
566
+
567
+ if (stringValue.back() == '%') {
568
+ auto tryValue = folly::tryTo<float>(
569
+ std::string_view(stringValue).substr(0, stringValue.length() - 1));
570
+ if (tryValue.hasValue()) {
571
+ transformOrigin.xy[i] =
572
+ ValueUnit(tryValue.value(), UnitType::Percent);
573
+ }
574
+ }
575
+ }
576
+ }
577
+
578
+ if (origins.size() >= 3 && origins[2].hasType<Float>()) {
579
+ transformOrigin.z = (Float)origins[2];
580
+ }
581
+
582
+ result = transformOrigin;
583
+ }
584
+
585
+ inline void fromRawValue(
586
+ const PropsParserContext& context,
587
+ const RawValue& value,
588
+ PointerEventsMode& result) {
589
+ result = PointerEventsMode::Auto;
590
+ react_native_expect(value.hasType<std::string>());
591
+ if (!value.hasType<std::string>()) {
592
+ return;
593
+ }
594
+ auto stringValue = (std::string)value;
595
+ if (stringValue == "auto") {
596
+ result = PointerEventsMode::Auto;
597
+ return;
598
+ }
599
+ if (stringValue == "none") {
600
+ result = PointerEventsMode::None;
601
+ return;
602
+ }
603
+ if (stringValue == "box-none") {
604
+ result = PointerEventsMode::BoxNone;
605
+ return;
606
+ }
607
+ if (stringValue == "box-only") {
608
+ result = PointerEventsMode::BoxOnly;
609
+ return;
610
+ }
611
+ LOG(ERROR) << "Could not parse PointerEventsMode:" << stringValue;
612
+ react_native_expect(false);
613
+ }
614
+
615
+ inline void fromRawValue(
616
+ const PropsParserContext& context,
617
+ const RawValue& value,
618
+ BackfaceVisibility& result) {
619
+ result = BackfaceVisibility::Auto;
620
+ react_native_expect(value.hasType<std::string>());
621
+ if (!value.hasType<std::string>()) {
622
+ return;
623
+ }
624
+ auto stringValue = (std::string)value;
625
+ if (stringValue == "auto") {
626
+ result = BackfaceVisibility::Auto;
627
+ return;
628
+ }
629
+ if (stringValue == "visible") {
630
+ result = BackfaceVisibility::Visible;
631
+ return;
632
+ }
633
+ if (stringValue == "hidden") {
634
+ result = BackfaceVisibility::Hidden;
635
+ return;
636
+ }
637
+ LOG(ERROR) << "Could not parse BackfaceVisibility:" << stringValue;
638
+ react_native_expect(false);
639
+ }
640
+
641
+ inline void fromRawValue(
642
+ const PropsParserContext& context,
643
+ const RawValue& value,
644
+ BorderCurve& result) {
645
+ result = BorderCurve::Circular;
646
+ react_native_expect(value.hasType<std::string>());
647
+ if (!value.hasType<std::string>()) {
648
+ return;
649
+ }
650
+ auto stringValue = (std::string)value;
651
+ if (stringValue == "circular") {
652
+ result = BorderCurve::Circular;
653
+ return;
654
+ }
655
+ if (stringValue == "continuous") {
656
+ result = BorderCurve::Continuous;
657
+ return;
658
+ }
659
+ LOG(ERROR) << "Could not parse BorderCurve:" << stringValue;
660
+ react_native_expect(false);
661
+ }
662
+
663
+ inline void fromRawValue(
664
+ const PropsParserContext& context,
665
+ const RawValue& value,
666
+ BorderStyle& result) {
667
+ result = BorderStyle::Solid;
668
+ react_native_expect(value.hasType<std::string>());
669
+ if (!value.hasType<std::string>()) {
670
+ return;
671
+ }
672
+ auto stringValue = (std::string)value;
673
+ if (stringValue == "solid") {
674
+ result = BorderStyle::Solid;
675
+ return;
676
+ }
677
+ if (stringValue == "dotted") {
678
+ result = BorderStyle::Dotted;
679
+ return;
680
+ }
681
+ if (stringValue == "dashed") {
682
+ result = BorderStyle::Dashed;
683
+ return;
684
+ }
685
+ LOG(ERROR) << "Could not parse BorderStyle:" << stringValue;
686
+ react_native_expect(false);
687
+ }
688
+
689
+ inline void fromRawValue(
690
+ const PropsParserContext& /*context*/,
691
+ const RawValue& value,
692
+ LayoutConformance& result) {
693
+ result = LayoutConformance::Classic;
694
+ react_native_expect(value.hasType<std::string>());
695
+ if (!value.hasType<std::string>()) {
696
+ return;
697
+ }
698
+ auto stringValue = (std::string)value;
699
+ if (stringValue == "classic") {
700
+ result = LayoutConformance::Classic;
701
+ return;
702
+ }
703
+ if (stringValue == "strict") {
704
+ result = LayoutConformance::Strict;
705
+ return;
706
+ }
707
+ LOG(ERROR) << "Could not parse LayoutConformance:" << stringValue;
708
+ react_native_expect(false);
709
+ }
710
+
711
+ template <size_t N>
712
+ inline std::string toString(const std::array<float, N> vec) {
713
+ std::string s;
714
+
715
+ s.append("{");
716
+ for (size_t i = 0; i < N - 1; i++) {
717
+ s.append(std::to_string(vec[i]) + ", ");
718
+ }
719
+ s.append(std::to_string(vec[N - 1]));
720
+ s.append("}");
721
+
722
+ return s;
723
+ }
724
+
725
+ inline std::string toString(const yoga::Direction& value) {
726
+ switch (value) {
727
+ case yoga::Direction::Inherit:
728
+ return "inherit";
729
+ case yoga::Direction::LTR:
730
+ return "ltr";
731
+ case yoga::Direction::RTL:
732
+ return "rtl";
733
+ }
734
+ }
735
+
736
+ inline std::string toString(const yoga::FlexDirection& value) {
737
+ switch (value) {
738
+ case yoga::FlexDirection::Column:
739
+ return "column";
740
+ case yoga::FlexDirection::ColumnReverse:
741
+ return "column-reverse";
742
+ case yoga::FlexDirection::Row:
743
+ return "row";
744
+ case yoga::FlexDirection::RowReverse:
745
+ return "row-reverse";
746
+ }
747
+ }
748
+
749
+ inline std::string toString(const yoga::Justify& value) {
750
+ switch (value) {
751
+ case yoga::Justify::FlexStart:
752
+ return "flex-start";
753
+ case yoga::Justify::Center:
754
+ return "center";
755
+ case yoga::Justify::FlexEnd:
756
+ return "flex-end";
757
+ case yoga::Justify::SpaceBetween:
758
+ return "space-between";
759
+ case yoga::Justify::SpaceAround:
760
+ return "space-around";
761
+ case yoga::Justify::SpaceEvenly:
762
+ return "space-evenly";
763
+ }
764
+ }
765
+
766
+ inline std::string toString(const yoga::Align& value) {
767
+ switch (value) {
768
+ case yoga::Align::Auto:
769
+ return "auto";
770
+ case yoga::Align::FlexStart:
771
+ return "flex-start";
772
+ case yoga::Align::Center:
773
+ return "center";
774
+ case yoga::Align::FlexEnd:
775
+ return "flex-end";
776
+ case yoga::Align::Stretch:
777
+ return "stretch";
778
+ case yoga::Align::Baseline:
779
+ return "baseline";
780
+ case yoga::Align::SpaceBetween:
781
+ return "space-between";
782
+ case yoga::Align::SpaceAround:
783
+ return "space-around";
784
+ }
785
+ }
786
+
787
+ inline std::string toString(const yoga::PositionType& value) {
788
+ switch (value) {
789
+ case yoga::PositionType::Static:
790
+ return "static";
791
+ case yoga::PositionType::Relative:
792
+ return "relative";
793
+ case yoga::PositionType::Absolute:
794
+ return "absolute";
795
+ }
796
+ }
797
+
798
+ inline std::string toString(const yoga::Wrap& value) {
799
+ switch (value) {
800
+ case yoga::Wrap::NoWrap:
801
+ return "no-wrap";
802
+ case yoga::Wrap::Wrap:
803
+ return "wrap";
804
+ case yoga::Wrap::WrapReverse:
805
+ return "wrap-reverse";
806
+ }
807
+ }
808
+
809
+ inline std::string toString(const yoga::Overflow& value) {
810
+ switch (value) {
811
+ case yoga::Overflow::Visible:
812
+ return "visible";
813
+ case yoga::Overflow::Scroll:
814
+ return "scroll";
815
+ case yoga::Overflow::Hidden:
816
+ return "hidden";
817
+ }
818
+ }
819
+
820
+ inline std::string toString(const yoga::Display& value) {
821
+ switch (value) {
822
+ case yoga::Display::Flex:
823
+ return "flex";
824
+ case yoga::Display::None:
825
+ return "none";
826
+ }
827
+ }
828
+
829
+ inline std::string toString(const YGValue& value) {
830
+ switch (value.unit) {
831
+ case YGUnitUndefined:
832
+ return "undefined";
833
+ case YGUnitPoint:
834
+ return folly::to<std::string>(value.value);
835
+ case YGUnitPercent:
836
+ return folly::to<std::string>(value.value) + "%";
837
+ case YGUnitAuto:
838
+ return "auto";
839
+ }
840
+ }
841
+
842
+ inline std::string toString(const yoga::FloatOptional& value) {
843
+ if (value.isUndefined()) {
844
+ return "undefined";
845
+ }
846
+
847
+ return folly::to<std::string>(floatFromYogaFloat(value.unwrap()));
848
+ }
849
+
850
+ inline std::string toString(const yoga::Style::Dimensions& value) {
851
+ return "{" + toString(value[0]) + ", " + toString(value[1]) + "}";
852
+ }
853
+
854
+ inline std::string toString(const yoga::Style::Edges& value) {
855
+ static std::array<std::string, 9> names = {
856
+ {"left",
857
+ "top",
858
+ "right",
859
+ "bottom",
860
+ "start",
861
+ "end",
862
+ "horizontal",
863
+ "vertical",
864
+ "all"}};
865
+
866
+ auto result = std::string{};
867
+ auto separator = std::string{", "};
868
+
869
+ for (size_t i = 0; i < names.size(); i++) {
870
+ YGValue v = value[i];
871
+ if (v.unit == YGUnitUndefined) {
872
+ continue;
873
+ }
874
+ result += names[i] + ": " + toString(v) + separator;
875
+ }
876
+
877
+ if (!result.empty()) {
878
+ result.erase(result.length() - separator.length());
879
+ }
880
+
881
+ return "{" + result + "}";
882
+ }
883
+
884
+ inline std::string toString(const LayoutConformance& value) {
885
+ switch (value) {
886
+ case LayoutConformance::Undefined:
887
+ return "undefined";
888
+ case LayoutConformance::Classic:
889
+ return "classic";
890
+ case LayoutConformance::Strict:
891
+ return "strict";
892
+ }
893
+ }
894
+
895
+ } // namespace facebook::react