@office-iss/react-native-win32 0.73.2 → 0.74.0-preview.2

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 (475) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +11 -3
  3. package/CHANGELOG.json +426 -54
  4. package/CHANGELOG.md +165 -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/Pressable/Pressable.js +1 -1
  61. package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
  62. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  63. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  64. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  65. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  66. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  67. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  68. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  69. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  70. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  71. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  72. package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
  73. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  74. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  75. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  76. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  77. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  78. package/Libraries/Components/Switch/Switch.js +0 -2
  79. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  80. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  81. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  82. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  83. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  84. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  85. package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
  86. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  87. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  88. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  89. package/Libraries/Components/TextInput/TextInput.js +65 -32
  90. package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
  91. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  92. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  93. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  94. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
  95. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  96. package/Libraries/Components/Touchable/Touchable.js +2 -3
  97. package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
  98. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  99. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  100. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  101. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
  102. package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
  103. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  104. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  105. package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
  106. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
  107. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  108. package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
  109. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  110. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  111. package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -1
  112. package/Libraries/Components/View/View.js +0 -11
  113. package/Libraries/Components/View/View.win32.js +18 -17
  114. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  115. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  116. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  117. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
  118. package/Libraries/Core/InitializeCore.js +1 -1
  119. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  120. package/Libraries/Core/ReactNativeVersion.js +12 -6
  121. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  122. package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
  123. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  124. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  125. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  126. package/Libraries/Core/registerCallableModule.js +42 -0
  127. package/Libraries/Core/setUpPerformance.js +2 -2
  128. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  129. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  130. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  131. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  132. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  133. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  134. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  135. package/Libraries/Image/AssetSourceResolver.js +5 -5
  136. package/Libraries/Image/AssetUtils.js +4 -5
  137. package/Libraries/Image/Image.android.js +146 -174
  138. package/Libraries/Image/Image.d.ts +1 -1
  139. package/Libraries/Image/Image.ios.js +53 -79
  140. package/Libraries/Image/Image.win32.js +52 -74
  141. package/Libraries/Image/ImageBackground.js +2 -2
  142. package/Libraries/Image/ImageInjection.js +76 -18
  143. package/Libraries/Image/ImageTypes.d.ts +25 -25
  144. package/Libraries/Image/ImageTypes.flow.js +71 -0
  145. package/Libraries/Image/ImageTypes.js +7 -7
  146. package/Libraries/Image/ImageTypes.js.map +1 -1
  147. package/Libraries/Image/ImageUtils.js +1 -1
  148. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  149. package/Libraries/Image/NativeImageEditor.js +3 -42
  150. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  151. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  152. package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
  153. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  154. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  155. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  156. package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
  157. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  158. package/Libraries/Image/resolveAssetSource.js +59 -26
  159. package/Libraries/Inspector/ElementProperties.js +26 -52
  160. package/Libraries/Inspector/Inspector.js +122 -186
  161. package/Libraries/Inspector/Inspector.win32.js +118 -185
  162. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  163. package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
  164. package/Libraries/Inspector/InspectorPanel.js +3 -17
  165. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  166. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  167. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  168. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  169. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  170. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  171. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  172. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  173. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  174. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  175. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  176. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  177. package/Libraries/Lists/FillRateHelper.js +1 -1
  178. package/Libraries/Lists/FlatList.d.ts +2 -2
  179. package/Libraries/Lists/FlatList.js +6 -2
  180. package/Libraries/Lists/SectionList.d.ts +6 -1
  181. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  182. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  183. package/Libraries/Lists/VirtualizedList.js +1 -1
  184. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  185. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  186. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  187. package/Libraries/Modal/Modal.js +43 -11
  188. package/Libraries/Modal/NativeModalManager.js +3 -11
  189. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  190. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  191. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  192. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  193. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  194. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  195. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  196. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  197. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  198. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  199. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  200. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  201. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  202. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  203. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  204. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  205. package/Libraries/Network/FormData.js +3 -1
  206. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  207. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  208. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  209. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  210. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  211. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  212. package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
  213. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  214. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  215. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
  216. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
  217. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  218. package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
  219. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
  220. package/Libraries/Pressability/Pressability.js +12 -2
  221. package/Libraries/Pressability/Pressability.win32.js +12 -2
  222. package/Libraries/Pressability/usePressability.js +7 -0
  223. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  224. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  225. package/Libraries/ReactNative/AppContainer-dev.js +211 -0
  226. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  227. package/Libraries/ReactNative/AppContainer.js +6 -149
  228. package/Libraries/ReactNative/AppRegistry.js +3 -1
  229. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  230. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  231. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  232. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  233. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  234. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  235. package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
  236. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  237. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  238. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  239. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  240. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  241. package/Libraries/ReactNative/UIManager.js +2 -23
  242. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  243. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  244. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  245. package/Libraries/ReactNative/renderApplication.js +9 -6
  246. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  247. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  248. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  249. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  250. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  251. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  252. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  253. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  254. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  255. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  256. package/Libraries/Share/NativeShareModule.js +3 -13
  257. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
  258. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  259. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
  260. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  261. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  262. package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
  263. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +51 -7
  264. package/Libraries/StyleSheet/StyleSheetTypes.js +19 -11
  265. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  266. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  267. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  268. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  269. package/Libraries/Text/Text.d.ts +5 -6
  270. package/Libraries/Text/Text.js +0 -6
  271. package/Libraries/Text/Text.win32.js +0 -6
  272. package/Libraries/Text/TextAncestor.js +2 -3
  273. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  274. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  275. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  276. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  277. package/Libraries/Utilities/Dimensions.js +8 -16
  278. package/Libraries/Utilities/Dimensions.win32.js +8 -16
  279. package/Libraries/Utilities/FocusManager.win32.js +2 -0
  280. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  281. package/Libraries/Utilities/NativeAppearance.js +3 -26
  282. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  283. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  284. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  285. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  286. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  287. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  288. package/Libraries/Utilities/Platform.android.js +4 -0
  289. package/Libraries/Utilities/Platform.d.ts +3 -0
  290. package/Libraries/Utilities/Platform.flow.js +7 -0
  291. package/Libraries/Utilities/Platform.flow.win32.js +18 -5
  292. package/Libraries/Utilities/Platform.ios.js +11 -0
  293. package/Libraries/Utilities/Platform.win32.js +9 -1
  294. package/Libraries/Utilities/binaryToBase64.js +1 -1
  295. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  296. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  297. package/Libraries/Utilities/useMergeRefs.js +5 -9
  298. package/Libraries/Vibration/NativeVibration.js +3 -14
  299. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  300. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  301. package/Libraries/platform-types.d.ts +2 -3
  302. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  303. package/babel.config.js +1 -1
  304. package/flow/jest.js +1 -1
  305. package/flow/react.js +15 -0
  306. package/index.js +61 -99
  307. package/index.win32.js +60 -101
  308. package/jest/assetFileTransformer.js +1 -1
  309. package/jest/local-setup.js +0 -5
  310. package/jest/mockModal.js +2 -1
  311. package/jest/mockScrollView.js +1 -2
  312. package/jest/renderer.js +1 -1
  313. package/jest/setup.js +6 -3
  314. package/jest.config.js +2 -1
  315. package/overrides.json +152 -131
  316. package/package.json +27 -26
  317. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  318. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  319. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  320. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  321. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  322. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  323. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  324. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  325. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  326. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  327. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  328. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  329. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  330. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  331. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  332. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  333. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  334. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  335. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  336. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
  337. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  338. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  339. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  340. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  341. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  342. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  343. package/src/private/specs/modules/NativeAppState.js +33 -0
  344. package/src/private/specs/modules/NativeAppearance.js +36 -0
  345. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  346. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  347. package/src/private/specs/modules/NativeClipboard.js +21 -0
  348. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  349. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  350. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  351. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  352. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  353. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  354. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  355. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  356. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  357. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  358. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  359. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  360. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  361. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  362. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  363. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  364. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  365. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  366. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  367. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  368. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  369. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  370. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  371. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  372. package/src/private/specs/modules/NativeLogBox.js +20 -0
  373. package/src/private/specs/modules/NativeModalManager.js +21 -0
  374. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  375. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  376. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  377. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  378. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  379. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  380. package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
  381. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  382. package/src/private/specs/modules/NativeRedBox.js +20 -0
  383. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  384. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  385. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  386. package/src/private/specs/modules/NativeShareModule.js +23 -0
  387. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  388. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  389. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  390. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  391. package/src/private/specs/modules/NativeTiming.js +26 -0
  392. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  393. package/src/private/specs/modules/NativeUIManager.js +118 -0
  394. package/src/private/specs/modules/NativeVibration.js +24 -0
  395. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  396. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  397. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  398. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  399. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  400. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  401. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  402. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  403. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  404. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  405. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  406. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  407. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  408. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  409. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  410. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  411. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  412. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  413. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  414. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  415. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  416. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
  417. package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
  418. package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
  419. package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  420. package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  421. package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  422. package/{src → src-win}/Libraries/Text/Text.d.ts +5 -6
  423. package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
  424. package/types/index.d.ts +1 -0
  425. package/types/modules/globals.d.ts +1 -0
  426. package/Libraries/Components/Button.flow.js +0 -265
  427. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  428. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
  429. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  430. package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
  431. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  432. package/Libraries/Components/Text/TextWin32.js +0 -18
  433. package/Libraries/Components/Text/TextWin32.js.map +0 -1
  434. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  435. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  436. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  437. package/Libraries/Image/Image.flow.js +0 -64
  438. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  439. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  440. package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
  441. package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
  442. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  443. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  444. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  445. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  446. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  447. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  448. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  449. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  450. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  451. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  452. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  453. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
  454. /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
  455. /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
  456. /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
  457. /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
  458. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
  459. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
  460. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
  461. /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
  462. /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
  463. /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
  464. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
  465. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  466. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  467. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  468. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  469. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  470. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  471. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
  472. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
  473. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
  474. /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
  475. /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
@@ -0,0 +1,108 @@
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
+ * @oncall react_native
9
+ */
10
+
11
+ import NativePerformanceObserverMock from '../__mocks__/NativePerformanceObserver';
12
+ import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry';
13
+
14
+ describe('NativePerformanceObserver', () => {
15
+ it('correctly starts and stops listening to entries in a nominal scenario', async () => {
16
+ NativePerformanceObserverMock.startReporting(
17
+ RawPerformanceEntryTypeValues.MARK,
18
+ );
19
+
20
+ NativePerformanceObserverMock.logRawEntry({
21
+ name: 'mark1',
22
+ entryType: RawPerformanceEntryTypeValues.MARK,
23
+ startTime: 0,
24
+ duration: 10,
25
+ });
26
+
27
+ NativePerformanceObserverMock.logRawEntry({
28
+ name: 'mark2',
29
+ entryType: RawPerformanceEntryTypeValues.MARK,
30
+ startTime: 0,
31
+ duration: 20,
32
+ });
33
+
34
+ NativePerformanceObserverMock.logRawEntry({
35
+ name: 'event1',
36
+ entryType: RawPerformanceEntryTypeValues.EVENT,
37
+ startTime: 0,
38
+ duration: 20,
39
+ });
40
+
41
+ const entriesResult = NativePerformanceObserverMock.popPendingEntries();
42
+ expect(entriesResult).not.toBe(undefined);
43
+ const entries = entriesResult.entries;
44
+
45
+ expect(entries.length).toBe(2);
46
+ expect(entries[0].name).toBe('mark1');
47
+ expect(entries[1].name).toBe('mark2');
48
+
49
+ const entriesResult1 = NativePerformanceObserverMock.popPendingEntries();
50
+ expect(entriesResult1).not.toBe(undefined);
51
+ const entries1 = entriesResult1.entries;
52
+ expect(entries1.length).toBe(0);
53
+
54
+ NativePerformanceObserverMock.stopReporting('mark');
55
+ });
56
+
57
+ it('correctly clears/gets entries', async () => {
58
+ NativePerformanceObserverMock.logRawEntry({
59
+ name: 'mark1',
60
+ entryType: RawPerformanceEntryTypeValues.MARK,
61
+ startTime: 0,
62
+ duration: 0,
63
+ });
64
+
65
+ NativePerformanceObserverMock.logRawEntry({
66
+ name: 'event1',
67
+ entryType: RawPerformanceEntryTypeValues.EVENT,
68
+ startTime: 0,
69
+ duration: 0,
70
+ });
71
+
72
+ NativePerformanceObserverMock.clearEntries(
73
+ RawPerformanceEntryTypeValues.UNDEFINED,
74
+ );
75
+
76
+ expect(NativePerformanceObserverMock.getEntries()).toStrictEqual([]);
77
+
78
+ NativePerformanceObserverMock.logRawEntry({
79
+ name: 'entry1',
80
+ entryType: RawPerformanceEntryTypeValues.MARK,
81
+ startTime: 0,
82
+ duration: 0,
83
+ });
84
+
85
+ NativePerformanceObserverMock.logRawEntry({
86
+ name: 'entry2',
87
+ entryType: RawPerformanceEntryTypeValues.MARK,
88
+ startTime: 0,
89
+ duration: 0,
90
+ });
91
+
92
+ NativePerformanceObserverMock.logRawEntry({
93
+ name: 'entry1',
94
+ entryType: RawPerformanceEntryTypeValues.EVENT,
95
+ startTime: 0,
96
+ duration: 0,
97
+ });
98
+
99
+ NativePerformanceObserverMock.clearEntries(
100
+ RawPerformanceEntryTypeValues.UNDEFINED,
101
+ 'entry1',
102
+ );
103
+
104
+ expect(
105
+ NativePerformanceObserverMock.getEntries().map(e => e.name),
106
+ ).toStrictEqual(['entry2']);
107
+ });
108
+ });
@@ -0,0 +1,117 @@
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
+ * @oncall react_native
9
+ */
10
+
11
+ const Performance = require('../Performance').default;
12
+
13
+ jest.mock(
14
+ '../NativePerformance',
15
+ () => require('../__mocks__/NativePerformance').default,
16
+ );
17
+
18
+ jest.mock(
19
+ '../NativePerformanceObserver',
20
+ () => require('../__mocks__/NativePerformanceObserver').default,
21
+ );
22
+
23
+ describe('Performance', () => {
24
+ it('clearEntries removes correct entry types', async () => {
25
+ const performance = new Performance();
26
+ performance.mark('entry1', 0, 0);
27
+ performance.mark('mark2', 0, 0);
28
+
29
+ performance.measure('entry1', {start: 0, duration: 0});
30
+ performance.measure('measure2', {start: 0, duration: 0});
31
+
32
+ performance.clearMarks();
33
+
34
+ expect(performance.getEntries().map(e => e.name)).toStrictEqual([
35
+ 'entry1',
36
+ 'measure2',
37
+ ]);
38
+
39
+ performance.mark('entry2', 0, 0);
40
+ performance.mark('mark3', 0, 0);
41
+
42
+ performance.clearMeasures();
43
+
44
+ expect(performance.getEntries().map(e => e.name)).toStrictEqual([
45
+ 'entry2',
46
+ 'mark3',
47
+ ]);
48
+
49
+ performance.clearMarks();
50
+
51
+ expect(performance.getEntries().map(e => e.name)).toStrictEqual([]);
52
+ });
53
+
54
+ it('getEntries only works with allowed entry types', async () => {
55
+ const performance = new Performance();
56
+ performance.clearMarks();
57
+ performance.clearMeasures();
58
+
59
+ performance.mark('entry1', 0, 0);
60
+ performance.mark('mark2', 0, 0);
61
+
62
+ jest.spyOn(console, 'warn').mockImplementation();
63
+
64
+ performance.getEntriesByType('mark');
65
+ expect(console.warn).not.toHaveBeenCalled();
66
+
67
+ performance.getEntriesByType('measure');
68
+ expect(console.warn).not.toHaveBeenCalled();
69
+
70
+ performance.getEntriesByName('entry1');
71
+ expect(console.warn).not.toHaveBeenCalled();
72
+
73
+ performance.getEntriesByName('entry1', 'event');
74
+ expect(console.warn).toHaveBeenCalled();
75
+
76
+ performance.getEntriesByName('entry1', 'mark');
77
+ expect(console.warn).toHaveBeenCalled();
78
+
79
+ performance.getEntriesByType('event');
80
+ expect(console.warn).toHaveBeenCalled();
81
+ });
82
+
83
+ it('getEntries works with marks and measures', async () => {
84
+ const performance = new Performance();
85
+ performance.clearMarks();
86
+ performance.clearMeasures();
87
+
88
+ performance.mark('entry1', 0, 0);
89
+ performance.mark('mark2', 0, 0);
90
+
91
+ performance.measure('entry1', {start: 0, duration: 0});
92
+ performance.measure('measure2', {start: 0, duration: 0});
93
+
94
+ expect(performance.getEntries().map(e => e.name)).toStrictEqual([
95
+ 'entry1',
96
+ 'mark2',
97
+ 'entry1',
98
+ 'measure2',
99
+ ]);
100
+
101
+ expect(performance.getEntriesByType('mark').map(e => e.name)).toStrictEqual(
102
+ ['entry1', 'mark2'],
103
+ );
104
+
105
+ expect(
106
+ performance.getEntriesByType('measure').map(e => e.name),
107
+ ).toStrictEqual(['entry1', 'measure2']);
108
+
109
+ expect(
110
+ performance.getEntriesByName('entry1').map(e => e.entryType),
111
+ ).toStrictEqual(['mark', 'measure']);
112
+
113
+ expect(
114
+ performance.getEntriesByName('entry1', 'measure').map(e => e.entryType),
115
+ ).toStrictEqual(['measure']);
116
+ });
117
+ });
@@ -0,0 +1,208 @@
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
+ * @oncall react_native
9
+ */
10
+
11
+ import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry';
12
+
13
+ // NOTE: Jest mocks of transitive dependencies don't appear to work with
14
+ // ES6 module imports, therefore forced to use commonjs style imports here.
15
+ const NativePerformanceObserver = require('../NativePerformanceObserver');
16
+ const PerformanceObserver = require('../PerformanceObserver').default;
17
+
18
+ jest.mock(
19
+ '../NativePerformanceObserver',
20
+ () => require('../__mocks__/NativePerformanceObserver').default,
21
+ );
22
+
23
+ describe('PerformanceObserver', () => {
24
+ it('can be mocked by a reference NativePerformanceObserver implementation', async () => {
25
+ expect(NativePerformanceObserver).not.toBe(undefined);
26
+
27
+ let totalEntries = 0;
28
+ const observer = new PerformanceObserver((list, _observer) => {
29
+ expect(_observer).toBe(observer);
30
+ const entries = list.getEntries();
31
+ expect(entries).toHaveLength(1);
32
+ const entry = entries[0];
33
+ expect(entry.name).toBe('mark1');
34
+ expect(entry.entryType).toBe('mark');
35
+ totalEntries += entries.length;
36
+ });
37
+ expect(() => observer.observe({entryTypes: ['mark']})).not.toThrow();
38
+
39
+ NativePerformanceObserver.logRawEntry({
40
+ name: 'mark1',
41
+ entryType: RawPerformanceEntryTypeValues.MARK,
42
+ startTime: 0,
43
+ duration: 0,
44
+ });
45
+
46
+ await jest.runAllTicks();
47
+ expect(totalEntries).toBe(1);
48
+ observer.disconnect();
49
+ });
50
+
51
+ it('prevents durationThreshold to be used together with entryTypes', async () => {
52
+ const observer = new PerformanceObserver((list, _observer) => {});
53
+
54
+ expect(() =>
55
+ observer.observe({entryTypes: ['mark'], durationThreshold: 100}),
56
+ ).toThrow();
57
+ });
58
+
59
+ it('handles durationThreshold argument as expected', async () => {
60
+ let entries = [];
61
+ const observer = new PerformanceObserver((list, _observer) => {
62
+ entries = [...entries, ...list.getEntries()];
63
+ });
64
+
65
+ observer.observe({type: 'mark', durationThreshold: 100});
66
+
67
+ NativePerformanceObserver.logRawEntry({
68
+ name: 'mark1',
69
+ entryType: RawPerformanceEntryTypeValues.MARK,
70
+ startTime: 0,
71
+ duration: 200,
72
+ });
73
+
74
+ NativePerformanceObserver.logRawEntry({
75
+ name: 'mark2',
76
+ entryType: RawPerformanceEntryTypeValues.MARK,
77
+ startTime: 0,
78
+ duration: 20,
79
+ });
80
+
81
+ NativePerformanceObserver.logRawEntry({
82
+ name: 'mark3',
83
+ entryType: RawPerformanceEntryTypeValues.MARK,
84
+ startTime: 0,
85
+ duration: 100,
86
+ });
87
+
88
+ NativePerformanceObserver.logRawEntry({
89
+ name: 'mark4',
90
+ entryType: RawPerformanceEntryTypeValues.MARK,
91
+ startTime: 0,
92
+ duration: 500,
93
+ });
94
+
95
+ await jest.runAllTicks();
96
+ expect(entries).toHaveLength(3);
97
+ expect(entries.map(e => e.name)).toStrictEqual(['mark1', 'mark3', 'mark4']);
98
+ });
99
+
100
+ it('correctly works with multiple PerformanceObservers with durationThreshold', async () => {
101
+ let entries1 = [];
102
+ const observer1 = new PerformanceObserver((list, _observer) => {
103
+ entries1 = [...entries1, ...list.getEntries()];
104
+ });
105
+
106
+ let entries2 = [];
107
+ const observer2 = new PerformanceObserver((list, _observer) => {
108
+ entries2 = [...entries2, ...list.getEntries()];
109
+ });
110
+
111
+ let entries3 = [];
112
+ const observer3 = new PerformanceObserver((list, _observer) => {
113
+ entries3 = [...entries3, ...list.getEntries()];
114
+ });
115
+
116
+ let entries4 = [];
117
+ const observer4 = new PerformanceObserver((list, _observer) => {
118
+ entries4 = [...entries4, ...list.getEntries()];
119
+ });
120
+
121
+ observer2.observe({type: 'mark', durationThreshold: 200});
122
+ observer1.observe({type: 'mark', durationThreshold: 100});
123
+ observer3.observe({type: 'mark', durationThreshold: 300});
124
+ observer3.observe({type: 'measure', durationThreshold: 500});
125
+ observer4.observe({entryTypes: ['mark', 'measure']});
126
+
127
+ NativePerformanceObserver.logRawEntry({
128
+ name: 'mark1',
129
+ entryType: RawPerformanceEntryTypeValues.MARK,
130
+ startTime: 0,
131
+ duration: 200,
132
+ });
133
+
134
+ NativePerformanceObserver.logRawEntry({
135
+ name: 'mark2',
136
+ entryType: RawPerformanceEntryTypeValues.MARK,
137
+ startTime: 0,
138
+ duration: 20,
139
+ });
140
+
141
+ NativePerformanceObserver.logRawEntry({
142
+ name: 'mark3',
143
+ entryType: RawPerformanceEntryTypeValues.MARK,
144
+ startTime: 0,
145
+ duration: 100,
146
+ });
147
+
148
+ NativePerformanceObserver.logRawEntry({
149
+ name: 'mark4',
150
+ entryType: RawPerformanceEntryTypeValues.MARK,
151
+ startTime: 0,
152
+ duration: 500,
153
+ });
154
+
155
+ await jest.runAllTicks();
156
+ observer1.disconnect();
157
+
158
+ NativePerformanceObserver.logRawEntry({
159
+ name: 'mark5',
160
+ entryType: RawPerformanceEntryTypeValues.MARK,
161
+ startTime: 0,
162
+ duration: 200,
163
+ });
164
+
165
+ NativePerformanceObserver.logRawEntry({
166
+ name: 'mark6',
167
+ entryType: RawPerformanceEntryTypeValues.MARK,
168
+ startTime: 0,
169
+ duration: 300,
170
+ });
171
+
172
+ await jest.runAllTicks();
173
+ observer3.disconnect();
174
+
175
+ NativePerformanceObserver.logRawEntry({
176
+ name: 'mark7',
177
+ entryType: RawPerformanceEntryTypeValues.MARK,
178
+ startTime: 0,
179
+ duration: 200,
180
+ });
181
+
182
+ await jest.runAllTicks();
183
+ observer4.disconnect();
184
+
185
+ expect(entries1.map(e => e.name)).toStrictEqual([
186
+ 'mark1',
187
+ 'mark3',
188
+ 'mark4',
189
+ ]);
190
+ expect(entries2.map(e => e.name)).toStrictEqual([
191
+ 'mark1',
192
+ 'mark4',
193
+ 'mark5',
194
+ 'mark6',
195
+ 'mark7',
196
+ ]);
197
+ expect(entries3.map(e => e.name)).toStrictEqual(['mark4', 'mark6']);
198
+ expect(entries4.map(e => e.name)).toStrictEqual([
199
+ 'mark1',
200
+ 'mark2',
201
+ 'mark3',
202
+ 'mark4',
203
+ 'mark5',
204
+ 'mark6',
205
+ 'mark7',
206
+ ]);
207
+ });
208
+ });
@@ -0,0 +1,161 @@
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
+ */
9
+
10
+ import type * as React from 'react';
11
+ import {HostComponent} from '../../../types/public/ReactNativeTypes';
12
+ import {EmitterSubscription} from '../../vendor/emitter/EventEmitter';
13
+
14
+ type AccessibilityChangeEventName =
15
+ | 'change' // deprecated, maps to screenReaderChanged
16
+ | 'boldTextChanged' // iOS-only Event
17
+ | 'grayscaleChanged' // iOS-only Event
18
+ | 'invertColorsChanged' // iOS-only Event
19
+ | 'reduceMotionChanged'
20
+ | 'screenReaderChanged'
21
+ | 'reduceTransparencyChanged'; // iOS-only Event
22
+
23
+ type AccessibilityChangeEvent = boolean;
24
+
25
+ type AccessibilityChangeEventHandler = (
26
+ event: AccessibilityChangeEvent,
27
+ ) => void;
28
+
29
+ type AccessibilityAnnouncementEventName = 'announcementFinished'; // iOS-only Event
30
+
31
+ type AccessibilityAnnouncementFinishedEvent = {
32
+ announcement: string;
33
+ success: boolean;
34
+ };
35
+
36
+ type AccessibilityAnnouncementFinishedEventHandler = (
37
+ event: AccessibilityAnnouncementFinishedEvent,
38
+ ) => void;
39
+
40
+ type AccessibilityEventTypes = 'click' | 'focus' | 'viewHoverEnter';
41
+
42
+ /**
43
+ * @see https://reactnative.dev/docs/accessibilityinfo
44
+ */
45
+ export interface AccessibilityInfoStatic {
46
+ /**
47
+ * Query whether bold text is currently enabled.
48
+ *
49
+ * @platform ios
50
+ */
51
+ isBoldTextEnabled: () => Promise<boolean>;
52
+
53
+ /**
54
+ * Query whether grayscale is currently enabled.
55
+ *
56
+ * @platform ios
57
+ */
58
+ isGrayscaleEnabled: () => Promise<boolean>;
59
+
60
+ /**
61
+ * Query whether invert colors is currently enabled.
62
+ *
63
+ * @platform ios
64
+ */
65
+ isInvertColorsEnabled: () => Promise<boolean>;
66
+
67
+ /**
68
+ * Query whether reduce motion is currently enabled.
69
+ */
70
+ isReduceMotionEnabled: () => Promise<boolean>;
71
+
72
+ /**
73
+ * Query whether reduce motion and prefer cross-fade transitions settings are currently enabled.
74
+ *
75
+ * Returns a promise which resolves to a boolean.
76
+ * The result is `true` when prefer cross-fade transitions is enabled and `false` otherwise.
77
+ */
78
+ prefersCrossFadeTransitions(): Promise<boolean>;
79
+
80
+ /**
81
+ * Query whether reduce transparency is currently enabled.
82
+ *
83
+ * @platform ios
84
+ */
85
+ isReduceTransparencyEnabled: () => Promise<boolean>;
86
+
87
+ /**
88
+ * Query whether a screen reader is currently enabled.
89
+ */
90
+ isScreenReaderEnabled: () => Promise<boolean>;
91
+
92
+ /**
93
+ * Query whether Accessibility Service is currently enabled.
94
+ *
95
+ * Returns a promise which resolves to a boolean.
96
+ * The result is `true` when any service is enabled and `false` otherwise.
97
+ *
98
+ * @platform android
99
+ */
100
+ isAccessibilityServiceEnabled(): Promise<boolean>;
101
+
102
+ /**
103
+ * Add an event handler. Supported events:
104
+ * - announcementFinished: iOS-only event. Fires when the screen reader has finished making an announcement.
105
+ * The argument to the event handler is a dictionary with these keys:
106
+ * - announcement: The string announced by the screen reader.
107
+ * - success: A boolean indicating whether the announcement was successfully made.
108
+ * - AccessibilityEventName constants other than announcementFinished: Fires on accessibility feature change.
109
+ * The argument to the event handler is a boolean.
110
+ * The boolean is true when the related event's feature is enabled and false otherwise.
111
+ *
112
+ */
113
+ addEventListener(
114
+ eventName: AccessibilityChangeEventName,
115
+ handler: AccessibilityChangeEventHandler,
116
+ ): EmitterSubscription;
117
+ addEventListener(
118
+ eventName: AccessibilityAnnouncementEventName,
119
+ handler: AccessibilityAnnouncementFinishedEventHandler,
120
+ ): EmitterSubscription;
121
+
122
+ /**
123
+ * Set accessibility focus to a react component.
124
+ */
125
+ setAccessibilityFocus: (reactTag: number) => void;
126
+
127
+ /**
128
+ * Post a string to be announced by the screen reader.
129
+ */
130
+ announceForAccessibility: (announcement: string) => void;
131
+
132
+ /**
133
+ * Post a string to be announced by the screen reader.
134
+ * - `announcement`: The string announced by the screen reader.
135
+ * - `options`: An object that configures the reading options.
136
+ * - `queue`: The announcement will be queued behind existing announcements. iOS only.
137
+ * - `nativeID`: The nativeID of the element to send the announcement from. win32 only.
138
+ */
139
+ announceForAccessibilityWithOptions(
140
+ announcement: string,
141
+ options: {
142
+ queue?: boolean | undefined;
143
+ nativeID?: string | undefined; // win32
144
+ },
145
+ ): void;
146
+
147
+ /**
148
+ * Gets the timeout in millisecond that the user needs.
149
+ * This value is set in "Time to take action (Accessibility timeout)" of "Accessibility" settings.
150
+ *
151
+ * @platform android
152
+ */
153
+ getRecommendedTimeoutMillis: (originalTimeout: number) => Promise<number>;
154
+ sendAccessibilityEvent: (
155
+ handle: React.ElementRef<HostComponent<unknown>>,
156
+ eventType: AccessibilityEventTypes,
157
+ ) => void;
158
+ }
159
+
160
+ export const AccessibilityInfo: AccessibilityInfoStatic;
161
+ export type AccessibilityInfo = AccessibilityInfoStatic;
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import RN = require('react-native');
3
3
  import type { IViewWin32Props } from '../View/ViewPropTypes';
4
- import type { ITextWin32Props } from '../Text/TextWin32.Props';
4
+ import type { TextProps } from '../../Text/Text';
5
5
  import type { IButtonWin32Props } from './ButtonWin32.Props';
6
6
 
7
7
  const enum SelectState {
@@ -39,7 +39,7 @@ export class ButtonWin32 extends React.Component<IButtonWin32Props, IButtonWin32
39
39
  style: this.props.style as RN.StyleProp<RN.ViewStyle>,
40
40
  };
41
41
 
42
- const textProps: ITextWin32Props = {
42
+ const textProps: TextProps = {
43
43
  textStyle: 'None',
44
44
  };
45
45
  if (this.props.color) {
@@ -48,7 +48,7 @@ export class ButtonWin32 extends React.Component<IButtonWin32Props, IButtonWin32
48
48
 
49
49
  return (
50
50
  <RN.ViewWin32 {...viewProps}>
51
- <RN.TextWin32 {...textProps}>{this.props.title}</RN.TextWin32>
51
+ <RN.Text {...textProps}>{this.props.title}</RN.Text>
52
52
  </RN.ViewWin32>
53
53
  );
54
54
  }
@@ -3,7 +3,6 @@
3
3
  import React from 'react'
4
4
  import {NativeSyntheticEvent, StyleSheet, Text, ViewStyle } from 'react-native';
5
5
  import {Insets} from 'react-native/types/public/Insets';
6
- import { TextWin32 } from '../../Text/TextWin32';
7
6
  import { ViewWin32 } from '../../View/ViewWin32';
8
7
  import { IViewWin32Props, IKeyboardEvent } from '../../View/ViewPropTypes';
9
8
  import { TouchableWin32 } from '../TouchableWin32';
@@ -135,7 +134,7 @@ class TouchableWin32WithoutFeedback extends React.Component<ITouchableWin32Witho
135
134
  };
136
135
 
137
136
  private readonly _touchableGetHitSlop = (): Insets => {
138
- return this.props.hitSlop;
137
+ return this.props.hitSlop as Insets;
139
138
  };
140
139
 
141
140
  private readonly _touchableGetHighlightDelayMS = (): number => {
@@ -338,7 +337,7 @@ class TouchableWithoutFeedbackExample extends React.Component<{}, IExampleState>
338
337
  <ViewWin32 style={styles.largeContainer}>
339
338
  <TouchableWin32WithoutFeedback style={styles.outerTouch} onPress={this._onPress}>
340
339
  <ViewWin32>
341
- <TextWin32>Press me</TextWin32>
340
+ <Text>Press me</Text>
342
341
  </ViewWin32>
343
342
  </TouchableWin32WithoutFeedback>
344
343
 
@@ -346,12 +345,12 @@ class TouchableWithoutFeedbackExample extends React.Component<{}, IExampleState>
346
345
  <ViewWin32 style={styles.smallContainer}>
347
346
  <TouchableWin32WithoutFeedback style={styles.innerTouch} onPress={this._onPress}>
348
347
  <ViewWin32>
349
- <TextWin32>You can also have nested Touchables</TextWin32>
348
+ <Text>You can also have nested Touchables</Text>
350
349
  </ViewWin32>
351
350
  </TouchableWin32WithoutFeedback>
352
351
  </ViewWin32>
353
352
  </TouchableWin32WithoutFeedback>
354
- <TextWin32>{'Number of Recognized Presses: ' + this.state.numberOfPresses}</TextWin32>
353
+ <Text>{'Number of Recognized Presses: ' + this.state.numberOfPresses}</Text>
355
354
  </ViewWin32>
356
355
  );
357
356
  }
@@ -375,7 +374,7 @@ class TouchableHighlightExample extends React.Component<{}, IExampleState> {
375
374
  <ViewWin32 style={styles.largeContainer}>
376
375
  <TouchableWin32Highlight style={styles.outerTouch} onPress={this._onPress}>
377
376
  <ViewWin32>
378
- <TextWin32>Press me</TextWin32>
377
+ <Text>Press me</Text>
379
378
  </ViewWin32>
380
379
  </TouchableWin32Highlight>
381
380
 
@@ -384,9 +383,9 @@ class TouchableHighlightExample extends React.Component<{}, IExampleState> {
384
383
  <TouchableWin32Highlight style={styles.innerTouch} onPress={this._onPress} children={this._getChildrenOfInnerTouchable} />
385
384
  </ViewWin32>
386
385
  </TouchableWin32Highlight>
387
- <TextWin32 style={{ color: 'red' }} textStyle="None">
386
+ <Text style={{ color: 'red' }} textStyle="None">
388
387
  {'Number of Recognized Presses: ' + this.state.numberOfPresses}
389
- </TextWin32>
388
+ </Text>
390
389
  </ViewWin32>
391
390
  );
392
391
  }
@@ -405,7 +404,7 @@ class TouchableHighlightExample extends React.Component<{}, IExampleState> {
405
404
  width: 70,
406
405
  }}
407
406
  >
408
- <TextWin32
407
+ <Text
409
408
  style={{
410
409
  color: this._pickColor(state.isHovered, state.isPressed),
411
410
  fontSize: state.isFocused ? 8 : 10,
@@ -413,7 +412,7 @@ class TouchableHighlightExample extends React.Component<{}, IExampleState> {
413
412
  textStyle="None"
414
413
  >
415
414
  Press Me!
416
- </TextWin32>
415
+ </Text>
417
416
  </ViewWin32>
418
417
  );
419
418
  };