@office-iss/react-native-win32 0.0.0-canary.295 → 0.0.0-canary.297

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 (143) hide show
  1. package/.flowconfig +3 -1
  2. package/CHANGELOG.json +37 -1
  3. package/CHANGELOG.md +25 -8
  4. package/Libraries/Animated/Animated.js +0 -1
  5. package/Libraries/Animated/Animated.js.flow +0 -1
  6. package/Libraries/Animated/AnimatedExports.js +0 -1
  7. package/Libraries/Animated/AnimatedExports.js.flow +1 -2
  8. package/Libraries/Animated/animations/Animation.js +5 -2
  9. package/Libraries/Animated/components/AnimatedScrollView.js +53 -52
  10. package/Libraries/Animated/createAnimatedComponent.js +37 -33
  11. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  12. package/Libraries/Animated/nodes/AnimatedProps.js +1 -1
  13. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  14. package/Libraries/AppState/AppState.js +6 -1
  15. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -18
  16. package/Libraries/Components/Button.js +2 -2
  17. package/Libraries/Components/Button.win32.js +2 -2
  18. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +2 -3
  19. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +2 -1
  20. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  21. package/Libraries/Components/Pressable/Pressable.js +9 -6
  22. package/Libraries/Components/Pressable/Pressable.win32.js +9 -6
  23. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  24. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +13 -1
  25. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
  26. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -5
  27. package/Libraries/Components/ScrollView/ScrollView.js +18 -12
  28. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  29. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  30. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  31. package/Libraries/Components/Switch/Switch.js +8 -2
  32. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -5
  33. package/Libraries/Components/TextInput/TextInput.flow.js +1 -5
  34. package/Libraries/Components/TextInput/TextInput.flow.win32.js +1 -5
  35. package/Libraries/Components/TextInput/TextInput.js +26 -25
  36. package/Libraries/Components/TextInput/TextInput.win32.js +27 -25
  37. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  38. package/Libraries/Components/Touchable/TouchableHighlight.js +9 -4
  39. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  40. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +2 -0
  41. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -3
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  43. package/Libraries/Components/View/View.js +111 -25
  44. package/Libraries/Components/View/ViewAccessibility.d.ts +1 -0
  45. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  46. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +49 -7
  47. package/Libraries/Core/InitializeCore.js +1 -22
  48. package/Libraries/Core/ReactNativeVersion.js +3 -2
  49. package/Libraries/Debugging/DebuggingOverlay.js +6 -8
  50. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  51. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  52. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -1
  53. package/Libraries/Image/AssetRegistry.js +4 -10
  54. package/Libraries/Image/AssetSourceResolver.js +17 -4
  55. package/Libraries/Image/Image.android.js +112 -106
  56. package/Libraries/Image/Image.ios.js +10 -2
  57. package/Libraries/Image/Image.win32.js +11 -3
  58. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  59. package/Libraries/Image/RelativeImageStub.js +1 -0
  60. package/Libraries/Lists/FlatList.d.ts +9 -5
  61. package/Libraries/Lists/FlatList.js +1 -1
  62. package/Libraries/Lists/SectionListModern.js +9 -3
  63. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  64. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  65. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
  66. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  67. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
  68. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  69. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  70. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  71. package/Libraries/ReactNative/RootTag.js +2 -2
  72. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  73. package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -25
  74. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +270 -0
  75. package/Libraries/StyleSheet/StyleSheetExports.js.flow +3 -1
  76. package/Libraries/StyleSheet/StyleSheetTypes.js +4 -3
  77. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  78. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  79. package/Libraries/StyleSheet/processFilter.js +0 -1
  80. package/Libraries/Text/Text.d.ts +7 -0
  81. package/Libraries/Text/Text.js +255 -244
  82. package/Libraries/Text/Text.win32.js +293 -284
  83. package/Libraries/Text/TextAncestor.js +3 -2
  84. package/Libraries/Text/TextProps.js +2 -34
  85. package/Libraries/Text/TextProps.win32.js +2 -33
  86. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  87. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  88. package/Libraries/Utilities/PlatformTypes.js +1 -1
  89. package/Libraries/vendor/core/ErrorUtils.js +28 -4
  90. package/index.js +0 -1
  91. package/jest/mockNativeComponent.js +2 -1
  92. package/jest/renderer.js +0 -1
  93. package/jest/resolver.js +31 -0
  94. package/jest/setup.js +1 -1
  95. package/overrides.json +27 -20
  96. package/package.json +13 -13
  97. package/src/private/animated/NativeAnimatedHelper.js +6 -1
  98. package/src/private/animated/NativeAnimatedHelper.win32.js +6 -1
  99. package/src/private/animated/createAnimatedPropsHook.js +11 -4
  100. package/src/private/animated/createAnimatedPropsMemoHook.js +0 -1
  101. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  102. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  103. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  104. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  105. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  106. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  107. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +8 -9
  108. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  109. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  110. package/src/private/featureflags/ReactNativeFeatureFlags.js +39 -4
  111. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -2
  112. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  113. package/src/private/styles/composeStyles.js +12 -5
  114. package/src/private/webapis/dom/events/Event.js +3 -0
  115. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  116. package/src/private/webapis/dom/nodes/ReactNativeElement.js +6 -23
  117. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +3 -1
  118. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  119. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +3 -0
  120. package/src/private/webapis/dom/oldstylecollections/NodeList.js +3 -0
  121. package/src/private/webapis/errors/DOMException.js +166 -0
  122. package/src/private/webapis/geometry/DOMRect.js +5 -0
  123. package/src/private/webapis/geometry/DOMRectList.js +3 -0
  124. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  125. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  126. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  127. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +80 -18
  128. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  129. package/src/private/webapis/mutationobserver/MutationObserver.js +23 -33
  130. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  131. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +56 -24
  132. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -1
  133. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  134. package/src/private/webapis/performance/Performance.js +19 -8
  135. package/src/private/webapis/performance/PerformanceEntry.js +4 -0
  136. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  137. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +2 -0
  138. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  139. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  140. package/src/types/globals.d.ts +42 -0
  141. package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +1 -0
  142. package/src-win/Libraries/Text/Text.d.ts +7 -0
  143. package/types/index.d.ts +1 -1
@@ -12,9 +12,7 @@
12
12
 
13
13
  import type {
14
14
  AccessibilityActionEvent,
15
- AccessibilityActionInfo,
16
- AccessibilityRole,
17
- AccessibilityState,
15
+ AccessibilityProps,
18
16
  Role,
19
17
  } from '../Components/View/ViewAccessibility';
20
18
  import type {ColorValue, TextStyleProp} from '../StyleSheet/StyleSheet';
@@ -124,20 +122,7 @@ export type TextPropsAndroid = {
124
122
  };
125
123
 
126
124
  type TextBaseProps = $ReadOnly<{
127
- /**
128
- * Indicates whether the view is an accessibility element.
129
- *
130
- * See https://reactnative.dev/docs/text#accessible
131
- */
132
- accessible?: ?boolean,
133
- accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
134
125
  onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,
135
- accessibilityHint?: ?Stringish,
136
- accessibilityLanguage?: ?Stringish,
137
- accessibilityLabel?: ?Stringish,
138
- accessibilityRole?: ?AccessibilityRole,
139
- accessibilityState?: ?AccessibilityState,
140
- 'aria-label'?: ?string,
141
126
 
142
127
  /**
143
128
  * Whether fonts should scale to respect Text Size accessibility settings.
@@ -152,24 +137,6 @@ type TextBaseProps = $ReadOnly<{
152
137
  *
153
138
  */
154
139
  android_hyphenationFrequency?: ?('normal' | 'none' | 'full'),
155
-
156
- /**
157
- * alias for accessibilityState
158
- *
159
- * see https://reactnative.dev/docs/accessibility#accessibilitystate
160
- */
161
- 'aria-busy'?: ?boolean,
162
- 'aria-checked'?: ?boolean | 'mixed',
163
- 'aria-disabled'?: ?boolean,
164
- 'aria-expanded'?: ?boolean,
165
- 'aria-selected'?: ?boolean,
166
-
167
- /**
168
- * Represents the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud.
169
- * This prop is listed for cross-platform reasons and has no real effect on Android or iOS.
170
- */
171
- 'aria-labelledby'?: ?string,
172
-
173
140
  children?: ?React.Node,
174
141
 
175
142
  /**
@@ -306,4 +273,5 @@ export type TextProps = $ReadOnly<{
306
273
  ...TextPropsIOS,
307
274
  ...TextPropsAndroid,
308
275
  ...TextBaseProps,
276
+ ...AccessibilityProps,
309
277
  }>;
@@ -12,9 +12,7 @@
12
12
 
13
13
  import type {
14
14
  AccessibilityActionEvent,
15
- AccessibilityActionInfo,
16
- AccessibilityRole,
17
- AccessibilityState,
15
+ AccessibilityProps,
18
16
  Role,
19
17
  } from '../Components/View/ViewAccessibility';
20
18
  import type {ColorValue, TextStyleProp} from '../StyleSheet/StyleSheet';
@@ -124,27 +122,13 @@ export type TextPropsAndroid = {
124
122
  };
125
123
 
126
124
  type TextBaseProps = $ReadOnly<{
127
- /**
128
- * Indicates whether the view is an accessibility element.
129
- *
130
- * See https://reactnative.dev/docs/text#accessible
131
- */
132
- accessible?: ?boolean,
133
- accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
134
125
  onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,
135
- accessibilityHint?: ?Stringish,
136
- accessibilityLanguage?: ?Stringish,
137
- accessibilityLabel?: ?Stringish,
138
- accessibilityRole?: ?AccessibilityRole,
139
- accessibilityState?: ?AccessibilityState,
140
- 'aria-label'?: ?string,
141
126
  accessibilityControls?: ?Stringish, // Win32
142
127
  accessibilityDescribedBy?: ?Stringish, // Win32
143
128
  accessibilityDescription?: ?Stringish, // Win32
144
129
  accessibilityLevel?: ?number, // Win32
145
130
  accessibilityPositionInSet?: ?number, // Win32
146
131
  accessibilitySetSize?: ?number, // Win32
147
-
148
132
  /**
149
133
  * Whether fonts should scale to respect Text Size accessibility settings.
150
134
  * The default is `true`.
@@ -158,17 +142,6 @@ type TextBaseProps = $ReadOnly<{
158
142
  *
159
143
  */
160
144
  android_hyphenationFrequency?: ?('normal' | 'none' | 'full'),
161
-
162
- /**
163
- * alias for accessibilityState
164
- *
165
- * see https://reactnative.dev/docs/accessibility#accessibilitystate
166
- */
167
- 'aria-busy'?: ?boolean,
168
- 'aria-checked'?: ?boolean | 'mixed',
169
- 'aria-disabled'?: ?boolean,
170
- 'aria-expanded'?: ?boolean,
171
- 'aria-selected'?: ?boolean,
172
145
  'aria-multiselectable'?: ?boolean, // Win32
173
146
  'aria-required'?: ?boolean, // Win32
174
147
  'aria-controls'?: ?Stringish, // Win32
@@ -177,11 +150,6 @@ type TextBaseProps = $ReadOnly<{
177
150
  'aria-level'?: ?number, // Win32
178
151
  'aria-posinset'?: ?number, // Win32
179
152
  'aria-setsize'?: ?number, // Win32
180
- /**
181
- * Represents the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud.
182
- * This prop is listed for cross-platform reasons and has no real effect on Android or iOS.
183
- */
184
- 'aria-labelledby'?: ?string,
185
153
 
186
154
  children?: ?React.Node,
187
155
 
@@ -319,4 +287,5 @@ export type TextProps = $ReadOnly<{
319
287
  ...TextPropsIOS,
320
288
  ...TextPropsAndroid,
321
289
  ...TextBaseProps,
290
+ ...AccessibilityProps,
322
291
  }>;
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow strict-local
8
8
  * @format
9
- * @oncall react_native
10
9
  */
11
10
 
12
11
  import type {HostInstance} from '../../src/private/types/HostInstance';
@@ -12,7 +12,7 @@ import type {IPerformanceLogger} from './createPerformanceLogger';
12
12
 
13
13
  import GlobalPerformanceLogger from './GlobalPerformanceLogger';
14
14
  import * as React from 'react';
15
- import {useContext} from 'react';
15
+ import {createContext, useContext} from 'react';
16
16
 
17
17
  /**
18
18
  * This is a React Context that provides a scoped instance of IPerformanceLogger.
@@ -21,7 +21,7 @@ import {useContext} from 'react';
21
21
  * See React docs about using Context: https://react.dev/docs/context.html
22
22
  */
23
23
  const PerformanceLoggerContext: React.Context<IPerformanceLogger> =
24
- React.createContext(GlobalPerformanceLogger);
24
+ createContext(GlobalPerformanceLogger);
25
25
  if (__DEV__) {
26
26
  PerformanceLoggerContext.displayName = 'PerformanceLoggerContext';
27
27
  }
@@ -18,7 +18,7 @@ export type PlatformOSType =
18
18
  | 'native';
19
19
 
20
20
  type OptionalPlatformSelectSpec<T> = {
21
- [_key in PlatformOSType]?: T,
21
+ [key in PlatformOSType]?: T, // eslint-disable-line no-unused-vars
22
22
  };
23
23
 
24
24
  export type PlatformSelectSpec<T> =
@@ -8,9 +8,33 @@
8
8
  * @flow strict
9
9
  */
10
10
 
11
- import type {ErrorUtilsT} from '@react-native/js-polyfills/error-guard';
12
-
13
- export type ErrorUtils = ErrorUtilsT;
11
+ // From @react-native/js-polyfills
12
+ type ErrorHandler = (error: mixed, isFatal: boolean) => void;
13
+ type Fn<Args: $ReadOnlyArray<mixed>, Return> = (...Args) => Return;
14
+ export type ErrorUtils = {
15
+ applyWithGuard<TArgs: $ReadOnlyArray<mixed>, TOut>(
16
+ fun: Fn<TArgs, TOut>,
17
+ context?: mixed,
18
+ args?: ?TArgs,
19
+ unused_onError?: null,
20
+ unused_name?: ?string,
21
+ ): ?TOut,
22
+ applyWithGuardIfNeeded<TArgs: $ReadOnlyArray<mixed>, TOut>(
23
+ fun: Fn<TArgs, TOut>,
24
+ context?: mixed,
25
+ args?: ?TArgs,
26
+ ): ?TOut,
27
+ getGlobalHandler(): ErrorHandler,
28
+ guard<TArgs: $ReadOnlyArray<mixed>, TOut>(
29
+ fun: Fn<TArgs, TOut>,
30
+ name?: ?string,
31
+ context?: mixed,
32
+ ): ?(...TArgs) => ?TOut,
33
+ inGuard(): boolean,
34
+ reportError(error: mixed): void,
35
+ reportFatalError(error: mixed): void,
36
+ setGlobalHandler(fun: ErrorHandler): void,
37
+ };
14
38
 
15
39
  /**
16
40
  * The particular require runtime that we are using looks for a global
@@ -24,4 +48,4 @@ export type ErrorUtils = ErrorUtilsT;
24
48
  * that use it aren't just using a global variable, so simply export the global
25
49
  * variable here. ErrorUtils is originally defined in a file named error-guard.js.
26
50
  */
27
- export default (global.ErrorUtils: ErrorUtilsT);
51
+ export default global.ErrorUtils as ErrorUtils;
package/index.js CHANGED
@@ -9,7 +9,6 @@
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
12
- /* eslint-disable lint/no-commonjs-exports */
13
12
 
14
13
  'use strict';
15
14
  'use client';
@@ -10,6 +10,7 @@
10
10
  'use strict';
11
11
 
12
12
  const React = require('react');
13
+ const {createElement} = require('react');
13
14
 
14
15
  let nativeTag = 1;
15
16
 
@@ -18,7 +19,7 @@ export default viewName => {
18
19
  _nativeTag = nativeTag++;
19
20
 
20
21
  render() {
21
- return React.createElement(viewName, this.props, this.props.children);
22
+ return createElement(viewName, this.props, this.props.children);
22
23
  }
23
24
 
24
25
  // The methods that exist on host components
package/jest/renderer.js CHANGED
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow
8
8
  * @format
9
- * @oncall react_native
10
9
  */
11
10
 
12
11
  import type {ReactTestRenderer} from 'react-test-renderer';
@@ -0,0 +1,31 @@
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
+ 'use strict';
11
+
12
+ module.exports = (path, options) => {
13
+ const originalPackageFilter = options.packageFilter;
14
+
15
+ return options.defaultResolver(path, {
16
+ ...options,
17
+ packageFilter: pkg => {
18
+ const filteredPkg = originalPackageFilter
19
+ ? originalPackageFilter(pkg)
20
+ : pkg;
21
+
22
+ // Temporarily allow any react-native subpaths to be resolved and
23
+ // mocked by Jest (backwards compatibility around RFC0894)
24
+ if (filteredPkg.name === 'react-native') {
25
+ delete filteredPkg.exports;
26
+ }
27
+
28
+ return filteredPkg;
29
+ },
30
+ });
31
+ };
package/jest/setup.js CHANGED
@@ -203,7 +203,7 @@ jest
203
203
  __esModule: true,
204
204
  default: jest.requireActual(
205
205
  '../Libraries/Components/RefreshControl/__mocks__/RefreshControlMock',
206
- ),
206
+ ).default,
207
207
  }))
208
208
  .mock('../Libraries/Components/ScrollView/ScrollView', () => {
209
209
  const baseComponent = mockComponent(
package/overrides.json CHANGED
@@ -7,19 +7,19 @@
7
7
  "**/__snapshots__/**",
8
8
  "src-win/rntypes/**"
9
9
  ],
10
- "baseVersion": "0.80.0-nightly-20250506-3ac16dd6a",
10
+ "baseVersion": "0.81.0-nightly-20250521-3cb70bb6a",
11
11
  "overrides": [
12
12
  {
13
13
  "type": "derived",
14
14
  "file": ".flowconfig",
15
15
  "baseFile": ".flowconfig",
16
- "baseHash": "70ed729d5f52c241530e8459cc40263d4e9fa9c0"
16
+ "baseHash": "dbea35126905a8314fa0a64ed2912896bc6d307b"
17
17
  },
18
18
  {
19
19
  "type": "derived",
20
20
  "file": "src-win/index.win32.js",
21
21
  "baseFile": "packages/react-native/index.js",
22
- "baseHash": "96361b83bfc122f1d78cc7d87ea0d7c3bfac138f"
22
+ "baseHash": "b447e699186ab3e95da9dc4520b9c2517776e723"
23
23
  },
24
24
  {
25
25
  "type": "platform",
@@ -60,7 +60,7 @@
60
60
  "type": "derived",
61
61
  "file": "src-win/Libraries/Components/Button.win32.js",
62
62
  "baseFile": "packages/react-native/Libraries/Components/Button.js",
63
- "baseHash": "4e77e13aa5774e813fbd874a13a920ea12e3ed91"
63
+ "baseHash": "6063d726e6255d1c55e07587f9ce09f1b7284301"
64
64
  },
65
65
  {
66
66
  "type": "platform",
@@ -85,14 +85,14 @@
85
85
  "type": "patch",
86
86
  "file": "src-win/Libraries/Components/Pressable/Pressable.win32.js",
87
87
  "baseFile": "packages/react-native/Libraries/Components/Pressable/Pressable.js",
88
- "baseHash": "96bdd4aebf4133fd2fe6d1b448f9d7b4cd3e8982",
88
+ "baseHash": "eff51d201199c68c6f7ca268e315e538dcc01ab9",
89
89
  "issue": 6240
90
90
  },
91
91
  {
92
92
  "type": "patch",
93
93
  "file": "src-win/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js",
94
94
  "baseFile": "packages/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js",
95
- "baseHash": "c96925930d9664306a8aef8b4102c43055ea03be"
95
+ "baseHash": "d1cc663442d184b62799b748c475a5a2c5c558c7"
96
96
  },
97
97
  {
98
98
  "type": "copy",
@@ -108,13 +108,13 @@
108
108
  "type": "derived",
109
109
  "file": "src-win/Libraries/Components/TextInput/TextInput.flow.win32.js",
110
110
  "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.flow.js",
111
- "baseHash": "f407548782cade71af32a52ecb440f72a403f06e"
111
+ "baseHash": "b611f4e98e9c7818dfac087e4f14384d3cc16b6a"
112
112
  },
113
113
  {
114
114
  "type": "derived",
115
115
  "file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
116
116
  "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
117
- "baseHash": "9965c0079652083ab549bc2799eb9528b56a1b2d"
117
+ "baseHash": "2a5835c5cbdb36bd110e26f9be737aaaeb1fd97c"
118
118
  },
119
119
  {
120
120
  "type": "patch",
@@ -153,7 +153,7 @@
153
153
  "type": "derived",
154
154
  "file": "src-win/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js",
155
155
  "baseFile": "packages/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js",
156
- "baseHash": "8706705c1f8d3dd5390ea631ce5ae60e300ae50d"
156
+ "baseHash": "1cad0522ba348d657e7857bf84628d88e776170b"
157
157
  },
158
158
  {
159
159
  "type": "platform",
@@ -177,7 +177,7 @@
177
177
  "type": "patch",
178
178
  "file": "src-win/Libraries/Components/View/View.win32.js",
179
179
  "baseFile": "packages/react-native/Libraries/Components/View/View.js",
180
- "baseHash": "2dd3e58cf6c4bc0882550eedd8150435972365eb"
180
+ "baseHash": "121c2126d26c94c8e508e3fb19ffe33f7be814b1"
181
181
  },
182
182
  {
183
183
  "type": "derived",
@@ -218,7 +218,7 @@
218
218
  "type": "patch",
219
219
  "file": "src-win/Libraries/Core/Devtools/loadBundleFromServer.win32.js",
220
220
  "baseFile": "packages/react-native/Libraries/Core/Devtools/loadBundleFromServer.js",
221
- "baseHash": "e0158fd16d4a787e5a94d69e2b7a721e81b7c3da",
221
+ "baseHash": "ac08c96a4bebd677597a40ea1525a2d5d1ee8742",
222
222
  "issue": 12704
223
223
  },
224
224
  {
@@ -236,7 +236,7 @@
236
236
  "type": "derived",
237
237
  "file": "src-win/Libraries/Image/Image.win32.js",
238
238
  "baseFile": "packages/react-native/Libraries/Image/Image.ios.js",
239
- "baseHash": "c0bc913aa95b6d1309ba44ef7968ba58fc488427",
239
+ "baseHash": "5d62f4a6c4edfe3007eb3b80704a1dfb68e5ff8a",
240
240
  "issue": 4320
241
241
  },
242
242
  {
@@ -303,13 +303,13 @@
303
303
  "type": "derived",
304
304
  "file": "src-win/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js",
305
305
  "baseFile": "packages/react-native/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js",
306
- "baseHash": "3a3d7da499937cce35c9bd17a11f10b2eeac04cc"
306
+ "baseHash": "cdf958aebabbe9067d34a2df3e6f2fe7ce09f51e"
307
307
  },
308
308
  {
309
309
  "type": "derived",
310
310
  "file": "src-win/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js",
311
311
  "baseFile": "packages/react-native/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js",
312
- "baseHash": "b355418205aa52cf33fb7e4d521b26083eada49d"
312
+ "baseHash": "987653809d7838bb80d3a975abc9f0fd3bc13d93"
313
313
  },
314
314
  {
315
315
  "type": "derived",
@@ -390,6 +390,13 @@
390
390
  "baseFile": "packages/react-native/Libraries/ReactNative/PaperUIManager.js",
391
391
  "baseHash": "7a14c3d42ba7442848bd90329f6d31bda323c6d4"
392
392
  },
393
+ {
394
+ "type": "patch",
395
+ "file": "src-win/Libraries/Renderer/shims/ReactNativeTypes.win32.js",
396
+ "baseFile": "packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js",
397
+ "baseHash": "4e0c2fba71006410b3effa3979aea91e0f711144",
398
+ "issue": 0
399
+ },
393
400
  {
394
401
  "type": "derived",
395
402
  "file": "src-win/Libraries/Settings/Settings.win32.js",
@@ -412,13 +419,13 @@
412
419
  "type": "derived",
413
420
  "file": "src-win/Libraries/Text/Text.d.ts",
414
421
  "baseFile": "packages/react-native/Libraries/Text/Text.d.ts",
415
- "baseHash": "b5f44957bc61497fcb7203934bdbc6ca9725cf42"
422
+ "baseHash": "d3807571f477ef8ba4bb20c1ee899b1a5814941d"
416
423
  },
417
424
  {
418
425
  "type": "derived",
419
426
  "file": "src-win/Libraries/Text/Text.win32.js",
420
427
  "baseFile": "packages/react-native/Libraries/Text/Text.js",
421
- "baseHash": "1f802db19830e468b84640fc5c7740a11e154250"
428
+ "baseHash": "108e59816ed3b3c8183d0687a66088755580c00d"
422
429
  },
423
430
  {
424
431
  "type": "derived",
@@ -431,7 +438,7 @@
431
438
  "type": "derived",
432
439
  "file": "src-win/Libraries/Text/TextProps.win32.js",
433
440
  "baseFile": "packages/react-native/Libraries/Text/TextProps.js",
434
- "baseHash": "d31f973c14140792d9d28d208fca15d092a8a4e2"
441
+ "baseHash": "6ee62a1b3a4384c2b5bd1dd10a13664c72e5dc88"
435
442
  },
436
443
  {
437
444
  "type": "patch",
@@ -477,7 +484,7 @@
477
484
  "type": "patch",
478
485
  "file": "src-win/Libraries/Utilities/PlatformTypes.js",
479
486
  "baseFile": "packages/react-native/Libraries/Utilities/PlatformTypes.js",
480
- "baseHash": "0bd36210528f74f9081d858c9ab64ead92c54950",
487
+ "baseHash": "8beb4d8d786f33f9eeb6edcff939c38765e19055",
481
488
  "issue": 14686
482
489
  },
483
490
  {
@@ -490,14 +497,14 @@
490
497
  "type": "patch",
491
498
  "file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js",
492
499
  "baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js",
493
- "baseHash": "3247a8e436a7beeda45ce7d77343229b5204cbfc",
500
+ "baseHash": "e897f1bd33ed982044b97a01d9f606b9ebcd4505",
494
501
  "issue": 11041
495
502
  },
496
503
  {
497
504
  "type": "copy",
498
505
  "file": "src-win/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js",
499
506
  "baseFile": "packages/react-native/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js",
500
- "baseHash": "2d33789b0c7a45996dc23f26c4b09fb2026a9285"
507
+ "baseHash": "f2cc01b07b779b75002daec9c2761616ad01f4ca"
501
508
  },
502
509
  {
503
510
  "type": "derived",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.0.0-canary.295",
3
+ "version": "0.0.0-canary.297",
4
4
  "description": "Implementation of react native on top of Office's Win32 platform.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,13 +30,13 @@
30
30
  "@react-native-community/cli-platform-android": "17.0.0",
31
31
  "@react-native-community/cli-platform-ios": "17.0.0",
32
32
  "@react-native/assets": "1.0.0",
33
- "@react-native/assets-registry": "0.80.0-nightly-20250506-3ac16dd6a",
34
- "@react-native/codegen": "0.80.0-nightly-20250506-3ac16dd6a",
35
- "@react-native/community-cli-plugin": "0.80.0-nightly-20250506-3ac16dd6a",
36
- "@react-native/gradle-plugin": "0.80.0-nightly-20250506-3ac16dd6a",
37
- "@react-native/js-polyfills": "0.80.0-nightly-20250506-3ac16dd6a",
38
- "@react-native/normalize-colors": "0.80.0-nightly-20250506-3ac16dd6a",
39
- "@react-native/virtualized-lists": "0.80.0-nightly-20250506-3ac16dd6a",
33
+ "@react-native/assets-registry": "0.81.0-nightly-20250521-3cb70bb6a",
34
+ "@react-native/codegen": "0.81.0-nightly-20250521-3cb70bb6a",
35
+ "@react-native/community-cli-plugin": "0.81.0-nightly-20250521-3cb70bb6a",
36
+ "@react-native/gradle-plugin": "0.81.0-nightly-20250521-3cb70bb6a",
37
+ "@react-native/js-polyfills": "0.81.0-nightly-20250521-3cb70bb6a",
38
+ "@react-native/normalize-colors": "0.81.0-nightly-20250521-3cb70bb6a",
39
+ "@react-native/virtualized-lists": "0.81.0-nightly-20250521-3cb70bb6a",
40
40
  "abort-controller": "^3.0.0",
41
41
  "anser": "^1.4.9",
42
42
  "ansi-regex": "^5.0.0",
@@ -72,7 +72,7 @@
72
72
  "devDependencies": {
73
73
  "@babel/core": "^7.25.2",
74
74
  "@babel/eslint-parser": "^7.25.1",
75
- "@react-native/metro-config": "0.80.0-nightly-20250506-3ac16dd6a",
75
+ "@react-native/metro-config": "0.81.0-nightly-20250521-3cb70bb6a",
76
76
  "@rnw-scripts/babel-react-native-config": "0.0.0",
77
77
  "@rnw-scripts/eslint-config": "1.2.37",
78
78
  "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.41",
@@ -83,19 +83,19 @@
83
83
  "@types/prop-types": "15.7.1",
84
84
  "@types/react": "^19.0.0",
85
85
  "eslint": "^8.19.0",
86
- "flow-bin": "^0.269.0",
86
+ "flow-bin": "^0.271.0",
87
87
  "jscodeshift": "^0.14.0",
88
88
  "just-scripts": "^1.3.3",
89
89
  "prettier": "2.8.8",
90
90
  "react": "19.1.0",
91
- "react-native": "0.80.0-nightly-20250506-3ac16dd6a",
92
- "react-native-platform-override": "^1.9.57",
91
+ "react-native": "0.81.0-nightly-20250521-3cb70bb6a",
92
+ "react-native-platform-override": "^1.9.58",
93
93
  "typescript": "5.0.4"
94
94
  },
95
95
  "peerDependencies": {
96
96
  "@types/react": "^19.1.0",
97
97
  "react": "^19.1.0",
98
- "react-native": "0.80.0-nightly-20250506-3ac16dd6a"
98
+ "react-native": "0.81.0-nightly-20250521-3cb70bb6a"
99
99
  },
100
100
  "beachball": {
101
101
  "defaultNpmTag": "canary",
@@ -57,7 +57,7 @@ const eventListenerAnimationFinishedCallbacks: {
57
57
  let globalEventEmitterGetValueListener: ?EventSubscription = null;
58
58
  let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
59
59
 
60
- const shouldSignalBatch =
60
+ const shouldSignalBatch: boolean =
61
61
  ReactNativeFeatureFlags.animatedShouldSignalBatch() ||
62
62
  ReactNativeFeatureFlags.cxxNativeAnimatedEnabled();
63
63
 
@@ -97,6 +97,10 @@ function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
97
97
  // is possible because # arguments is fixed for each operation. For more
98
98
  // details, see `NativeAnimatedModule.queueAndExecuteBatchedOperations`.
99
99
  singleOpQueue.push(operationID, ...args);
100
+ if (shouldSignalBatch) {
101
+ clearImmediate(flushQueueImmediate);
102
+ flushQueueImmediate = setImmediate(API.flushQueue);
103
+ }
100
104
  };
101
105
  }
102
106
  } else {
@@ -436,6 +440,7 @@ export default {
436
440
  generateNewAnimationId,
437
441
  assertNativeAnimatedModule,
438
442
  shouldUseNativeDriver,
443
+ shouldSignalBatch,
439
444
  transformDataType,
440
445
  // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression
441
446
  // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression
@@ -57,7 +57,7 @@ const eventListenerAnimationFinishedCallbacks: {
57
57
  let globalEventEmitterGetValueListener: ?EventSubscription = null;
58
58
  let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
59
59
 
60
- const shouldSignalBatch =
60
+ const shouldSignalBatch: boolean =
61
61
  ReactNativeFeatureFlags.animatedShouldSignalBatch() ||
62
62
  ReactNativeFeatureFlags.cxxNativeAnimatedEnabled();
63
63
 
@@ -97,6 +97,10 @@ function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
97
97
  // is possible because # arguments is fixed for each operation. For more
98
98
  // details, see `NativeAnimatedModule.queueAndExecuteBatchedOperations`.
99
99
  singleOpQueue.push(operationID, ...args);
100
+ if (shouldSignalBatch) {
101
+ clearImmediate(flushQueueImmediate);
102
+ flushQueueImmediate = setImmediate(API.flushQueue);
103
+ }
100
104
  };
101
105
  }
102
106
  } else {
@@ -439,6 +443,7 @@ export default {
439
443
  generateNewAnimationId,
440
444
  assertNativeAnimatedModule,
441
445
  shouldUseNativeDriver,
446
+ shouldSignalBatch,
442
447
  transformDataType,
443
448
  // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression
444
449
  // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression
@@ -66,9 +66,13 @@ export default function createAnimatedPropsHook(
66
66
  );
67
67
 
68
68
  useEffect(() => {
69
- // If multiple components call `flushQueue`, the first one will flush the
70
- // queue and subsequent ones will do nothing.
71
- NativeAnimatedHelper.API.flushQueue();
69
+ // Animated queue flush is handled deterministically in setImmediate for the following feature flags:
70
+ // animatedShouldSignalBatch, cxxNativeAnimatedEnabled
71
+ if (!NativeAnimatedHelper.shouldSignalBatch) {
72
+ // If multiple components call `flushQueue`, the first one will flush the
73
+ // queue and subsequent ones will do nothing.
74
+ NativeAnimatedHelper.API.flushQueue();
75
+ }
72
76
  let drivenAnimationEndedListener: ?EventSubscription = null;
73
77
  if (node.__isNative) {
74
78
  drivenAnimationEndedListener =
@@ -128,7 +132,10 @@ export default function createAnimatedPropsHook(
128
132
  if (node.__isNative) {
129
133
  // Check 2: this is an animation driven by native.
130
134
  // In native driven animations, this callback is only called once the animation completes.
131
- if (isFabricNode) {
135
+ if (
136
+ isFabricNode &&
137
+ !ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
138
+ ) {
132
139
  // Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
133
140
  // Must not be called in Paper.
134
141
  scheduleUpdate();
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow strict-local
8
8
  * @format
9
- * @oncall react_native
10
9
  */
11
10
 
12
11
  import type AnimatedProps from '../../../Libraries/Animated/nodes/AnimatedProps';
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow strict-local
8
8
  * @format
9
- * @oncall react_native
10
9
  */
11
10
 
12
11
  import type {ViewProps} from '../../../../Libraries/Components/View/ViewPropTypes';
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow strict-local
8
8
  * @format
9
- * @oncall react_native
10
9
  */
11
10
 
12
11
  import type {ScrollViewNativeProps} from '../../../../Libraries/Components/ScrollView/ScrollViewNativeComponentType';
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @flow strict-local
8
8
  * @format
9
- * @oncall react_native
10
9
  */
11
10
 
12
11
  import type {ScrollViewNativeProps} from '../../../../Libraries/Components/ScrollView/ScrollViewNativeComponentType';