@office-iss/react-native-win32 0.77.0 → 0.78.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +114 -27
  3. package/CHANGELOG.md +46 -15
  4. package/Libraries/Animated/animations/Animation.js +22 -1
  5. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  6. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  7. package/Libraries/Animated/animations/TimingAnimation.js +1 -0
  8. package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
  9. package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
  10. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
  11. package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
  12. package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
  13. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
  14. package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
  15. package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
  16. package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
  17. package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
  19. package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
  20. package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
  21. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
  22. package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
  23. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  24. package/Libraries/Animated/useAnimatedProps.js +14 -56
  25. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
  26. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +4 -1
  27. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  28. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  29. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  30. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  31. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  32. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  33. package/Libraries/Components/TextInput/TextInput.js +6 -0
  34. package/Libraries/Components/TextInput/TextInput.win32.js +6 -0
  35. package/Libraries/Components/View/ViewPropTypes.d.ts +0 -7
  36. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  37. package/Libraries/Components/View/ViewPropTypes.win32.js +0 -9
  38. package/Libraries/Core/ReactNativeVersion.js +2 -2
  39. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  40. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  41. package/Libraries/Image/AssetSourceResolver.js +11 -0
  42. package/Libraries/Inspector/BorderBox.js +26 -14
  43. package/Libraries/Inspector/BoxInspector.js +60 -42
  44. package/Libraries/Inspector/ElementBox.js +55 -48
  45. package/Libraries/Inspector/StyleInspector.js +36 -30
  46. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  47. package/Libraries/Lists/FlatList.d.ts +1 -1
  48. package/Libraries/Modal/Modal.js +2 -0
  49. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  50. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  51. package/Libraries/NativeComponent/BaseViewConfig.win32.js +0 -2
  52. package/Libraries/Network/RCTNetworking.android.js +24 -16
  53. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  54. package/Libraries/Network/RCTNetworking.win32.js +1 -46
  55. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  56. package/Libraries/PersonaCoin/PersonaCoin.js +1 -0
  57. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  58. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  59. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15828 -26461
  60. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  61. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  62. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16102 -26908
  63. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  64. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  65. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  66. package/Libraries/StyleSheet/processTransform.js +6 -0
  67. package/Libraries/Text/Text.d.ts +6 -1
  68. package/Libraries/Text/TextProps.js +2 -2
  69. package/Libraries/Text/TextProps.win32.js +2 -2
  70. package/Libraries/Utilities/BackHandler.android.js +5 -4
  71. package/Libraries/Utilities/BackHandler.ios.js +4 -5
  72. package/Libraries/Utilities/BackHandler.win32.js +5 -4
  73. package/index.js +5 -0
  74. package/index.win32.js +5 -0
  75. package/overrides.json +14 -14
  76. package/package.json +22 -23
  77. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  78. package/src/private/featureflags/ReactNativeFeatureFlags.js +33 -27
  79. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  80. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  81. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  82. package/src/private/specs/modules/NativeFantom.js +37 -0
  83. package/src/private/utilities/ensureInstance.js +21 -0
  84. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  85. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  86. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  87. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  88. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  89. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  90. package/src/private/webapis/performance/Performance.js +0 -12
  91. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  92. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +0 -7
  93. package/src-win/Libraries/PersonaCoin/PersonaCoin.tsx +1 -0
  94. package/src-win/Libraries/Text/Text.d.ts +6 -1
  95. package/types/index.d.ts +1 -0
  96. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  97. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  98. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  99. package/Libraries/Performance/SamplingProfiler.js +0 -39
  100. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  101. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  102. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  103. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
@@ -7,7 +7,7 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow strict
10
- * @generated SignedSource<<9cf3e28d6ca0299bc0bb5caa75b19556>>
10
+ * @generated SignedSource<<c6ea057ee85cbc116a083e3a306b2b88>>
11
11
  */
12
12
 
13
13
  import type {ElementRef, ElementType, MixedElement} from 'react';
@@ -133,9 +133,10 @@ declare const ensureNativeMethodsAreSynced: NativeMethods;
133
133
  (ensureNativeMethodsAreSynced: INativeMethods);
134
134
 
135
135
  export type HostInstance = NativeMethods;
136
- /*::
137
- export type HostComponent<Config: {...}> = component(ref: React$RefSetter<HostInstance>, ...Config);
138
- */
136
+ export type HostComponent<Config: {...}> = component(
137
+ ref: React$RefSetter<HostInstance>,
138
+ ...Config
139
+ );
139
140
 
140
141
  type InspectorDataProps = $ReadOnly<{
141
142
  [propName: string]: string,
@@ -206,9 +207,7 @@ export type ReactNativeType = {
206
207
  componentOrHandle: ?(ElementRef<TElementType> | number),
207
208
  ): ?number,
208
209
  isChildPublicInstance(
209
- // eslint-disable-next-line no-undef
210
210
  parent: PublicInstance | HostComponent<empty>,
211
- // eslint-disable-next-line no-undef
212
211
  child: PublicInstance | HostComponent<empty>,
213
212
  ): boolean,
214
213
  dispatchCommand(
@@ -148,6 +148,12 @@ function _validateTransforms(transform: Array<Object>): void {
148
148
  );
149
149
  const key = keys[0];
150
150
  const value = transformation[key];
151
+ if (key === 'matrix' && transform.length > 1) {
152
+ console.error(
153
+ 'When using a matrix transform, you must specify exactly one transform object. Passed transform: ' +
154
+ stringifySafe(transform),
155
+ );
156
+ }
151
157
  _validateTransform(key, value, transformation);
152
158
  });
153
159
  }
@@ -12,7 +12,7 @@ import {Constructor} from '../../types/private/Utilities';
12
12
  import {AccessibilityProps} from '../Components/View/ViewAccessibility';
13
13
  import {NativeMethods} from '../../types/public/ReactNativeTypes';
14
14
  import {ColorValue, StyleProp} from '../StyleSheet/StyleSheet';
15
- import {TextStyle} from '../StyleSheet/StyleSheetTypes';
15
+ import {TextStyle, ViewStyle} from '../StyleSheet/StyleSheetTypes';
16
16
  import {
17
17
  GestureResponderEvent,
18
18
  LayoutChangeEvent,
@@ -294,6 +294,11 @@ export interface TextProps
294
294
  * Specifies smallest possible scale a font can reach when adjustsFontSizeToFit is enabled. (values 0.01-1.0).
295
295
  */
296
296
  minimumFontScale?: number | undefined;
297
+
298
+ /**
299
+ * Controls how touch events are handled. Similar to `View`'s `pointerEvents`.
300
+ */
301
+ pointerEvents?: ViewStyle['pointerEvents'] | undefined;
297
302
  }
298
303
 
299
304
  /**
@@ -17,7 +17,7 @@ import type {
17
17
  AccessibilityState,
18
18
  Role,
19
19
  } from '../Components/View/ViewAccessibility';
20
- import type {TextStyleProp} from '../StyleSheet/StyleSheet';
20
+ import type {ColorValue, TextStyleProp} from '../StyleSheet/StyleSheet';
21
21
  import type {
22
22
  LayoutEvent,
23
23
  PointerEvent,
@@ -212,7 +212,7 @@ export type TextProps = $ReadOnly<{
212
212
  *
213
213
  * See https://reactnative.dev/docs/text#selectioncolor
214
214
  */
215
- selectionColor?: ?string,
215
+ selectionColor?: ?ColorValue,
216
216
 
217
217
  dataDetectorType?: ?('phoneNumber' | 'link' | 'email' | 'none' | 'all'),
218
218
 
@@ -17,7 +17,7 @@ import type {
17
17
  AccessibilityState,
18
18
  Role,
19
19
  } from '../Components/View/ViewAccessibility';
20
- import type {TextStyleProp} from '../StyleSheet/StyleSheet';
20
+ import type {ColorValue, TextStyleProp} from '../StyleSheet/StyleSheet';
21
21
  import type {
22
22
  LayoutEvent,
23
23
  PointerEvent,
@@ -225,7 +225,7 @@ export type TextProps = $ReadOnly<{
225
225
  *
226
226
  * See https://reactnative.dev/docs/text#selectioncolor
227
227
  */
228
- selectionColor?: ?string,
228
+ selectionColor?: ?ColorValue,
229
229
 
230
230
  dataDetectorType?: ?('phoneNumber' | 'link' | 'email' | 'none' | 'all'),
231
231
 
@@ -14,12 +14,13 @@ import RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';
14
14
  const DEVICE_BACK_EVENT = 'hardwareBackPress';
15
15
 
16
16
  type BackPressEventName = 'backPress' | 'hardwareBackPress';
17
+ type BackPressHandler = () => ?boolean;
17
18
 
18
- const _backPressSubscriptions = [];
19
+ const _backPressSubscriptions: Array<BackPressHandler> = [];
19
20
 
20
21
  RCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {
21
22
  for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {
22
- if (_backPressSubscriptions[i]()) {
23
+ if (_backPressSubscriptions[i]?.()) {
23
24
  return;
24
25
  }
25
26
  }
@@ -57,7 +58,7 @@ type TBackHandler = {|
57
58
  +exitApp: () => void,
58
59
  +addEventListener: (
59
60
  eventName: BackPressEventName,
60
- handler: () => ?boolean,
61
+ handler: BackPressHandler,
61
62
  ) => {remove: () => void, ...},
62
63
  |};
63
64
  const BackHandler: TBackHandler = {
@@ -76,7 +77,7 @@ const BackHandler: TBackHandler = {
76
77
  */
77
78
  addEventListener: function (
78
79
  eventName: BackPressEventName,
79
- handler: () => ?boolean,
80
+ handler: BackPressHandler,
80
81
  ): {remove: () => void, ...} {
81
82
  if (_backPressSubscriptions.indexOf(handler) === -1) {
82
83
  _backPressSubscriptions.push(handler);
@@ -4,13 +4,12 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
+ * @flow strict-local
7
8
  * @format
8
- * @flow
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
11
  type BackPressEventName = 'backPress' | 'hardwareBackPress';
12
+ type BackPressHandler = () => ?boolean;
14
13
 
15
14
  function emptyFunction(): void {}
16
15
 
@@ -18,13 +17,13 @@ type TBackHandler = {|
18
17
  +exitApp: () => void,
19
18
  +addEventListener: (
20
19
  eventName: BackPressEventName,
21
- handler: () => ?boolean,
20
+ handler: BackPressHandler,
22
21
  ) => {remove: () => void, ...},
23
22
  |};
24
23
 
25
24
  let BackHandler: TBackHandler = {
26
25
  exitApp: emptyFunction,
27
- addEventListener(_eventName: BackPressEventName, _handler: Function) {
26
+ addEventListener(_eventName: BackPressEventName, _handler: BackPressHandler) {
28
27
  return {
29
28
  remove: emptyFunction,
30
29
  };
@@ -14,12 +14,13 @@ import RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';
14
14
  const DEVICE_BACK_EVENT = 'hardwareBackPress';
15
15
 
16
16
  type BackPressEventName = 'backPress' | 'hardwareBackPress';
17
+ type BackPressHandler = () => ?boolean;
17
18
 
18
- const _backPressSubscriptions = [];
19
+ const _backPressSubscriptions: Array<BackPressHandler> = [];
19
20
 
20
21
  RCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {
21
22
  for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {
22
- if (_backPressSubscriptions[i]()) {
23
+ if (_backPressSubscriptions[i]?.()) {
23
24
  return;
24
25
  }
25
26
  }
@@ -57,7 +58,7 @@ type TBackHandler = {|
57
58
  +exitApp: () => void,
58
59
  +addEventListener: (
59
60
  eventName: BackPressEventName,
60
- handler: () => ?boolean,
61
+ handler: BackPressHandler,
61
62
  ) => {remove: () => void, ...},
62
63
  |};
63
64
  const BackHandler: TBackHandler = {
@@ -76,7 +77,7 @@ const BackHandler: TBackHandler = {
76
77
  */
77
78
  addEventListener: function (
78
79
  eventName: BackPressEventName,
79
- handler: () => ?boolean,
80
+ handler: BackPressHandler,
80
81
  ): {remove: () => void, ...} {
81
82
  if (_backPressSubscriptions.indexOf(handler) === -1) {
82
83
  _backPressSubscriptions.push(handler);
package/index.js CHANGED
@@ -28,6 +28,7 @@ import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
28
28
  import typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';
29
29
  import typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';
30
30
  import typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';
31
+ import typeof LayoutConformance from './Libraries/Components/LayoutConformance/LayoutConformance';
31
32
  import typeof Pressable from './Libraries/Components/Pressable/Pressable';
32
33
  import typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';
33
34
  import typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';
@@ -136,6 +137,10 @@ module.exports = {
136
137
  return require('./Libraries/Components/TextInput/InputAccessoryView')
137
138
  .default;
138
139
  },
140
+ get experimental_LayoutConformance(): LayoutConformance {
141
+ return require('./Libraries/Components/LayoutConformance/LayoutConformance')
142
+ .default;
143
+ },
139
144
  get KeyboardAvoidingView(): KeyboardAvoidingView {
140
145
  return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')
141
146
  .default;
package/index.win32.js CHANGED
@@ -29,6 +29,7 @@ import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
29
29
  import typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';
30
30
  import typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';
31
31
  import typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';
32
+ import typeof LayoutConformance from './Libraries/Components/LayoutConformance/LayoutConformance';
32
33
  import typeof Pressable from './Libraries/Components/Pressable/Pressable';
33
34
  import typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';
34
35
  import typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';
@@ -136,6 +137,10 @@ module.exports = {
136
137
  return require('./Libraries/Components/TextInput/InputAccessoryView')
137
138
  .default;
138
139
  },
140
+ get experimental_LayoutConformance(): LayoutConformance {
141
+ return require('./Libraries/Components/LayoutConformance/LayoutConformance')
142
+ .default;
143
+ },
139
144
  get KeyboardAvoidingView(): KeyboardAvoidingView {
140
145
  return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')
141
146
  .default;
package/overrides.json CHANGED
@@ -7,19 +7,19 @@
7
7
  "**/__snapshots__/**",
8
8
  "src-win/rntypes/**"
9
9
  ],
10
- "baseVersion": "0.77.0",
10
+ "baseVersion": "0.78.0-rc.3",
11
11
  "overrides": [
12
12
  {
13
13
  "type": "derived",
14
14
  "file": ".flowconfig",
15
15
  "baseFile": ".flowconfig",
16
- "baseHash": "168a2b4bcf33aba4727eb608902b17b4eb74c95d"
16
+ "baseHash": "efd6eb0780d7f3b6717feac846e0e7fe8dae1ee9"
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": "5f0532348ca7440731478ef5b119a3a569529a7f"
22
+ "baseHash": "326e132bab39f949872e2de8f3e3120936ef7d5c"
23
23
  },
24
24
  {
25
25
  "type": "platform",
@@ -71,11 +71,11 @@
71
71
  "file": "src-win/Libraries/Components/Button/ButtonWin32.tsx"
72
72
  },
73
73
  {
74
- "type": "copy",
74
+ "type": "patch",
75
75
  "file": "src-win/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js",
76
76
  "baseFile": "packages/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js",
77
- "baseHash": "b9a6866d03ca389af38734ffed24199505b05402",
78
- "issue": 4378
77
+ "baseHash": "7664e2616540fd4ecc398009216314675f6e3f86",
78
+ "issue": 14290
79
79
  },
80
80
  {
81
81
  "type": "platform",
@@ -109,7 +109,7 @@
109
109
  "type": "derived",
110
110
  "file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
111
111
  "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
112
- "baseHash": "1f9adcb7ca64fa536372ed28b7af5e03b05458ac"
112
+ "baseHash": "437a56337e8b6fabd440538af48167c2bbc59704"
113
113
  },
114
114
  {
115
115
  "type": "patch",
@@ -191,13 +191,13 @@
191
191
  "type": "derived",
192
192
  "file": "src-win/Libraries/Components/View/ViewPropTypes.d.ts",
193
193
  "baseFile": "packages/react-native/Libraries/Components/View/ViewPropTypes.d.ts",
194
- "baseHash": "050f28e7caeef2e52717a7c43c6964612eb75ee9"
194
+ "baseHash": "8e33800dfdd3b50e26c3331abb8b4682c091602f"
195
195
  },
196
196
  {
197
197
  "type": "patch",
198
198
  "file": "src-win/Libraries/Components/View/ViewPropTypes.win32.js",
199
199
  "baseFile": "packages/react-native/Libraries/Components/View/ViewPropTypes.js",
200
- "baseHash": "994aead3d5ab49e6bd34a497094a4bc131a8bdb1",
200
+ "baseHash": "bf6dc1a18a8c069cd8f21d187c81177e3b6d5c1f",
201
201
  "issue": 6240
202
202
  },
203
203
  {
@@ -331,13 +331,13 @@
331
331
  "type": "derived",
332
332
  "file": "src-win/Libraries/NativeComponent/BaseViewConfig.win32.js",
333
333
  "baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js",
334
- "baseHash": "51ae58fc739dc6c0679dc888550c2af41787b959"
334
+ "baseHash": "4f959b8e2f98c7d6de44e06be8bc41bf58adbe31"
335
335
  },
336
336
  {
337
337
  "type": "copy",
338
338
  "file": "src-win/Libraries/Network/RCTNetworking.win32.js",
339
339
  "baseFile": "packages/react-native/Libraries/Network/RCTNetworking.ios.js",
340
- "baseHash": "39fc8e1003b0f6345ec4fea060f455d06939a321",
340
+ "baseHash": "9f1622d938405344bc27a2cf61a1c26773518a88",
341
341
  "issue": 4318
342
342
  },
343
343
  {
@@ -420,7 +420,7 @@
420
420
  "type": "derived",
421
421
  "file": "src-win/Libraries/Text/Text.d.ts",
422
422
  "baseFile": "packages/react-native/Libraries/Text/Text.d.ts",
423
- "baseHash": "4b523469a5c8dcfe53749d1739ccf77c0106375e"
423
+ "baseHash": "21dab7f71254c429d592827ab313f77c18baeda1"
424
424
  },
425
425
  {
426
426
  "type": "derived",
@@ -439,7 +439,7 @@
439
439
  "type": "derived",
440
440
  "file": "src-win/Libraries/Text/TextProps.win32.js",
441
441
  "baseFile": "packages/react-native/Libraries/Text/TextProps.js",
442
- "baseHash": "8e56a028dee989ebb8b06f4c01a1d038f074597d"
442
+ "baseHash": "ef1efdc0fb302273cd98be71aef2986677dda184"
443
443
  },
444
444
  {
445
445
  "type": "patch",
@@ -452,7 +452,7 @@
452
452
  "type": "copy",
453
453
  "file": "src-win/Libraries/Utilities/BackHandler.win32.js",
454
454
  "baseFile": "packages/react-native/Libraries/Utilities/BackHandler.android.js",
455
- "baseHash": "b5972a6f2b9da718f57eb7dd9f20b4d67164c980",
455
+ "baseHash": "c939a47e01b9b06d28d8c34a386abd024b1c0e5e",
456
456
  "issue": 4629
457
457
  },
458
458
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.77.0",
3
+ "version": "0.78.0-preview.2",
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": "15.0.0-alpha.2",
31
31
  "@react-native-community/cli-platform-ios": "15.0.0-alpha.2",
32
32
  "@react-native/assets": "1.0.0",
33
- "@react-native/assets-registry": "0.77.0",
34
- "@react-native/codegen": "0.77.0",
35
- "@react-native/community-cli-plugin": "0.77.0",
36
- "@react-native/gradle-plugin": "0.77.0",
37
- "@react-native/js-polyfills": "0.77.0",
38
- "@react-native/normalize-colors": "0.77.0",
39
- "@react-native/virtualized-lists": "0.77.0",
33
+ "@react-native/assets-registry": "0.78.0-rc.3",
34
+ "@react-native/codegen": "0.78.0-rc.3",
35
+ "@react-native/community-cli-plugin": "0.78.0-rc.3",
36
+ "@react-native/gradle-plugin": "0.78.0-rc.3",
37
+ "@react-native/js-polyfills": "0.78.0-rc.3",
38
+ "@react-native/normalize-colors": "0.78.0-rc.3",
39
+ "@react-native/virtualized-lists": "0.78.0-rc.3",
40
40
  "abort-controller": "^3.0.0",
41
41
  "anser": "^1.4.9",
42
42
  "ansi-regex": "^5.0.0",
@@ -51,7 +51,6 @@
51
51
  "glob": "^7.1.1",
52
52
  "invariant": "^2.2.4",
53
53
  "jest-environment-node": "^29.6.3",
54
- "jsc-android": "^250231.0.0",
55
54
  "memoize-one": "^5.0.0",
56
55
  "metro-runtime": "^0.81.0",
57
56
  "metro-source-map": "^0.81.0",
@@ -64,7 +63,7 @@
64
63
  "react-refresh": "^0.14.0",
65
64
  "react-shallow-renderer": "^16.15.0",
66
65
  "regenerator-runtime": "^0.13.2",
67
- "scheduler": "0.24.0-canary-efb381bbf-20230505",
66
+ "scheduler": "0.25.0",
68
67
  "semver": "^7.1.3",
69
68
  "stacktrace-parser": "^0.1.10",
70
69
  "whatwg-fetch": "^3.0.0",
@@ -76,35 +75,35 @@
76
75
  "@babel/eslint-parser": "^7.25.1",
77
76
  "@react-native/metro-config": "0.77.0-nightly-20241001-223e98cc4",
78
77
  "@rnw-scripts/babel-react-native-config": "0.0.0",
79
- "@rnw-scripts/eslint-config": "1.2.30",
80
- "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.34",
81
- "@rnw-scripts/just-task": "2.3.47",
78
+ "@rnw-scripts/eslint-config": "1.2.32",
79
+ "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.36",
80
+ "@rnw-scripts/just-task": "2.3.49",
82
81
  "@rnw-scripts/metro-dev-config": "0.0.0",
83
82
  "@rnx-kit/jest-preset": "^0.1.17",
84
83
  "@types/node": "^18.0.0",
85
84
  "@types/prop-types": "15.7.1",
86
- "@types/react": "^18.2.6",
85
+ "@types/react": "^19.0.0",
87
86
  "eslint": "^8.19.0",
88
- "flow-bin": "^0.250.0",
87
+ "flow-bin": "^0.257.1",
89
88
  "jscodeshift": "^0.14.0",
90
89
  "just-scripts": "^1.3.3",
91
90
  "prettier": "2.8.8",
92
- "react": "18.3.1",
93
- "react-native": "0.77.0",
94
- "react-native-platform-override": "^1.9.49",
91
+ "react": "19.0.0",
92
+ "react-native": "0.78.0-rc.3",
93
+ "react-native-platform-override": "^1.9.51",
95
94
  "typescript": "5.0.4"
96
95
  },
97
96
  "peerDependencies": {
98
- "@types/react": "^18.2.6",
99
- "react": "^18.2.0",
100
- "react-native": "^0.77.0"
97
+ "@types/react": "^19.0.0",
98
+ "react": "^19.0.0",
99
+ "react-native": "0.78.0-rc.3"
101
100
  },
102
101
  "beachball": {
103
- "defaultNpmTag": "latest",
102
+ "defaultNpmTag": "preview",
104
103
  "disallowedChangeTypes": [
105
104
  "major",
106
105
  "minor",
107
- "prerelease",
106
+ "patch",
108
107
  "premajor",
109
108
  "preminor",
110
109
  "prepatch"
@@ -20,7 +20,7 @@ export function validateInterpolation<OutputT: number | string>(
20
20
  config: InterpolationConfigType<OutputT>,
21
21
  ): void {
22
22
  for (const key in config) {
23
- if (!isSupportedInterpolationParam(key)) {
23
+ if (key !== 'debugID' && !isSupportedInterpolationParam(key)) {
24
24
  console.error(
25
25
  `Interpolation property '${key}' is not supported by native animated module`,
26
26
  );
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<aa51de14d1f085127ad410580beb15f6>>
7
+ * @generated SignedSource<<3037cf1c938dae492b656333cec9633c>>
8
8
  * @flow strict
9
9
  */
10
10
 
@@ -26,7 +26,7 @@ import {
26
26
  setOverrides,
27
27
  } from './ReactNativeFeatureFlagsBase';
28
28
 
29
- export type ReactNativeFeatureFlagsJsOnly = {
29
+ export type ReactNativeFeatureFlagsJsOnly = $ReadOnly<{
30
30
  jsOnlyTestFlag: Getter<boolean>,
31
31
  animatedShouldDebounceQueueFlush: Getter<boolean>,
32
32
  animatedShouldUseSingleOp: Getter<boolean>,
@@ -36,6 +36,7 @@ export type ReactNativeFeatureFlagsJsOnly = {
36
36
  enableAnimatedAllowlist: Getter<boolean>,
37
37
  enableAnimatedClearImmediateFix: Getter<boolean>,
38
38
  enableAnimatedPropsMemo: Getter<boolean>,
39
+ fixVirtualizeListCollapseWindowSize: Getter<boolean>,
39
40
  isLayoutAnimationEnabled: Getter<boolean>,
40
41
  shouldSkipStateUpdatesForLoopingAnimations: Getter<boolean>,
41
42
  shouldUseAnimatedObjectForTransform: Getter<boolean>,
@@ -43,19 +44,18 @@ export type ReactNativeFeatureFlagsJsOnly = {
43
44
  shouldUseSetNativePropsInFabric: Getter<boolean>,
44
45
  useInsertionEffectsForAnimations: Getter<boolean>,
45
46
  useRefsForTextInputState: Getter<boolean>,
46
- };
47
+ }>;
47
48
 
48
49
  export type ReactNativeFeatureFlagsJsOnlyOverrides = OverridesFor<ReactNativeFeatureFlagsJsOnly>;
49
50
 
50
- export type ReactNativeFeatureFlags = {
51
+ export type ReactNativeFeatureFlags = $ReadOnly<{
51
52
  ...ReactNativeFeatureFlagsJsOnly,
52
53
  commonTestFlag: Getter<boolean>,
53
54
  commonTestFlagWithoutNativeImplementation: Getter<boolean>,
54
55
  completeReactInstanceCreationOnBgThreadOnAndroid: Getter<boolean>,
55
56
  disableEventLoopOnBridgeless: Getter<boolean>,
56
57
  disableMountItemReorderingAndroid: Getter<boolean>,
57
- enableAlignItemsBaselineOnFabricIOS: Getter<boolean>,
58
- enableAndroidLineHeightCentering: Getter<boolean>,
58
+ enableAccumulatedUpdatesInRawPropsAndroid: Getter<boolean>,
59
59
  enableBridgelessArchitecture: Getter<boolean>,
60
60
  enableCppPropsIteratorSetter: Getter<boolean>,
61
61
  enableDeletionOfUnmountedViews: Getter<boolean>,
@@ -63,10 +63,10 @@ export type ReactNativeFeatureFlags = {
63
63
  enableEventEmitterRetentionDuringGesturesOnAndroid: Getter<boolean>,
64
64
  enableFabricLogs: Getter<boolean>,
65
65
  enableFabricRenderer: Getter<boolean>,
66
- enableFabricRendererExclusively: Getter<boolean>,
67
66
  enableFixForViewCommandRace: Getter<boolean>,
68
67
  enableGranularShadowTreeStateReconciliation: Getter<boolean>,
69
68
  enableIOSViewClipToPaddingBox: Getter<boolean>,
69
+ enableImagePrefetchingAndroid: Getter<boolean>,
70
70
  enableLayoutAnimationsOnAndroid: Getter<boolean>,
71
71
  enableLayoutAnimationsOnIOS: Getter<boolean>,
72
72
  enableLongTaskAPI: Getter<boolean>,
@@ -78,9 +78,9 @@ export type ReactNativeFeatureFlags = {
78
78
  enableUIConsistency: Getter<boolean>,
79
79
  enableViewRecycling: Getter<boolean>,
80
80
  excludeYogaFromRawProps: Getter<boolean>,
81
+ fixDifferentiatorEmittingUpdatesWithWrongParentTag: Getter<boolean>,
81
82
  fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean>,
82
83
  fixMountingCoordinatorReportedPendingTransactionsOnAndroid: Getter<boolean>,
83
- fuseboxEnabledDebug: Getter<boolean>,
84
84
  fuseboxEnabledRelease: Getter<boolean>,
85
85
  initEagerTurboModulesOnNativeModulesQueueAndroid: Getter<boolean>,
86
86
  lazyAnimationCallbacks: Getter<boolean>,
@@ -92,10 +92,11 @@ export type ReactNativeFeatureFlags = {
92
92
  useNativeViewConfigsInBridgelessMode: Getter<boolean>,
93
93
  useOptimisedViewPreallocationOnAndroid: Getter<boolean>,
94
94
  useOptimizedEventBatchingOnAndroid: Getter<boolean>,
95
+ useRawPropsJsiValue: Getter<boolean>,
95
96
  useRuntimeShadowNodeReferenceUpdate: Getter<boolean>,
96
97
  useTurboModuleInterop: Getter<boolean>,
97
98
  useTurboModules: Getter<boolean>,
98
- }
99
+ }>;
99
100
 
100
101
  /**
101
102
  * JS-only flag for testing. Do NOT modify.
@@ -142,6 +143,11 @@ export const enableAnimatedClearImmediateFix: Getter<boolean> = createJavaScript
142
143
  */
143
144
  export const enableAnimatedPropsMemo: Getter<boolean> = createJavaScriptFlagGetter('enableAnimatedPropsMemo', true);
144
145
 
146
+ /**
147
+ * Fixing an edge case where the current window size is not properly calculated with fast scrolling. Window size collapsed to 1 element even if windowSize more than the current amount of elements
148
+ */
149
+ export const fixVirtualizeListCollapseWindowSize: Getter<boolean> = createJavaScriptFlagGetter('fixVirtualizeListCollapseWindowSize', false);
150
+
145
151
  /**
146
152
  * Function used to enable / disabled Layout Animations in React Native.
147
153
  */
@@ -150,7 +156,7 @@ export const isLayoutAnimationEnabled: Getter<boolean> = createJavaScriptFlagGet
150
156
  /**
151
157
  * If the animation is within Animated.loop, we do not send state updates to React.
152
158
  */
153
- export const shouldSkipStateUpdatesForLoopingAnimations: Getter<boolean> = createJavaScriptFlagGetter('shouldSkipStateUpdatesForLoopingAnimations', false);
159
+ export const shouldSkipStateUpdatesForLoopingAnimations: Getter<boolean> = createJavaScriptFlagGetter('shouldSkipStateUpdatesForLoopingAnimations', true);
154
160
 
155
161
  /**
156
162
  * Enables use of AnimatedObject for animating transform values.
@@ -170,7 +176,7 @@ export const shouldUseSetNativePropsInFabric: Getter<boolean> = createJavaScript
170
176
  /**
171
177
  * Changes construction of the animation graph to `useInsertionEffect` instead of `useLayoutEffect`.
172
178
  */
173
- export const useInsertionEffectsForAnimations: Getter<boolean> = createJavaScriptFlagGetter('useInsertionEffectsForAnimations', false);
179
+ export const useInsertionEffectsForAnimations: Getter<boolean> = createJavaScriptFlagGetter('useInsertionEffectsForAnimations', true);
174
180
 
175
181
  /**
176
182
  * Enable a variant of TextInput that moves some state to refs to avoid unnecessary re-renders
@@ -198,13 +204,9 @@ export const disableEventLoopOnBridgeless: Getter<boolean> = createNativeFlagGet
198
204
  */
199
205
  export const disableMountItemReorderingAndroid: Getter<boolean> = createNativeFlagGetter('disableMountItemReorderingAndroid', false);
200
206
  /**
201
- * Kill-switch to turn off support for aling-items:baseline on Fabric iOS.
202
- */
203
- export const enableAlignItemsBaselineOnFabricIOS: Getter<boolean> = createNativeFlagGetter('enableAlignItemsBaselineOnFabricIOS', true);
204
- /**
205
- * When enabled, custom line height calculation will be centered from top to bottom.
207
+ * When enabled, Andoid will accumulate updates in rawProps to reduce the number of mounting instructions for cascading rerenders.
206
208
  */
207
- export const enableAndroidLineHeightCentering: Getter<boolean> = createNativeFlagGetter('enableAndroidLineHeightCentering', true);
209
+ export const enableAccumulatedUpdatesInRawPropsAndroid: Getter<boolean> = createNativeFlagGetter('enableAccumulatedUpdatesInRawPropsAndroid', false);
208
210
  /**
209
211
  * Feature flag to enable the new bridgeless architecture. Note: Enabling this will force enable the following flags: `useTurboModules` & `enableFabricRenderer.
210
212
  */
@@ -233,10 +235,6 @@ export const enableFabricLogs: Getter<boolean> = createNativeFlagGetter('enableF
233
235
  * Enables the use of the Fabric renderer in the whole app.
234
236
  */
235
237
  export const enableFabricRenderer: Getter<boolean> = createNativeFlagGetter('enableFabricRenderer', false);
236
- /**
237
- * When the app is completely migrated to Fabric, set this flag to true to disable parts of Paper infrastructure that are not needed anymore but consume memory and CPU. Specifically, UIViewOperationQueue and EventDispatcherImpl will no longer work as they will not subscribe to ReactChoreographer for updates.
238
- */
239
- export const enableFabricRendererExclusively: Getter<boolean> = createNativeFlagGetter('enableFabricRendererExclusively', false);
240
238
  /**
241
239
  * Synchronise the view command dispatching with mounting of new transaction
242
240
  */
@@ -249,6 +247,10 @@ export const enableGranularShadowTreeStateReconciliation: Getter<boolean> = crea
249
247
  * iOS Views will clip to their padding box vs border box
250
248
  */
251
249
  export const enableIOSViewClipToPaddingBox: Getter<boolean> = createNativeFlagGetter('enableIOSViewClipToPaddingBox', false);
250
+ /**
251
+ * When enabled, Andoid will build and initiate image prefetch requests on ImageShadowNode::layout
252
+ */
253
+ export const enableImagePrefetchingAndroid: Getter<boolean> = createNativeFlagGetter('enableImagePrefetchingAndroid', false);
252
254
  /**
253
255
  * When enabled, LayoutAnimations API will animate state changes on Android.
254
256
  */
@@ -293,6 +295,10 @@ export const enableViewRecycling: Getter<boolean> = createNativeFlagGetter('enab
293
295
  * When enabled, rawProps in Props will not include Yoga specific props.
294
296
  */
295
297
  export const excludeYogaFromRawProps: Getter<boolean> = createNativeFlagGetter('excludeYogaFromRawProps', false);
298
+ /**
299
+ * Fixes a bug in Differentiator where parent views may be referenced before they're created
300
+ */
301
+ export const fixDifferentiatorEmittingUpdatesWithWrongParentTag: Getter<boolean> = createNativeFlagGetter('fixDifferentiatorEmittingUpdatesWithWrongParentTag', true);
296
302
  /**
297
303
  * Uses the default event priority instead of the discreet event priority by default when dispatching events from Fabric to React.
298
304
  */
@@ -301,10 +307,6 @@ export const fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean> =
301
307
  * Fixes a limitation on Android where the mounting coordinator would report there are no pending transactions but some of them were actually not processed due to the use of the push model.
302
308
  */
303
309
  export const fixMountingCoordinatorReportedPendingTransactionsOnAndroid: Getter<boolean> = createNativeFlagGetter('fixMountingCoordinatorReportedPendingTransactionsOnAndroid', false);
304
- /**
305
- * Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in debug builds. This flag is global and should not be changed across React Host lifetimes.
306
- */
307
- export const fuseboxEnabledDebug: Getter<boolean> = createNativeFlagGetter('fuseboxEnabledDebug', true);
308
310
  /**
309
311
  * Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in release builds. This flag is global and should not be changed across React Host lifetimes.
310
312
  */
@@ -320,7 +322,7 @@ export const lazyAnimationCallbacks: Getter<boolean> = createNativeFlagGetter('l
320
322
  /**
321
323
  * Adds support for loading vector drawable assets in the Image component (only on Android)
322
324
  */
323
- export const loadVectorDrawablesOnImages: Getter<boolean> = createNativeFlagGetter('loadVectorDrawablesOnImages', false);
325
+ export const loadVectorDrawablesOnImages: Getter<boolean> = createNativeFlagGetter('loadVectorDrawablesOnImages', true);
324
326
  /**
325
327
  * Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
326
328
  */
@@ -349,10 +351,14 @@ export const useOptimisedViewPreallocationOnAndroid: Getter<boolean> = createNat
349
351
  * Uses an optimized mechanism for event batching on Android that does not need to wait for a Choreographer frame callback.
350
352
  */
351
353
  export const useOptimizedEventBatchingOnAndroid: Getter<boolean> = createNativeFlagGetter('useOptimizedEventBatchingOnAndroid', false);
354
+ /**
355
+ * Instead of using folly::dynamic as internal representation in RawProps and RawValue, use jsi::Value
356
+ */
357
+ export const useRawPropsJsiValue: Getter<boolean> = createNativeFlagGetter('useRawPropsJsiValue', false);
352
358
  /**
353
359
  * When enabled, cloning shadow nodes within react native will update the reference held by the current JS fiber tree.
354
360
  */
355
- export const useRuntimeShadowNodeReferenceUpdate: Getter<boolean> = createNativeFlagGetter('useRuntimeShadowNodeReferenceUpdate', false);
361
+ export const useRuntimeShadowNodeReferenceUpdate: Getter<boolean> = createNativeFlagGetter('useRuntimeShadowNodeReferenceUpdate', true);
356
362
  /**
357
363
  * In Bridgeless mode, should legacy NativeModules use the TurboModule system?
358
364
  */