@office-iss/react-native-win32 0.0.0-canary.288 → 0.0.0-canary.289

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 (59) hide show
  1. package/.flowconfig +3 -2
  2. package/CHANGELOG.json +22 -1
  3. package/CHANGELOG.md +16 -7
  4. package/Libraries/Alert/Alert.d.ts +4 -1
  5. package/Libraries/Alert/Alert.js +3 -0
  6. package/Libraries/Animated/Easing.js +13 -15
  7. package/Libraries/Animated/createAnimatedComponent.js +24 -12
  8. package/Libraries/Animated/nodes/AnimatedNode.js +2 -1
  9. package/Libraries/Animated/nodes/AnimatedProps.js +18 -1
  10. package/Libraries/Animated/nodes/AnimatedValue.js +6 -2
  11. package/Libraries/Blob/URL.js +23 -10
  12. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +2 -1
  13. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  14. package/Libraries/Components/TextInput/TextInput.d.ts +6 -0
  15. package/Libraries/Components/TextInput/TextInput.flow.js +36 -3
  16. package/Libraries/Components/TextInput/TextInput.js +101 -110
  17. package/Libraries/Components/TextInput/TextInput.win32.js +102 -111
  18. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +2 -1
  19. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  20. package/Libraries/Core/ReactNativeVersion.js +2 -2
  21. package/Libraries/Image/Tests/ImageWin32Test.d.ts +2 -1
  22. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  23. package/Libraries/Interaction/TaskQueue.js +1 -0
  24. package/Libraries/Modal/Modal.js +30 -4
  25. package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
  26. package/Libraries/ReactNative/AppRegistry.js +2 -322
  27. package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
  28. package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
  29. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
  30. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +6 -0
  31. package/Libraries/StyleSheet/StyleSheet.js +5 -197
  32. package/Libraries/StyleSheet/StyleSheet.js.flow +166 -0
  33. package/Libraries/StyleSheet/{StyleSheet.win32.js → StyleSheetExports.js} +2 -151
  34. package/Libraries/StyleSheet/StyleSheetExports.js.flow +110 -0
  35. package/Libraries/StyleSheet/StyleSheetTypes.js +42 -18
  36. package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
  37. package/Libraries/{Modal/ModalInjection.js → Types/CodegenTypesNamespace.js} +4 -5
  38. package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
  39. package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
  40. package/Libraries/vendor/emitter/EventEmitter.js +6 -2
  41. package/flow/global.js +1 -0
  42. package/flow/jest.js +4 -2
  43. package/index.js +47 -43
  44. package/index.win32.js +60 -55
  45. package/overrides.json +8 -16
  46. package/package.json +14 -14
  47. package/src/private/animated/NativeAnimatedHelper.js +18 -7
  48. package/src/private/animated/NativeAnimatedHelper.win32.js +18 -7
  49. package/src/private/animated/createAnimatedPropsHook.js +34 -15
  50. package/src/private/featureflags/ReactNativeFeatureFlags.js +14 -31
  51. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +9 -1
  52. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -3
  53. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
  54. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
  55. package/src/types/third_party/event-target-shim.d.ts +392 -0
  56. package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +7 -7
  57. package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +3 -3
  58. package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +1 -1
  59. package/types/index.d.ts +4 -0
package/flow/jest.js CHANGED
@@ -1040,10 +1040,12 @@ declare var describe: {
1040
1040
  * @param {table} table of Test
1041
1041
  */
1042
1042
  each(
1043
- ...table: Array<Array<mixed> | mixed> | [Array<string>, string]
1043
+ ...table:
1044
+ | $ReadOnlyArray<$ReadOnlyArray<mixed> | mixed>
1045
+ | [$ReadOnlyArray<string>, string]
1044
1046
  ): (
1045
1047
  name: JestTestName,
1046
- fn?: (...args: Array<any>) => ?Promise<mixed>,
1048
+ fn?: (...args: $ReadOnlyArray<any>) => ?Promise<mixed>,
1047
1049
  timeout?: number,
1048
1050
  ) => void,
1049
1051
  ...
package/index.js CHANGED
@@ -31,14 +31,7 @@ const warnOnce = require('./Libraries/Utilities/warnOnce').default;
31
31
  const invariant = require('invariant');
32
32
 
33
33
  module.exports = {
34
- get registerCallableModule() {
35
- return require('./Libraries/Core/registerCallableModule').default;
36
- },
37
34
  // #region Components
38
- get AccessibilityInfo() {
39
- return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')
40
- .default;
41
- },
42
35
  get ActivityIndicator() {
43
36
  return require('./Libraries/Components/ActivityIndicator/ActivityIndicator')
44
37
  .default;
@@ -63,14 +56,14 @@ module.exports = {
63
56
  return require('./Libraries/Components/TextInput/InputAccessoryView')
64
57
  .default;
65
58
  },
66
- get experimental_LayoutConformance() {
67
- return require('./Libraries/Components/LayoutConformance/LayoutConformance')
68
- .default;
69
- },
70
59
  get KeyboardAvoidingView() {
71
60
  return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')
72
61
  .default;
73
62
  },
63
+ get experimental_LayoutConformance() {
64
+ return require('./Libraries/Components/LayoutConformance/LayoutConformance')
65
+ .default;
66
+ },
74
67
  get Modal() {
75
68
  return require('./Libraries/Modal/Modal').default;
76
69
  },
@@ -141,6 +134,10 @@ module.exports = {
141
134
  },
142
135
  // #endregion
143
136
  // #region APIs
137
+ get AccessibilityInfo() {
138
+ return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')
139
+ .default;
140
+ },
144
141
  get ActionSheetIOS() {
145
142
  return require('./Libraries/ActionSheetIOS/ActionSheetIOS').default;
146
143
  },
@@ -156,7 +153,7 @@ module.exports = {
156
153
  return require('./Libraries/Utilities/Appearance');
157
154
  },
158
155
  get AppRegistry() {
159
- return require('./Libraries/ReactNative/AppRegistry').default;
156
+ return require('./Libraries/ReactNative/AppRegistry').AppRegistry;
160
157
  },
161
158
  get AppState() {
162
159
  return require('./Libraries/AppState/AppState').default;
@@ -173,6 +170,15 @@ module.exports = {
173
170
  );
174
171
  return require('./Libraries/Components/Clipboard/Clipboard').default;
175
172
  },
173
+ get codegenNativeCommands() {
174
+ return require('./Libraries/Utilities/codegenNativeCommands').default;
175
+ },
176
+ get codegenNativeComponent() {
177
+ return require('./Libraries/Utilities/codegenNativeComponent').default;
178
+ },
179
+ get DeviceEventEmitter() {
180
+ return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;
181
+ },
176
182
  get DeviceInfo() {
177
183
  return require('./Libraries/Utilities/DeviceInfo').default;
178
184
  },
@@ -185,6 +191,10 @@ module.exports = {
185
191
  get Dimensions() {
186
192
  return require('./Libraries/Utilities/Dimensions').default;
187
193
  },
194
+ get DynamicColorIOS() {
195
+ return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')
196
+ .DynamicColorIOS;
197
+ },
188
198
  get Easing() {
189
199
  return require('./Libraries/Animated/Easing').default;
190
200
  },
@@ -209,6 +219,9 @@ module.exports = {
209
219
  get LogBox() {
210
220
  return require('./Libraries/LogBox/LogBox').default;
211
221
  },
222
+ get NativeAppEventEmitter() {
223
+ return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter').default;
224
+ },
212
225
  get NativeDialogManagerAndroid() {
213
226
  return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')
214
227
  .default;
@@ -216,6 +229,9 @@ module.exports = {
216
229
  get NativeEventEmitter() {
217
230
  return require('./Libraries/EventEmitter/NativeEventEmitter').default;
218
231
  },
232
+ get NativeModules() {
233
+ return require('./Libraries/BatchedBridge/NativeModules').default;
234
+ },
219
235
  get Networking() {
220
236
  return require('./Libraries/Network/RCTNetworking').default;
221
237
  },
@@ -228,6 +244,13 @@ module.exports = {
228
244
  get PixelRatio() {
229
245
  return require('./Libraries/Utilities/PixelRatio').default;
230
246
  },
247
+ get Platform() {
248
+ return require('./Libraries/Utilities/Platform').default;
249
+ },
250
+ get PlatformColor() {
251
+ return require('./Libraries/StyleSheet/PlatformColorValueTypes')
252
+ .PlatformColor;
253
+ },
231
254
  get PushNotificationIOS() {
232
255
  warnOnce(
233
256
  'pushNotificationIOS-moved',
@@ -238,6 +261,18 @@ module.exports = {
238
261
  return require('./Libraries/PushNotificationIOS/PushNotificationIOS')
239
262
  .default;
240
263
  },
264
+ get processColor() {
265
+ return require('./Libraries/StyleSheet/processColor').default;
266
+ },
267
+ get registerCallableModule() {
268
+ return require('./Libraries/Core/registerCallableModule').default;
269
+ },
270
+ get requireNativeComponent() {
271
+ return require('./Libraries/ReactNative/requireNativeComponent').default;
272
+ },
273
+ get RootTagContext() {
274
+ return require('./Libraries/ReactNative/RootTag').RootTagContext;
275
+ },
241
276
  get Settings() {
242
277
  return require('./Libraries/Settings/Settings').default;
243
278
  },
@@ -279,37 +314,6 @@ module.exports = {
279
314
  return require('./Libraries/Vibration/Vibration').default;
280
315
  },
281
316
  // #endregion
282
- // #region Plugins
283
- get DeviceEventEmitter() {
284
- return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;
285
- },
286
- get DynamicColorIOS() {
287
- return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')
288
- .DynamicColorIOS;
289
- },
290
- get NativeAppEventEmitter() {
291
- return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter').default;
292
- },
293
- get NativeModules() {
294
- return require('./Libraries/BatchedBridge/NativeModules').default;
295
- },
296
- get Platform() {
297
- return require('./Libraries/Utilities/Platform').default;
298
- },
299
- get PlatformColor() {
300
- return require('./Libraries/StyleSheet/PlatformColorValueTypes')
301
- .PlatformColor;
302
- },
303
- get processColor() {
304
- return require('./Libraries/StyleSheet/processColor').default;
305
- },
306
- get requireNativeComponent() {
307
- return require('./Libraries/ReactNative/requireNativeComponent').default;
308
- },
309
- get RootTagContext() {
310
- return require('./Libraries/ReactNative/RootTag').RootTagContext;
311
- },
312
- // #endregion
313
317
  } as ReactNativePublicAPI;
314
318
 
315
319
  if (__DEV__) {
package/index.win32.js CHANGED
@@ -24,6 +24,8 @@ import typeof useAnimatedValue from './Libraries/Animated/useAnimatedValue';
24
24
  import typeof AppState from './Libraries/AppState/AppState';
25
25
  import typeof FocusManager from './Libraries/Utilities/FocusManager';
26
26
  import typeof NativeModules from './Libraries/BatchedBridge/NativeModules';
27
+ import typeof codegenNativeCommands from './Libraries/Utilities/codegenNativeCommands';
28
+ import typeof codegenNativeComponent from './Libraries/Utilities/codegenNativeComponent';
27
29
  // Components
28
30
  import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';
29
31
  import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';
@@ -70,7 +72,7 @@ import typeof Networking from './Libraries/Network/RCTNetworking';
70
72
  import typeof * as Systrace from './Libraries/Performance/Systrace';
71
73
  import typeof PermissionsAndroid from './Libraries/PermissionsAndroid/PermissionsAndroid';
72
74
  import typeof PushNotificationIOS from './Libraries/PushNotificationIOS/PushNotificationIOS';
73
- import typeof AppRegistry from './Libraries/ReactNative/AppRegistry';
75
+ import typeof {AppRegistry} from './Libraries/ReactNative/AppRegistry';
74
76
  import typeof I18nManager from './Libraries/ReactNative/I18nManager';
75
77
  import typeof {RootTagContext} from './Libraries/ReactNative/RootTag';
76
78
  import typeof UIManager from './Libraries/ReactNative/UIManager';
@@ -108,14 +110,6 @@ const invariant = require('invariant');
108
110
  import typeof {ColorGradientWin32} from './Libraries/StyleSheet/PlatformColorValueTypesWin32';
109
111
 
110
112
  module.exports = {
111
- // Components
112
- get AccessibilityInfo(): AccessibilityInfo {
113
- return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')
114
- .default;
115
- },
116
- get registerCallableModule(): registerCallableModule {
117
- return require('./Libraries/Core/registerCallableModule').default;
118
- },
119
113
  // #region Components
120
114
  get ActivityIndicator(): ActivityIndicator {
121
115
  return require('./Libraries/Components/ActivityIndicator/ActivityIndicator')
@@ -142,14 +136,14 @@ module.exports = {
142
136
  return require('./Libraries/Components/TextInput/InputAccessoryView')
143
137
  .default;
144
138
  },
145
- get experimental_LayoutConformance(): LayoutConformance {
146
- return require('./Libraries/Components/LayoutConformance/LayoutConformance')
147
- .default;
148
- },
149
139
  get KeyboardAvoidingView(): KeyboardAvoidingView {
150
140
  return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')
151
141
  .default;
152
142
  },
143
+ get experimental_LayoutConformance(): LayoutConformance {
144
+ return require('./Libraries/Components/LayoutConformance/LayoutConformance')
145
+ .default;
146
+ },
153
147
  get Modal(): Modal {
154
148
  return require('./Libraries/Modal/Modal').default;
155
149
  },
@@ -221,8 +215,12 @@ module.exports = {
221
215
  get VirtualizedSectionList(): VirtualizedSectionList {
222
216
  return require('./Libraries/Lists/VirtualizedSectionList').default;
223
217
  },
224
-
225
- // APIs
218
+ // #endregion
219
+ // #region APIs
220
+ get AccessibilityInfo(): AccessibilityInfo {
221
+ return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')
222
+ .default;
223
+ },
226
224
  get ActionSheetIOS(): ActionSheetIOS {
227
225
  return require('./Libraries/ActionSheetIOS/ActionSheetIOS').default;
228
226
  },
@@ -240,7 +238,7 @@ module.exports = {
240
238
  return require('./Libraries/Utilities/Appearance');
241
239
  },
242
240
  get AppRegistry(): AppRegistry {
243
- return require('./Libraries/ReactNative/AppRegistry').default;
241
+ return require('./Libraries/ReactNative/AppRegistry').AppRegistry;
244
242
  },
245
243
  get AppState(): AppState {
246
244
  return require('./Libraries/AppState/AppState').default;
@@ -257,6 +255,15 @@ module.exports = {
257
255
  );
258
256
  return require('./Libraries/Components/Clipboard/Clipboard').default;
259
257
  },
258
+ get codegenNativeCommands(): codegenNativeCommands<any> {
259
+ return require('./Libraries/Utilities/codegenNativeCommands').default;
260
+ },
261
+ get codegenNativeComponent(): codegenNativeComponent<any> {
262
+ return require('./Libraries/Utilities/codegenNativeComponent').default;
263
+ },
264
+ get DeviceEventEmitter(): RCTDeviceEventEmitter {
265
+ return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;
266
+ },
260
267
  get DeviceInfo(): DeviceInfo {
261
268
  return require('./Libraries/Utilities/DeviceInfo').default;
262
269
  },
@@ -269,6 +276,10 @@ module.exports = {
269
276
  get Dimensions(): Dimensions {
270
277
  return require('./Libraries/Utilities/Dimensions').default;
271
278
  },
279
+ get DynamicColorIOS(): DynamicColorIOS {
280
+ return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')
281
+ .DynamicColorIOS;
282
+ },
272
283
  get Easing(): Easing {
273
284
  return require('./Libraries/Animated/Easing').default;
274
285
  },
@@ -296,6 +307,9 @@ module.exports = {
296
307
  get LogBox(): LogBox {
297
308
  return require('./Libraries/LogBox/LogBox').default;
298
309
  },
310
+ get NativeAppEventEmitter(): RCTNativeAppEventEmitter {
311
+ return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter').default;
312
+ },
299
313
  get NativeDialogManagerAndroid(): NativeDialogManagerAndroid {
300
314
  return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')
301
315
  .default;
@@ -303,6 +317,9 @@ module.exports = {
303
317
  get NativeEventEmitter(): NativeEventEmitter {
304
318
  return require('./Libraries/EventEmitter/NativeEventEmitter').default;
305
319
  },
320
+ get NativeModules(): NativeModules {
321
+ return require('./Libraries/BatchedBridge/NativeModules').default;
322
+ },
306
323
  get Networking(): Networking {
307
324
  return require('./Libraries/Network/RCTNetworking').default;
308
325
  },
@@ -315,6 +332,13 @@ module.exports = {
315
332
  get PixelRatio(): PixelRatio {
316
333
  return require('./Libraries/Utilities/PixelRatio').default;
317
334
  },
335
+ get Platform(): Platform {
336
+ return require('./Libraries/Utilities/Platform').default;
337
+ },
338
+ get PlatformColor(): PlatformColor {
339
+ return require('./Libraries/StyleSheet/PlatformColorValueTypes')
340
+ .PlatformColor;
341
+ },
318
342
  get PushNotificationIOS(): PushNotificationIOS {
319
343
  warnOnce(
320
344
  'pushNotificationIOS-moved',
@@ -326,6 +350,20 @@ module.exports = {
326
350
  .default;
327
351
  },
328
352
  // $FlowFixMe[value-as-type]
353
+ get processColor(): processColor {
354
+ return require('./Libraries/StyleSheet/processColor').default;
355
+ },
356
+ get registerCallableModule(): registerCallableModule {
357
+ return require('./Libraries/Core/registerCallableModule').default;
358
+ },
359
+ get requireNativeComponent(): <T: {...}>(
360
+ uiViewClassName: string,
361
+ ) => HostComponent<T> {
362
+ return require('./Libraries/ReactNative/requireNativeComponent').default;
363
+ },
364
+ get RootTagContext(): RootTagContext {
365
+ return require('./Libraries/ReactNative/RootTag').RootTagContext;
366
+ },
329
367
  get Settings(): Settings {
330
368
  return require('./Libraries/Settings/Settings').default;
331
369
  },
@@ -355,6 +393,12 @@ module.exports = {
355
393
  return require('./Libraries/ReactNative/RendererProxy')
356
394
  .unstable_batchedUpdates;
357
395
  },
396
+ get unstable_enableLogBox(): () => void {
397
+ return () =>
398
+ console.warn(
399
+ 'LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.',
400
+ );
401
+ },
358
402
  get useAnimatedValue(): useAnimatedValue {
359
403
  return require('./Libraries/Animated/useAnimatedValue').default;
360
404
  },
@@ -370,45 +414,6 @@ module.exports = {
370
414
  get Vibration(): Vibration {
371
415
  return require('./Libraries/Vibration/Vibration').default;
372
416
  },
373
-
374
- // Plugins
375
- get DeviceEventEmitter(): RCTDeviceEventEmitter {
376
- return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;
377
- },
378
- get DynamicColorIOS(): DynamicColorIOS {
379
- return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')
380
- .DynamicColorIOS;
381
- },
382
- get NativeAppEventEmitter(): RCTNativeAppEventEmitter {
383
- return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter').default;
384
- },
385
- get NativeModules(): NativeModules {
386
- return require('./Libraries/BatchedBridge/NativeModules').default;
387
- },
388
- get Platform(): Platform {
389
- return require('./Libraries/Utilities/Platform').default;
390
- },
391
- get PlatformColor(): PlatformColor {
392
- return require('./Libraries/StyleSheet/PlatformColorValueTypes')
393
- .PlatformColor;
394
- },
395
- get processColor(): processColor {
396
- return require('./Libraries/StyleSheet/processColor').default;
397
- },
398
- get requireNativeComponent(): <T: {...}>(
399
- uiViewClassName: string,
400
- ) => HostComponent<T> {
401
- return require('./Libraries/ReactNative/requireNativeComponent').default;
402
- },
403
- get RootTagContext(): RootTagContext {
404
- return require('./Libraries/ReactNative/RootTag').RootTagContext;
405
- },
406
- get unstable_enableLogBox(): () => void {
407
- return () =>
408
- console.warn(
409
- 'LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.',
410
- );
411
- },
412
417
  // Win32 Types (Typescript components exported as flow any)
413
418
  get ColorGradientWin32(): ColorGradientWin32 {
414
419
  return require('./Libraries/StyleSheet/PlatformColorValueTypesWin32')
package/overrides.json CHANGED
@@ -7,19 +7,19 @@
7
7
  "**/__snapshots__/**",
8
8
  "src-win/rntypes/**"
9
9
  ],
10
- "baseVersion": "0.79.0-nightly-20250303-cee63397b",
10
+ "baseVersion": "0.80.0-nightly-20250317-fc7385c1e",
11
11
  "overrides": [
12
12
  {
13
13
  "type": "derived",
14
14
  "file": ".flowconfig",
15
15
  "baseFile": ".flowconfig",
16
- "baseHash": "23e4ec639f146691148b6736f4e84478ae2a5416"
16
+ "baseHash": "b8b53bf5315c0b91d0f69c3fe9274797a55b993f"
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": "62b4752ea0e271645cc0fff8b54f2c1167284d43"
22
+ "baseHash": "7a10369d15e8b09ef772d8f229cbfc712d074cbf"
23
23
  },
24
24
  {
25
25
  "type": "platform",
@@ -29,7 +29,7 @@
29
29
  "type": "patch",
30
30
  "file": "src-win/Libraries/Alert/Alert.win32.js",
31
31
  "baseFile": "packages/react-native/Libraries/Alert/Alert.js",
32
- "baseHash": "95ce9fad7e029b50ff6f1598e38aa420660913dc"
32
+ "baseHash": "bd8f474e454f2b703ca7fb55cb022f24046bc0f8"
33
33
  },
34
34
  {
35
35
  "type": "derived",
@@ -92,8 +92,7 @@
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": "454f8b04bd6203c70b48aa6ec26e1c05dee42124",
96
- "issue": 0
95
+ "baseHash": "454f8b04bd6203c70b48aa6ec26e1c05dee42124"
97
96
  },
98
97
  {
99
98
  "type": "copy",
@@ -109,7 +108,7 @@
109
108
  "type": "derived",
110
109
  "file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
111
110
  "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
112
- "baseHash": "eb047724db45395fe5d6487e269a00a198807eb8"
111
+ "baseHash": "f762096a46203b6bae385806087b7b7cb5744f16"
113
112
  },
114
113
  {
115
114
  "type": "patch",
@@ -136,8 +135,7 @@
136
135
  "type": "patch",
137
136
  "file": "src-win/Libraries/Components/Touchable/Touchable.win32.js",
138
137
  "baseFile": "packages/react-native/Libraries/Components/Touchable/Touchable.js",
139
- "baseHash": "5e13ce3ef1cfeb38a1a9695c3013617527c21175",
140
- "issue": 0
138
+ "baseHash": "5e13ce3ef1cfeb38a1a9695c3013617527c21175"
141
139
  },
142
140
  {
143
141
  "type": "derived",
@@ -398,12 +396,6 @@
398
396
  "type": "platform",
399
397
  "file": "src-win/Libraries/StyleSheet/PlatformColorValueTypesWin32.js"
400
398
  },
401
- {
402
- "type": "patch",
403
- "file": "src-win/Libraries/StyleSheet/StyleSheet.win32.js",
404
- "baseFile": "packages/react-native/Libraries/StyleSheet/StyleSheet.js",
405
- "baseHash": "6c83ae0478119480b693eeab590fa4ba5af98084"
406
- },
407
399
  {
408
400
  "type": "derived",
409
401
  "file": "src-win/Libraries/Text/Text.d.ts",
@@ -492,7 +484,7 @@
492
484
  "type": "patch",
493
485
  "file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js",
494
486
  "baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js",
495
- "baseHash": "8c67d57575cccb7281b15ca2591e4edf5c5c36dd",
487
+ "baseHash": "c511868b72abd4e0e7d0b07e0453ea56687ffddb",
496
488
  "issue": 11041
497
489
  },
498
490
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.0.0-canary.288",
3
+ "version": "0.0.0-canary.289",
4
4
  "description": "Implementation of react native on top of Office's Win32 platform.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,17 +26,17 @@
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.0.0",
28
28
  "@jest/create-cache-key-function": "^29.7.0",
29
- "@react-native-community/cli": "15.0.0-alpha.2",
30
- "@react-native-community/cli-platform-android": "15.0.0-alpha.2",
31
- "@react-native-community/cli-platform-ios": "15.0.0-alpha.2",
29
+ "@react-native-community/cli": "17.0.0",
30
+ "@react-native-community/cli-platform-android": "17.0.0",
31
+ "@react-native-community/cli-platform-ios": "17.0.0",
32
32
  "@react-native/assets": "1.0.0",
33
- "@react-native/assets-registry": "0.79.0-nightly-20250303-cee63397b",
34
- "@react-native/codegen": "0.79.0-nightly-20250303-cee63397b",
35
- "@react-native/community-cli-plugin": "0.79.0-nightly-20250303-cee63397b",
36
- "@react-native/gradle-plugin": "0.79.0-nightly-20250303-cee63397b",
37
- "@react-native/js-polyfills": "0.79.0-nightly-20250303-cee63397b",
38
- "@react-native/normalize-colors": "0.79.0-nightly-20250303-cee63397b",
39
- "@react-native/virtualized-lists": "0.79.0-nightly-20250303-cee63397b",
33
+ "@react-native/assets-registry": "0.80.0-nightly-20250317-fc7385c1e",
34
+ "@react-native/codegen": "0.80.0-nightly-20250317-fc7385c1e",
35
+ "@react-native/community-cli-plugin": "0.80.0-nightly-20250317-fc7385c1e",
36
+ "@react-native/gradle-plugin": "0.80.0-nightly-20250317-fc7385c1e",
37
+ "@react-native/js-polyfills": "0.80.0-nightly-20250317-fc7385c1e",
38
+ "@react-native/normalize-colors": "0.80.0-nightly-20250317-fc7385c1e",
39
+ "@react-native/virtualized-lists": "0.80.0-nightly-20250317-fc7385c1e",
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.79.0-nightly-20250303-cee63397b",
75
+ "@react-native/metro-config": "0.80.0-nightly-20250317-fc7385c1e",
76
76
  "@rnw-scripts/babel-react-native-config": "0.0.0",
77
77
  "@rnw-scripts/eslint-config": "1.2.36",
78
78
  "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.40",
@@ -88,14 +88,14 @@
88
88
  "just-scripts": "^1.3.3",
89
89
  "prettier": "2.8.8",
90
90
  "react": "19.0.0",
91
- "react-native": "0.79.0-nightly-20250303-cee63397b",
91
+ "react-native": "0.80.0-nightly-20250317-fc7385c1e",
92
92
  "react-native-platform-override": "^1.9.55",
93
93
  "typescript": "5.0.4"
94
94
  },
95
95
  "peerDependencies": {
96
96
  "@types/react": "^19.0.0",
97
97
  "react": "^19.0.0",
98
- "react-native": "0.79.0-nightly-20250303-cee63397b"
98
+ "react-native": "0.80.0-nightly-20250317-fc7385c1e"
99
99
  },
100
100
  "beachball": {
101
101
  "defaultNpmTag": "canary",
@@ -57,6 +57,8 @@ const eventListenerAnimationFinishedCallbacks: {
57
57
  let globalEventEmitterGetValueListener: ?EventSubscription = null;
58
58
  let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
59
59
 
60
+ const shouldSignalBatch = ReactNativeFeatureFlags.animatedShouldSignalBatch();
61
+
60
62
  function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
61
63
  const methodNames = [
62
64
  'createAnimatedNode', // 1
@@ -106,6 +108,11 @@ function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
106
108
  if (queueOperations || queue.length !== 0) {
107
109
  // $FlowExpectedError[incompatible-call] - Dynamism.
108
110
  queue.push(() => method(...args));
111
+ } else if (shouldSignalBatch) {
112
+ // $FlowExpectedError[incompatible-call] - Dynamism.
113
+ queue.push(() => method(...args));
114
+ clearImmediate(flushQueueImmediate);
115
+ flushQueueImmediate = setImmediate(API.flushQueue);
109
116
  } else {
110
117
  // $FlowExpectedError[incompatible-call] - Dynamism.
111
118
  method(...args);
@@ -138,21 +145,25 @@ const API = {
138
145
  }) as $NonMaybeType<typeof NativeAnimatedModule>['getValue'],
139
146
 
140
147
  setWaitingForIdentifier(id: string): void {
148
+ if (shouldSignalBatch) {
149
+ return;
150
+ }
151
+
141
152
  waitingForQueuedOperations.add(id);
142
153
  queueOperations = true;
143
154
  if (
144
155
  ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() &&
145
156
  flushQueueImmediate
146
157
  ) {
147
- if (ReactNativeFeatureFlags.enableAnimatedClearImmediateFix()) {
148
- clearImmediate(flushQueueImmediate);
149
- } else {
150
- clearTimeout(flushQueueImmediate);
151
- }
158
+ clearImmediate(flushQueueImmediate);
152
159
  }
153
160
  },
154
161
 
155
162
  unsetWaitingForIdentifier(id: string): void {
163
+ if (shouldSignalBatch) {
164
+ return;
165
+ }
166
+
156
167
  waitingForQueuedOperations.delete(id);
157
168
 
158
169
  if (waitingForQueuedOperations.size === 0) {
@@ -206,7 +217,7 @@ const API = {
206
217
  return;
207
218
  }
208
219
 
209
- if (Platform.OS === 'android') {
220
+ if (Platform.OS === 'android' || shouldSignalBatch) {
210
221
  NativeAnimatedModule?.startOperationBatch?.();
211
222
  }
212
223
 
@@ -215,7 +226,7 @@ const API = {
215
226
  }
216
227
  queue.length = 0;
217
228
 
218
- if (Platform.OS === 'android') {
229
+ if (Platform.OS === 'android' || shouldSignalBatch) {
219
230
  NativeAnimatedModule?.finishOperationBatch?.();
220
231
  }
221
232
  }) as () => void,
@@ -57,6 +57,8 @@ const eventListenerAnimationFinishedCallbacks: {
57
57
  let globalEventEmitterGetValueListener: ?EventSubscription = null;
58
58
  let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
59
59
 
60
+ const shouldSignalBatch = ReactNativeFeatureFlags.animatedShouldSignalBatch();
61
+
60
62
  function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
61
63
  const methodNames = [
62
64
  'createAnimatedNode', // 1
@@ -106,6 +108,11 @@ function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
106
108
  if (queueOperations || queue.length !== 0) {
107
109
  // $FlowExpectedError[incompatible-call] - Dynamism.
108
110
  queue.push(() => method(...args));
111
+ } else if (shouldSignalBatch) {
112
+ // $FlowExpectedError[incompatible-call] - Dynamism.
113
+ queue.push(() => method(...args));
114
+ clearImmediate(flushQueueImmediate);
115
+ flushQueueImmediate = setImmediate(API.flushQueue);
109
116
  } else {
110
117
  // $FlowExpectedError[incompatible-call] - Dynamism.
111
118
  method(...args);
@@ -138,21 +145,25 @@ const API = {
138
145
  }) as $NonMaybeType<typeof NativeAnimatedModule>['getValue'],
139
146
 
140
147
  setWaitingForIdentifier(id: string): void {
148
+ if (shouldSignalBatch) {
149
+ return;
150
+ }
151
+
141
152
  waitingForQueuedOperations.add(id);
142
153
  queueOperations = true;
143
154
  if (
144
155
  ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() &&
145
156
  flushQueueImmediate
146
157
  ) {
147
- if (ReactNativeFeatureFlags.enableAnimatedClearImmediateFix()) {
148
- clearImmediate(flushQueueImmediate);
149
- } else {
150
- clearTimeout(flushQueueImmediate);
151
- }
158
+ clearImmediate(flushQueueImmediate);
152
159
  }
153
160
  },
154
161
 
155
162
  unsetWaitingForIdentifier(id: string): void {
163
+ if (shouldSignalBatch) {
164
+ return;
165
+ }
166
+
156
167
  waitingForQueuedOperations.delete(id);
157
168
 
158
169
  if (waitingForQueuedOperations.size === 0) {
@@ -209,7 +220,7 @@ const API = {
209
220
  return;
210
221
  }
211
222
 
212
- if (Platform.OS === 'android') {
223
+ if (Platform.OS === 'android' || shouldSignalBatch) {
213
224
  NativeAnimatedModule?.startOperationBatch?.();
214
225
  }
215
226
 
@@ -218,7 +229,7 @@ const API = {
218
229
  }
219
230
  queue.length = 0;
220
231
 
221
- if (Platform.OS === 'android') {
232
+ if (Platform.OS === 'android' || shouldSignalBatch) {
222
233
  NativeAnimatedModule?.finishOperationBatch?.();
223
234
  }
224
235
  }) as () => void,