react-native-windows 0.68.1 → 0.69.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 (392) hide show
  1. package/.flowconfig +1 -3
  2. package/Chakra/ChakraHelpers.cpp +0 -1
  3. package/Directory.Build.props +3 -0
  4. package/Directory.Build.targets +1 -1
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
  6. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
  8. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  9. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  10. package/Libraries/Alert/Alert.windows.js +2 -2
  11. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  12. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  13. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  14. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  16. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  19. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  20. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  21. package/Libraries/AppState/AppState.js +1 -1
  22. package/Libraries/Blob/URL.js +7 -1
  23. package/Libraries/Components/Button.js +3 -0
  24. package/Libraries/Components/Button.windows.js +4 -0
  25. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  26. package/Libraries/Components/Pressable/Pressable.js +3 -3
  27. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  28. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  29. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  30. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  31. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  32. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  33. package/Libraries/Components/Slider/Slider.js +0 -2
  34. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  35. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  36. package/Libraries/Components/Switch/Switch.js +11 -1
  37. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  38. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  39. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  40. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  41. package/Libraries/Components/TextInput/TextInput.js +1 -8
  42. package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
  43. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  44. package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
  45. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  46. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  47. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  48. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
  49. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  50. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  51. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  52. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  53. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
  54. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  55. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  56. package/Libraries/Components/View/View.windows.js +33 -1
  57. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  58. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  59. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
  60. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  61. package/Libraries/Core/ExceptionsManager.js +1 -1
  62. package/Libraries/Core/RawEventEmitter.js +38 -0
  63. package/Libraries/Core/ReactNativeVersion.js +2 -2
  64. package/Libraries/Core/polyfillPromise.js +32 -0
  65. package/Libraries/Core/setUpReactDevTools.js +3 -2
  66. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  67. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  68. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  69. package/Libraries/Events/CustomEvent.js +32 -0
  70. package/Libraries/Events/EventPolyfill.js +239 -0
  71. package/Libraries/Image/Image.android.js +0 -6
  72. package/Libraries/Image/Image.ios.js +0 -6
  73. package/Libraries/Image/Image.windows.js +2 -8
  74. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  75. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  76. package/Libraries/Inspector/Inspector.js +2 -4
  77. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  78. package/Libraries/Interaction/InteractionManager.js +1 -12
  79. package/Libraries/Interaction/TaskQueue.js +5 -4
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  81. package/Libraries/Linking/Linking.js +1 -1
  82. package/Libraries/Lists/FlatList.js +27 -6
  83. package/Libraries/Lists/VirtualizedList.js +71 -55
  84. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  85. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  86. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  87. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  88. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  89. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  90. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
  91. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
  92. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  93. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  94. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  95. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  96. package/Libraries/LogBox/LogBox.js +2 -21
  97. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  98. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  99. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  101. package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
  102. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  103. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  104. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  105. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  106. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  107. package/Libraries/Network/FormData.js +7 -1
  108. package/Libraries/Pressability/Pressability.js +115 -46
  109. package/Libraries/Pressability/Pressability.windows.js +190 -74
  110. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  111. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  112. package/Libraries/ReactNative/AppContainer.js +1 -1
  113. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  114. package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
  115. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  116. package/Libraries/ReactNative/UIManager.js +2 -3
  117. package/Libraries/ReactNative/renderApplication.js +4 -0
  118. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  119. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  120. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  121. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  124. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  125. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  126. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  127. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  128. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  131. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  132. package/Libraries/StyleSheet/processTransform.windows.js +272 -0
  133. package/Libraries/Text/Text.js +13 -7
  134. package/Libraries/Text/Text.windows.js +16 -7
  135. package/Libraries/Text/TextNativeComponent.js +2 -0
  136. package/Libraries/Text/TextProps.js +10 -0
  137. package/Libraries/Types/CoreEventTypes.js +13 -1
  138. package/Libraries/Types/CoreEventTypes.windows.js +26 -1
  139. package/Libraries/Utilities/Appearance.js +0 -8
  140. package/Libraries/Utilities/HMRClient.js +1 -1
  141. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  142. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  143. package/Libraries/Utilities/stringifySafe.js +4 -1
  144. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  145. package/Libraries/WebSocket/WebSocket.js +1 -1
  146. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  147. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  148. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  149. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +1 -4
  150. package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
  151. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
  152. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
  153. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
  154. package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
  155. package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
  156. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
  157. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  158. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
  159. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
  160. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
  161. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
  162. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
  163. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
  166. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
  167. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
  168. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
  169. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
  170. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
  171. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
  172. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
  173. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
  174. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
  175. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
  176. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
  179. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
  180. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
  184. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
  185. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
  186. package/Microsoft.ReactNative/IViewManager.idl +3 -3
  187. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
  188. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
  189. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
  190. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
  191. package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
  192. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
  193. package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
  194. package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
  195. package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
  196. package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
  197. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +15 -2
  198. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  199. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
  200. package/Microsoft.ReactNative/ReactInstanceSettings.idl +12 -2
  201. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +1 -1
  202. package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
  203. package/Microsoft.ReactNative/RedBox.cpp +3 -2
  204. package/Microsoft.ReactNative/TurboModulesProvider.cpp +3 -2
  205. package/Microsoft.ReactNative/TurboModulesProvider.h +4 -1
  206. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +41 -0
  207. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
  208. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
  209. package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
  210. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
  211. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
  212. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
  213. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  214. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
  215. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
  216. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
  217. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  218. package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
  219. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
  220. package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
  221. package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
  222. package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
  223. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
  224. package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
  225. package/Microsoft.ReactNative/XamlView.h +8 -3
  226. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
  227. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  228. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
  229. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
  230. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +19 -14
  231. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +4 -0
  232. package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
  233. package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
  234. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
  235. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
  236. package/Microsoft.ReactNative.Cxx/NativeModules.h +3 -3
  237. package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
  238. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
  239. package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
  240. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
  241. package/Mso/activeObject/activeObject.h +2 -2
  242. package/Mso/compilerAdapters/cppMacros.h +3 -5
  243. package/Mso/errorCode/errorProvider.h +2 -2
  244. package/Mso/errorCode/maybe.h +4 -4
  245. package/Mso/functional/functor.h +6 -6
  246. package/Mso/functional/functorRef.h +2 -2
  247. package/Mso/future/details/executor.h +2 -2
  248. package/Mso/future/details/futureFuncInl.h +4 -4
  249. package/Mso/future/details/ifuture.h +3 -3
  250. package/Mso/future/details/maybeInvoker.h +6 -6
  251. package/Mso/future/details/promiseGroupInl.h +4 -4
  252. package/Mso/future/details/promiseInl.h +4 -4
  253. package/Mso/future/details/resultTraits.h +4 -4
  254. package/Mso/future/details/whenAllInl.h +1 -1
  255. package/Mso/future/future.h +13 -13
  256. package/Mso/guid/msoGuidDetails.h +1 -1
  257. package/Mso/memoryApi/memoryApi.h +13 -7
  258. package/Mso/motifCpp/gTestAdapter.h +1 -1
  259. package/Mso/motifCpp/testInfo.h +7 -9
  260. package/Mso/object/make.h +8 -8
  261. package/Mso/object/objectRefCount.h +3 -5
  262. package/Mso/object/objectWithWeakRef.h +10 -14
  263. package/Mso/object/queryCast.h +4 -4
  264. package/Mso/object/refCountedObject.h +4 -4
  265. package/Mso/object/unknownObject.h +7 -7
  266. package/Mso/platformAdapters/windowsFirst.h +1 -1
  267. package/Mso/smartPtr/cntPtr.h +8 -8
  268. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +96 -4
  269. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
  270. package/Mso/src/future/futureImpl.h +1 -1
  271. package/Mso/src/memoryApi/memoryApi.cpp +4 -4
  272. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  273. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
  274. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
  275. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  276. package/PropertySheets/JSEngine.props +1 -1
  277. package/PropertySheets/React.Cpp.props +13 -0
  278. package/PropertySheets/WinUI.props +3 -6
  279. package/ReactCommon/ReactCommon.vcxproj +2 -4
  280. package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
  281. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
  282. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
  283. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
  284. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
  285. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
  286. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
  287. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
  288. package/ReactCommon/Yoga.cpp +1 -1
  289. package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
  290. package/Scripts/OfficeReact.Win32.nuspec +1 -3
  291. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
  292. package/Scripts/copyRNLibraries.js +8 -8
  293. package/Scripts/just.js +1 -1
  294. package/Scripts/rnw-dependencies.ps1 +41 -10
  295. package/Scripts/run-desktop-integration-tests.js +6 -6
  296. package/Shared/AbiSafe.h +3 -3
  297. package/Shared/BaseScriptStoreImpl.cpp +1 -1
  298. package/Shared/CppRuntimeOptions.h +50 -0
  299. package/Shared/CreateModules.h +4 -0
  300. package/Shared/DevSupportManager.cpp +34 -33
  301. package/Shared/DevSupportManager.h +1 -2
  302. package/Shared/HermesRuntimeHolder.cpp +23 -14
  303. package/Shared/HermesRuntimeHolder.h +8 -2
  304. package/Shared/IDevSupportManager.h +1 -2
  305. package/Shared/InspectorPackagerConnection.cpp +7 -5
  306. package/Shared/InspectorPackagerConnection.h +2 -2
  307. package/Shared/JSI/ChakraApi.cpp +0 -1
  308. package/Shared/JSI/ChakraRuntime.cpp +1 -2
  309. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +1 -1
  310. package/Shared/JSI/RuntimeHolder.h +2 -0
  311. package/Shared/Modules/HttpModule.cpp +198 -0
  312. package/Shared/Modules/HttpModule.h +53 -0
  313. package/Shared/Modules/WebSocketModule.cpp +5 -1
  314. package/Shared/Modules/WebSocketModule.h +8 -5
  315. package/Shared/Networking/IHttpResource.h +53 -0
  316. package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +3 -3
  317. package/Shared/Networking/OriginPolicy.h +15 -0
  318. package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
  319. package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
  320. package/Shared/Networking/WinRTHttpResource.cpp +347 -0
  321. package/Shared/Networking/WinRTHttpResource.h +67 -0
  322. package/Shared/Networking/WinRTTypes.h +30 -0
  323. package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +31 -22
  324. package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
  325. package/Shared/OInstance.cpp +37 -11
  326. package/Shared/RuntimeOptions.cpp +93 -15
  327. package/Shared/RuntimeOptions.h +22 -9
  328. package/Shared/Shared.vcxitems +126 -5
  329. package/Shared/Shared.vcxitems.filters +55 -15
  330. package/Shared/Threading/BatchingQueueThread.cpp +1 -1
  331. package/Shared/Utils/WinRTConversions.cpp +22 -0
  332. package/Shared/Utils/WinRTConversions.h +15 -0
  333. package/Shared/tracing/fbsystrace.h +2 -2
  334. package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
  335. package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
  336. package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
  337. package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
  338. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  339. package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
  340. package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
  341. package/codegen/react/components/rnwcore/Props.cpp +0 -13
  342. package/codegen/react/components/rnwcore/Props.h +0 -16
  343. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  344. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
  345. package/include/Shared/cdebug.h +9 -9
  346. package/index.js +30 -25
  347. package/index.windows.js +30 -25
  348. package/jest/preprocessor.js +24 -107
  349. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  350. package/metro.config.js +3 -70
  351. package/package.json +29 -28
  352. package/react-native.config.js +40 -6
  353. package/rntypes/index.d.ts +19 -7
  354. package/stubs/glog/logging.h +1 -1
  355. package/template/cpp-app/src/App.h +0 -4
  356. package/template/cs-app/src/App.xaml.cs +0 -5
  357. package/template/cs-app/src/MainPage.xaml.cs +1 -10
  358. package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
  359. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
  360. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
  361. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
  362. package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
  363. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
  364. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
  365. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
  366. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
  367. package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
  368. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
  369. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
  370. package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
  371. package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
  372. package/template/metro.devMode.config.js +2 -51
  373. package/typings-index.js +5 -1
  374. package/typings-index.js.map +1 -1
  375. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  376. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  377. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  378. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
  379. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  380. package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
  381. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  382. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  383. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  384. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  385. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  386. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  387. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  388. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  389. package/PropertySheets/CppEnablePackageReferences.props +0 -13
  390. package/Shared/IHttpResource.h +0 -34
  391. package/Shared/cdebug.cpp +0 -6
  392. package/include/Shared/ViewManager.h +0 -34
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @noformat
8
8
  * @flow strict
9
- * @generated SignedSource<<ec11b46a06877b4f7f3f0b6c1f5d46c3>>
9
+ * @generated SignedSource<<fb8a7e52d219403fad0cf916954e5185>>
10
10
  *
11
11
  * This file was sync'd from the facebook/react repository.
12
12
  */
@@ -76,6 +76,7 @@ export type ViewConfig = $ReadOnly<{
76
76
  phasedRegistrationNames: $ReadOnly<{
77
77
  captured: string,
78
78
  bubbled: string,
79
+ skipBubbling?: ?boolean,
79
80
  }>,
80
81
  }>,
81
82
  ...,
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @noformat
8
8
  * @flow strict-local
9
- * @generated SignedSource<<a81ed33269e71024fedad145e843fab0>>
9
+ * @generated SignedSource<<a5b40ebf1f5b17d6dc83479c1c597566>>
10
10
  *
11
11
  * This file was sync'd from the facebook/react repository.
12
12
  */
@@ -22,6 +22,7 @@ const customBubblingEventTypes: {
22
22
  phasedRegistrationNames: $ReadOnly<{|
23
23
  captured: string,
24
24
  bubbled: string,
25
+ skipBubbling?: ?boolean,
25
26
  |}>,
26
27
  |}>,
27
28
  ...,
@@ -10,6 +10,9 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {Rect} from './Rect';
13
+ import type {Rect, RectOrSize} from './Rect';
14
14
 
15
+ // TODO: allow all EdgeInsets-like property to be set using a single number
16
+ // and unify EdgeInsetsProp with EdgeInsetsOrSizeProp
15
17
  export type EdgeInsetsProp = Rect;
18
+ export type EdgeInsetsOrSizeProp = RectOrSize;
@@ -14,21 +14,31 @@ const AnimatedNode = require('../Animated/nodes/AnimatedNode');
14
14
 
15
15
  import type {NativeColorValue} from './PlatformColorValueTypes';
16
16
 
17
- export type ____ColorValue_Internal = null | string | NativeColorValue;
17
+ export type ____ColorValue_Internal = null | string | number | NativeColorValue;
18
18
 
19
19
  export type ColorArrayValue = null | $ReadOnlyArray<____ColorValue_Internal>;
20
- export type PointValue = {|
20
+ export type PointValue = {
21
21
  x: number,
22
22
  y: number,
23
- |};
24
- export type EdgeInsetsValue = {|
23
+ };
24
+ export type EdgeInsetsValue = {
25
25
  top: number,
26
26
  left: number,
27
27
  right: number,
28
28
  bottom: number,
29
- |};
29
+ };
30
30
  export type DimensionValue = null | number | string | AnimatedNode;
31
31
 
32
+ import type {
33
+ ____DangerouslyImpreciseStyle_InternalOverrides,
34
+ ____ImageStyle_InternalOverrides,
35
+ ____ShadowStyle_InternalOverrides,
36
+ ____TextStyle_InternalOverrides,
37
+ ____ViewStyle_InternalOverrides,
38
+ } from './private/_StyleSheetTypesOverrides';
39
+
40
+ import type {____TransformStyle_Internal} from './private/_TransformStyle';
41
+
32
42
  /**
33
43
  * React Native's layout system is based on Flexbox and is powered both
34
44
  * on iOS and Android by an open source project called `Yoga`:
@@ -42,7 +52,7 @@ export type DimensionValue = null | number | string | AnimatedNode;
42
52
  * These properties are a subset of our styles that are consumed by the layout
43
53
  * algorithm and affect the positioning and sizing of views.
44
54
  */
45
- type ____LayoutStyle_Internal = $ReadOnly<{|
55
+ type ____LayoutStyle_Internal = $ReadOnly<{
46
56
  /** `display` sets the display type of this component.
47
57
  *
48
58
  * It works similarly to `display` in CSS, but only support 'flex' and 'none'.
@@ -472,49 +482,7 @@ type ____LayoutStyle_Internal = $ReadOnly<{|
472
482
  * @platform ios
473
483
  */
474
484
  direction?: 'inherit' | 'ltr' | 'rtl',
475
- |}>;
476
-
477
- type ____TransformStyle_Internal = $ReadOnly<{|
478
- /**
479
- * `transform` accepts an array of transformation objects. Each object specifies
480
- * the property that will be transformed as the key, and the value to use in the
481
- * transformation. Objects should not be combined. Use a single key/value pair
482
- * per object.
483
- *
484
- * The rotate transformations require a string so that the transform may be
485
- * expressed in degrees (deg) or radians (rad). For example:
486
- *
487
- * `transform([{ rotateX: '45deg' }, { rotateZ: '0.785398rad' }])`
488
- *
489
- * The skew transformations require a string so that the transform may be
490
- * expressed in degrees (deg). For example:
491
- *
492
- * `transform([{ skewX: '45deg' }])`
493
- */
494
- transform?: $ReadOnlyArray<
495
- | {|+perspective: number | AnimatedNode|}
496
- | {|+rotate: string | AnimatedNode|}
497
- | {|+rotateX: string | AnimatedNode|}
498
- | {|+rotateY: string | AnimatedNode|}
499
- | {|+rotateZ: string | AnimatedNode|}
500
- | {|+scale: number | AnimatedNode|}
501
- | {|+scaleX: number | AnimatedNode|}
502
- | {|+scaleY: number | AnimatedNode|}
503
- | {|+translateX: number | AnimatedNode|}
504
- | {|+translateY: number | AnimatedNode|}
505
- | {|
506
- +translate:
507
- | [number | AnimatedNode, number | AnimatedNode]
508
- | AnimatedNode,
509
- |}
510
- | {|+skewX: string|}
511
- | {|+skewY: string|}
512
- // TODO: what is the actual type it expects?
513
- | {|
514
- +matrix: $ReadOnlyArray<number | AnimatedNode> | AnimatedNode,
515
- |},
516
- >,
517
- |}>;
485
+ }>;
518
486
 
519
487
  /**
520
488
  * These props can be used to dynamically generate shadows on views, images, text, etc.
@@ -526,7 +494,7 @@ type ____TransformStyle_Internal = $ReadOnly<{|
526
494
  * To add a drop shadow to a view use the [`elevation` property](docs/viewstyleproptypes.html#elevation) (Android 5.0+).
527
495
  * To customize the color use the [`shadowColor` property](docs/shadow-props.html#shadowColor) (Android 9.0+).
528
496
  */
529
- export type ____ShadowStyle_Internal = $ReadOnly<{|
497
+ export type ____ShadowStyle_InternalCore = $ReadOnly<{
530
498
  /**
531
499
  * Sets the drop shadow color
532
500
  * @platform ios
@@ -536,10 +504,10 @@ export type ____ShadowStyle_Internal = $ReadOnly<{|
536
504
  * Sets the drop shadow offset
537
505
  * @platform ios
538
506
  */
539
- shadowOffset?: $ReadOnly<{|
507
+ shadowOffset?: $ReadOnly<{
540
508
  width?: number,
541
509
  height?: number,
542
- |}>,
510
+ }>,
543
511
  /**
544
512
  * Sets the drop shadow opacity (multiplied by the color's alpha component)
545
513
  * @platform ios
@@ -550,9 +518,14 @@ export type ____ShadowStyle_Internal = $ReadOnly<{|
550
518
  * @platform ios
551
519
  */
552
520
  shadowRadius?: number,
553
- |}>;
521
+ }>;
522
+
523
+ export type ____ShadowStyle_Internal = $ReadOnly<{
524
+ ...____ShadowStyle_InternalCore,
525
+ ...____ShadowStyle_InternalOverrides,
526
+ }>;
554
527
 
555
- export type ____ViewStyle_Internal = $ReadOnly<{|
528
+ export type ____ViewStyle_InternalCore = $ReadOnly<{
556
529
  ...$Exact<____LayoutStyle_Internal>,
557
530
  ...$Exact<____ShadowStyle_Internal>,
558
531
  ...$Exact<____TransformStyle_Internal>,
@@ -584,7 +557,12 @@ export type ____ViewStyle_Internal = $ReadOnly<{|
584
557
  borderTopWidth?: number | AnimatedNode,
585
558
  opacity?: number | AnimatedNode,
586
559
  elevation?: number,
587
- |}>;
560
+ }>;
561
+
562
+ export type ____ViewStyle_Internal = $ReadOnly<{
563
+ ...____ViewStyle_InternalCore,
564
+ ...____ViewStyle_InternalOverrides,
565
+ }>;
588
566
 
589
567
  export type ____FontWeight_Internal =
590
568
  | 'normal'
@@ -599,7 +577,7 @@ export type ____FontWeight_Internal =
599
577
  | '800'
600
578
  | '900';
601
579
 
602
- export type ____TextStyle_Internal = $ReadOnly<{|
580
+ export type ____TextStyle_InternalCore = $ReadOnly<{
603
581
  ...$Exact<____ViewStyle_Internal>,
604
582
  color?: ____ColorValue_Internal,
605
583
  fontFamily?: string,
@@ -613,10 +591,10 @@ export type ____TextStyle_Internal = $ReadOnly<{|
613
591
  | 'tabular-nums'
614
592
  | 'proportional-nums',
615
593
  >,
616
- textShadowOffset?: $ReadOnly<{|
594
+ textShadowOffset?: $ReadOnly<{
617
595
  width: number,
618
596
  height: number,
619
- |}>,
597
+ }>,
620
598
  textShadowRadius?: number,
621
599
  textShadowColor?: ____ColorValue_Internal,
622
600
  letterSpacing?: number,
@@ -633,22 +611,37 @@ export type ____TextStyle_Internal = $ReadOnly<{|
633
611
  textDecorationColor?: ____ColorValue_Internal,
634
612
  textTransform?: 'none' | 'capitalize' | 'uppercase' | 'lowercase',
635
613
  writingDirection?: 'auto' | 'ltr' | 'rtl',
636
- |}>;
614
+ }>;
637
615
 
638
- export type ____ImageStyle_Internal = $ReadOnly<{|
616
+ export type ____TextStyle_Internal = $ReadOnly<{
617
+ ...____TextStyle_InternalCore,
618
+ ...____TextStyle_InternalOverrides,
619
+ }>;
620
+
621
+ export type ____ImageStyle_InternalCore = $ReadOnly<{
639
622
  ...$Exact<____ViewStyle_Internal>,
640
623
  resizeMode?: 'contain' | 'cover' | 'stretch' | 'center' | 'repeat',
641
624
  tintColor?: ____ColorValue_Internal,
642
625
  overlayColor?: string,
643
- |}>;
626
+ }>;
627
+
628
+ export type ____ImageStyle_Internal = $ReadOnly<{
629
+ ...____ImageStyle_InternalCore,
630
+ ...____ImageStyle_InternalOverrides,
631
+ }>;
644
632
 
645
- export type ____DangerouslyImpreciseStyle_Internal = {
633
+ export type ____DangerouslyImpreciseStyle_InternalCore = $ReadOnly<{
646
634
  ...$Exact<____TextStyle_Internal>,
647
- +resizeMode?: 'contain' | 'cover' | 'stretch' | 'center' | 'repeat',
648
- +tintColor?: ____ColorValue_Internal,
649
- +overlayColor?: string,
635
+ resizeMode?: 'contain' | 'cover' | 'stretch' | 'center' | 'repeat',
636
+ tintColor?: ____ColorValue_Internal,
637
+ overlayColor?: string,
638
+ }>;
639
+
640
+ export type ____DangerouslyImpreciseStyle_Internal = $ReadOnly<{
641
+ ...____DangerouslyImpreciseStyle_InternalCore,
642
+ ...____DangerouslyImpreciseStyle_InternalOverrides,
650
643
  ...
651
- };
644
+ }>;
652
645
 
653
646
  type GenericStyleProp<+T> =
654
647
  | null
@@ -22,7 +22,7 @@ function normalizeColor(
22
22
  const {normalizeColorObject} = require('./PlatformColorValueTypes');
23
23
  const normalizedColor = normalizeColorObject(color);
24
24
  if (normalizedColor != null) {
25
- return color;
25
+ return normalizedColor;
26
26
  }
27
27
  }
28
28
 
@@ -0,0 +1,15 @@
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
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ export type ____DangerouslyImpreciseStyle_InternalOverrides = $ReadOnly<{}>;
12
+ export type ____ImageStyle_InternalOverrides = $ReadOnly<{}>;
13
+ export type ____ShadowStyle_InternalOverrides = $ReadOnly<{}>;
14
+ export type ____TextStyle_InternalOverrides = $ReadOnly<{}>;
15
+ export type ____ViewStyle_InternalOverrides = $ReadOnly<{}>;
@@ -0,0 +1,53 @@
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
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ const AnimatedNode = require('../../Animated/nodes/AnimatedNode');
12
+
13
+ export type ____TransformStyle_Internal = $ReadOnly<{|
14
+ /**
15
+ * `transform` accepts an array of transformation objects. Each object specifies
16
+ * the property that will be transformed as the key, and the value to use in the
17
+ * transformation. Objects should not be combined. Use a single key/value pair
18
+ * per object.
19
+ *
20
+ * The rotate transformations require a string so that the transform may be
21
+ * expressed in degrees (deg) or radians (rad). For example:
22
+ *
23
+ * `transform([{ rotateX: '45deg' }, { rotateZ: '0.785398rad' }])`
24
+ *
25
+ * The skew transformations require a string so that the transform may be
26
+ * expressed in degrees (deg). For example:
27
+ *
28
+ * `transform([{ skewX: '45deg' }])`
29
+ */
30
+ transform?: $ReadOnlyArray<
31
+ | {|+perspective: number | AnimatedNode|}
32
+ | {|+rotate: string | AnimatedNode|}
33
+ | {|+rotateX: string | AnimatedNode|}
34
+ | {|+rotateY: string | AnimatedNode|}
35
+ | {|+rotateZ: string | AnimatedNode|}
36
+ | {|+scale: number | AnimatedNode|}
37
+ | {|+scaleX: number | AnimatedNode|}
38
+ | {|+scaleY: number | AnimatedNode|}
39
+ | {|+translateX: number | AnimatedNode|}
40
+ | {|+translateY: number | AnimatedNode|}
41
+ | {|
42
+ +translate:
43
+ | [number | AnimatedNode, number | AnimatedNode]
44
+ | AnimatedNode,
45
+ |}
46
+ | {|+skewX: string|}
47
+ | {|+skewY: string|}
48
+ // TODO: what is the actual type it expects?
49
+ | {|
50
+ +matrix: $ReadOnlyArray<number | AnimatedNode> | AnimatedNode,
51
+ |},
52
+ >,
53
+ |}>;
@@ -0,0 +1,272 @@
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
+ * @format
8
+ * @flow
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ const MatrixMath = require('../Utilities/MatrixMath');
14
+ const Platform = require('../Utilities/Platform');
15
+
16
+ const invariant = require('invariant');
17
+ const stringifySafe = require('../Utilities/stringifySafe').default;
18
+
19
+ /**
20
+ * Generate a transform matrix based on the provided transforms, and use that
21
+ * within the style object instead.
22
+ *
23
+ * This allows us to provide an API that is similar to CSS, where transforms may
24
+ * be applied in an arbitrary order, and yet have a universal, singular
25
+ * interface to native code.
26
+ */
27
+ function processTransform(
28
+ transform: Array<Object>,
29
+ ): Array<Object> | Array<number> {
30
+ if (__DEV__) {
31
+ _validateTransforms(transform);
32
+ }
33
+
34
+ // Android & iOS implementations of transform property accept the list of
35
+ // transform properties as opposed to a transform Matrix. This is necessary
36
+ // to control transform property updates completely on the native thread.
37
+ if (
38
+ Platform.OS === 'android' ||
39
+ Platform.OS === 'ios' ||
40
+ Platform.OS === 'windows'
41
+ ) {
42
+ return transform;
43
+ }
44
+
45
+ const result = MatrixMath.createIdentityMatrix();
46
+
47
+ transform.forEach(transformation => {
48
+ const key = Object.keys(transformation)[0];
49
+ const value = transformation[key];
50
+
51
+ switch (key) {
52
+ case 'matrix':
53
+ MatrixMath.multiplyInto(result, result, value);
54
+ break;
55
+ case 'perspective':
56
+ _multiplyTransform(result, MatrixMath.reusePerspectiveCommand, [value]);
57
+ break;
58
+ case 'rotateX':
59
+ _multiplyTransform(result, MatrixMath.reuseRotateXCommand, [
60
+ _convertToRadians(value),
61
+ ]);
62
+ break;
63
+ case 'rotateY':
64
+ _multiplyTransform(result, MatrixMath.reuseRotateYCommand, [
65
+ _convertToRadians(value),
66
+ ]);
67
+ break;
68
+ case 'rotate':
69
+ case 'rotateZ':
70
+ _multiplyTransform(result, MatrixMath.reuseRotateZCommand, [
71
+ _convertToRadians(value),
72
+ ]);
73
+ break;
74
+ case 'scale':
75
+ _multiplyTransform(result, MatrixMath.reuseScaleCommand, [value]);
76
+ break;
77
+ case 'scaleX':
78
+ _multiplyTransform(result, MatrixMath.reuseScaleXCommand, [value]);
79
+ break;
80
+ case 'scaleY':
81
+ _multiplyTransform(result, MatrixMath.reuseScaleYCommand, [value]);
82
+ break;
83
+ case 'translate':
84
+ _multiplyTransform(result, MatrixMath.reuseTranslate3dCommand, [
85
+ value[0],
86
+ value[1],
87
+ value[2] || 0,
88
+ ]);
89
+ break;
90
+ case 'translateX':
91
+ _multiplyTransform(result, MatrixMath.reuseTranslate2dCommand, [
92
+ value,
93
+ 0,
94
+ ]);
95
+ break;
96
+ case 'translateY':
97
+ _multiplyTransform(result, MatrixMath.reuseTranslate2dCommand, [
98
+ 0,
99
+ value,
100
+ ]);
101
+ break;
102
+ case 'skewX':
103
+ _multiplyTransform(result, MatrixMath.reuseSkewXCommand, [
104
+ _convertToRadians(value),
105
+ ]);
106
+ break;
107
+ case 'skewY':
108
+ _multiplyTransform(result, MatrixMath.reuseSkewYCommand, [
109
+ _convertToRadians(value),
110
+ ]);
111
+ break;
112
+ default:
113
+ throw new Error('Invalid transform name: ' + key);
114
+ }
115
+ });
116
+
117
+ return result;
118
+ }
119
+
120
+ /**
121
+ * Performs a destructive operation on a transform matrix.
122
+ */
123
+ function _multiplyTransform(
124
+ result: Array<number>,
125
+ matrixMathFunction: Function,
126
+ args: Array<number>,
127
+ ): void {
128
+ const matrixToApply = MatrixMath.createIdentityMatrix();
129
+ const argsWithIdentity = [matrixToApply].concat(args);
130
+ matrixMathFunction.apply(this, argsWithIdentity);
131
+ MatrixMath.multiplyInto(result, result, matrixToApply);
132
+ }
133
+
134
+ /**
135
+ * Parses a string like '0.5rad' or '60deg' into radians expressed in a float.
136
+ * Note that validation on the string is done in `_validateTransform()`.
137
+ */
138
+ function _convertToRadians(value: string): number {
139
+ const floatValue = parseFloat(value);
140
+ return value.indexOf('rad') > -1 ? floatValue : (floatValue * Math.PI) / 180;
141
+ }
142
+
143
+ function _validateTransforms(transform: Array<Object>): void {
144
+ transform.forEach(transformation => {
145
+ const keys = Object.keys(transformation);
146
+ invariant(
147
+ keys.length === 1,
148
+ 'You must specify exactly one property per transform object. Passed properties: %s',
149
+ stringifySafe(transformation),
150
+ );
151
+ const key = keys[0];
152
+ const value = transformation[key];
153
+ _validateTransform(key, value, transformation);
154
+ });
155
+ }
156
+
157
+ function _validateTransform(
158
+ key:
159
+ | string
160
+ | $TEMPORARY$string<'matrix'>
161
+ | $TEMPORARY$string<'perspective'>
162
+ | $TEMPORARY$string<'rotate'>
163
+ | $TEMPORARY$string<'rotateX'>
164
+ | $TEMPORARY$string<'rotateY'>
165
+ | $TEMPORARY$string<'rotateZ'>
166
+ | $TEMPORARY$string<'scale'>
167
+ | $TEMPORARY$string<'scaleX'>
168
+ | $TEMPORARY$string<'scaleY'>
169
+ | $TEMPORARY$string<'skewX'>
170
+ | $TEMPORARY$string<'skewY'>
171
+ | $TEMPORARY$string<'translate'>
172
+ | $TEMPORARY$string<'translateX'>
173
+ | $TEMPORARY$string<'translateY'>,
174
+ value: any | number | string,
175
+ transformation: any,
176
+ ) {
177
+ invariant(
178
+ !value.getValue,
179
+ 'You passed an Animated.Value to a normal component. ' +
180
+ 'You need to wrap that component in an Animated. For example, ' +
181
+ 'replace <View /> by <Animated.View />.',
182
+ );
183
+
184
+ const multivalueTransforms = ['matrix', 'translate'];
185
+ if (multivalueTransforms.indexOf(key) !== -1) {
186
+ invariant(
187
+ Array.isArray(value),
188
+ 'Transform with key of %s must have an array as the value: %s',
189
+ key,
190
+ stringifySafe(transformation),
191
+ );
192
+ }
193
+ switch (key) {
194
+ case 'matrix':
195
+ invariant(
196
+ value.length === 9 || value.length === 16,
197
+ 'Matrix transform must have a length of 9 (2d) or 16 (3d). ' +
198
+ 'Provided matrix has a length of %s: %s',
199
+ /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This
200
+ * comment suppresses an error found when Flow v0.84 was deployed. To
201
+ * see the error, delete this comment and run Flow. */
202
+ value.length,
203
+ stringifySafe(transformation),
204
+ );
205
+ break;
206
+ case 'translate':
207
+ invariant(
208
+ value.length === 2 || value.length === 3,
209
+ 'Transform with key translate must be an array of length 2 or 3, found %s: %s',
210
+ /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This
211
+ * comment suppresses an error found when Flow v0.84 was deployed. To
212
+ * see the error, delete this comment and run Flow. */
213
+ value.length,
214
+ stringifySafe(transformation),
215
+ );
216
+ break;
217
+ case 'rotateX':
218
+ case 'rotateY':
219
+ case 'rotateZ':
220
+ case 'rotate':
221
+ case 'skewX':
222
+ case 'skewY':
223
+ invariant(
224
+ typeof value === 'string',
225
+ 'Transform with key of "%s" must be a string: %s',
226
+ key,
227
+ stringifySafe(transformation),
228
+ );
229
+ invariant(
230
+ value.indexOf('deg') > -1 || value.indexOf('rad') > -1,
231
+ 'Rotate transform must be expressed in degrees (deg) or radians ' +
232
+ '(rad): %s',
233
+ stringifySafe(transformation),
234
+ );
235
+ break;
236
+ case 'perspective':
237
+ invariant(
238
+ typeof value === 'number',
239
+ 'Transform with key of "%s" must be a number: %s',
240
+ key,
241
+ stringifySafe(transformation),
242
+ );
243
+ invariant(
244
+ value !== 0,
245
+ 'Transform with key of "%s" cannot be zero: %s',
246
+ key,
247
+ stringifySafe(transformation),
248
+ );
249
+ break;
250
+ case 'translateX':
251
+ case 'translateY':
252
+ case 'scale':
253
+ case 'scaleX':
254
+ case 'scaleY':
255
+ invariant(
256
+ typeof value === 'number',
257
+ 'Transform with key of "%s" must be a number: %s',
258
+ key,
259
+ stringifySafe(transformation),
260
+ );
261
+ break;
262
+ default:
263
+ invariant(
264
+ false,
265
+ 'Invalid transform %s: %s',
266
+ key,
267
+ stringifySafe(transformation),
268
+ );
269
+ }
270
+ }
271
+
272
+ module.exports = processTransform;
@@ -48,11 +48,20 @@ const Text: React.AbstractComponent<
48
48
 
49
49
  const [isHighlighted, setHighlighted] = useState(false);
50
50
 
51
+ const _disabled =
52
+ restProps.disabled != null
53
+ ? restProps.disabled
54
+ : props.accessibilityState?.disabled;
55
+ const _accessibilityState =
56
+ _disabled !== props.accessibilityState?.disabled
57
+ ? {...props.accessibilityState, disabled: _disabled}
58
+ : props.accessibilityState;
59
+
51
60
  const isPressable =
52
61
  (onPress != null ||
53
62
  onLongPress != null ||
54
63
  onStartShouldSetResponder != null) &&
55
- restProps.disabled !== true;
64
+ _disabled !== true;
56
65
 
57
66
  const initialized = useLazyInitialization(isPressable);
58
67
  const config = useMemo(
@@ -120,6 +129,7 @@ const Text: React.AbstractComponent<
120
129
  onResponderTerminate(event);
121
130
  }
122
131
  },
132
+ onClick: eventHandlers.onClick,
123
133
  onResponderTerminationRequest:
124
134
  eventHandlers.onResponderTerminationRequest,
125
135
  onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,
@@ -174,7 +184,9 @@ const Text: React.AbstractComponent<
174
184
  <NativeText
175
185
  {...restProps}
176
186
  {...eventHandlersForText}
187
+ disabled={_disabled}
177
188
  accessible={accessible !== false}
189
+ accessibilityState={_accessibilityState}
178
190
  allowFontScaling={allowFontScaling !== false}
179
191
  ellipsizeMode={ellipsizeMode ?? 'tail'}
180
192
  isHighlighted={isHighlighted}
@@ -189,12 +201,6 @@ const Text: React.AbstractComponent<
189
201
 
190
202
  Text.displayName = 'Text';
191
203
 
192
- /**
193
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
194
- * releases. This is deprecated and will be removed in the future.
195
- */
196
- Text.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;
197
-
198
204
  /**
199
205
  * Returns false until the first time `newValue` is true, after which this will
200
206
  * always return true. This is necessary to lazily initialize `Pressability` so