@office-iss/react-native-win32 0.0.0-canary.296 → 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 (141) hide show
  1. package/.flowconfig +3 -1
  2. package/CHANGELOG.json +22 -1
  3. package/CHANGELOG.md +13 -4
  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/Core/Devtools/loadBundleFromServer.js +49 -7
  45. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +49 -7
  46. package/Libraries/Core/InitializeCore.js +1 -22
  47. package/Libraries/Core/ReactNativeVersion.js +3 -2
  48. package/Libraries/Debugging/DebuggingOverlay.js +6 -8
  49. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  50. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  51. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -1
  52. package/Libraries/Image/AssetRegistry.js +4 -10
  53. package/Libraries/Image/AssetSourceResolver.js +17 -4
  54. package/Libraries/Image/Image.android.js +112 -106
  55. package/Libraries/Image/Image.ios.js +10 -2
  56. package/Libraries/Image/Image.win32.js +11 -3
  57. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  58. package/Libraries/Image/RelativeImageStub.js +1 -0
  59. package/Libraries/Lists/FlatList.d.ts +9 -5
  60. package/Libraries/Lists/FlatList.js +1 -1
  61. package/Libraries/Lists/SectionListModern.js +9 -3
  62. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  63. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  64. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
  65. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  66. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
  67. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  68. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  69. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  70. package/Libraries/ReactNative/RootTag.js +2 -2
  71. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  72. package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -25
  73. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +270 -0
  74. package/Libraries/StyleSheet/StyleSheetExports.js.flow +3 -1
  75. package/Libraries/StyleSheet/StyleSheetTypes.js +4 -3
  76. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  77. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  78. package/Libraries/StyleSheet/processFilter.js +0 -1
  79. package/Libraries/Text/Text.d.ts +7 -0
  80. package/Libraries/Text/Text.js +255 -244
  81. package/Libraries/Text/Text.win32.js +293 -284
  82. package/Libraries/Text/TextAncestor.js +3 -2
  83. package/Libraries/Text/TextProps.js +2 -34
  84. package/Libraries/Text/TextProps.win32.js +2 -33
  85. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  86. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  87. package/Libraries/Utilities/PlatformTypes.js +1 -1
  88. package/Libraries/vendor/core/ErrorUtils.js +28 -4
  89. package/index.js +0 -1
  90. package/jest/mockNativeComponent.js +2 -1
  91. package/jest/renderer.js +0 -1
  92. package/jest/resolver.js +31 -0
  93. package/jest/setup.js +1 -1
  94. package/overrides.json +27 -20
  95. package/package.json +13 -13
  96. package/src/private/animated/NativeAnimatedHelper.js +6 -1
  97. package/src/private/animated/NativeAnimatedHelper.win32.js +6 -1
  98. package/src/private/animated/createAnimatedPropsHook.js +11 -4
  99. package/src/private/animated/createAnimatedPropsMemoHook.js +0 -1
  100. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  101. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  102. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  103. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  104. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  105. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  106. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +8 -9
  107. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  108. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  109. package/src/private/featureflags/ReactNativeFeatureFlags.js +39 -4
  110. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -2
  111. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  112. package/src/private/styles/composeStyles.js +12 -5
  113. package/src/private/webapis/dom/events/Event.js +3 -0
  114. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  115. package/src/private/webapis/dom/nodes/ReactNativeElement.js +6 -23
  116. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +3 -1
  117. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  118. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +3 -0
  119. package/src/private/webapis/dom/oldstylecollections/NodeList.js +3 -0
  120. package/src/private/webapis/errors/DOMException.js +166 -0
  121. package/src/private/webapis/geometry/DOMRect.js +5 -0
  122. package/src/private/webapis/geometry/DOMRectList.js +3 -0
  123. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  124. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  125. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  126. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +80 -18
  127. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  128. package/src/private/webapis/mutationobserver/MutationObserver.js +23 -33
  129. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  130. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +56 -24
  131. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -1
  132. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  133. package/src/private/webapis/performance/Performance.js +19 -8
  134. package/src/private/webapis/performance/PerformanceEntry.js +4 -0
  135. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  136. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +2 -0
  137. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  138. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  139. package/src/types/globals.d.ts +42 -0
  140. package/src-win/Libraries/Text/Text.d.ts +7 -0
  141. package/types/index.d.ts +1 -1
@@ -7,25 +7,21 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow strict
10
- * @generated SignedSource<<2264e9839602043a41f1e13913b43b0f>>
10
+ * @generated SignedSource<<4216c04f5a8c40a833b0146588fab5fa>>
11
11
  */
12
12
 
13
- import type {
14
- Component as ReactComponent,
15
- ElementRef,
16
- ElementType,
17
- MixedElement,
18
- } from 'react';
19
13
  import type {
20
14
  // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
21
- MeasureOnSuccessCallback,
15
+ HostInstance as PublicInstance,
22
16
  // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
23
- PublicInstance,
17
+ MeasureOnSuccessCallback,
24
18
  // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
25
19
  PublicRootInstance,
26
20
  // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
27
21
  PublicTextInstance,
28
- } from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
22
+ } from 'react-native';
23
+
24
+ import * as React from 'react';
29
25
 
30
26
  export type AttributeType<T, V> =
31
27
  | true
@@ -97,8 +93,8 @@ type InspectorDataProps = $ReadOnly<{
97
93
  }>;
98
94
 
99
95
  type InspectorDataGetter = (
100
- <TElementType: ElementType>(
101
- componentOrHandle: ElementRef<TElementType> | number,
96
+ <TElementType: React.ElementType>(
97
+ componentOrHandle: React.ElementRef<TElementType> | number,
102
98
  ) => ?number,
103
99
  ) => $ReadOnly<{
104
100
  measure: (callback: MeasureOnSuccessCallback) => void,
@@ -141,7 +137,7 @@ export type RenderRootOptions = {
141
137
  +componentStack?: ?string,
142
138
  // $FlowFixMe[unclear-type] unknown props and state.
143
139
  // $FlowFixMe[value-as-type] Component in react repo is any-typed, but it will be well typed externally.
144
- +errorBoundary?: ?ReactComponent<any, any>,
140
+ +errorBoundary?: ?React.Component<any, any>,
145
141
  },
146
142
  ) => void,
147
143
  onRecoverableError?: (
@@ -155,11 +151,11 @@ export type RenderRootOptions = {
155
151
  * Provide minimal Flow typing for the high-level RN API and call it a day.
156
152
  */
157
153
  export type ReactNativeType = {
158
- findHostInstance_DEPRECATED<TElementType: ElementType>(
159
- componentOrHandle: ?(ElementRef<TElementType> | number),
154
+ findHostInstance_DEPRECATED<TElementType: React.ElementType>(
155
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
160
156
  ): ?PublicInstance,
161
- findNodeHandle<TElementType: ElementType>(
162
- componentOrHandle: ?(ElementRef<TElementType> | number),
157
+ findNodeHandle<TElementType: React.ElementType>(
158
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
163
159
  ): ?number,
164
160
  isChildPublicInstance(parent: PublicInstance, child: PublicInstance): boolean,
165
161
  dispatchCommand(
@@ -169,11 +165,11 @@ export type ReactNativeType = {
169
165
  ): void,
170
166
  sendAccessibilityEvent(handle: PublicInstance, eventType: string): void,
171
167
  render(
172
- element: MixedElement,
168
+ element: React.MixedElement,
173
169
  containerTag: number,
174
170
  callback: ?() => void,
175
171
  options: ?RenderRootOptions,
176
- ): ?ElementRef<ElementType>,
172
+ ): ?React.ElementRef<React.ElementType>,
177
173
  unmountComponentAtNode(containerTag: number): void,
178
174
  unmountComponentAtNodeAndRemoveContainer(containerTag: number): void,
179
175
  +unstable_batchedUpdates: <T>(fn: (T) => void, bookkeeping: T) => void,
@@ -184,11 +180,11 @@ export opaque type Node = mixed;
184
180
  export opaque type InternalInstanceHandle = mixed;
185
181
 
186
182
  export type ReactFabricType = {
187
- findHostInstance_DEPRECATED<TElementType: ElementType>(
188
- componentOrHandle: ?(ElementRef<TElementType> | number),
183
+ findHostInstance_DEPRECATED<TElementType: React.ElementType>(
184
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
189
185
  ): ?PublicInstance,
190
- findNodeHandle<TElementType: ElementType>(
191
- componentOrHandle: ?(ElementRef<TElementType> | number),
186
+ findNodeHandle<TElementType: React.ElementType>(
187
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
192
188
  ): ?number,
193
189
  dispatchCommand(
194
190
  handle: PublicInstance,
@@ -198,12 +194,12 @@ export type ReactFabricType = {
198
194
  isChildPublicInstance(parent: PublicInstance, child: PublicInstance): boolean,
199
195
  sendAccessibilityEvent(handle: PublicInstance, eventType: string): void,
200
196
  render(
201
- element: MixedElement,
197
+ element: React.MixedElement,
202
198
  containerTag: number,
203
199
  callback: ?() => void,
204
200
  concurrentRoot: ?boolean,
205
201
  options: ?RenderRootOptions,
206
- ): ?ElementRef<ElementType>,
202
+ ): ?React.ElementRef<React.ElementType>,
207
203
  unmountComponentAtNode(containerTag: number): void,
208
204
  getNodeFromInternalInstanceHandle(
209
205
  internalInstanceHandle: InternalInstanceHandle,
@@ -0,0 +1,270 @@
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
+ * @noformat
8
+ * @nolint
9
+ * @flow strict
10
+ * @generated SignedSource<<4216c04f5a8c40a833b0146588fab5fa>>
11
+ */
12
+
13
+ import type {
14
+ // $FlowFixMe[missing-export] TODO(@rubennorte) - Missing export from react-native
15
+ // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
16
+ HostInstance as PublicInstance,
17
+ // $FlowFixMe[missing-export] TODO(@rubennorte) - Missing export from react-native
18
+ // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
19
+ MeasureOnSuccessCallback,
20
+ // $FlowFixMe[missing-export] TODO(@rubennorte) - Missing export from react-native
21
+ // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
22
+ PublicRootInstance,
23
+ // $FlowFixMe[missing-export] TODO(@rubennorte) - Missing export from react-native
24
+ // $FlowFixMe[nonstrict-import] TODO(@rubennorte)
25
+ PublicTextInstance,
26
+ } from 'react-native';
27
+
28
+ import * as React from 'react';
29
+
30
+ export type AttributeType<T, V> =
31
+ | true
32
+ | $ReadOnly<{
33
+ diff?: (arg1: T, arg2: T) => boolean,
34
+ process?: (arg1: V) => T,
35
+ }>;
36
+
37
+ // We either force that `diff` and `process` always use mixed,
38
+ // or we allow them to define specific types and use this hack
39
+ export type AnyAttributeType = AttributeType<$FlowFixMe, $FlowFixMe>;
40
+
41
+ export type AttributeConfiguration = $ReadOnly<{
42
+ [propName: string]: AnyAttributeType,
43
+ style: $ReadOnly<{
44
+ [propName: string]: AnyAttributeType,
45
+ ...
46
+ }>,
47
+ ...
48
+ }>;
49
+
50
+ export type PartialAttributeConfiguration = $ReadOnly<{
51
+ [propName: string]: AnyAttributeType,
52
+ style?: $ReadOnly<{
53
+ [propName: string]: AnyAttributeType,
54
+ ...
55
+ }>,
56
+ ...
57
+ }>;
58
+
59
+ export type ViewConfig = $ReadOnly<{
60
+ Commands?: $ReadOnly<{[commandName: string]: number, ...}>,
61
+ Constants?: $ReadOnly<{[name: string]: mixed, ...}>,
62
+ Manager?: string,
63
+ NativeProps?: $ReadOnly<{[propName: string]: string, ...}>,
64
+ baseModuleName?: ?string,
65
+ bubblingEventTypes?: $ReadOnly<{
66
+ [eventName: string]: $ReadOnly<{
67
+ phasedRegistrationNames: $ReadOnly<{
68
+ captured: string,
69
+ bubbled: string,
70
+ skipBubbling?: ?boolean,
71
+ }>,
72
+ }>,
73
+ ...
74
+ }>,
75
+ directEventTypes?: $ReadOnly<{
76
+ [eventName: string]: $ReadOnly<{
77
+ registrationName: string,
78
+ }>,
79
+ ...
80
+ }>,
81
+ supportsRawText?: boolean,
82
+ uiViewClassName: string,
83
+ validAttributes: AttributeConfiguration,
84
+ }>;
85
+
86
+ export type PartialViewConfig = $ReadOnly<{
87
+ bubblingEventTypes?: ViewConfig['bubblingEventTypes'],
88
+ directEventTypes?: ViewConfig['directEventTypes'],
89
+ supportsRawText?: boolean,
90
+ uiViewClassName: string,
91
+ validAttributes?: PartialAttributeConfiguration,
92
+ }>;
93
+
94
+ type InspectorDataProps = $ReadOnly<{
95
+ [propName: string]: string,
96
+ ...
97
+ }>;
98
+
99
+ type InspectorDataGetter = (
100
+ <TElementType: React.ElementType>(
101
+ componentOrHandle: React.ElementRef<TElementType> | number,
102
+ ) => ?number,
103
+ ) => $ReadOnly<{
104
+ measure: (callback: MeasureOnSuccessCallback) => void,
105
+ props: InspectorDataProps,
106
+ }>;
107
+
108
+ export type InspectorData = $ReadOnly<{
109
+ closestInstance?: mixed,
110
+ hierarchy: Array<{
111
+ name: ?string,
112
+ getInspectorData: InspectorDataGetter,
113
+ }>,
114
+ selectedIndex: ?number,
115
+ props: InspectorDataProps,
116
+ componentStack: string,
117
+ }>;
118
+
119
+ export type TouchedViewDataAtPoint = $ReadOnly<
120
+ {
121
+ pointerY: number,
122
+ touchedViewTag?: number,
123
+ frame: $ReadOnly<{
124
+ top: number,
125
+ left: number,
126
+ width: number,
127
+ height: number,
128
+ }>,
129
+ closestPublicInstance?: PublicInstance,
130
+ } & InspectorData,
131
+ >;
132
+
133
+ export type RenderRootOptions = {
134
+ onUncaughtError?: (
135
+ error: mixed,
136
+ errorInfo: {+componentStack?: ?string},
137
+ ) => void,
138
+ onCaughtError?: (
139
+ error: mixed,
140
+ errorInfo: {
141
+ +componentStack?: ?string,
142
+ // $FlowFixMe[unclear-type] unknown props and state.
143
+ // $FlowFixMe[value-as-type] Component in react repo is any-typed, but it will be well typed externally.
144
+ +errorBoundary?: ?React.Component<any, any>,
145
+ },
146
+ ) => void,
147
+ onRecoverableError?: (
148
+ error: mixed,
149
+ errorInfo: {+componentStack?: ?string},
150
+ ) => void,
151
+ };
152
+
153
+ /**
154
+ * Flat ReactNative renderer bundles are too big for Flow to parse efficiently.
155
+ * Provide minimal Flow typing for the high-level RN API and call it a day.
156
+ */
157
+ export type ReactNativeType = {
158
+ findHostInstance_DEPRECATED<TElementType: React.ElementType>(
159
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
160
+ ): ?PublicInstance,
161
+ findNodeHandle<TElementType: React.ElementType>(
162
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
163
+ ): ?number,
164
+ isChildPublicInstance(parent: PublicInstance, child: PublicInstance): boolean,
165
+ dispatchCommand(
166
+ handle: PublicInstance,
167
+ command: string,
168
+ args: Array<mixed>,
169
+ ): void,
170
+ sendAccessibilityEvent(handle: PublicInstance, eventType: string): void,
171
+ render(
172
+ element: React.MixedElement,
173
+ containerTag: number,
174
+ callback: ?() => void,
175
+ options: ?RenderRootOptions,
176
+ ): ?React.ElementRef<React.ElementType>,
177
+ unmountComponentAtNode(containerTag: number): void,
178
+ unmountComponentAtNodeAndRemoveContainer(containerTag: number): void,
179
+ +unstable_batchedUpdates: <T>(fn: (T) => void, bookkeeping: T) => void,
180
+ ...
181
+ };
182
+
183
+ export opaque type Node = mixed;
184
+ export opaque type InternalInstanceHandle = mixed;
185
+
186
+ export type ReactFabricType = {
187
+ findHostInstance_DEPRECATED<TElementType: React.ElementType>(
188
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
189
+ ): ?PublicInstance,
190
+ findNodeHandle<TElementType: React.ElementType>(
191
+ componentOrHandle: ?(React.ElementRef<TElementType> | number),
192
+ ): ?number,
193
+ dispatchCommand(
194
+ handle: PublicInstance,
195
+ command: string,
196
+ args: Array<mixed>,
197
+ ): void,
198
+ isChildPublicInstance(parent: PublicInstance, child: PublicInstance): boolean,
199
+ sendAccessibilityEvent(handle: PublicInstance, eventType: string): void,
200
+ render(
201
+ element: React.MixedElement,
202
+ containerTag: number,
203
+ callback: ?() => void,
204
+ concurrentRoot: ?boolean,
205
+ options: ?RenderRootOptions,
206
+ ): ?React.ElementRef<React.ElementType>,
207
+ unmountComponentAtNode(containerTag: number): void,
208
+ getNodeFromInternalInstanceHandle(
209
+ internalInstanceHandle: InternalInstanceHandle,
210
+ ): ?Node,
211
+ getPublicInstanceFromInternalInstanceHandle(
212
+ internalInstanceHandle: InternalInstanceHandle,
213
+ ): PublicInstance | PublicTextInstance | null,
214
+ getPublicInstanceFromRootTag(rootTag: number): PublicRootInstance | null,
215
+ ...
216
+ };
217
+
218
+ export type ReactFabricEventTouch = {
219
+ identifier: number,
220
+ locationX: number,
221
+ locationY: number,
222
+ pageX: number,
223
+ pageY: number,
224
+ screenX: number,
225
+ screenY: number,
226
+ target: number,
227
+ timestamp: number,
228
+ force: number,
229
+ ...
230
+ };
231
+
232
+ export type ReactFabricEvent = {
233
+ touches: Array<ReactFabricEventTouch>,
234
+ changedTouches: Array<ReactFabricEventTouch>,
235
+ targetTouches: Array<ReactFabricEventTouch>,
236
+ target: number,
237
+ ...
238
+ };
239
+
240
+ // Imperative LayoutAnimation API types
241
+ //
242
+ export type LayoutAnimationType =
243
+ | 'spring'
244
+ | 'linear'
245
+ | 'easeInEaseOut'
246
+ | 'easeIn'
247
+ | 'easeOut'
248
+ | 'keyboard';
249
+
250
+ export type LayoutAnimationProperty =
251
+ | 'opacity'
252
+ | 'scaleX'
253
+ | 'scaleY'
254
+ | 'scaleXY';
255
+
256
+ export type LayoutAnimationAnimationConfig = $ReadOnly<{
257
+ duration?: number,
258
+ delay?: number,
259
+ springDamping?: number,
260
+ initialVelocity?: number,
261
+ type?: LayoutAnimationType,
262
+ property?: LayoutAnimationProperty,
263
+ }>;
264
+
265
+ export type LayoutAnimationConfig = $ReadOnly<{
266
+ duration: number,
267
+ create?: LayoutAnimationAnimationConfig,
268
+ update?: LayoutAnimationAnimationConfig,
269
+ delete?: LayoutAnimationAnimationConfig,
270
+ }>;
@@ -107,4 +107,6 @@ declare export const setStyleAttributePreprocessor: (
107
107
  * An identity function for creating style sheets.
108
108
  */
109
109
  // $FlowFixMe[unsupported-variance-annotation]
110
- declare export const create: <+S: ____Styles_Internal>(obj: S) => $ReadOnly<S>;
110
+ declare export const create: <+S: ____Styles_Internal>(
111
+ obj: S & ____Styles_Internal,
112
+ ) => $ReadOnly<S>;
@@ -11,7 +11,6 @@
11
11
  'use strict';
12
12
 
13
13
  import type {WithAnimatedValue} from '../Animated/createAnimatedComponent';
14
- import type AnimatedNode from '../Animated/nodes/AnimatedNode';
15
14
  import type {ImageResizeMode} from './../Image/ImageResizeMode';
16
15
  import type {
17
16
  ____DangerouslyImpreciseStyle_InternalOverrides,
@@ -21,6 +20,7 @@ import type {
21
20
  ____ViewStyle_InternalOverrides,
22
21
  } from './private/_StyleSheetTypesOverrides';
23
22
  import type {____TransformStyle_Internal} from './private/_TransformStyle';
23
+ import type {ColorValue} from './StyleSheet';
24
24
 
25
25
  export type {____TransformStyle_Internal};
26
26
 
@@ -1001,7 +1001,8 @@ export type ____ImageStyle_InternalCore = $ReadOnly<{
1001
1001
  resizeMode?: ImageResizeMode,
1002
1002
  objectFit?: 'cover' | 'contain' | 'fill' | 'scale-down' | 'none',
1003
1003
  tintColor?: ____ColorValue_Internal,
1004
- overlayColor?: string,
1004
+ overlayColor?: ColorValue,
1005
+ overflow?: 'visible' | 'hidden',
1005
1006
  }>;
1006
1007
 
1007
1008
  export type ____ImageStyle_Internal = $ReadOnly<{
@@ -1014,7 +1015,7 @@ export type ____DangerouslyImpreciseStyle_InternalCore = $ReadOnly<{
1014
1015
  resizeMode?: ImageResizeMode,
1015
1016
  objectFit?: 'cover' | 'contain' | 'fill' | 'scale-down' | 'none',
1016
1017
  tintColor?: ____ColorValue_Internal,
1017
- overlayColor?: string,
1018
+ overlayColor?: ColorValue,
1018
1019
  }>;
1019
1020
 
1020
1021
  export type ____DangerouslyImpreciseStyle_Internal = $ReadOnly<{
@@ -10,6 +10,25 @@
10
10
 
11
11
  import type AnimatedNode from '../../Animated/nodes/AnimatedNode';
12
12
 
13
+ // Helper types to enforce that a single key is used in a transform object
14
+ // after generating a TypeScript definition file from the Flow types.
15
+ // $FlowExpectedError[unclear-type]
16
+ type KeysOfUnion<T> = T extends any ? $Keys<T> : empty;
17
+ // $FlowExpectedError[unclear-type]
18
+ type ValueOfUnion<T, K> = T extends any
19
+ ? K extends $Keys<T>
20
+ ? T[K]
21
+ : empty
22
+ : empty;
23
+ type MergeUnion<T> = {
24
+ [K in KeysOfUnion<T>]?: ValueOfUnion<T, K>,
25
+ };
26
+ type MaximumOneOf<T: {...}> = $Values<{
27
+ [K in keyof T]: $Exact<{
28
+ [P in keyof T]?: P extends K ? T[P] : empty,
29
+ }>,
30
+ }>;
31
+
13
32
  export type ____TransformStyle_Internal = $ReadOnly<{
14
33
  /**
15
34
  * `transform` accepts an array of transformation objects. Each object specifies
@@ -29,27 +48,36 @@ export type ____TransformStyle_Internal = $ReadOnly<{
29
48
  */
30
49
  transform?:
31
50
  | $ReadOnlyArray<
32
- | {+perspective: number | AnimatedNode}
33
- | {+rotate: string | AnimatedNode}
34
- | {+rotateX: string | AnimatedNode}
35
- | {+rotateY: string | AnimatedNode}
36
- | {+rotateZ: string | AnimatedNode}
37
- | {+scale: number | AnimatedNode}
38
- | {+scaleX: number | AnimatedNode}
39
- | {+scaleY: number | AnimatedNode}
40
- | {+translateX: number | string | AnimatedNode}
41
- | {+translateY: number | string | AnimatedNode}
42
- | {
43
- +translate:
44
- | [number | string | AnimatedNode, number | string | AnimatedNode]
45
- | AnimatedNode,
46
- }
47
- | {+skewX: string | AnimatedNode}
48
- | {+skewY: string | AnimatedNode}
49
- // TODO: what is the actual type it expects?
50
- | {
51
- +matrix: $ReadOnlyArray<number | AnimatedNode> | AnimatedNode,
52
- },
51
+ $ReadOnly<
52
+ MaximumOneOf<
53
+ MergeUnion<
54
+ | {+perspective: number | AnimatedNode}
55
+ | {+rotate: string | AnimatedNode}
56
+ | {+rotateX: string | AnimatedNode}
57
+ | {+rotateY: string | AnimatedNode}
58
+ | {+rotateZ: string | AnimatedNode}
59
+ | {+scale: number | AnimatedNode}
60
+ | {+scaleX: number | AnimatedNode}
61
+ | {+scaleY: number | AnimatedNode}
62
+ | {+translateX: number | string | AnimatedNode}
63
+ | {+translateY: number | string | AnimatedNode}
64
+ | {
65
+ +translate:
66
+ | [
67
+ number | string | AnimatedNode,
68
+ number | string | AnimatedNode,
69
+ ]
70
+ | AnimatedNode,
71
+ }
72
+ | {+skewX: string | AnimatedNode}
73
+ | {+skewY: string | AnimatedNode}
74
+ // TODO: what is the actual type it expects?
75
+ | {
76
+ +matrix: $ReadOnlyArray<number | AnimatedNode> | AnimatedNode,
77
+ },
78
+ >,
79
+ >,
80
+ >,
53
81
  >
54
82
  | string,
55
83
  /**
@@ -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 {ProcessedColorValue} from './processColor';
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * @format strict-local
8
8
  * @flow
9
- * @oncall react-native
10
9
  */
11
10
 
12
11
  'use strict';
@@ -296,6 +296,13 @@ export interface TextProps
296
296
  * Controls how touch events are handled. Similar to `View`'s `pointerEvents`.
297
297
  */
298
298
  pointerEvents?: ViewStyle['pointerEvents'] | undefined;
299
+
300
+ /**
301
+ * Defines how far your touch may move off of the button, before deactivating the button.
302
+ */
303
+ pressRetentionOffset?:
304
+ | {top: number; left: number; bottom: number; right: number}
305
+ | undefined;
299
306
  }
300
307
 
301
308
  /**