@office-iss/react-native-win32 0.0.0-canary.298 → 0.0.0-canary.299

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 (220) hide show
  1. package/.flowconfig +5 -3
  2. package/CHANGELOG.json +28 -1
  3. package/CHANGELOG.md +16 -6
  4. package/IntegrationTests/IntegrationTestsApp.js +1 -0
  5. package/IntegrationTests/LoggingTestModule.js +16 -20
  6. package/IntegrationTests/TimersTest.js +1 -0
  7. package/IntegrationTests/WebSocketTest.js +1 -0
  8. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  9. package/Libraries/Alert/Alert.js +2 -2
  10. package/Libraries/Alert/NativeAlertManager.js +1 -0
  11. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  12. package/Libraries/Alert/RCTAlertManager.ios.js +9 -11
  13. package/Libraries/Alert/RCTAlertManager.js +1 -3
  14. package/Libraries/Alert/RCTAlertManager.js.flow +4 -6
  15. package/Libraries/Animated/AnimatedEvent.js +4 -3
  16. package/Libraries/Animated/AnimatedExports.js.flow +5 -0
  17. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  18. package/Libraries/Animated/AnimatedMock.js +2 -2
  19. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  21. package/Libraries/Animated/animations/Animation.js +6 -1
  22. package/Libraries/Animated/components/AnimatedScrollView.js +6 -5
  23. package/Libraries/Animated/components/AnimatedText.js +2 -5
  24. package/Libraries/Animated/components/AnimatedView.js +2 -1
  25. package/Libraries/Animated/createAnimatedComponent.js +2 -4
  26. package/Libraries/Animated/nodes/AnimatedProps.js +2 -7
  27. package/Libraries/AppState/NativeAppState.js +1 -0
  28. package/Libraries/Blob/NativeBlobModule.js +1 -0
  29. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  30. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  31. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +1 -2
  32. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +1 -2
  34. package/Libraries/Components/Button.js +7 -4
  35. package/Libraries/Components/Button.win32.js +7 -4
  36. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  37. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +1 -2
  38. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  39. package/Libraries/Components/Pressable/Pressable.js +8 -2
  40. package/Libraries/Components/Pressable/Pressable.win32.js +8 -8
  41. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -2
  42. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -2
  43. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -0
  44. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -2
  45. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  46. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  47. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -2
  48. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +1 -2
  49. package/Libraries/Components/ScrollView/ScrollView.d.ts +10 -1
  50. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  51. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  52. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  53. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  54. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  55. package/Libraries/Components/StatusBar/StatusBar.js +5 -0
  56. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -2
  57. package/Libraries/Components/Switch/Switch.js +2 -1
  58. package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -2
  59. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -7
  60. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -2
  61. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  62. package/Libraries/Components/TextInput/TextInput.js +2 -4
  63. package/Libraries/Components/TextInput/TextInput.win32.js +28 -3
  64. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  65. package/Libraries/Components/Touchable/Touchable.js +7 -3
  66. package/Libraries/Components/Touchable/Touchable.win32.js +7 -3
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -1
  68. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +3 -2
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +3 -2
  70. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  71. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -2
  72. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -2
  73. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -15
  74. package/Libraries/Components/View/View.js +17 -18
  75. package/Libraries/Components/View/View.win32.js +16 -2
  76. package/Libraries/Components/View/ViewAccessibility.js +0 -7
  77. package/Libraries/Components/View/ViewAccessibility.win32.js +0 -7
  78. package/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
  79. package/Libraries/Components/View/ViewPropTypes.js +8 -0
  80. package/Libraries/Components/View/ViewPropTypes.win32.js +8 -0
  81. package/Libraries/Core/ExceptionsManager.js +28 -15
  82. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  83. package/Libraries/Core/ReactNativeVersion.js +1 -1
  84. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  85. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  86. package/Libraries/Core/checkNativeVersion.js +1 -0
  87. package/Libraries/Core/setUpReactDevTools.js +21 -4
  88. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +1 -0
  89. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  90. package/Libraries/Image/Image.android.js +3 -3
  91. package/Libraries/Image/ImageSource.d.ts +5 -0
  92. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  93. package/Libraries/Image/NativeImageEditor.js +1 -0
  94. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  95. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  96. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  97. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  98. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  99. package/Libraries/Image/RelativeImageStub.js +1 -1
  100. package/Libraries/Image/TextInlineImageNativeComponent.js +3 -3
  101. package/Libraries/Interaction/InteractionManager.js +6 -1
  102. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  103. package/Libraries/Interaction/TaskQueue.js +14 -0
  104. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  105. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  106. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  107. package/Libraries/Lists/FlatList.js +5 -6
  108. package/Libraries/Lists/SectionList.js +4 -4
  109. package/Libraries/Lists/VirtualizedList.js +3 -2
  110. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  111. package/Libraries/LogBox/LogBox.js +72 -101
  112. package/Libraries/Modal/Modal.d.ts +8 -2
  113. package/Libraries/Modal/Modal.js +19 -2
  114. package/Libraries/Modal/NativeModalManager.js +1 -0
  115. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +1 -0
  116. package/Libraries/NativeComponent/BaseViewConfig.android.js +6 -15
  117. package/Libraries/NativeComponent/BaseViewConfig.ios.js +6 -15
  118. package/Libraries/NativeComponent/BaseViewConfig.win32.js +6 -15
  119. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  120. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  121. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  122. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  123. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  124. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  125. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  126. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  127. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  128. package/Libraries/Network/XMLHttpRequest.js +2 -0
  129. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  130. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -2
  131. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  132. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  133. package/Libraries/ReactNative/AppRegistryImpl.js +0 -10
  134. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  135. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  136. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  137. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  138. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +80 -61
  139. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
  140. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +2 -2
  141. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  142. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  143. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  144. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -12
  145. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +3 -12
  146. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  147. package/Libraries/Share/NativeShareModule.js +1 -0
  148. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  149. package/Libraries/StyleSheet/processAspectRatio.js +2 -0
  150. package/Libraries/Text/Text.js +4 -6
  151. package/Libraries/Text/TextAncestor.js +3 -10
  152. package/Libraries/Text/TextAncestorContext.js +23 -0
  153. package/Libraries/Text/TextProps.js +2 -2
  154. package/Libraries/Text/TextProps.win32.js +2 -2
  155. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  156. package/Libraries/Types/CodegenTypesNamespace.js +1 -0
  157. package/Libraries/Utilities/HMRClient.js +12 -2
  158. package/Libraries/Utilities/NativeAppearance.js +1 -0
  159. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  160. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  161. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  162. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  163. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  164. package/Libraries/Utilities/Platform.android.js +1 -4
  165. package/Libraries/Utilities/Platform.ios.js +1 -4
  166. package/Libraries/Utilities/Platform.js.flow +2 -2
  167. package/Libraries/Utilities/Platform.win32.js +1 -4
  168. package/Libraries/Utilities/PlatformTypes.js +1 -1
  169. package/Libraries/Utilities/codegenNativeCommands.js +4 -2
  170. package/Libraries/Utilities/codegenNativeComponent.js +3 -3
  171. package/Libraries/Utilities/createPerformanceLogger.js +32 -0
  172. package/Libraries/Vibration/NativeVibration.js +1 -0
  173. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  174. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  175. package/index.js +21 -0
  176. package/index.win32.js +12 -1
  177. package/jest/setup.js +1 -0
  178. package/overrides.json +25 -25
  179. package/package.json +11 -11
  180. package/src/private/animated/createAnimatedPropsHook.js +4 -1
  181. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -2
  182. package/src/private/components/virtualview/VirtualView.js +145 -0
  183. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  184. package/src/private/featureflags/ReactNativeFeatureFlags.js +43 -23
  185. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -5
  186. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  187. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +7 -4
  188. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  189. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
  190. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +3 -3
  191. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  192. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  193. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  194. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +9 -6
  195. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  196. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +14 -5
  197. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +8 -5
  198. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  199. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +3 -3
  200. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  201. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  202. package/src/private/styles/composeStyles.js +5 -12
  203. package/src/private/webapis/errors/DOMException.js +1 -1
  204. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  205. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +12 -7
  206. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +13 -0
  207. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -1
  208. package/src/private/webapis/performance/Performance.js +164 -61
  209. package/src/private/webapis/performance/PerformanceEntry.js +20 -16
  210. package/src/private/webapis/performance/PerformanceObserver.js +31 -27
  211. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  212. package/src/private/webapis/performance/UserTiming.js +60 -8
  213. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +47 -32
  214. package/src/private/webapis/performance/specs/NativePerformance.js +13 -1
  215. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
  216. package/Libraries/BugReporting/BugReporting.js +0 -140
  217. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  218. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  219. package/Libraries/BugReporting/getReactData.js +0 -187
  220. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
@@ -10,6 +10,7 @@
10
10
 
11
11
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
12
12
  import type {NativeSyntheticEvent} from '../../Types/CoreEventTypes';
13
+ import type {AccessibilityState} from '../View/ViewAccessibility';
13
14
  import type {ViewProps} from '../View/ViewPropTypes';
14
15
 
15
16
  import StyleSheet from '../../StyleSheet/StyleSheet';
@@ -231,7 +232,7 @@ const Switch: component(
231
232
  const _disabled =
232
233
  disabled != null ? disabled : accessibilityState?.disabled;
233
234
 
234
- const _accessibilityState =
235
+ const _accessibilityState: ?AccessibilityState =
235
236
  _disabled !== accessibilityState?.disabled
236
237
  ? {...accessibilityState, disabled: _disabled}
237
238
  : accessibilityState;
@@ -9,5 +9,4 @@
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/components/SwitchNativeComponent';
12
- import SwitchNativeComponent from '../../../src/private/specs_DEPRECATED/components/SwitchNativeComponent';
13
- export default SwitchNativeComponent;
12
+ export {default} from '../../../src/private/specs_DEPRECATED/components/SwitchNativeComponent';
@@ -63,7 +63,7 @@ export type ReturnKeyType =
63
63
 
64
64
  export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
65
65
 
66
- export type NativeProps = $ReadOnly<{
66
+ export type AndroidTextInputNativeProps = $ReadOnly<{
67
67
  // This allows us to inherit everything from ViewProps except for style (see below)
68
68
  // This must be commented for Fabric codegen to work.
69
69
  ...Omit<ViewProps, 'style'>,
@@ -606,7 +606,7 @@ export type NativeProps = $ReadOnly<{
606
606
  text?: ?string,
607
607
  }>;
608
608
 
609
- type NativeType = HostComponent<NativeProps>;
609
+ type NativeType = HostComponent<AndroidTextInputNativeProps>;
610
610
 
611
611
  type NativeCommands = TextInputNativeCommands<NativeType>;
612
612
 
@@ -725,10 +725,11 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
725
725
  },
726
726
  };
727
727
 
728
- let AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(
729
- 'AndroidTextInput',
730
- () => __INTERNAL_VIEW_CONFIG,
731
- );
728
+ let AndroidTextInputNativeComponent =
729
+ NativeComponentRegistry.get<AndroidTextInputNativeProps>(
730
+ 'AndroidTextInput',
731
+ () => __INTERNAL_VIEW_CONFIG,
732
+ );
732
733
 
733
734
  // flowlint-next-line unclear-type:off
734
- export default ((AndroidTextInputNativeComponent: any): HostComponent<NativeProps>);
735
+ export default ((AndroidTextInputNativeComponent: any): HostComponent<AndroidTextInputNativeProps>);
@@ -9,5 +9,4 @@
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent';
12
- import RCTInputAccessoryViewNativeComponent from '../../../src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent';
13
- export default RCTInputAccessoryViewNativeComponent;
12
+ export {default} from '../../../src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent';
@@ -1031,7 +1031,7 @@ type TextInputBaseProps = $ReadOnly<{
1031
1031
  }>;
1032
1032
 
1033
1033
  export type TextInputProps = $ReadOnly<{
1034
- ...Omit<ViewProps, 'style'>,
1034
+ ...Omit<ViewProps, 'style' | 'experimental_accessibilityOrder'>,
1035
1035
  ...TextInputIOSProps,
1036
1036
  ...TextInputAndroidProps,
1037
1037
  ...TextInputBaseProps,
@@ -55,7 +55,7 @@ import usePressability from '../../Pressability/usePressability';
55
55
  import flattenStyle from '../../StyleSheet/flattenStyle';
56
56
  import StyleSheet, {type TextStyleProp} from '../../StyleSheet/StyleSheet';
57
57
  import Text from '../../Text/Text';
58
- import TextAncestor from '../../Text/TextAncestor';
58
+ import TextAncestorContext from '../../Text/TextAncestorContext';
59
59
  import Platform from '../../Utilities/Platform';
60
60
  import useMergeRefs from '../../Utilities/useMergeRefs';
61
61
  import TextInputState from './TextInputState';
@@ -775,9 +775,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
775
775
  />
776
776
  );
777
777
  }
778
- return (
779
- <TextAncestor.Provider value={true}>{textInput}</TextAncestor.Provider>
780
- );
778
+ return <TextAncestorContext value={true}>{textInput}</TextAncestorContext>;
781
779
  }
782
780
 
783
781
  const enterKeyHintToReturnTypeMap = {
@@ -651,6 +651,10 @@ function InternalTextInput(props: TextInputProps): React.Node {
651
651
  for (const el of props.keyDownEvents) {
652
652
  if (
653
653
  event.nativeEvent.code === el.code &&
654
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
655
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
656
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
657
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
654
658
  el.handledEventPhase === eventPhase.Bubbling
655
659
  ) {
656
660
  event.stopPropagation();
@@ -664,7 +668,14 @@ function InternalTextInput(props: TextInputProps): React.Node {
664
668
  if (props.keyUpEvents && event.isPropagationStopped() !== true) {
665
669
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
666
670
  for (const el of props.keyUpEvents) {
667
- if (event.nativeEvent.code === el.code && el.handledEventPhase === 3) {
671
+ if (
672
+ event.nativeEvent.code === el.code &&
673
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
674
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
675
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
676
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
677
+ el.handledEventPhase === 3
678
+ ) {
668
679
  event.stopPropagation();
669
680
  }
670
681
  }
@@ -676,7 +687,14 @@ function InternalTextInput(props: TextInputProps): React.Node {
676
687
  if (props.keyDownEvents && event.isPropagationStopped() !== true) {
677
688
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
678
689
  for (const el of props.keyDownEvents) {
679
- if (event.nativeEvent.code === el.code && el.handledEventPhase === 1) {
690
+ if (
691
+ event.nativeEvent.code === el.code &&
692
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
693
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
694
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
695
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
696
+ el.handledEventPhase === 1
697
+ ) {
680
698
  event.stopPropagation();
681
699
  }
682
700
  }
@@ -688,7 +706,14 @@ function InternalTextInput(props: TextInputProps): React.Node {
688
706
  if (props.keyUpEvents && event.isPropagationStopped() !== true) {
689
707
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
690
708
  for (const el of props.keyUpEvents) {
691
- if (event.nativeEvent.code === el.code && el.handledEventPhase === 1) {
709
+ if (
710
+ event.nativeEvent.code === el.code &&
711
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
712
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
713
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
714
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
715
+ el.handledEventPhase === 1
716
+ ) {
692
717
  event.stopPropagation();
693
718
  }
694
719
  }
@@ -9,5 +9,4 @@
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/modules/NativeToastAndroid';
12
- import NativeToastAndroid from '../../../src/private/specs_DEPRECATED/modules/NativeToastAndroid';
13
- export default NativeToastAndroid;
12
+ export {default} from '../../../src/private/specs_DEPRECATED/modules/NativeToastAndroid';
@@ -10,7 +10,11 @@
10
10
 
11
11
  import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
12
12
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
13
- import type {GestureResponderEvent} from '../../Types/CoreEventTypes';
13
+ import type {
14
+ BlurEvent,
15
+ FocusEvent,
16
+ GestureResponderEvent,
17
+ } from '../../Types/CoreEventTypes';
14
18
 
15
19
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
16
20
  import UIManager from '../../ReactNative/UIManager';
@@ -589,7 +593,7 @@ const TouchableMixinImpl = {
589
593
  */
590
594
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
591
595
  * Flow's LTI update could not be added via codemod */
592
- touchableHandleFocus: function (e: Event) {
596
+ touchableHandleFocus: function (e: FocusEvent) {
593
597
  this.props.onFocus && this.props.onFocus(e);
594
598
  },
595
599
 
@@ -603,7 +607,7 @@ const TouchableMixinImpl = {
603
607
  */
604
608
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
605
609
  * Flow's LTI update could not be added via codemod */
606
- touchableHandleBlur: function (e: Event) {
610
+ touchableHandleBlur: function (e: BlurEvent) {
607
611
  this.props.onBlur && this.props.onBlur(e);
608
612
  },
609
613
 
@@ -10,7 +10,11 @@
10
10
 
11
11
  import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
12
12
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
13
- import type {GestureResponderEvent} from '../../Types/CoreEventTypes';
13
+ import type {
14
+ BlurEvent,
15
+ FocusEvent,
16
+ GestureResponderEvent,
17
+ } from '../../Types/CoreEventTypes';
14
18
 
15
19
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
16
20
  import UIManager from '../../ReactNative/UIManager';
@@ -594,7 +598,7 @@ const TouchableMixinImpl = {
594
598
  */
595
599
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
596
600
  * Flow's LTI update could not be added via codemod */
597
- touchableHandleFocus: function (e: Event) {
601
+ touchableHandleFocus: function (e: FocusEvent) {
598
602
  this.props.onFocus && this.props.onFocus(e);
599
603
  },
600
604
 
@@ -608,7 +612,7 @@ const TouchableMixinImpl = {
608
612
  */
609
613
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
610
614
  * Flow's LTI update could not be added via codemod */
611
- touchableHandleBlur: function (e: Event) {
615
+ touchableHandleBlur: function (e: BlurEvent) {
612
616
  this.props.onBlur && this.props.onBlur(e);
613
617
  },
614
618
 
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
12
+ import type {AccessibilityState} from '../View/ViewAccessibility';
12
13
  import type {TouchableWithoutFeedbackProps} from './TouchableWithoutFeedback';
13
14
 
14
15
  import View from '../../Components/View/View';
@@ -30,6 +31,9 @@ type AndroidProps = $ReadOnly<{
30
31
  }>;
31
32
 
32
33
  type IOSProps = $ReadOnly<{
34
+ /**
35
+ * @deprecated Use `focusable` instead
36
+ */
33
37
  hasTVPreferredFocus?: ?boolean,
34
38
  }>;
35
39
 
@@ -306,7 +310,7 @@ class TouchableHighlightImpl extends React.Component<
306
310
  const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =
307
311
  this.state.pressability.getEventHandlers();
308
312
 
309
- const accessibilityState =
313
+ const accessibilityState: ?AccessibilityState =
310
314
  this.props.disabled != null
311
315
  ? {
312
316
  ...this.props.accessibilityState,
@@ -24,11 +24,12 @@ import invariant from 'invariant';
24
24
  import * as React from 'react';
25
25
  import {cloneElement} from 'react';
26
26
 
27
- type TVProps = {
27
+ type TouchableNativeFeedbackTVProps = {
28
28
  /**
29
29
  * *(Apple TV only)* TV preferred focus (see documentation for the View component).
30
30
  *
31
31
  * @platform ios
32
+ * @deprecated Use `focusable` instead
32
33
  */
33
34
  hasTVPreferredFocus?: ?boolean,
34
35
 
@@ -70,7 +71,7 @@ type TVProps = {
70
71
 
71
72
  export type TouchableNativeFeedbackProps = $ReadOnly<{
72
73
  ...TouchableWithoutFeedbackProps,
73
- ...TVProps,
74
+ ...TouchableNativeFeedbackTVProps,
74
75
  /**
75
76
  * Determines the type of background drawable that's going to be used to display feedback.
76
77
  * It takes an object with type property and extra data depending on the type.
@@ -22,11 +22,12 @@ import invariant from 'invariant';
22
22
  import * as React from 'react';
23
23
  import {cloneElement} from 'react';
24
24
 
25
- type TVProps = {
25
+ type TouchableNativeFeedbackTVProps = {
26
26
  /**
27
27
  * *(Apple TV only)* TV preferred focus (see documentation for the View component).
28
28
  *
29
29
  * @platform ios
30
+ * @deprecated Use `focusable` instead
30
31
  */
31
32
  hasTVPreferredFocus?: ?boolean,
32
33
 
@@ -68,7 +69,7 @@ type TVProps = {
68
69
 
69
70
  export type TouchableNativeFeedbackProps = $ReadOnly<{
70
71
  ...TouchableWithoutFeedbackProps,
71
- ...TVProps,
72
+ ...TouchableNativeFeedbackTVProps,
72
73
  /**
73
74
  * Determines the type of background drawable that's going to be used to display feedback.
74
75
  * It takes an object with type property and extra data depending on the type.
@@ -16,6 +16,7 @@ export interface TVProps {
16
16
  * *(Apple TV only)* TV preferred focus (see documentation for the View component).
17
17
  *
18
18
  * @platform ios
19
+ * @deprecated Use `focusable` instead
19
20
  */
20
21
  hasTVPreferredFocus?: boolean | undefined;
21
22
 
@@ -21,11 +21,12 @@ import flattenStyle from '../../StyleSheet/flattenStyle';
21
21
  import Platform from '../../Utilities/Platform';
22
22
  import * as React from 'react';
23
23
 
24
- export type TVProps = $ReadOnly<{
24
+ export type TouchableOpacityTVProps = $ReadOnly<{
25
25
  /**
26
26
  * *(Apple TV only)* TV preferred focus (see documentation for the View component).
27
27
  *
28
28
  * @platform ios
29
+ * @deprecated Use `focusable` instead
29
30
  */
30
31
  hasTVPreferredFocus?: ?boolean,
31
32
 
@@ -78,7 +79,7 @@ type TouchableOpacityBaseProps = $ReadOnly<{
78
79
 
79
80
  export type TouchableOpacityProps = $ReadOnly<{
80
81
  ...TouchableWithoutFeedbackProps,
81
- ...TVProps,
82
+ ...TouchableOpacityTVProps,
82
83
  ...TouchableOpacityBaseProps,
83
84
  }>;
84
85
 
@@ -9,5 +9,4 @@
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent';
12
- import UnimplementedNativeViewNativeComponent from '../../../src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent';
13
- export default UnimplementedNativeViewNativeComponent;
12
+ export {default} from '../../../src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent';
@@ -11,7 +11,6 @@
11
11
  import type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';
12
12
 
13
13
  import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
14
- import NativeReactNativeFeatureFlags from '../../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
15
14
  import processAspectRatio from '../../StyleSheet/processAspectRatio';
16
15
  import processBackgroundImage from '../../StyleSheet/processBackgroundImage';
17
16
  import processBoxShadow from '../../StyleSheet/processBoxShadow';
@@ -123,13 +122,9 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
123
122
  /**
124
123
  * Filter
125
124
  */
126
- filter:
127
- NativeReactNativeFeatureFlags != null &&
128
- ReactNativeFeatureFlags.enableNativeCSSParsing()
129
- ? true
130
- : {
131
- process: processFilter,
132
- },
125
+ filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
126
+ ? true
127
+ : {process: processFilter},
133
128
 
134
129
  /**
135
130
  * MixBlendMode
@@ -144,13 +139,9 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
144
139
  /*
145
140
  * BoxShadow
146
141
  */
147
- boxShadow:
148
- NativeReactNativeFeatureFlags != null &&
149
- ReactNativeFeatureFlags.enableNativeCSSParsing()
150
- ? true
151
- : {
152
- process: processBoxShadow,
153
- },
142
+ boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
143
+ ? true
144
+ : {process: processBoxShadow},
154
145
 
155
146
  /**
156
147
  * Linear Gradient
@@ -11,18 +11,11 @@
11
11
  import type {ViewProps} from './ViewPropTypes';
12
12
 
13
13
  import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
14
- import TextAncestor from '../../Text/TextAncestor';
14
+ import TextAncestorContext from '../../Text/TextAncestorContext';
15
15
  import ViewNativeComponent from './ViewNativeComponent';
16
16
  import * as React from 'react';
17
17
  import {use} from 'react';
18
18
 
19
- export type Props = ViewProps;
20
-
21
- type PropsWithRef = $ReadOnly<{
22
- ref?: React.RefSetter<React.ElementRef<typeof ViewNativeComponent>>,
23
- ...ViewProps,
24
- }>;
25
-
26
19
  /**
27
20
  * The most fundamental component for building a UI, View is a container that
28
21
  * supports layout with flexbox, style, some touch handling, and accessibility
@@ -30,8 +23,11 @@ type PropsWithRef = $ReadOnly<{
30
23
  *
31
24
  * @see https://reactnative.dev/docs/view
32
25
  */
33
- function View(props: PropsWithRef): React.Node {
34
- const hasTextAncestor = use(TextAncestor);
26
+ export default component View(
27
+ ref?: React.RefSetter<React.ElementRef<typeof ViewNativeComponent>>,
28
+ ...props: ViewProps
29
+ ) {
30
+ const hasTextAncestor = use(TextAncestorContext);
35
31
 
36
32
  let actualView;
37
33
  if (ReactNativeFeatureFlags.reduceDefaultPropsInView()) {
@@ -57,7 +53,7 @@ function View(props: PropsWithRef): React.Node {
57
53
  } = props;
58
54
 
59
55
  // Since we destructured props, we can now treat it as mutable
60
- const processedProps = otherProps as {...PropsWithRef};
56
+ const processedProps = otherProps as {...ViewProps};
61
57
 
62
58
  const parsedAriaLabelledBy = ariaLabelledBy?.split(/\s*,\s*/g);
63
59
  if (parsedAriaLabelledBy !== undefined) {
@@ -120,7 +116,12 @@ function View(props: PropsWithRef): React.Node {
120
116
  };
121
117
  }
122
118
 
123
- actualView = <ViewNativeComponent {...processedProps} />;
119
+ actualView =
120
+ ref == null ? (
121
+ <ViewNativeComponent {...processedProps} />
122
+ ) : (
123
+ <ViewNativeComponent {...processedProps} ref={ref} />
124
+ );
124
125
  } else {
125
126
  const {
126
127
  accessibilityElementsHidden,
@@ -200,17 +201,15 @@ function View(props: PropsWithRef): React.Node {
200
201
  : importantForAccessibility
201
202
  }
202
203
  nativeID={id ?? nativeID}
204
+ ref={ref}
203
205
  />
204
206
  );
205
207
  }
206
208
 
207
209
  if (hasTextAncestor) {
208
- return <TextAncestor value={false}>{actualView}</TextAncestor>;
210
+ return (
211
+ <TextAncestorContext value={false}>{actualView}</TextAncestorContext>
212
+ );
209
213
  }
210
214
  return actualView;
211
215
  }
212
-
213
- export default View as component(
214
- ref?: React.RefSetter<React.ElementRef<typeof ViewNativeComponent>>,
215
- ...props: ViewProps
216
- );
@@ -18,8 +18,6 @@ import invariant from 'invariant'; // [Windows]
18
18
  import type {KeyEvent} from '../../Types/CoreEventTypes';
19
19
  // Windows]
20
20
 
21
- export type Props = ViewProps;
22
-
23
21
  /**
24
22
  * The most fundamental component for building a UI, View is a container that
25
23
  * supports layout with flexbox, style, some touch handling, and accessibility
@@ -119,6 +117,10 @@ const View: component(
119
117
  for (const el of otherProps.keyDownEvents) {
120
118
  if (
121
119
  event.nativeEvent.code === el.code &&
120
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
121
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
122
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
123
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
122
124
  el.handledEventPhase === 3
123
125
  ) {
124
126
  event.stopPropagation();
@@ -134,6 +136,10 @@ const View: component(
134
136
  for (const el of otherProps.keyUpEvents) {
135
137
  if (
136
138
  event.nativeEvent.code === el.code &&
139
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
140
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
141
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
142
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
137
143
  el.handledEventPhase === 3
138
144
  ) {
139
145
  event.stopPropagation();
@@ -149,6 +155,10 @@ const View: component(
149
155
  for (const el of otherProps.keyDownEvents) {
150
156
  if (
151
157
  event.nativeEvent.code === el.code &&
158
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
159
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
160
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
161
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
152
162
  el.handledEventPhase === 1
153
163
  ) {
154
164
  event.stopPropagation();
@@ -164,6 +174,10 @@ const View: component(
164
174
  for (const el of otherProps.keyUpEvents) {
165
175
  if (
166
176
  event.nativeEvent.code === el.code &&
177
+ event.nativeEvent.ctrlKey === Boolean(el.ctrlKey) &&
178
+ event.nativeEvent.shiftKey === Boolean(el.shiftKey) &&
179
+ event.nativeEvent.altKey === Boolean(el.altKey) &&
180
+ event.nativeEvent.metaKey === Boolean(el.metaKey) &&
167
181
  el.handledEventPhase === 1
168
182
  ) {
169
183
  event.stopPropagation();
@@ -374,13 +374,6 @@ export type AccessibilityProps = $ReadOnly<{
374
374
  */
375
375
  'aria-label'?: ?Stringish,
376
376
 
377
- /**
378
- * Defines the order in which descendant elements receive accessibility focus.
379
- * The elements in the array represent nativeID values for the respective
380
- * descendant elements.
381
- */
382
- experimental_accessibilityOrder?: ?Array<string>,
383
-
384
377
  /**
385
378
  * Indicates to accessibility services to treat UI component like a specific role.
386
379
  */
@@ -371,13 +371,6 @@ export type AccessibilityProps = $ReadOnly<{
371
371
  */
372
372
  'aria-label'?: ?Stringish,
373
373
 
374
- /**
375
- * Defines the order in which descendant elements receive accessibility focus.
376
- * The elements in the array represent nativeID values for the respective
377
- * descendant elements.
378
- */
379
- experimental_accessibilityOrder?: ?Array<string>,
380
-
381
374
  /**
382
375
  * Indicates to accessibility services to treat UI component like a specific role.
383
376
  */
@@ -23,6 +23,9 @@ import {
23
23
  import {Touchable} from 'react-native/Libraries/Components/Touchable/Touchable';
24
24
  import {AccessibilityProps} from './ViewAccessibility';
25
25
 
26
+ /**
27
+ * @deprecated These properties are not implemented natively.
28
+ */
26
29
  export interface TVViewPropsIOS {
27
30
  /**
28
31
  * *(Apple TV only)* When set to true, this view will be focusable
@@ -36,6 +39,7 @@ export interface TVViewPropsIOS {
36
39
  * *(Apple TV only)* May be set to true to force the Apple TV focus engine to move focus to this view.
37
40
  *
38
41
  * @platform ios
42
+ * @deprecated Use `focusable` instead
39
43
  */
40
44
  hasTVPreferredFocus?: boolean | undefined;
41
45
 
@@ -280,6 +280,7 @@ export type ViewPropsAndroid = $ReadOnly<{
280
280
  * Whether to force the Android TV focus engine to move focus to this view.
281
281
  *
282
282
  * @platform android
283
+ * @deprecated Use `focusable` instead
283
284
  */
284
285
  hasTVPreferredFocus?: ?boolean,
285
286
 
@@ -489,6 +490,13 @@ type ViewBaseProps = $ReadOnly<{
489
490
  * See https://reactnative.dev/docs/view#removeclippedsubviews
490
491
  */
491
492
  removeClippedSubviews?: ?boolean,
493
+
494
+ /**
495
+ * Defines the order in which descendant elements receive accessibility focus.
496
+ * The elements in the array represent nativeID values for the respective
497
+ * descendant elements.
498
+ */
499
+ experimental_accessibilityOrder?: ?Array<string>,
492
500
  }>;
493
501
 
494
502
  export type ViewProps = $ReadOnly<{
@@ -281,6 +281,7 @@ export type ViewPropsAndroid = $ReadOnly<{
281
281
  * Whether to force the Android TV focus engine to move focus to this view.
282
282
  *
283
283
  * @platform android
284
+ * @deprecated Use `focusable` instead
284
285
  */
285
286
  hasTVPreferredFocus?: ?boolean,
286
287
 
@@ -491,6 +492,13 @@ type ViewBaseProps = $ReadOnly<{
491
492
  */
492
493
  removeClippedSubviews?: ?boolean,
493
494
 
495
+ /**
496
+ * Defines the order in which descendant elements receive accessibility focus.
497
+ * The elements in the array represent nativeID values for the respective
498
+ * descendant elements.
499
+ */
500
+ experimental_accessibilityOrder?: ?Array<string>,
501
+
494
502
  /**
495
503
  * Specifies the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud.
496
504
  *