@office-iss/react-native-win32 0.73.2 → 0.74.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 (479) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +11 -3
  3. package/CHANGELOG.json +411 -54
  4. package/CHANGELOG.md +157 -30
  5. package/IntegrationTests/AccessibilityManagerTest.js +2 -2
  6. package/IntegrationTests/AppEventsTest.js +2 -2
  7. package/IntegrationTests/LayoutEventsTest.js +8 -10
  8. package/IntegrationTests/LoggingTestModule.js +1 -2
  9. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  12. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  13. package/Libraries/Alert/NativeAlertManager.js +4 -26
  14. package/Libraries/Animated/Animated.js +2 -2
  15. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  16. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  17. package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
  18. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  19. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  20. package/Libraries/Animated/animations/Animation.js +6 -22
  21. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  22. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  24. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  25. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  26. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  27. package/Libraries/Animated/useAnimatedProps.js +21 -1
  28. package/Libraries/AppState/NativeAppState.js +4 -24
  29. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  30. package/Libraries/Blob/Blob.js +1 -4
  31. package/Libraries/Blob/BlobManager.js +6 -8
  32. package/Libraries/Blob/File.js +1 -1
  33. package/Libraries/Blob/NativeBlobModule.js +4 -50
  34. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  35. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
  37. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  40. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  42. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  44. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  45. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  46. package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
  47. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  48. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  49. package/Libraries/Components/Button/ButtonWin32.js +82 -82
  50. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  51. package/Libraries/Components/Button.js +103 -107
  52. package/Libraries/Components/Button.win32.js +297 -301
  53. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  54. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  56. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  57. package/Libraries/Components/EnterString.win32.js +81 -81
  58. package/Libraries/Components/EnterString.win32.js.map +1 -1
  59. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  60. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
  61. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
  62. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
  63. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
  64. package/Libraries/Components/Pressable/Pressable.js +1 -1
  65. package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
  66. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  67. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  68. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  69. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  70. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  71. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  72. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  73. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  74. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  75. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  76. package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
  77. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  78. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  79. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  80. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  81. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  82. package/Libraries/Components/Switch/Switch.js +0 -2
  83. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  84. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  85. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  86. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  87. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  88. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  89. package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
  90. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  91. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  92. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  93. package/Libraries/Components/TextInput/TextInput.js +65 -32
  94. package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
  95. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  96. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  97. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  98. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
  99. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  100. package/Libraries/Components/Touchable/Touchable.js +2 -3
  101. package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
  102. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  103. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  104. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  105. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
  106. package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
  107. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  108. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  109. package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
  110. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
  111. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  112. package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
  113. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  114. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  115. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  116. package/Libraries/Components/View/View.js +0 -11
  117. package/Libraries/Components/View/View.win32.js +18 -17
  118. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  119. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  120. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  121. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
  122. package/Libraries/Core/InitializeCore.js +1 -1
  123. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  124. package/Libraries/Core/ReactNativeVersion.js +12 -6
  125. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  126. package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
  127. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  128. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  129. package/Libraries/Core/registerCallableModule.js +42 -0
  130. package/Libraries/Core/setUpPerformance.js +2 -2
  131. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  132. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  133. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  134. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  135. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  136. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  137. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  138. package/Libraries/Image/AssetSourceResolver.js +5 -5
  139. package/Libraries/Image/AssetUtils.js +4 -5
  140. package/Libraries/Image/Image.android.js +146 -174
  141. package/Libraries/Image/Image.d.ts +1 -1
  142. package/Libraries/Image/Image.ios.js +53 -79
  143. package/Libraries/Image/Image.win32.js +52 -74
  144. package/Libraries/Image/ImageBackground.js +2 -2
  145. package/Libraries/Image/ImageInjection.js +76 -18
  146. package/Libraries/Image/ImageTypes.d.ts +25 -25
  147. package/Libraries/Image/ImageTypes.flow.js +71 -0
  148. package/Libraries/Image/ImageTypes.js +7 -7
  149. package/Libraries/Image/ImageTypes.js.map +1 -1
  150. package/Libraries/Image/ImageUtils.js +1 -1
  151. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  152. package/Libraries/Image/NativeImageEditor.js +3 -42
  153. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  154. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  155. package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
  156. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  157. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  158. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  159. package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
  160. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  161. package/Libraries/Image/resolveAssetSource.js +59 -26
  162. package/Libraries/Inspector/ElementProperties.js +26 -52
  163. package/Libraries/Inspector/Inspector.js +122 -186
  164. package/Libraries/Inspector/Inspector.win32.js +118 -185
  165. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  166. package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
  167. package/Libraries/Inspector/InspectorPanel.js +3 -17
  168. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  169. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  170. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  171. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  172. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  173. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  174. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  175. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  176. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  177. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  178. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  179. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  180. package/Libraries/Lists/FillRateHelper.js +1 -1
  181. package/Libraries/Lists/FlatList.d.ts +2 -2
  182. package/Libraries/Lists/FlatList.js +6 -1
  183. package/Libraries/Lists/SectionList.d.ts +6 -1
  184. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  185. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  186. package/Libraries/Lists/VirtualizedList.js +1 -1
  187. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  188. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  189. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  190. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  191. package/Libraries/Modal/Modal.js +43 -11
  192. package/Libraries/Modal/NativeModalManager.js +3 -11
  193. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  194. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  195. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  196. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  197. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  198. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  199. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  200. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  201. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  202. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  203. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  204. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  205. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  206. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  207. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  208. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  209. package/Libraries/Network/FormData.js +3 -1
  210. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  211. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  212. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  213. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  214. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  215. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  216. package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
  217. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  218. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  219. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
  220. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
  221. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  222. package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
  223. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
  224. package/Libraries/Pressability/Pressability.js +12 -2
  225. package/Libraries/Pressability/Pressability.win32.js +12 -2
  226. package/Libraries/Pressability/usePressability.js +7 -0
  227. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  228. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  229. package/Libraries/ReactNative/AppContainer-dev.js +192 -0
  230. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  231. package/Libraries/ReactNative/AppContainer.js +6 -149
  232. package/Libraries/ReactNative/AppRegistry.js +3 -1
  233. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  234. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  235. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  236. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  237. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  238. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  239. package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
  240. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  241. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  242. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  243. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  244. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  245. package/Libraries/ReactNative/UIManager.js +2 -23
  246. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  247. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  248. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  249. package/Libraries/ReactNative/renderApplication.js +9 -6
  250. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  251. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  252. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  253. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  254. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  255. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  256. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  257. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  258. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  259. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  260. package/Libraries/Share/NativeShareModule.js +3 -13
  261. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
  262. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  263. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
  264. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  265. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  266. package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
  267. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
  268. package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
  269. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  270. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  271. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  272. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  273. package/Libraries/Text/Text.d.ts +5 -6
  274. package/Libraries/Text/Text.js +0 -6
  275. package/Libraries/Text/Text.win32.js +0 -6
  276. package/Libraries/Text/TextAncestor.js +2 -3
  277. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  278. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  279. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  280. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  281. package/Libraries/Utilities/Dimensions.js +8 -16
  282. package/Libraries/Utilities/Dimensions.win32.js +8 -16
  283. package/Libraries/Utilities/FocusManager.win32.js +2 -0
  284. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  285. package/Libraries/Utilities/NativeAppearance.js +3 -26
  286. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  287. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  288. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  289. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  290. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  291. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  292. package/Libraries/Utilities/Platform.android.js +4 -0
  293. package/Libraries/Utilities/Platform.d.ts +3 -0
  294. package/Libraries/Utilities/Platform.flow.js +7 -0
  295. package/Libraries/Utilities/Platform.flow.win32.js +18 -5
  296. package/Libraries/Utilities/Platform.ios.js +11 -0
  297. package/Libraries/Utilities/Platform.win32.js +9 -1
  298. package/Libraries/Utilities/binaryToBase64.js +1 -1
  299. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  300. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  301. package/Libraries/Utilities/useMergeRefs.js +5 -9
  302. package/Libraries/Vibration/NativeVibration.js +3 -14
  303. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  304. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  305. package/Libraries/platform-types.d.ts +2 -3
  306. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  307. package/babel.config.js +1 -1
  308. package/flow/jest.js +1 -1
  309. package/flow/react.js +15 -0
  310. package/index.js +66 -99
  311. package/index.win32.js +60 -101
  312. package/jest/assetFileTransformer.js +1 -1
  313. package/jest/local-setup.js +0 -5
  314. package/jest/mockModal.js +2 -1
  315. package/jest/mockScrollView.js +1 -2
  316. package/jest/renderer.js +1 -1
  317. package/jest/setup.js +6 -3
  318. package/jest.config.js +2 -1
  319. package/overrides.json +152 -131
  320. package/package.json +26 -26
  321. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  322. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  323. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  324. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  325. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  326. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  327. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  328. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  329. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  330. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  331. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  332. package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
  333. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  334. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  335. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  336. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  337. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  338. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  339. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  340. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  341. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
  342. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  343. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  344. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  345. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  346. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  347. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  348. package/src/private/specs/modules/NativeAppState.js +33 -0
  349. package/src/private/specs/modules/NativeAppearance.js +36 -0
  350. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  351. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  352. package/src/private/specs/modules/NativeClipboard.js +21 -0
  353. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  354. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  355. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  356. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  357. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  358. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  359. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  360. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  361. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  362. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  363. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  364. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  365. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  366. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  367. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  368. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  369. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  370. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  371. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  372. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  373. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  374. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  375. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  376. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  377. package/src/private/specs/modules/NativeLogBox.js +20 -0
  378. package/src/private/specs/modules/NativeModalManager.js +21 -0
  379. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  380. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  381. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  382. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  383. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  384. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  385. package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
  386. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  387. package/src/private/specs/modules/NativeRedBox.js +20 -0
  388. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  389. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  390. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  391. package/src/private/specs/modules/NativeShareModule.js +23 -0
  392. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  393. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  394. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  395. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  396. package/src/private/specs/modules/NativeTiming.js +26 -0
  397. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  398. package/src/private/specs/modules/NativeUIManager.js +118 -0
  399. package/src/private/specs/modules/NativeVibration.js +24 -0
  400. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  401. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  402. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  403. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  404. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  405. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  406. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  407. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  408. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  409. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  410. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  411. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  412. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  413. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  414. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  415. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  416. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  417. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  418. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  419. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  420. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  421. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
  422. package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
  423. package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
  424. package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  425. package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  426. package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  427. package/{src → src-win}/Libraries/Text/Text.d.ts +5 -6
  428. package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
  429. package/types/modules/globals.d.ts +1 -0
  430. package/Libraries/Components/Button.flow.js +0 -265
  431. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  432. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
  433. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  434. package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
  435. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  436. package/Libraries/Components/Text/TextWin32.js +0 -18
  437. package/Libraries/Components/Text/TextWin32.js.map +0 -1
  438. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  439. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  440. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  441. package/Libraries/Image/Image.flow.js +0 -64
  442. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  443. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  444. package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
  445. package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
  446. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  447. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  448. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  449. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  450. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  451. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  452. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  453. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  454. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  455. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  456. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  457. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
  458. /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
  459. /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
  460. /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
  461. /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
  462. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
  463. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
  464. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
  465. /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
  466. /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
  467. /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
  468. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
  469. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  470. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  471. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  472. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  473. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  474. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  475. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
  476. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
  477. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
  478. /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
  479. /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.73.2",
3
+ "version": "0.74.0-preview.1",
4
4
  "description": "Implementation of react native on top of Office's Win32 platform.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,24 +26,23 @@
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.0.0",
28
28
  "@jest/create-cache-key-function": "^29.6.3",
29
- "@react-native-community/cli": "12.3.6",
30
- "@react-native-community/cli-platform-android": "12.3.6",
31
- "@react-native-community/cli-platform-ios": "12.3.6",
32
- "@react-native/assets-registry": "0.73.1",
33
- "@react-native/codegen": "0.73.3",
34
- "@react-native/community-cli-plugin": "0.73.17",
35
- "@react-native/gradle-plugin": "0.73.4",
36
- "@react-native/js-polyfills": "0.73.1",
37
- "@react-native/metro-config": "^0.73.0",
38
- "@react-native/normalize-colors": "0.73.2",
39
- "@react-native/virtualized-lists": "0.73.4",
29
+ "@react-native-community/cli": "13.6.0",
30
+ "@react-native-community/cli-platform-android": "13.6.0",
31
+ "@react-native-community/cli-platform-ios": "13.6.0",
32
+ "@react-native/assets": "1.0.0",
33
+ "@react-native/assets-registry": "0.74.0",
34
+ "@react-native/codegen": "0.74.1",
35
+ "@react-native/community-cli-plugin": "0.74.1",
36
+ "@react-native/gradle-plugin": "0.74.1",
37
+ "@react-native/js-polyfills": "0.74.0",
38
+ "@react-native/normalize-colors": "0.74.1",
39
+ "@react-native/virtualized-lists": "0.74.1",
40
40
  "abort-controller": "^3.0.0",
41
41
  "anser": "^1.4.9",
42
42
  "ansi-regex": "^5.0.0",
43
43
  "art": "^0.10.0",
44
44
  "base64-js": "^1.5.1",
45
45
  "chalk": "^4.0.0",
46
- "deprecated-react-native-prop-types": "^5.0.0",
47
46
  "event-target-shim": "^5.0.1",
48
47
  "flow-enums-runtime": "^0.0.6",
49
48
  "invariant": "^2.2.4",
@@ -57,7 +56,7 @@
57
56
  "pretty-format": "^26.5.2",
58
57
  "promise": "^8.3.0",
59
58
  "react-clone-referenced-element": "^1.0.1",
60
- "react-devtools-core": "^4.27.7",
59
+ "react-devtools-core": "^5.0.0",
61
60
  "react-refresh": "^0.14.0",
62
61
  "react-shallow-renderer": "^16.15.0",
63
62
  "regenerator-runtime": "^0.13.2",
@@ -70,35 +69,36 @@
70
69
  "devDependencies": {
71
70
  "@babel/core": "^7.20.0",
72
71
  "@babel/eslint-parser": "^7.20.0",
72
+ "@react-native/metro-config": "0.74.1",
73
73
  "@rnw-scripts/babel-react-native-config": "0.0.0",
74
- "@rnw-scripts/eslint-config": "1.2.3",
75
- "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.6",
76
- "@rnw-scripts/just-task": "2.3.17",
74
+ "@rnw-scripts/eslint-config": "1.2.9",
75
+ "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.13",
76
+ "@rnw-scripts/just-task": "2.3.25",
77
77
  "@rnw-scripts/metro-dev-config": "0.0.0",
78
78
  "@rnx-kit/jest-preset": "^0.1.0",
79
79
  "@types/node": "^18.0.0",
80
80
  "@types/prop-types": "15.7.1",
81
- "@types/react": "^18.0.18",
81
+ "@types/react": "^18.2.6",
82
82
  "eslint": "^8.19.0",
83
- "flow-bin": "^0.215.0",
83
+ "flow-bin": "^0.217.2",
84
84
  "jscodeshift": "^0.14.0",
85
85
  "just-scripts": "^1.3.3",
86
- "prettier": "^2.4.1",
86
+ "prettier": "2.8.8",
87
87
  "react": "18.2.0",
88
- "react-native": "0.73.6",
89
- "react-native-platform-override": "^1.9.16",
90
- "typescript": "^4.9.5"
88
+ "react-native": "0.74.0-rc.0",
89
+ "react-native-platform-override": "^1.9.25",
90
+ "typescript": "5.0.4"
91
91
  },
92
92
  "peerDependencies": {
93
93
  "react": "18.2.0",
94
- "react-native": "^0.73.0"
94
+ "react-native": "0.74.0-rc.0"
95
95
  },
96
96
  "beachball": {
97
- "defaultNpmTag": "latest",
97
+ "defaultNpmTag": "preview",
98
98
  "disallowedChangeTypes": [
99
99
  "major",
100
100
  "minor",
101
- "prerelease"
101
+ "patch"
102
102
  ]
103
103
  },
104
104
  "promoteRelease": true,
@@ -8,8 +8,8 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import DOMRect from '../DOM/Geometry/DOMRect';
12
- import DOMRectReadOnly from '../DOM/Geometry/DOMRectReadOnly';
11
+ import DOMRect from '../webapis/dom/geometry/DOMRect';
12
+ import DOMRectReadOnly from '../webapis/dom/geometry/DOMRectReadOnly';
13
13
 
14
14
  // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it
15
15
  global.DOMRect = DOMRect;
@@ -0,0 +1,42 @@
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
+ * @generated SignedSource<<8509d5ee87efb5aa8da7efcd2085d0a2>>
8
+ * @flow strict-local
9
+ */
10
+
11
+ /**
12
+ * IMPORTANT: Do NOT modify this file directly.
13
+ *
14
+ * To change the definition of the flags, edit
15
+ * packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js.
16
+ *
17
+ * To regenerate this code, run the following script from the repo root:
18
+ * yarn featureflags-update
19
+ */
20
+
21
+ import type {TurboModule} from '../../../Libraries/TurboModule/RCTExport';
22
+
23
+ import * as TurboModuleRegistry from '../../../Libraries/TurboModule/TurboModuleRegistry';
24
+
25
+ export interface Spec extends TurboModule {
26
+ +commonTestFlag?: () => boolean;
27
+ +enableBackgroundExecutor?: () => boolean;
28
+ +useModernRuntimeScheduler?: () => boolean;
29
+ +enableMicrotasks?: () => boolean;
30
+ +batchRenderingUpdatesInEventLoop?: () => boolean;
31
+ +enableSpannableBuildingUnification?: () => boolean;
32
+ +enableCustomDrawOrderFabric?: () => boolean;
33
+ +enableFixForClippedSubviewsCrash?: () => boolean;
34
+ +inspectorEnableCxxInspectorPackagerConnection?: () => boolean;
35
+ +inspectorEnableModernCDPRegistry?: () => boolean;
36
+ }
37
+
38
+ const NativeReactNativeFeatureFlags: ?Spec = TurboModuleRegistry.get<Spec>(
39
+ 'NativeReactNativeFeatureFlagsCxx',
40
+ );
41
+
42
+ export default NativeReactNativeFeatureFlags;
@@ -0,0 +1,140 @@
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
+ * @generated SignedSource<<7c83d5613c3be517efe48378e6356e79>>
8
+ * @flow strict-local
9
+ */
10
+
11
+ /**
12
+ * IMPORTANT: Do NOT modify this file directly.
13
+ *
14
+ * To change the definition of the flags, edit
15
+ * packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js.
16
+ *
17
+ * To regenerate this code, run the following script from the repo root:
18
+ * yarn featureflags-update
19
+ */
20
+
21
+ import {
22
+ type Getter,
23
+ createJavaScriptFlagGetter,
24
+ createNativeFlagGetter,
25
+ setOverrides,
26
+ } from './ReactNativeFeatureFlagsBase';
27
+
28
+ export type ReactNativeFeatureFlagsJsOnly = {
29
+ jsOnlyTestFlag: Getter<boolean>,
30
+ isLayoutAnimationEnabled: Getter<boolean>,
31
+ animatedShouldDebounceQueueFlush: Getter<boolean>,
32
+ animatedShouldUseSingleOp: Getter<boolean>,
33
+ enableAccessToHostTreeInFabric: Getter<boolean>,
34
+ shouldUseAnimatedObjectForTransform: Getter<boolean>,
35
+ shouldUseSetNativePropsInFabric: Getter<boolean>,
36
+ shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean>,
37
+ };
38
+
39
+ export type ReactNativeFeatureFlagsJsOnlyOverrides = Partial<ReactNativeFeatureFlagsJsOnly>;
40
+
41
+ export type ReactNativeFeatureFlags = {
42
+ ...ReactNativeFeatureFlagsJsOnly,
43
+ commonTestFlag: Getter<boolean>,
44
+ enableBackgroundExecutor: Getter<boolean>,
45
+ useModernRuntimeScheduler: Getter<boolean>,
46
+ enableMicrotasks: Getter<boolean>,
47
+ batchRenderingUpdatesInEventLoop: Getter<boolean>,
48
+ enableSpannableBuildingUnification: Getter<boolean>,
49
+ enableCustomDrawOrderFabric: Getter<boolean>,
50
+ enableFixForClippedSubviewsCrash: Getter<boolean>,
51
+ inspectorEnableCxxInspectorPackagerConnection: Getter<boolean>,
52
+ inspectorEnableModernCDPRegistry: Getter<boolean>,
53
+ }
54
+
55
+ /**
56
+ * JS-only flag for testing. Do NOT modify.
57
+ */
58
+ export const jsOnlyTestFlag: Getter<boolean> = createJavaScriptFlagGetter('jsOnlyTestFlag', false);
59
+
60
+ /**
61
+ * Function used to enable / disabled Layout Animations in React Native.
62
+ */
63
+ export const isLayoutAnimationEnabled: Getter<boolean> = createJavaScriptFlagGetter('isLayoutAnimationEnabled', true);
64
+
65
+ /**
66
+ * Enables an experimental flush-queue debouncing in Animated.js.
67
+ */
68
+ export const animatedShouldDebounceQueueFlush: Getter<boolean> = createJavaScriptFlagGetter('animatedShouldDebounceQueueFlush', false);
69
+
70
+ /**
71
+ * Enables an experimental mega-operation for Animated.js that replaces many calls to native with a single call into native, to reduce JSI/JNI traffic.
72
+ */
73
+ export const animatedShouldUseSingleOp: Getter<boolean> = createJavaScriptFlagGetter('animatedShouldUseSingleOp', false);
74
+
75
+ /**
76
+ * Enables access to the host tree in Fabric using DOM-compatible APIs.
77
+ */
78
+ export const enableAccessToHostTreeInFabric: Getter<boolean> = createJavaScriptFlagGetter('enableAccessToHostTreeInFabric', false);
79
+
80
+ /**
81
+ * Enables use of AnimatedObject for animating transform values.
82
+ */
83
+ export const shouldUseAnimatedObjectForTransform: Getter<boolean> = createJavaScriptFlagGetter('shouldUseAnimatedObjectForTransform', false);
84
+
85
+ /**
86
+ * Enables use of setNativeProps in JS driven animations.
87
+ */
88
+ export const shouldUseSetNativePropsInFabric: Getter<boolean> = createJavaScriptFlagGetter('shouldUseSetNativePropsInFabric', true);
89
+
90
+ /**
91
+ * removeClippedSubviews prop will be used as the default in FlatList on iOS to match Android
92
+ */
93
+ export const shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean> = createJavaScriptFlagGetter('shouldUseRemoveClippedSubviewsAsDefaultOnIOS', false);
94
+
95
+ /**
96
+ * Common flag for testing. Do NOT modify.
97
+ */
98
+ export const commonTestFlag: Getter<boolean> = createNativeFlagGetter('commonTestFlag', false);
99
+ /**
100
+ * Enables the use of a background executor to compute layout and commit updates on Fabric (this system is deprecated and should not be used).
101
+ */
102
+ export const enableBackgroundExecutor: Getter<boolean> = createNativeFlagGetter('enableBackgroundExecutor', false);
103
+ /**
104
+ * When enabled, it uses the modern fork of RuntimeScheduler that allows scheduling tasks with priorities from any thread.
105
+ */
106
+ export const useModernRuntimeScheduler: Getter<boolean> = createNativeFlagGetter('useModernRuntimeScheduler', false);
107
+ /**
108
+ * Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution).
109
+ */
110
+ export const enableMicrotasks: Getter<boolean> = createNativeFlagGetter('enableMicrotasks', false);
111
+ /**
112
+ * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
113
+ */
114
+ export const batchRenderingUpdatesInEventLoop: Getter<boolean> = createNativeFlagGetter('batchRenderingUpdatesInEventLoop', false);
115
+ /**
116
+ * Uses new, deduplicated logic for constructing Android Spannables from text fragments
117
+ */
118
+ export const enableSpannableBuildingUnification: Getter<boolean> = createNativeFlagGetter('enableSpannableBuildingUnification', false);
119
+ /**
120
+ * When enabled, Fabric will use customDrawOrder in ReactViewGroup (similar to old architecture).
121
+ */
122
+ export const enableCustomDrawOrderFabric: Getter<boolean> = createNativeFlagGetter('enableCustomDrawOrderFabric', false);
123
+ /**
124
+ * Attempt at fixing a crash related to subview clipping on Android. This is a kill switch for the fix
125
+ */
126
+ export const enableFixForClippedSubviewsCrash: Getter<boolean> = createNativeFlagGetter('enableFixForClippedSubviewsCrash', false);
127
+ /**
128
+ * Flag determining if the C++ implementation of InspectorPackagerConnection should be used instead of the per-platform one. This flag is global and should not be changed across React Host lifetimes.
129
+ */
130
+ export const inspectorEnableCxxInspectorPackagerConnection: Getter<boolean> = createNativeFlagGetter('inspectorEnableCxxInspectorPackagerConnection', false);
131
+ /**
132
+ * Flag determining if the modern CDP backend should be enabled. This flag is global and should not be changed across React Host lifetimes.
133
+ */
134
+ export const inspectorEnableModernCDPRegistry: Getter<boolean> = createNativeFlagGetter('inspectorEnableModernCDPRegistry', false);
135
+
136
+ /**
137
+ * Overrides the feature flags with the provided methods.
138
+ * NOTE: Only JS-only flags can be overridden from JavaScript using this API.
139
+ */
140
+ export const override = setOverrides;
@@ -0,0 +1,84 @@
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
+ import type {
12
+ ReactNativeFeatureFlagsJsOnly,
13
+ ReactNativeFeatureFlagsJsOnlyOverrides,
14
+ } from './ReactNativeFeatureFlags';
15
+
16
+ import NativeReactNativeFeatureFlags from './NativeReactNativeFeatureFlags';
17
+
18
+ const accessedFeatureFlags: Set<string> = new Set();
19
+ let overrides: ?ReactNativeFeatureFlagsJsOnlyOverrides;
20
+
21
+ export type Getter<T> = () => T;
22
+
23
+ function createGetter<T: boolean | number | string>(
24
+ configName: string,
25
+ customValueGetter: Getter<?T>,
26
+ defaultValue: T,
27
+ ): Getter<T> {
28
+ let cachedValue: ?T;
29
+
30
+ return () => {
31
+ if (cachedValue == null) {
32
+ accessedFeatureFlags.add(configName);
33
+ cachedValue = customValueGetter() ?? defaultValue;
34
+ }
35
+ return cachedValue;
36
+ };
37
+ }
38
+
39
+ export function createJavaScriptFlagGetter<
40
+ K: $Keys<ReactNativeFeatureFlagsJsOnly>,
41
+ >(
42
+ configName: K,
43
+ defaultValue: ReturnType<ReactNativeFeatureFlagsJsOnly[K]>,
44
+ ): Getter<ReturnType<ReactNativeFeatureFlagsJsOnly[K]>> {
45
+ return createGetter(
46
+ configName,
47
+ () => overrides?.[configName]?.(),
48
+ defaultValue,
49
+ );
50
+ }
51
+
52
+ type NativeFeatureFlags = $NonMaybeType<typeof NativeReactNativeFeatureFlags>;
53
+
54
+ export function createNativeFlagGetter<K: $Keys<NativeFeatureFlags>>(
55
+ configName: K,
56
+ defaultValue: ReturnType<$NonMaybeType<NativeFeatureFlags[K]>>,
57
+ ): Getter<ReturnType<$NonMaybeType<NativeFeatureFlags[K]>>> {
58
+ return createGetter(
59
+ configName,
60
+ () => NativeReactNativeFeatureFlags?.[configName]?.(),
61
+ defaultValue,
62
+ );
63
+ }
64
+
65
+ export function getOverrides(): ?ReactNativeFeatureFlagsJsOnlyOverrides {
66
+ return overrides;
67
+ }
68
+
69
+ export function setOverrides(
70
+ newOverrides: ReactNativeFeatureFlagsJsOnlyOverrides,
71
+ ): void {
72
+ if (overrides != null) {
73
+ throw new Error('Feature flags cannot be overridden more than once');
74
+ }
75
+
76
+ if (accessedFeatureFlags.size > 0) {
77
+ const accessedFeatureFlagsStr = Array.from(accessedFeatureFlags).join(', ');
78
+ throw new Error(
79
+ `Feature flags were accessed before being overridden: ${accessedFeatureFlagsStr}`,
80
+ );
81
+ }
82
+
83
+ overrides = newOverrides;
84
+ }
@@ -0,0 +1,92 @@
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
+ * @oncall react_native
10
+ */
11
+
12
+ describe('ReactNativeFeatureFlags', () => {
13
+ beforeEach(() => {
14
+ jest.resetModules();
15
+ });
16
+
17
+ it('should provide default values for common flags if the native module is NOT available', () => {
18
+ const ReactNativeFeatureFlags = require('../ReactNativeFeatureFlags');
19
+ expect(ReactNativeFeatureFlags.commonTestFlag()).toBe(false);
20
+ });
21
+
22
+ it('should access and cache common flags from the native module if it is available', () => {
23
+ const commonTestFlagFn = jest.fn(() => true);
24
+
25
+ jest.doMock('../NativeReactNativeFeatureFlags', () => ({
26
+ __esModule: true,
27
+ default: {
28
+ commonTestFlag: commonTestFlagFn,
29
+ },
30
+ }));
31
+
32
+ const ReactNativeFeatureFlags = require('../ReactNativeFeatureFlags');
33
+
34
+ expect(commonTestFlagFn).toHaveBeenCalledTimes(0);
35
+
36
+ expect(ReactNativeFeatureFlags.commonTestFlag()).toBe(true);
37
+ expect(commonTestFlagFn).toHaveBeenCalledTimes(1);
38
+
39
+ expect(ReactNativeFeatureFlags.commonTestFlag()).toBe(true);
40
+ expect(commonTestFlagFn).toHaveBeenCalledTimes(1);
41
+ });
42
+
43
+ it('should provide default values for JS-only flags', () => {
44
+ const ReactNativeFeatureFlags = require('../ReactNativeFeatureFlags');
45
+ expect(ReactNativeFeatureFlags.jsOnlyTestFlag()).toBe(false);
46
+ });
47
+
48
+ it('should access and cache overridden JS-only flags', () => {
49
+ const ReactNativeFeatureFlags = require('../ReactNativeFeatureFlags');
50
+
51
+ const jsOnlyTestFlagFn = jest.fn(() => true);
52
+ ReactNativeFeatureFlags.override({
53
+ jsOnlyTestFlag: jsOnlyTestFlagFn,
54
+ });
55
+
56
+ expect(jsOnlyTestFlagFn).toHaveBeenCalledTimes(0);
57
+
58
+ expect(ReactNativeFeatureFlags.jsOnlyTestFlag()).toBe(true);
59
+ expect(jsOnlyTestFlagFn).toHaveBeenCalledTimes(1);
60
+
61
+ expect(ReactNativeFeatureFlags.jsOnlyTestFlag()).toBe(true);
62
+ expect(jsOnlyTestFlagFn).toHaveBeenCalledTimes(1);
63
+ });
64
+
65
+ it('should throw an error if any of the flags has been accessed before overridding', () => {
66
+ const ReactNativeFeatureFlags = require('../ReactNativeFeatureFlags');
67
+
68
+ ReactNativeFeatureFlags.commonTestFlag();
69
+
70
+ expect(() =>
71
+ ReactNativeFeatureFlags.override({
72
+ jsOnlyTestFlag: () => true,
73
+ }),
74
+ ).toThrow(
75
+ 'Feature flags were accessed before being overridden: commonTestFlag',
76
+ );
77
+ });
78
+
79
+ it('should throw an error when trying to set overrides twice', () => {
80
+ const ReactNativeFeatureFlags = require('../ReactNativeFeatureFlags');
81
+
82
+ ReactNativeFeatureFlags.override({
83
+ jsOnlyTestFlag: () => true,
84
+ });
85
+
86
+ expect(() =>
87
+ ReactNativeFeatureFlags.override({
88
+ jsOnlyTestFlag: () => false,
89
+ }),
90
+ ).toThrow('Feature flags cannot be overridden more than once');
91
+ });
92
+ });
@@ -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
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ import type {ViewProps} from '../../../../Libraries/Components/View/ViewPropTypes';
12
+ import type {HostComponent} from '../../../../Libraries/Renderer/shims/ReactNativeTypes';
13
+ import type {ColorValue} from '../../../../Libraries/StyleSheet/StyleSheet';
14
+ import type {WithDefault} from '../../../../Libraries/Types/CodegenTypes';
15
+
16
+ import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent';
17
+
18
+ type NativeProps = $ReadOnly<{|
19
+ ...ViewProps,
20
+
21
+ /**
22
+ * Whether the indicator should hide when not animating (true by default).
23
+ *
24
+ * See https://reactnative.dev/docs/activityindicator#hideswhenstopped-ios
25
+ */
26
+ hidesWhenStopped?: WithDefault<boolean, true>,
27
+
28
+ /**
29
+ * Whether to show the indicator (true, the default) or hide it (false).
30
+ *
31
+ * See https://reactnative.dev/docs/activityindicator#animating
32
+ */
33
+ animating?: WithDefault<boolean, true>,
34
+
35
+ /**
36
+ * The foreground color of the spinner (default is gray).
37
+ *
38
+ * See https://reactnative.dev/docs/activityindicator#color
39
+ */
40
+ color?: ?ColorValue,
41
+
42
+ /**
43
+ * Size of the indicator (default is 'small').
44
+ * Passing a number to the size prop is only supported on Android.
45
+ *
46
+ * See https://reactnative.dev/docs/activityindicator#size
47
+ */
48
+ size?: WithDefault<'small' | 'large', 'small'>,
49
+ |}>;
50
+
51
+ export default (codegenNativeComponent<NativeProps>('ActivityIndicatorView', {
52
+ paperComponentName: 'RCTActivityIndicatorView',
53
+ }): HostComponent<NativeProps>);
@@ -0,0 +1,124 @@
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 strict-local
9
+ */
10
+
11
+ import type {ViewProps} from '../../../../Libraries/Components/View/ViewPropTypes';
12
+ import type {HostComponent} from '../../../../Libraries/Renderer/shims/ReactNativeTypes';
13
+ import type {ColorValue} from '../../../../Libraries/StyleSheet/StyleSheet';
14
+ import type {
15
+ DirectEventHandler,
16
+ Float,
17
+ Int32,
18
+ WithDefault,
19
+ } from '../../../../Libraries/Types/CodegenTypes';
20
+
21
+ import codegenNativeCommands from '../../../../Libraries/Utilities/codegenNativeCommands';
22
+ import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent';
23
+ import * as React from 'react';
24
+
25
+ type DrawerStateEvent = $ReadOnly<{|
26
+ drawerState: Int32,
27
+ |}>;
28
+
29
+ type DrawerSlideEvent = $ReadOnly<{|
30
+ offset: Float,
31
+ |}>;
32
+
33
+ type NativeProps = $ReadOnly<{|
34
+ ...ViewProps,
35
+ /**
36
+ * Determines whether the keyboard gets dismissed in response to a drag.
37
+ * - 'none' (the default), drags do not dismiss the keyboard.
38
+ * - 'on-drag', the keyboard is dismissed when a drag begins.
39
+ */
40
+ keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>,
41
+
42
+ /**
43
+ * Specifies the background color of the drawer. The default value is white.
44
+ * If you want to set the opacity of the drawer, use rgba. Example:
45
+ *
46
+ * ```
47
+ * return (
48
+ * <DrawerLayoutAndroid drawerBackgroundColor="rgba(0,0,0,0.5)">
49
+ * </DrawerLayoutAndroid>
50
+ * );
51
+ * ```
52
+ */
53
+ drawerBackgroundColor: ColorValue,
54
+
55
+ /**
56
+ * Specifies the side of the screen from which the drawer will slide in.
57
+ */
58
+ drawerPosition?: WithDefault<'left' | 'right', 'left'>,
59
+
60
+ /**
61
+ * Specifies the width of the drawer, more precisely the width of the view that be pulled in
62
+ * from the edge of the window.
63
+ */
64
+
65
+ drawerWidth?: WithDefault<Float, null>,
66
+
67
+ /**
68
+ * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:
69
+ * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.
70
+ * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.
71
+ * - locked-open, meaning that the drawer will stay opened and not respond to gestures.
72
+ * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).
73
+ */
74
+ drawerLockMode?: WithDefault<
75
+ 'unlocked' | 'locked-closed' | 'locked-open',
76
+ 'unlocked',
77
+ >,
78
+
79
+ /**
80
+ * Function called whenever there is an interaction with the navigation view.
81
+ */
82
+ onDrawerSlide?: ?DirectEventHandler<DrawerSlideEvent>,
83
+
84
+ /**
85
+ * Function called when the drawer state has changed. The drawer can be in 3 states:
86
+ * - Idle, meaning there is no interaction with the navigation view happening at the time
87
+ * - Dragging, meaning there is currently an interaction with the navigation view
88
+ * - Settling, meaning that there was an interaction with the navigation view, and the
89
+ * navigation view is now finishing its closing or opening animation
90
+ */
91
+ onDrawerStateChanged?: ?DirectEventHandler<DrawerStateEvent>,
92
+
93
+ /**
94
+ * Function called whenever the navigation view has been opened.
95
+ */
96
+ onDrawerOpen?: ?DirectEventHandler<null>,
97
+
98
+ /**
99
+ * Function called whenever the navigation view has been closed.
100
+ */
101
+ onDrawerClose?: ?DirectEventHandler<null>,
102
+
103
+ /**
104
+ * Make the drawer take the entire screen and draw the background of the
105
+ * status bar to allow it to open over the status bar. It will only have an
106
+ * effect on API 21+.
107
+ */
108
+ statusBarBackgroundColor?: ?ColorValue,
109
+ |}>;
110
+
111
+ type NativeType = HostComponent<NativeProps>;
112
+
113
+ interface NativeCommands {
114
+ +openDrawer: (viewRef: React.ElementRef<NativeType>) => void;
115
+ +closeDrawer: (viewRef: React.ElementRef<NativeType>) => void;
116
+ }
117
+
118
+ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
119
+ supportedCommands: ['openDrawer', 'closeDrawer'],
120
+ });
121
+
122
+ export default (codegenNativeComponent<NativeProps>(
123
+ 'AndroidDrawerLayout',
124
+ ): NativeType);
@@ -0,0 +1,26 @@
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 strict-local
9
+ */
10
+
11
+ import type {ViewProps} from '../../../../Libraries/Components/View/ViewPropTypes';
12
+ import type {HostComponent} from '../../../../Libraries/Renderer/shims/ReactNativeTypes';
13
+
14
+ import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent';
15
+
16
+ type NativeProps = $ReadOnly<{|
17
+ ...ViewProps,
18
+
19
+ removeClippedSubviews?: ?boolean,
20
+ |}>;
21
+
22
+ type NativeType = HostComponent<NativeProps>;
23
+
24
+ export default (codegenNativeComponent<NativeProps>(
25
+ 'AndroidHorizontalScrollContentView',
26
+ ): NativeType);