@office-iss/react-native-win32 0.0.0-canary.282 → 0.0.0-canary.284

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 (244) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +79 -1
  3. package/CHANGELOG.md +28 -4
  4. package/IntegrationTests/AccessibilityManagerTest.js +17 -12
  5. package/IntegrationTests/AppEventsTest.js +47 -32
  6. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +10 -14
  7. package/IntegrationTests/ImageCachePolicyTest.js +64 -81
  8. package/IntegrationTests/ImageSnapshotTest.js +17 -20
  9. package/IntegrationTests/IntegrationTestHarnessTest.js +34 -52
  10. package/IntegrationTests/IntegrationTestsApp.js +11 -6
  11. package/IntegrationTests/LayoutEventsTest.js +1 -1
  12. package/IntegrationTests/LoggingTestModule.js +2 -1
  13. package/IntegrationTests/PromiseTest.js +51 -43
  14. package/IntegrationTests/SimpleSnapshotTest.js +19 -24
  15. package/IntegrationTests/SyncMethodTest.js +9 -13
  16. package/IntegrationTests/TimersTest.js +3 -3
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  18. package/Libraries/Alert/Alert.js +1 -1
  19. package/Libraries/Alert/Alert.win32.js +1 -1
  20. package/Libraries/Alert/RCTAlertManager.android.js +1 -1
  21. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  22. package/Libraries/Animated/AnimatedMock.js +1 -1
  23. package/Libraries/Animated/AnimatedWeb.js +27 -9
  24. package/Libraries/Animated/nodes/AnimatedValue.js +35 -13
  25. package/Libraries/Animated/useAnimatedProps.js +47 -85
  26. package/Libraries/AppState/AppState.js +1 -1
  27. package/Libraries/BatchedBridge/BatchedBridge.js +4 -2
  28. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  29. package/Libraries/BatchedBridge/NativeModules.js +4 -3
  30. package/Libraries/Blob/Blob.js +4 -4
  31. package/Libraries/Blob/BlobManager.js +3 -2
  32. package/Libraries/Blob/BlobRegistry.js +3 -9
  33. package/Libraries/Blob/File.js +3 -2
  34. package/Libraries/Blob/FileReader.js +1 -1
  35. package/Libraries/BugReporting/BugReporting.js +2 -2
  36. package/Libraries/BugReporting/dumpReactTree.js +2 -2
  37. package/Libraries/BugReporting/getReactData.js +1 -1
  38. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  39. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  40. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  41. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +5 -5
  42. package/Libraries/Components/Button.js +2 -2
  43. package/Libraries/Components/Button.win32.js +2 -2
  44. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  45. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +7 -7
  46. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -2
  47. package/Libraries/Components/Keyboard/Keyboard.js +9 -9
  48. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +4 -4
  49. package/Libraries/Components/Pressable/Pressable.js +4 -4
  50. package/Libraries/Components/Pressable/Pressable.win32.js +4 -4
  51. package/Libraries/Components/Pressable/useAndroidRippleForView.js +9 -9
  52. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +10 -11
  53. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  54. package/Libraries/Components/RefreshControl/RefreshControl.js +9 -9
  55. package/Libraries/Components/ScrollView/ScrollView.js +32 -26
  56. package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -2
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  60. package/Libraries/Components/Sound/SoundManager.js +1 -1
  61. package/Libraries/Components/StaticRenderer.js +4 -4
  62. package/Libraries/Components/StatusBar/StatusBar.js +33 -18
  63. package/Libraries/Components/Switch/Switch.js +6 -6
  64. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +31 -31
  65. package/Libraries/Components/TextInput/InputAccessoryView.js +2 -2
  66. package/Libraries/Components/TextInput/TextInput.flow.js +35 -35
  67. package/Libraries/Components/TextInput/TextInput.js +35 -35
  68. package/Libraries/Components/TextInput/TextInput.win32.js +35 -35
  69. package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
  70. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +68 -6
  71. package/Libraries/Components/Touchable/TouchableBounce.js +5 -5
  72. package/Libraries/Components/Touchable/TouchableHighlight.js +11 -11
  73. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +14 -14
  74. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +6 -6
  75. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -6
  76. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  77. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +9 -1
  78. package/Libraries/Components/View/ViewAccessibility.js +2 -2
  79. package/Libraries/Components/View/ViewAccessibility.win32.js +2 -2
  80. package/Libraries/Components/View/ViewPropTypes.js +22 -22
  81. package/Libraries/Components/View/ViewPropTypes.win32.js +22 -22
  82. package/Libraries/Core/RawEventEmitter.js +2 -2
  83. package/Libraries/Core/ReactNativeVersion.js +3 -5
  84. package/Libraries/Core/Timers/JSTimers.js +3 -3
  85. package/Libraries/Core/polyfillPromise.js +1 -1
  86. package/Libraries/Core/registerCallableModule.js +1 -1
  87. package/Libraries/Core/setUpAlert.js +1 -1
  88. package/Libraries/Core/setUpDeveloperTools.js +0 -2
  89. package/Libraries/Core/setUpErrorHandling.js +6 -1
  90. package/Libraries/Core/setUpReactDevTools.js +1 -1
  91. package/Libraries/Core/setUpTimers.js +35 -56
  92. package/Libraries/Core/setUpXHR.js +5 -5
  93. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  94. package/Libraries/Events/CustomEvent.js +2 -2
  95. package/Libraries/Image/AssetRegistry.js +6 -1
  96. package/Libraries/Image/AssetSourceResolver.js +2 -2
  97. package/Libraries/Image/ImageProps.js +17 -17
  98. package/Libraries/Image/nativeImageSource.js +2 -2
  99. package/Libraries/Inspector/ElementProperties.js +4 -3
  100. package/Libraries/Inspector/Inspector.js +1 -1
  101. package/Libraries/Inspector/Inspector.win32.js +1 -1
  102. package/Libraries/Inspector/InspectorOverlay.js +4 -3
  103. package/Libraries/Inspector/InspectorOverlay.win32.js +3 -3
  104. package/Libraries/Inspector/InspectorPanel.js +6 -6
  105. package/Libraries/Inspector/NetworkOverlay.js +6 -5
  106. package/Libraries/Inspector/PerformanceOverlay.js +2 -1
  107. package/Libraries/Inspector/resolveBoxStyle.js +2 -2
  108. package/Libraries/Interaction/InteractionManager.js +3 -2
  109. package/Libraries/Interaction/PanResponder.js +6 -6
  110. package/Libraries/Interaction/TouchHistoryMath.js +26 -0
  111. package/Libraries/JSInspector/NetworkAgent.js +2 -1
  112. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  113. package/Libraries/Linking/Linking.js +0 -1
  114. package/Libraries/Lists/FlatList.js +9 -10
  115. package/Libraries/Lists/SectionList.js +7 -9
  116. package/Libraries/Lists/SectionListModern.js +6 -6
  117. package/Libraries/LogBox/Data/LogBoxData.js +14 -14
  118. package/Libraries/LogBox/Data/LogBoxLog.js +51 -29
  119. package/Libraries/LogBox/Data/parseLogBoxLog.js +10 -10
  120. package/Libraries/LogBox/LogBox.js +13 -1
  121. package/Libraries/LogBox/LogBoxInspectorContainer.js +3 -3
  122. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
  123. package/Libraries/LogBox/UI/LogBoxButton.js +4 -4
  124. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +8 -2
  125. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +50 -31
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +50 -31
  127. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +2 -2
  128. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -2
  130. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  131. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
  132. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -2
  133. package/Libraries/Modal/Modal.js +7 -7
  134. package/Libraries/Network/XMLHttpRequest.js +1 -1
  135. package/Libraries/Network/convertRequestBody.js +3 -1
  136. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  137. package/Libraries/Pressability/Pressability.js +10 -10
  138. package/Libraries/Pressability/Pressability.win32.js +10 -10
  139. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  140. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +2 -2
  141. package/Libraries/Promise.js +2 -2
  142. package/Libraries/ReactNative/AppContainer.js +2 -2
  143. package/Libraries/ReactNative/BridgelessUIManager.js +3 -8
  144. package/Libraries/ReactNative/I18nManager.js +3 -2
  145. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  146. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  147. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +2 -2
  148. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +2 -2
  149. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -2
  150. package/Libraries/StyleSheet/Rect.js +2 -2
  151. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  152. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  153. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  154. package/Libraries/StyleSheet/private/_TransformStyle.js +18 -18
  155. package/Libraries/StyleSheet/processBackgroundImage.js +138 -136
  156. package/Libraries/Text/TextAncestor.js +1 -2
  157. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  158. package/Libraries/Types/CodegenTypes.js +2 -1
  159. package/Libraries/Types/CoreEventTypes.js +40 -40
  160. package/Libraries/Types/CoreEventTypes.win32.js +40 -40
  161. package/Libraries/UTFSequence.js +2 -2
  162. package/Libraries/Utilities/BackHandler.android.js +2 -2
  163. package/Libraries/Utilities/BackHandler.ios.js +2 -2
  164. package/Libraries/Utilities/BackHandler.win32.js +2 -2
  165. package/Libraries/Utilities/HMRClient.js +2 -2
  166. package/Libraries/Utilities/Platform.android.js +4 -4
  167. package/Libraries/Utilities/Platform.flow.js +8 -8
  168. package/Libraries/Utilities/Platform.flow.win32.js +8 -8
  169. package/Libraries/Utilities/Platform.ios.js +4 -4
  170. package/Libraries/Utilities/Platform.win32.js +2 -2
  171. package/Libraries/Utilities/ReactNativeTestTools.js +3 -2
  172. package/Libraries/Utilities/codegenNativeCommands.js +2 -2
  173. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  174. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  175. package/Libraries/Utilities/stringifySafe.js +2 -2
  176. package/Libraries/Vibration/Vibration.js +1 -1
  177. package/Libraries/WebSocket/WebSocketEvent.js +1 -1
  178. package/Libraries/YellowBox/YellowBoxDeprecated.js +4 -3
  179. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  180. package/flow/jest.js +14 -14
  181. package/index.js +16 -13
  182. package/index.win32.js +16 -13
  183. package/jest/setup.js +214 -197
  184. package/overrides.json +26 -26
  185. package/package.json +16 -16
  186. package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -30
  187. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -2
  188. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +2 -2
  189. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +6 -6
  190. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  191. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  192. package/src/private/specs/components/AndroidSwitchNativeComponent.js +4 -4
  193. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +2 -2
  194. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +2 -2
  195. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +2 -2
  196. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +2 -2
  197. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +4 -4
  198. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +2 -2
  199. package/src/private/specs/components/SwitchNativeComponent.js +4 -4
  200. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +2 -2
  201. package/src/private/specs/modules/NativeAccessibilityManager.js +2 -2
  202. package/src/private/specs/modules/NativeActionSheetManager.js +7 -7
  203. package/src/private/specs/modules/NativeAlertManager.js +2 -2
  204. package/src/private/specs/modules/NativeAnimatedModule.js +2 -2
  205. package/src/private/specs/modules/NativeAnimatedTurboModule.js +2 -2
  206. package/src/private/specs/modules/NativeAppState.js +3 -3
  207. package/src/private/specs/modules/NativeBlobModule.js +1 -1
  208. package/src/private/specs/modules/NativeClipboard.js +1 -1
  209. package/src/private/specs/modules/NativeDeviceInfo.js +8 -8
  210. package/src/private/specs/modules/NativeDialogManagerAndroid.js +4 -4
  211. package/src/private/specs/modules/NativeExceptionsManager.js +2 -2
  212. package/src/private/specs/modules/NativeFantom.js +6 -0
  213. package/src/private/specs/modules/NativeFrameRateLogger.js +1 -1
  214. package/src/private/specs/modules/NativeI18nManager.js +2 -2
  215. package/src/private/specs/modules/NativeImageEditor.js +9 -9
  216. package/src/private/specs/modules/NativeImageLoaderAndroid.js +1 -1
  217. package/src/private/specs/modules/NativeImageLoaderIOS.js +1 -1
  218. package/src/private/specs/modules/NativeImageLoaderWin32.js +1 -1
  219. package/src/private/specs/modules/NativeImageStoreAndroid.js +1 -1
  220. package/src/private/specs/modules/NativeImageStoreIOS.js +3 -3
  221. package/src/private/specs/modules/NativeNetworkingIOS.js +2 -2
  222. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +4 -4
  223. package/src/private/specs/modules/NativePlatformConstantsIOS.js +4 -4
  224. package/src/private/specs/modules/NativePlatformConstantsWin.js +5 -10
  225. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +7 -7
  226. package/src/private/specs/modules/NativeSampleTurboModule.js +2 -2
  227. package/src/private/specs/modules/NativeSettingsManager.js +2 -2
  228. package/src/private/specs/modules/NativeShareModule.js +3 -3
  229. package/src/private/specs/modules/NativeSourceCode.js +2 -2
  230. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +4 -4
  231. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +6 -6
  232. package/src/private/specs/modules/NativeToastAndroid.js +2 -2
  233. package/src/private/specs/modules/NativeVibration.js +1 -1
  234. package/src/private/specs/modules/NativeWebSocketModule.js +1 -1
  235. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +2 -2
  236. package/src/private/webapis/intersectionobserver/{IntersectionObserverManager.js → internals/IntersectionObserverManager.js} +9 -9
  237. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  238. package/src/private/webapis/mutationobserver/{MutationObserverManager.js → internals/MutationObserverManager.js} +8 -8
  239. package/src/private/webapis/performance/EventTiming.js +1 -1
  240. package/src/private/webapis/performance/Performance.js +3 -3
  241. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  242. package/src/private/webapis/performance/{RawPerformanceEntry.js → internals/RawPerformanceEntry.js} +6 -6
  243. package/src/private/webapis/performance/{Utilities.js → internals/Utilities.js} +1 -1
  244. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +1 -1
@@ -34,7 +34,7 @@ import type {Node} from 'react';
34
34
  export type ViewLayout = Layout;
35
35
  export type ViewLayoutEvent = LayoutEvent;
36
36
 
37
- type DirectEventProps = $ReadOnly<{|
37
+ type DirectEventProps = $ReadOnly<{
38
38
  /**
39
39
  * When `accessible` is true, the system will try to invoke this function
40
40
  * when the user performs an accessibility custom action.
@@ -78,15 +78,15 @@ type DirectEventProps = $ReadOnly<{|
78
78
  * See https://reactnative.dev/docs/view#onaccessibilityescape
79
79
  */
80
80
  onAccessibilityEscape?: ?() => mixed,
81
- |}>;
81
+ }>;
82
82
 
83
- type MouseEventProps = $ReadOnly<{|
83
+ type MouseEventProps = $ReadOnly<{
84
84
  onMouseEnter?: ?(event: MouseEvent) => void,
85
85
  onMouseLeave?: ?(event: MouseEvent) => void,
86
- |}>;
86
+ }>;
87
87
 
88
88
  // Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)
89
- type PointerEventProps = $ReadOnly<{|
89
+ type PointerEventProps = $ReadOnly<{
90
90
  onClick?: ?(event: PointerEvent) => void,
91
91
  onClickCapture?: ?(event: PointerEvent) => void,
92
92
  onPointerEnter?: ?(event: PointerEvent) => void,
@@ -109,16 +109,16 @@ type PointerEventProps = $ReadOnly<{|
109
109
  onGotPointerCaptureCapture?: ?(e: PointerEvent) => void,
110
110
  onLostPointerCapture?: ?(e: PointerEvent) => void,
111
111
  onLostPointerCaptureCapture?: ?(e: PointerEvent) => void,
112
- |}>;
112
+ }>;
113
113
 
114
- type FocusEventProps = $ReadOnly<{|
114
+ type FocusEventProps = $ReadOnly<{
115
115
  onBlur?: ?(event: BlurEvent) => void,
116
116
  onBlurCapture?: ?(event: BlurEvent) => void,
117
117
  onFocus?: ?(event: FocusEvent) => void,
118
118
  onFocusCapture?: ?(event: FocusEvent) => void,
119
- |}>;
119
+ }>;
120
120
 
121
- type TouchEventProps = $ReadOnly<{|
121
+ type TouchEventProps = $ReadOnly<{
122
122
  onTouchCancel?: ?(e: PressEvent) => void,
123
123
  onTouchCancelCapture?: ?(e: PressEvent) => void,
124
124
  onTouchEnd?: ?(e: PressEvent) => void,
@@ -127,14 +127,14 @@ type TouchEventProps = $ReadOnly<{|
127
127
  onTouchMoveCapture?: ?(e: PressEvent) => void,
128
128
  onTouchStart?: ?(e: PressEvent) => void,
129
129
  onTouchStartCapture?: ?(e: PressEvent) => void,
130
- |}>;
130
+ }>;
131
131
 
132
132
  /**
133
133
  * For most touch interactions, you'll simply want to wrap your component in
134
134
  * `TouchableHighlight` or `TouchableOpacity`. Check out `Touchable.js`,
135
135
  * `ScrollResponder.js` and `ResponderEventPlugin.js` for more discussion.
136
136
  */
137
- type GestureResponderEventProps = $ReadOnly<{|
137
+ type GestureResponderEventProps = $ReadOnly<{
138
138
  /**
139
139
  * Does this view want to "claim" touch responsiveness? This is called for
140
140
  * every touch move on the `View` when it is not the responder.
@@ -249,23 +249,23 @@ type GestureResponderEventProps = $ReadOnly<{|
249
249
  * See https://reactnative.dev/docs/view#onstartshouldsetrespondercapture
250
250
  */
251
251
  onStartShouldSetResponderCapture?: ?(e: PressEvent) => boolean,
252
- |}>;
252
+ }>;
253
253
 
254
- type AndroidDrawableThemeAttr = $ReadOnly<{|
254
+ type AndroidDrawableThemeAttr = $ReadOnly<{
255
255
  type: 'ThemeAttrAndroid',
256
256
  attribute: string,
257
- |}>;
257
+ }>;
258
258
 
259
- type AndroidDrawableRipple = $ReadOnly<{|
259
+ type AndroidDrawableRipple = $ReadOnly<{
260
260
  type: 'RippleAndroid',
261
261
  color?: ?number,
262
262
  borderless?: ?boolean,
263
263
  rippleRadius?: ?number,
264
- |}>;
264
+ }>;
265
265
 
266
266
  type AndroidDrawable = AndroidDrawableThemeAttr | AndroidDrawableRipple;
267
267
 
268
- type AndroidViewProps = $ReadOnly<{|
268
+ type AndroidViewProps = $ReadOnly<{
269
269
  /**
270
270
  * Identifies the element that labels the element it is applied to. When the assistive technology focuses on the component with this props,
271
271
  * the text is read aloud. The value should should match the nativeID of the related element.
@@ -394,9 +394,9 @@ type AndroidViewProps = $ReadOnly<{|
394
394
  * @platform android
395
395
  */
396
396
  onClick?: ?(event: PressEvent) => mixed,
397
- |}>;
397
+ }>;
398
398
 
399
- type IOSViewProps = $ReadOnly<{|
399
+ type IOSViewProps = $ReadOnly<{
400
400
  /**
401
401
  * Prevents view from being inverted if set to true and color inversion is turned on.
402
402
  *
@@ -465,9 +465,9 @@ type IOSViewProps = $ReadOnly<{|
465
465
  * See https://reactnative.dev/docs/view#shouldrasterizeios
466
466
  */
467
467
  shouldRasterizeIOS?: ?boolean,
468
- |}>;
468
+ }>;
469
469
 
470
- export type ViewProps = $ReadOnly<{|
470
+ export type ViewProps = $ReadOnly<{
471
471
  ...DirectEventProps,
472
472
  ...GestureResponderEventProps,
473
473
  ...MouseEventProps,
@@ -644,4 +644,4 @@ export type ViewProps = $ReadOnly<{|
644
644
  * See https://reactnative.dev/docs/view#removeclippedsubviews
645
645
  */
646
646
  removeClippedSubviews?: ?boolean,
647
- |}>;
647
+ }>;
@@ -35,7 +35,7 @@ import type {Node} from 'react';
35
35
  export type ViewLayout = Layout;
36
36
  export type ViewLayoutEvent = LayoutEvent;
37
37
 
38
- type DirectEventProps = $ReadOnly<{|
38
+ type DirectEventProps = $ReadOnly<{
39
39
  /**
40
40
  * When `accessible` is true, the system will try to invoke this function
41
41
  * when the user performs an accessibility custom action.
@@ -79,15 +79,15 @@ type DirectEventProps = $ReadOnly<{|
79
79
  * See https://reactnative.dev/docs/view#onaccessibilityescape
80
80
  */
81
81
  onAccessibilityEscape?: ?() => mixed,
82
- |}>;
82
+ }>;
83
83
 
84
- type MouseEventProps = $ReadOnly<{|
84
+ type MouseEventProps = $ReadOnly<{
85
85
  onMouseEnter?: ?(event: MouseEvent) => void,
86
86
  onMouseLeave?: ?(event: MouseEvent) => void,
87
- |}>;
87
+ }>;
88
88
 
89
89
  // Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)
90
- type PointerEventProps = $ReadOnly<{|
90
+ type PointerEventProps = $ReadOnly<{
91
91
  onClick?: ?(event: PointerEvent) => void,
92
92
  onClickCapture?: ?(event: PointerEvent) => void,
93
93
  onPointerEnter?: ?(event: PointerEvent) => void,
@@ -110,16 +110,16 @@ type PointerEventProps = $ReadOnly<{|
110
110
  onGotPointerCaptureCapture?: ?(e: PointerEvent) => void,
111
111
  onLostPointerCapture?: ?(e: PointerEvent) => void,
112
112
  onLostPointerCaptureCapture?: ?(e: PointerEvent) => void,
113
- |}>;
113
+ }>;
114
114
 
115
- type FocusEventProps = $ReadOnly<{|
115
+ type FocusEventProps = $ReadOnly<{
116
116
  onBlur?: ?(event: BlurEvent) => void,
117
117
  onBlurCapture?: ?(event: BlurEvent) => void,
118
118
  onFocus?: ?(event: FocusEvent) => void,
119
119
  onFocusCapture?: ?(event: FocusEvent) => void,
120
- |}>;
120
+ }>;
121
121
 
122
- type TouchEventProps = $ReadOnly<{|
122
+ type TouchEventProps = $ReadOnly<{
123
123
  onTouchCancel?: ?(e: PressEvent) => void,
124
124
  onTouchCancelCapture?: ?(e: PressEvent) => void,
125
125
  onTouchEnd?: ?(e: PressEvent) => void,
@@ -128,14 +128,14 @@ type TouchEventProps = $ReadOnly<{|
128
128
  onTouchMoveCapture?: ?(e: PressEvent) => void,
129
129
  onTouchStart?: ?(e: PressEvent) => void,
130
130
  onTouchStartCapture?: ?(e: PressEvent) => void,
131
- |}>;
131
+ }>;
132
132
 
133
133
  /**
134
134
  * For most touch interactions, you'll simply want to wrap your component in
135
135
  * `TouchableHighlight` or `TouchableOpacity`. Check out `Touchable.js`,
136
136
  * `ScrollResponder.js` and `ResponderEventPlugin.js` for more discussion.
137
137
  */
138
- type GestureResponderEventProps = $ReadOnly<{|
138
+ type GestureResponderEventProps = $ReadOnly<{
139
139
  /**
140
140
  * Does this view want to "claim" touch responsiveness? This is called for
141
141
  * every touch move on the `View` when it is not the responder.
@@ -250,23 +250,23 @@ type GestureResponderEventProps = $ReadOnly<{|
250
250
  * See https://reactnative.dev/docs/view#onstartshouldsetrespondercapture
251
251
  */
252
252
  onStartShouldSetResponderCapture?: ?(e: PressEvent) => boolean,
253
- |}>;
253
+ }>;
254
254
 
255
- type AndroidDrawableThemeAttr = $ReadOnly<{|
255
+ type AndroidDrawableThemeAttr = $ReadOnly<{
256
256
  type: 'ThemeAttrAndroid',
257
257
  attribute: string,
258
- |}>;
258
+ }>;
259
259
 
260
- type AndroidDrawableRipple = $ReadOnly<{|
260
+ type AndroidDrawableRipple = $ReadOnly<{
261
261
  type: 'RippleAndroid',
262
262
  color?: ?number,
263
263
  borderless?: ?boolean,
264
264
  rippleRadius?: ?number,
265
- |}>;
265
+ }>;
266
266
 
267
267
  type AndroidDrawable = AndroidDrawableThemeAttr | AndroidDrawableRipple;
268
268
 
269
- type AndroidViewProps = $ReadOnly<{|
269
+ type AndroidViewProps = $ReadOnly<{
270
270
  /**
271
271
  * Identifies the element that labels the element it is applied to. When the assistive technology focuses on the component with this props,
272
272
  * the text is read aloud. The value should should match the nativeID of the related element.
@@ -395,9 +395,9 @@ type AndroidViewProps = $ReadOnly<{|
395
395
  * @platform android
396
396
  */
397
397
  onClick?: ?(event: PressEvent) => mixed,
398
- |}>;
398
+ }>;
399
399
 
400
- type IOSViewProps = $ReadOnly<{|
400
+ type IOSViewProps = $ReadOnly<{
401
401
  /**
402
402
  * Prevents view from being inverted if set to true and color inversion is turned on.
403
403
  *
@@ -466,7 +466,7 @@ type IOSViewProps = $ReadOnly<{|
466
466
  * See https://reactnative.dev/docs/view#shouldrasterizeios
467
467
  */
468
468
  shouldRasterizeIOS?: ?boolean,
469
- |}>;
469
+ }>;
470
470
 
471
471
  // [Windows
472
472
 
@@ -527,7 +527,7 @@ type WindowsViewProps = $ReadOnly<{|
527
527
  |}>;
528
528
  // Windows]
529
529
 
530
- export type ViewProps = $ReadOnly<{|
530
+ export type ViewProps = $ReadOnly<{
531
531
  ...DirectEventProps,
532
532
  ...GestureResponderEventProps,
533
533
  ...MouseEventProps,
@@ -728,4 +728,4 @@ export type ViewProps = $ReadOnly<{|
728
728
  * @platform win32
729
729
  */
730
730
  accessibilityControls?: ?string,
731
- |}>;
731
+ }>;
@@ -12,13 +12,13 @@ import type {IEventEmitter} from '../vendor/emitter/EventEmitter';
12
12
 
13
13
  import EventEmitter from '../vendor/emitter/EventEmitter';
14
14
 
15
- export type RawEventEmitterEvent = $ReadOnly<{|
15
+ export type RawEventEmitterEvent = $ReadOnly<{
16
16
  eventName: string,
17
17
  // We expect, but do not/cannot require, that nativeEvent is an object
18
18
  // with the properties: key, elementType (string), type (string), tag (numeric),
19
19
  // and a stateNode of the native element/Fiber the event was emitted to.
20
20
  nativeEvent: {[string]: mixed},
21
- |}>;
21
+ }>;
22
22
 
23
23
  type RawEventDefinitions = {
24
24
  [eventChannel: string]: [RawEventEmitterEvent],
@@ -8,16 +8,14 @@
8
8
  * @generated by scripts/releases/set-version.js
9
9
  */
10
10
 
11
- const version: $ReadOnly<{
11
+ export const version: $ReadOnly<{
12
12
  major: number,
13
13
  minor: number,
14
14
  patch: number,
15
15
  prerelease: string | null,
16
16
  }> = {
17
17
  major: 0,
18
- minor: 78,
18
+ minor: 79,
19
19
  patch: 0,
20
- prerelease: 'nightly-20250113-d4407d6f7',
20
+ prerelease: 'nightly-20250123-d1028885e',
21
21
  };
22
-
23
- module.exports = {version};
@@ -10,7 +10,7 @@
10
10
 
11
11
  import NativeTiming from './NativeTiming';
12
12
 
13
- const BatchedBridge = require('../../BatchedBridge/BatchedBridge');
13
+ const BatchedBridge = require('../../BatchedBridge/BatchedBridge').default;
14
14
  const Systrace = require('../../Performance/Systrace');
15
15
  const invariant = require('invariant');
16
16
 
@@ -452,7 +452,7 @@ function setSendIdleEvents(sendIdleEvents: boolean): void {
452
452
  NativeTiming.setSendIdleEvents(sendIdleEvents);
453
453
  }
454
454
 
455
- let ExportedJSTimers: {|
455
+ let ExportedJSTimers: {
456
456
  callIdleCallbacks: (frameTime: number) => any | void,
457
457
  callReactNativeMicrotasks: () => void,
458
458
  callTimers: (timersToCall: Array<number>) => any | void,
@@ -467,7 +467,7 @@ let ExportedJSTimers: {|
467
467
  queueReactNativeMicrotask: (func: any, ...args: any) => number,
468
468
  setInterval: (func: any, duration: number, ...args: any) => number,
469
469
  setTimeout: (func: any, duration: number, ...args: any) => number,
470
- |};
470
+ };
471
471
 
472
472
  if (!NativeTiming) {
473
473
  console.warn("Timing native module is not available, can't set timers.");
@@ -34,5 +34,5 @@ if (global?.HermesInternal?.hasPromise?.()) {
34
34
  );
35
35
  }
36
36
  } else {
37
- polyfillGlobal('Promise', () => require('../Promise'));
37
+ polyfillGlobal('Promise', () => require('../Promise').default);
38
38
  }
@@ -28,7 +28,7 @@ const registerCallableModule: RegisterCallableModule = (function () {
28
28
  };
29
29
  }
30
30
 
31
- const BatchedBridge = require('../BatchedBridge/BatchedBridge');
31
+ const BatchedBridge = require('../BatchedBridge/BatchedBridge').default;
32
32
  return (name, moduleOrFactory) => {
33
33
  if (typeof moduleOrFactory === 'function') {
34
34
  BatchedBridge.registerLazyCallableModule(name, moduleOrFactory);
@@ -18,6 +18,6 @@ if (!global.alert) {
18
18
  global.alert = function (text: string) {
19
19
  // Require Alert on demand. Requiring it too early can lead to issues
20
20
  // with things like Platform not being fully initialized.
21
- require('../Alert/Alert').alert('Alert', '' + text);
21
+ require('../Alert/Alert').default.alert('Alert', '' + text);
22
22
  };
23
23
  }
@@ -17,8 +17,6 @@ declare var console: {[string]: $FlowFixMe};
17
17
  * You can use this module directly, or just require InitializeCore.
18
18
  */
19
19
  if (__DEV__) {
20
- require('./setUpReactDevTools');
21
-
22
20
  // Set up inspector
23
21
  const JSInspector = require('../JSInspector/JSInspector');
24
22
  JSInspector.registerAgent(require('../JSInspector/NetworkAgent'));
@@ -10,6 +10,11 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ if (__DEV__) {
14
+ // React DevTools need to be set up before the console.error patch.
15
+ require('./setUpReactDevTools');
16
+ }
17
+
13
18
  if (global.RN$useAlwaysAvailableJSErrorHandling !== true) {
14
19
  /**
15
20
  * Sets up the console and exception handling (redbox) for React Native.
@@ -29,7 +34,7 @@ if (global.RN$useAlwaysAvailableJSErrorHandling !== true) {
29
34
  }
30
35
  };
31
36
 
32
- const ErrorUtils = require('../vendor/core/ErrorUtils');
37
+ const ErrorUtils = require('../vendor/core/ErrorUtils').default;
33
38
  ErrorUtils.setGlobalHandler(handleError);
34
39
  }
35
40
  }
@@ -114,7 +114,7 @@ if (__DEV__) {
114
114
  // not when debugging in chrome
115
115
  // TODO(t12832058) This check is broken
116
116
  if (!window.document) {
117
- const AppState = require('../AppState/AppState');
117
+ const AppState = require('../AppState/AppState').default;
118
118
  const getDevServer = require('./Devtools/getDevServer');
119
119
 
120
120
  // Don't steal the DevTools from currently active app.
@@ -10,9 +10,6 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const ReactNativeFeatureFlags = require('../../src/private/featureflags/ReactNativeFeatureFlags');
14
- const NativeReactNativeFeatureFlags =
15
- require('../../src/private/featureflags/specs/NativeReactNativeFeatureFlags').default;
16
13
  const {polyfillGlobal} = require('../Utilities/PolyfillFunctions');
17
14
 
18
15
  if (__DEV__) {
@@ -21,45 +18,8 @@ if (__DEV__) {
21
18
  }
22
19
  }
23
20
 
24
- const isEventLoopEnabled = (() => {
25
- if (NativeReactNativeFeatureFlags == null) {
26
- return false;
27
- }
28
-
29
- return (
30
- ReactNativeFeatureFlags.enableBridgelessArchitecture() &&
31
- !ReactNativeFeatureFlags.disableEventLoopOnBridgeless()
32
- );
33
- })();
34
-
35
21
  // In bridgeless mode, timers are host functions installed from cpp.
36
- if (global.RN$Bridgeless !== true) {
37
- /**
38
- * Set up timers.
39
- * You can use this module directly, or just require InitializeCore.
40
- */
41
- const defineLazyTimer = (
42
- name:
43
- | 'cancelAnimationFrame'
44
- | 'cancelIdleCallback'
45
- | 'clearInterval'
46
- | 'clearTimeout'
47
- | 'requestAnimationFrame'
48
- | 'requestIdleCallback'
49
- | 'setInterval'
50
- | 'setTimeout',
51
- ) => {
52
- polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);
53
- };
54
- defineLazyTimer('setTimeout');
55
- defineLazyTimer('clearTimeout');
56
- defineLazyTimer('setInterval');
57
- defineLazyTimer('clearInterval');
58
- defineLazyTimer('requestAnimationFrame');
59
- defineLazyTimer('cancelAnimationFrame');
60
- defineLazyTimer('requestIdleCallback');
61
- defineLazyTimer('cancelIdleCallback');
62
- } else if (isEventLoopEnabled) {
22
+ if (global.RN$Bridgeless === true) {
63
23
  polyfillGlobal(
64
24
  'requestIdleCallback',
65
25
  () =>
@@ -73,12 +33,7 @@ if (global.RN$Bridgeless !== true) {
73
33
  require('../../src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks')
74
34
  .default.cancelIdleCallback,
75
35
  );
76
- }
77
36
 
78
- // We need to check if the native module is available before accessing the
79
- // feature flag, because otherwise the API would throw an error in the legacy
80
- // architecture in OSS, where the native module isn't available.
81
- if (isEventLoopEnabled) {
82
37
  // This is the flag that tells React to use `queueMicrotask` to batch state
83
38
  // updates, instead of using the scheduler to schedule a regular task.
84
39
  // We use a global variable because we don't currently have any other
@@ -103,6 +58,32 @@ if (isEventLoopEnabled) {
103
58
  () => require('./Timers/immediateShim').clearImmediate,
104
59
  );
105
60
  } else {
61
+ /**
62
+ * Set up timers.
63
+ * You can use this module directly, or just require InitializeCore.
64
+ */
65
+ const defineLazyTimer = (
66
+ name:
67
+ | 'cancelAnimationFrame'
68
+ | 'cancelIdleCallback'
69
+ | 'clearInterval'
70
+ | 'clearTimeout'
71
+ | 'requestAnimationFrame'
72
+ | 'requestIdleCallback'
73
+ | 'setInterval'
74
+ | 'setTimeout',
75
+ ) => {
76
+ polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);
77
+ };
78
+ defineLazyTimer('setTimeout');
79
+ defineLazyTimer('clearTimeout');
80
+ defineLazyTimer('setInterval');
81
+ defineLazyTimer('clearInterval');
82
+ defineLazyTimer('requestAnimationFrame');
83
+ defineLazyTimer('cancelAnimationFrame');
84
+ defineLazyTimer('requestIdleCallback');
85
+ defineLazyTimer('cancelIdleCallback');
86
+
106
87
  // Polyfill it with promise (regardless it's polyfilled or native) otherwise.
107
88
  polyfillGlobal(
108
89
  'queueMicrotask',
@@ -112,14 +93,12 @@ if (isEventLoopEnabled) {
112
93
  // When promise was polyfilled hence is queued to the RN microtask queue,
113
94
  // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs.
114
95
  // Note that in bridgeless mode, immediate APIs are installed from cpp.
115
- if (global.RN$Bridgeless !== true) {
116
- polyfillGlobal(
117
- 'setImmediate',
118
- () => require('./Timers/JSTimers').queueReactNativeMicrotask,
119
- );
120
- polyfillGlobal(
121
- 'clearImmediate',
122
- () => require('./Timers/JSTimers').clearReactNativeMicrotask,
123
- );
124
- }
96
+ polyfillGlobal(
97
+ 'setImmediate',
98
+ () => require('./Timers/JSTimers').queueReactNativeMicrotask,
99
+ );
100
+ polyfillGlobal(
101
+ 'clearImmediate',
102
+ () => require('./Timers/JSTimers').clearReactNativeMicrotask,
103
+ );
125
104
  }
@@ -26,11 +26,11 @@ polyfillGlobal('Headers', () => require('../Network/fetch').Headers);
26
26
  polyfillGlobal('Request', () => require('../Network/fetch').Request);
27
27
  polyfillGlobal('Response', () => require('../Network/fetch').Response);
28
28
  polyfillGlobal('WebSocket', () => require('../WebSocket/WebSocket'));
29
- polyfillGlobal('Blob', () => require('../Blob/Blob'));
30
- polyfillGlobal('File', () => require('../Blob/File'));
31
- polyfillGlobal('FileReader', () => require('../Blob/FileReader'));
32
- polyfillGlobal('URL', () => require('../Blob/URL').URL); // flowlint-line untyped-import:off
33
- polyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams); // flowlint-line untyped-import:off
29
+ polyfillGlobal('Blob', () => require('../Blob/Blob').default);
30
+ polyfillGlobal('File', () => require('../Blob/File').default);
31
+ polyfillGlobal('FileReader', () => require('../Blob/FileReader').default);
32
+ polyfillGlobal('URL', () => require('../Blob/URL').URL);
33
+ polyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams);
34
34
  polyfillGlobal(
35
35
  'AbortController',
36
36
  () => require('abort-controller/dist/abort-controller').AbortController, // flowlint-line untyped-import:off
@@ -14,7 +14,8 @@ import {beginEvent, endEvent} from '../Performance/Systrace';
14
14
  import EventEmitter from '../vendor/emitter/EventEmitter';
15
15
 
16
16
  // FIXME: use typed events
17
- type RCTDeviceEventDefinitions = $FlowFixMe;
17
+ /* $FlowFixMe[unclear-type] unclear type of events */
18
+ type RCTDeviceEventDefinitions = {[name: string]: Array<any>};
18
19
 
19
20
  /**
20
21
  * Global EventEmitter used by the native platform to emit events to JavaScript.
@@ -11,12 +11,12 @@
11
11
  // Make sure global Event is defined
12
12
  import EventPolyfill from './EventPolyfill';
13
13
 
14
- type CustomEvent$Options = $ReadOnly<{|
14
+ type CustomEvent$Options = $ReadOnly<{
15
15
  bubbles?: boolean,
16
16
  cancelable?: boolean,
17
17
  composed?: boolean,
18
18
  detail?: {...},
19
- |}>;
19
+ }>;
20
20
 
21
21
  class CustomEvent extends EventPolyfill {
22
22
  detail: ?{...};
@@ -10,4 +10,9 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- module.exports = require('@react-native/assets-registry/registry');
13
+ import type {PackagerAsset} from '@react-native/assets-registry/registry';
14
+
15
+ module.exports = require('@react-native/assets-registry/registry') as {
16
+ registerAsset: (asset: PackagerAsset) => number,
17
+ getAssetByID: (assetId: number) => PackagerAsset,
18
+ };
@@ -10,13 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- export type ResolvedAssetSource = {|
13
+ export type ResolvedAssetSource = {
14
14
  +__packager_asset: boolean,
15
15
  +width: ?number,
16
16
  +height: ?number,
17
17
  +uri: string,
18
18
  +scale: number,
19
- |};
19
+ };
20
20
 
21
21
  import type {
22
22
  AssetDestPathResolver,
@@ -24,16 +24,16 @@ import type {ImageSource} from './ImageSource';
24
24
  import type {ElementRef, Node, RefSetter} from 'react';
25
25
 
26
26
  export type ImageLoadEvent = SyntheticEvent<
27
- $ReadOnly<{|
28
- source: $ReadOnly<{|
27
+ $ReadOnly<{
28
+ source: $ReadOnly<{
29
29
  width: number,
30
30
  height: number,
31
31
  uri: string,
32
- |}>,
33
- |}>,
32
+ }>,
33
+ }>,
34
34
  >;
35
35
 
36
- type IOSImageProps = $ReadOnly<{|
36
+ type IOSImageProps = $ReadOnly<{
37
37
  /**
38
38
  * A static image to display while loading the image source.
39
39
  *
@@ -52,12 +52,12 @@ type IOSImageProps = $ReadOnly<{|
52
52
  * See https://reactnative.dev/docs/image#onprogress
53
53
  */
54
54
  onProgress?: ?(
55
- event: SyntheticEvent<$ReadOnly<{|loaded: number, total: number|}>>,
55
+ event: SyntheticEvent<$ReadOnly<{loaded: number, total: number}>>,
56
56
  ) => void,
57
- |}>;
57
+ }>;
58
58
 
59
- type AndroidImageProps = $ReadOnly<{|
60
- loadingIndicatorSource?: ?(number | $ReadOnly<{|uri: string|}>),
59
+ type AndroidImageProps = $ReadOnly<{
60
+ loadingIndicatorSource?: ?(number | $ReadOnly<{uri: string}>),
61
61
  progressiveRenderingEnabled?: ?boolean,
62
62
  fadeDuration?: ?number,
63
63
 
@@ -76,10 +76,10 @@ type AndroidImageProps = $ReadOnly<{|
76
76
  * Defaults to 1.0.
77
77
  */
78
78
  resizeMultiplier?: ?number,
79
- |}>;
79
+ }>;
80
80
 
81
- export type ImageProps = $ReadOnly<{|
82
- ...$Diff<ViewProps, $ReadOnly<{|style: ?ViewStyleProp|}>>,
81
+ export type ImageProps = $ReadOnly<{
82
+ ...$Diff<ViewProps, $ReadOnly<{style: ?ViewStyleProp}>>,
83
83
  ...IOSImageProps,
84
84
  ...AndroidImageProps,
85
85
 
@@ -164,9 +164,9 @@ export type ImageProps = $ReadOnly<{|
164
164
  */
165
165
  onError?: ?(
166
166
  event: SyntheticEvent<
167
- $ReadOnly<{|
167
+ $ReadOnly<{
168
168
  error: string,
169
- |}>,
169
+ }>,
170
170
  >,
171
171
  ) => void,
172
172
 
@@ -267,9 +267,9 @@ export type ImageProps = $ReadOnly<{|
267
267
  */
268
268
  srcSet?: ?string,
269
269
  children?: empty,
270
- |}>;
270
+ }>;
271
271
 
272
- export type ImageBackgroundProps = $ReadOnly<{|
272
+ export type ImageBackgroundProps = $ReadOnly<{
273
273
  ...ImageProps,
274
274
  children?: Node,
275
275
 
@@ -293,4 +293,4 @@ export type ImageBackgroundProps = $ReadOnly<{|
293
293
  * See https://reactnative.dev/docs/imagebackground#imageref
294
294
  */
295
295
  imageRef?: RefSetter<ElementRef<Image>>,
296
- |}>;
296
+ }>;