@office-iss/react-native-win32 0.0.0-canary.27 → 0.0.0-canary.271

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 (1423) hide show
  1. package/.eslintignore +5 -2
  2. package/.eslintrc.js +27 -2
  3. package/.flowconfig +72 -37
  4. package/CHANGELOG.json +5588 -1
  5. package/CHANGELOG.md +2224 -7
  6. package/IntegrationTests/AccessibilityManagerTest.js +8 -11
  7. package/IntegrationTests/AppEventsTest.js +3 -3
  8. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +12 -5
  9. package/IntegrationTests/ImageCachePolicyTest.js +5 -5
  10. package/IntegrationTests/ImageSnapshotTest.js +2 -2
  11. package/IntegrationTests/IntegrationTestHarnessTest.js +9 -6
  12. package/IntegrationTests/IntegrationTestsApp.js +16 -21
  13. package/IntegrationTests/LayoutEventsTest.js +14 -12
  14. package/IntegrationTests/LoggingTestModule.js +10 -12
  15. package/IntegrationTests/PromiseTest.js +2 -1
  16. package/IntegrationTests/SimpleSnapshotTest.js +2 -4
  17. package/IntegrationTests/SyncMethodTest.js +2 -2
  18. package/IntegrationTests/TimersTest.js +20 -5
  19. package/IntegrationTests/WebSocketTest.js +5 -5
  20. package/IntegrationTests/launchWebSocketServer.sh +12 -0
  21. package/IntegrationTests/websocket_integration_test_server.js +3 -3
  22. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +86 -0
  23. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +38 -11
  24. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +5 -43
  25. package/Libraries/Alert/Alert.d.ts +91 -0
  26. package/Libraries/Alert/Alert.js +31 -10
  27. package/Libraries/Alert/Alert.win32.js +6 -4
  28. package/Libraries/Alert/NativeAlertManager.js +5 -26
  29. package/Libraries/Alert/RCTAlertManager.android.js +2 -4
  30. package/Libraries/Alert/RCTAlertManager.ios.js +2 -3
  31. package/Libraries/Animated/Animated.d.ts +626 -0
  32. package/Libraries/Animated/Animated.js +48 -0
  33. package/Libraries/Animated/AnimatedEvent.js +256 -0
  34. package/Libraries/Animated/AnimatedImplementation.js +754 -0
  35. package/Libraries/Animated/AnimatedMock.js +195 -0
  36. package/Libraries/Animated/AnimatedPlatformConfig.js +13 -0
  37. package/Libraries/Animated/AnimatedWeb.js +26 -0
  38. package/Libraries/Animated/Easing.d.ts +37 -0
  39. package/Libraries/Animated/Easing.js +250 -0
  40. package/Libraries/Animated/NativeAnimatedAllowlist.js +122 -0
  41. package/Libraries/Animated/NativeAnimatedModule.js +13 -0
  42. package/Libraries/Animated/NativeAnimatedTurboModule.js +13 -0
  43. package/Libraries/Animated/SpringConfig.js +98 -0
  44. package/Libraries/Animated/animations/Animation.js +175 -0
  45. package/Libraries/Animated/animations/DecayAnimation.js +121 -0
  46. package/Libraries/Animated/animations/SpringAnimation.js +372 -0
  47. package/Libraries/Animated/animations/TimingAnimation.js +173 -0
  48. package/Libraries/Animated/bezier.js +164 -0
  49. package/Libraries/Animated/components/AnimatedFlatList.js +20 -0
  50. package/Libraries/Animated/components/AnimatedImage.js +22 -0
  51. package/Libraries/Animated/components/AnimatedScrollView.js +137 -0
  52. package/Libraries/Animated/components/AnimatedSectionList.js +20 -0
  53. package/Libraries/Animated/components/AnimatedText.js +22 -0
  54. package/Libraries/Animated/components/AnimatedView.js +20 -0
  55. package/Libraries/Animated/createAnimatedComponent.js +101 -0
  56. package/Libraries/Animated/nodes/AnimatedAddition.js +64 -0
  57. package/Libraries/Animated/nodes/AnimatedColor.js +320 -0
  58. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +72 -0
  59. package/Libraries/Animated/nodes/AnimatedDivision.js +80 -0
  60. package/Libraries/Animated/nodes/AnimatedInterpolation.js +416 -0
  61. package/Libraries/Animated/nodes/AnimatedModulo.js +63 -0
  62. package/Libraries/Animated/nodes/AnimatedMultiplication.js +63 -0
  63. package/Libraries/Animated/nodes/AnimatedNode.js +200 -0
  64. package/Libraries/Animated/nodes/AnimatedObject.js +162 -0
  65. package/Libraries/Animated/nodes/AnimatedProps.js +273 -0
  66. package/Libraries/Animated/nodes/AnimatedStyle.js +243 -0
  67. package/Libraries/Animated/nodes/AnimatedSubtraction.js +64 -0
  68. package/Libraries/Animated/nodes/AnimatedTracking.js +100 -0
  69. package/Libraries/Animated/nodes/AnimatedTransform.js +198 -0
  70. package/Libraries/Animated/nodes/AnimatedValue.js +303 -0
  71. package/Libraries/Animated/nodes/AnimatedValueXY.js +236 -0
  72. package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
  73. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  74. package/Libraries/Animated/useAnimatedProps.js +401 -0
  75. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  76. package/Libraries/Animated/useAnimatedValue.js +25 -0
  77. package/Libraries/AppState/AppState.d.ts +58 -0
  78. package/Libraries/AppState/AppState.js +91 -144
  79. package/Libraries/AppState/NativeAppState.js +5 -22
  80. package/Libraries/BatchedBridge/BatchedBridge.js +2 -2
  81. package/Libraries/BatchedBridge/MessageQueue.js +136 -114
  82. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  83. package/Libraries/BatchedBridge/NativeModules.js +36 -21
  84. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +1 -1
  85. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +3 -3
  86. package/Libraries/Blob/Blob.js +20 -3
  87. package/Libraries/Blob/BlobManager.js +7 -10
  88. package/Libraries/Blob/BlobRegistry.js +15 -10
  89. package/Libraries/Blob/BlobTypes.js +1 -1
  90. package/Libraries/Blob/File.js +3 -4
  91. package/Libraries/Blob/FileReader.js +36 -16
  92. package/Libraries/Blob/NativeBlobModule.js +5 -18
  93. package/Libraries/Blob/NativeFileReaderModule.js +5 -15
  94. package/Libraries/Blob/URL.js +38 -87
  95. package/Libraries/Blob/URLSearchParams.js +71 -0
  96. package/Libraries/Blob/__mocks__/BlobModule.js +1 -1
  97. package/Libraries/Blob/__mocks__/FileReaderModule.js +1 -1
  98. package/Libraries/BugReporting/BugReporting.js +8 -9
  99. package/Libraries/BugReporting/NativeBugReporting.js +5 -12
  100. package/Libraries/BugReporting/dumpReactTree.js +1 -1
  101. package/Libraries/BugReporting/getReactData.js +17 -8
  102. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  103. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +479 -0
  104. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +447 -96
  105. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +5 -19
  106. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  107. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -51
  108. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
  109. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  110. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +36 -0
  111. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  112. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +73 -48
  113. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +4 -47
  114. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  115. package/Libraries/Components/Button/ButtonWin32.Props.js +3 -3
  116. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -0
  117. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  118. package/Libraries/Components/Button/ButtonWin32.js +83 -103
  119. package/Libraries/Components/Button/ButtonWin32.js.map +1 -0
  120. package/Libraries/Components/Button.d.ts +42 -0
  121. package/Libraries/Components/Button.js +325 -125
  122. package/Libraries/Components/Button.win32.js +460 -0
  123. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  124. package/Libraries/Components/Clipboard/Clipboard.js +3 -5
  125. package/Libraries/Components/Clipboard/NativeClipboard.js +5 -14
  126. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +4 -116
  127. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +44 -35
  128. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  129. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +4 -2
  130. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  131. package/Libraries/Components/EnterString.win32.js +82 -114
  132. package/Libraries/Components/EnterString.win32.js.map +1 -0
  133. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  134. package/Libraries/Components/Keyboard/Keyboard.js +81 -71
  135. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  136. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +116 -56
  137. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +5 -13
  138. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  139. package/Libraries/Components/Pressable/Pressable.js +176 -43
  140. package/Libraries/Components/Pressable/Pressable.win32.js +437 -0
  141. package/Libraries/Components/Pressable/useAndroidRippleForView.js +38 -23
  142. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +28 -22
  143. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  144. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  145. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +5 -27
  146. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +4 -77
  147. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -56
  148. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  149. package/Libraries/Components/RefreshControl/RefreshControl.js +16 -38
  150. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +7 -10
  151. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +4 -20
  152. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  153. package/Libraries/Components/SafeAreaView/SafeAreaView.js +12 -39
  154. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +12 -41
  155. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +5 -32
  156. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +39 -21
  157. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +13 -20
  158. package/Libraries/Components/ScrollView/ScrollView.d.ts +910 -0
  159. package/Libraries/Components/ScrollView/ScrollView.js +1153 -434
  160. package/Libraries/Components/ScrollView/ScrollViewCommands.js +4 -4
  161. package/Libraries/Components/ScrollView/ScrollViewContext.js +22 -0
  162. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +170 -18
  163. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +11 -17
  164. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +207 -62
  165. package/Libraries/Components/ScrollView/processDecelerationRate.js +2 -4
  166. package/Libraries/Components/Sound/NativeSoundManager.js +5 -15
  167. package/Libraries/Components/Sound/SoundManager.js +3 -4
  168. package/Libraries/Components/StaticRenderer.js +1 -1
  169. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +5 -27
  170. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +5 -35
  171. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  172. package/Libraries/Components/StatusBar/StatusBar.js +40 -60
  173. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +5 -56
  174. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  175. package/Libraries/Components/Switch/Switch.js +162 -133
  176. package/Libraries/Components/Switch/SwitchNativeComponent.js +5 -50
  177. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +237 -67
  178. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  179. package/Libraries/Components/TextInput/InputAccessoryView.js +28 -23
  180. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +5 -18
  181. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +26 -31
  182. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +18 -38
  183. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +167 -0
  184. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  185. package/Libraries/Components/TextInput/Tests/TextInputTest.js +128 -126
  186. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -0
  187. package/Libraries/Components/TextInput/TextInput.d.ts +1003 -0
  188. package/Libraries/Components/TextInput/TextInput.flow.js +1105 -0
  189. package/Libraries/Components/TextInput/TextInput.js +1132 -445
  190. package/Libraries/Components/TextInput/TextInput.win32.js +2028 -179
  191. package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
  192. package/Libraries/Components/TextInput/TextInputState.js +42 -21
  193. package/Libraries/Components/TextInput/TextInputState.win32.js +55 -30
  194. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +23 -0
  195. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +5 -31
  196. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +11 -10
  197. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  198. package/Libraries/Components/ToastAndroid/ToastAndroid.js +45 -0
  199. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +16 -10
  200. package/Libraries/Components/Touchable/BoundingDimensions.js +13 -6
  201. package/Libraries/Components/Touchable/PooledClass.js +26 -15
  202. package/Libraries/Components/Touchable/Position.js +9 -5
  203. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  204. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +344 -381
  205. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -0
  206. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  207. package/Libraries/Components/Touchable/Touchable.js +122 -133
  208. package/Libraries/Components/Touchable/Touchable.win32.js +978 -0
  209. package/Libraries/Components/Touchable/TouchableBounce.js +56 -55
  210. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
  211. package/Libraries/Components/Touchable/TouchableHighlight.js +66 -56
  212. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  213. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +86 -67
  214. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +99 -51
  215. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +81 -0
  216. package/Libraries/Components/Touchable/TouchableOpacity.js +94 -58
  217. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -34
  218. package/Libraries/Components/Touchable/TouchableWin32.Props.js +3 -3
  219. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -0
  220. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  221. package/Libraries/Components/Touchable/TouchableWin32.Types.js +3 -3
  222. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -0
  223. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  224. package/Libraries/Components/Touchable/TouchableWin32.js +507 -529
  225. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -0
  226. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
  227. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +149 -107
  228. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +4 -19
  229. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +3 -4
  230. package/Libraries/Components/View/ReactNativeStyleAttributes.js +200 -69
  231. package/Libraries/Components/View/ReactNativeViewAttributes.js +7 -3
  232. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +37 -13
  233. package/Libraries/Components/View/View.d.ts +29 -0
  234. package/Libraries/Components/View/View.js +105 -13
  235. package/Libraries/Components/View/View.win32.js +276 -0
  236. package/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
  237. package/Libraries/Components/View/ViewAccessibility.js +88 -7
  238. package/Libraries/Components/View/ViewAccessibility.win32.js +180 -0
  239. package/Libraries/Components/View/ViewNativeComponent.js +98 -67
  240. package/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
  241. package/Libraries/Components/View/ViewPropTypes.js +230 -66
  242. package/Libraries/Components/View/ViewPropTypes.win32.js +743 -0
  243. package/Libraries/Components/View/ViewWin32.d.ts +30 -12
  244. package/Libraries/Components/View/ViewWin32.js +129 -80
  245. package/Libraries/Core/Devtools/getDevServer.js +9 -8
  246. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  247. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +153 -0
  248. package/Libraries/Core/Devtools/openFileInEditor.js +6 -2
  249. package/Libraries/Core/Devtools/openURLInBrowser.js +3 -2
  250. package/Libraries/Core/Devtools/parseErrorStack.js +14 -23
  251. package/Libraries/Core/Devtools/parseHermesStack.js +71 -44
  252. package/Libraries/Core/Devtools/symbolicateStackTrace.js +13 -58
  253. package/Libraries/Core/ExceptionsManager.js +93 -98
  254. package/Libraries/Core/ExtendedError.js +33 -0
  255. package/Libraries/Core/InitializeCore.js +7 -3
  256. package/Libraries/Core/NativeExceptionsManager.js +5 -100
  257. package/Libraries/Core/RawEventEmitter.js +39 -0
  258. package/Libraries/Core/ReactFiberErrorDialog.js +47 -38
  259. package/Libraries/Core/ReactNativeVersion.js +13 -7
  260. package/Libraries/Core/ReactNativeVersionCheck.js +11 -8
  261. package/Libraries/Core/ReactNativeVersionCheck.win32.js +11 -8
  262. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +5 -21
  263. package/Libraries/Core/Timers/JSTimers.js +94 -120
  264. package/Libraries/Core/Timers/NativeTiming.js +5 -19
  265. package/Libraries/Core/Timers/immediateShim.js +68 -0
  266. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  267. package/Libraries/Core/__mocks__/ErrorUtils.js +1 -1
  268. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  269. package/Libraries/Core/checkNativeVersion.js +1 -1
  270. package/Libraries/Core/polyfillPromise.js +19 -3
  271. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  272. package/Libraries/Core/registerCallableModule.js +42 -0
  273. package/Libraries/Core/setUpAlert.js +2 -2
  274. package/Libraries/Core/setUpBatchedBridge.js +15 -11
  275. package/Libraries/Core/setUpDeveloperTools.js +59 -60
  276. package/Libraries/Core/setUpErrorHandling.js +9 -3
  277. package/Libraries/Core/setUpGlobals.js +8 -6
  278. package/Libraries/Core/setUpNavigator.js +8 -7
  279. package/Libraries/Core/setUpPerformance.js +31 -0
  280. package/Libraries/Core/setUpReactDevTools.js +121 -12
  281. package/Libraries/Core/setUpReactRefresh.js +4 -6
  282. package/Libraries/Core/setUpRegeneratorRuntime.js +28 -9
  283. package/Libraries/Core/setUpSegmentFetcher.js +9 -47
  284. package/Libraries/Core/setUpTimers.js +96 -8
  285. package/Libraries/Core/setUpXHR.js +5 -5
  286. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  287. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  288. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  289. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  290. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +63 -0
  291. package/Libraries/EventEmitter/NativeEventEmitter.js +92 -40
  292. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
  293. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +27 -68
  294. package/Libraries/EventEmitter/RCTEventEmitter.js +6 -2
  295. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  296. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +2 -4
  297. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +34 -11
  298. package/Libraries/Events/CustomEvent.js +32 -0
  299. package/Libraries/Events/EventPolyfill.js +239 -0
  300. package/Libraries/HeapCapture/HeapCapture.js +3 -5
  301. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +5 -12
  302. package/Libraries/Image/AssetRegistry.js +2 -27
  303. package/Libraries/Image/AssetSourceResolver.js +65 -39
  304. package/Libraries/Image/AssetUtils.js +47 -0
  305. package/Libraries/Image/Image.android.js +208 -271
  306. package/Libraries/Image/Image.d.ts +382 -0
  307. package/Libraries/Image/Image.ios.js +147 -104
  308. package/Libraries/Image/Image.win32.js +152 -93
  309. package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
  310. package/Libraries/Image/ImageBackground.js +29 -13
  311. package/Libraries/Image/ImageInjection.js +87 -0
  312. package/Libraries/Image/ImageProps.js +154 -29
  313. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  314. package/Libraries/Image/ImageResizeMode.js +1 -1
  315. package/Libraries/Image/ImageSource.d.ts +76 -0
  316. package/Libraries/Image/ImageSource.js +73 -21
  317. package/Libraries/Image/ImageSourceUtils.js +80 -0
  318. package/Libraries/Image/ImageTypes.d.ts +25 -25
  319. package/Libraries/Image/ImageTypes.flow.js +76 -0
  320. package/Libraries/Image/ImageTypes.js +8 -8
  321. package/Libraries/Image/ImageTypes.js.map +1 -0
  322. package/Libraries/Image/ImageUtils.js +22 -0
  323. package/Libraries/Image/ImageViewNativeComponent.js +145 -29
  324. package/Libraries/Image/NativeImageEditor.js +13 -0
  325. package/Libraries/Image/NativeImageLoaderAndroid.js +5 -32
  326. package/Libraries/Image/NativeImageLoaderIOS.js +5 -24
  327. package/Libraries/Image/NativeImageLoaderWin32.js +5 -32
  328. package/Libraries/Image/NativeImageStoreAndroid.js +13 -0
  329. package/Libraries/Image/NativeImageStoreIOS.js +13 -0
  330. package/Libraries/Image/RelativeImageStub.js +2 -2
  331. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  332. package/Libraries/Image/Tests/ImageWin32Test.js +22 -19
  333. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -0
  334. package/Libraries/Image/TextInlineImageNativeComponent.js +38 -7
  335. package/Libraries/Image/assetPaths.js +36 -0
  336. package/Libraries/Image/nativeImageSource.js +4 -6
  337. package/Libraries/Image/resolveAssetSource.js +65 -31
  338. package/Libraries/Image/resolveAssetSource.win32.js +18 -6
  339. package/Libraries/Inspector/BorderBox.js +2 -2
  340. package/Libraries/Inspector/BoxInspector.js +4 -5
  341. package/Libraries/Inspector/ElementBox.js +15 -10
  342. package/Libraries/Inspector/ElementProperties.js +35 -62
  343. package/Libraries/Inspector/Inspector.js +152 -259
  344. package/Libraries/Inspector/Inspector.win32.js +156 -263
  345. package/Libraries/Inspector/InspectorOverlay.js +28 -53
  346. package/Libraries/Inspector/InspectorOverlay.win32.js +31 -54
  347. package/Libraries/Inspector/InspectorPanel.js +31 -37
  348. package/Libraries/Inspector/NetworkOverlay.js +28 -18
  349. package/Libraries/Inspector/PerformanceOverlay.js +5 -5
  350. package/Libraries/Inspector/ReactDevToolsOverlay.js +165 -0
  351. package/Libraries/Inspector/StyleInspector.js +3 -3
  352. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +81 -0
  353. package/Libraries/Inspector/resolveBoxStyle.js +1 -1
  354. package/Libraries/Interaction/FrameRateLogger.js +10 -22
  355. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  356. package/Libraries/Interaction/InteractionManager.js +29 -40
  357. package/Libraries/Interaction/JSEventLoopWatchdog.js +10 -15
  358. package/Libraries/Interaction/NativeFrameRateLogger.js +5 -16
  359. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  360. package/Libraries/Interaction/PanResponder.js +26 -28
  361. package/Libraries/Interaction/TaskQueue.js +15 -16
  362. package/Libraries/Interaction/TouchHistoryMath.js +32 -29
  363. package/Libraries/JSInspector/InspectorAgent.js +4 -4
  364. package/Libraries/JSInspector/JSInspector.js +2 -5
  365. package/Libraries/JSInspector/NetworkAgent.js +12 -17
  366. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  367. package/Libraries/LayoutAnimation/LayoutAnimation.js +86 -37
  368. package/Libraries/Linking/Linking.d.ts +61 -0
  369. package/Libraries/Linking/Linking.js +50 -41
  370. package/Libraries/Linking/NativeIntentAndroid.js +13 -0
  371. package/Libraries/Linking/NativeLinkingManager.js +13 -0
  372. package/Libraries/Lists/FillRateHelper.js +6 -232
  373. package/Libraries/Lists/FlatList.d.ts +244 -0
  374. package/Libraries/Lists/FlatList.js +194 -127
  375. package/Libraries/Lists/SectionList.d.ts +267 -0
  376. package/Libraries/Lists/SectionList.js +38 -33
  377. package/Libraries/Lists/SectionListModern.js +249 -0
  378. package/Libraries/Lists/ViewabilityHelper.js +10 -327
  379. package/Libraries/Lists/VirtualizeUtils.js +6 -235
  380. package/Libraries/Lists/VirtualizedList.js +10 -2224
  381. package/Libraries/Lists/VirtualizedListContext.js +18 -0
  382. package/Libraries/Lists/VirtualizedSectionList.js +9 -565
  383. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +4 -3
  384. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +9 -9
  385. package/Libraries/LogBox/Data/LogBoxData.js +104 -73
  386. package/Libraries/LogBox/Data/LogBoxLog.js +125 -12
  387. package/Libraries/LogBox/Data/LogBoxSymbolication.js +10 -9
  388. package/Libraries/LogBox/Data/parseLogBoxLog.js +289 -76
  389. package/Libraries/LogBox/LogBox.d.ts +28 -0
  390. package/Libraries/LogBox/LogBox.js +163 -91
  391. package/Libraries/LogBox/LogBoxInspectorContainer.js +6 -6
  392. package/Libraries/LogBox/LogBoxNotificationContainer.js +10 -7
  393. package/Libraries/LogBox/UI/AnsiHighlight.js +17 -8
  394. package/Libraries/LogBox/UI/LogBoxButton.js +6 -7
  395. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  396. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  397. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  398. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  399. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  400. package/Libraries/LogBox/UI/LogBoxInspector.js +13 -77
  401. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  402. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +12 -10
  403. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  404. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +9 -53
  405. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  406. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +19 -79
  407. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +113 -0
  408. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  409. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -7
  410. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +16 -14
  411. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +196 -0
  412. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -5
  413. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +6 -10
  414. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -10
  415. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +118 -0
  416. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +19 -11
  417. package/Libraries/LogBox/UI/LogBoxMessage.js +100 -19
  418. package/Libraries/LogBox/UI/LogBoxNotification.js +20 -158
  419. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  420. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  421. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  422. package/Libraries/LogBox/UI/LogBoxStyle.js +1 -3
  423. package/Libraries/LogBox/UI/LogBoxStyle.win32.js +65 -0
  424. package/Libraries/Modal/Modal.d.ts +111 -0
  425. package/Libraries/Modal/Modal.js +147 -72
  426. package/Libraries/Modal/ModalInjection.js +15 -0
  427. package/Libraries/Modal/NativeModalManager.js +5 -14
  428. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +4 -117
  429. package/Libraries/NativeComponent/BaseViewConfig.android.js +358 -0
  430. package/Libraries/NativeComponent/BaseViewConfig.ios.js +423 -0
  431. package/Libraries/NativeComponent/BaseViewConfig.win32.js +415 -0
  432. package/Libraries/NativeComponent/NativeComponentRegistry.js +164 -0
  433. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +30 -0
  434. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +25 -0
  435. package/Libraries/NativeComponent/StaticViewConfigValidator.js +144 -0
  436. package/Libraries/NativeComponent/ViewConfig.js +52 -0
  437. package/Libraries/NativeComponent/ViewConfigIgnore.js +51 -0
  438. package/Libraries/NativeModules/specs/NativeDevMenu.js +5 -16
  439. package/Libraries/NativeModules/specs/NativeDevSettings.js +5 -26
  440. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +5 -12
  441. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +5 -41
  442. package/Libraries/NativeModules/specs/NativeLogBox.js +5 -13
  443. package/Libraries/NativeModules/specs/NativeRedBox.js +5 -13
  444. package/Libraries/NativeModules/specs/NativeSourceCode.js +5 -14
  445. package/Libraries/Network/FormData.js +13 -5
  446. package/Libraries/Network/NativeNetworkingAndroid.js +5 -30
  447. package/Libraries/Network/NativeNetworkingIOS.js +5 -30
  448. package/Libraries/Network/RCTNetworking.android.js +16 -12
  449. package/Libraries/Network/RCTNetworking.ios.js +67 -18
  450. package/Libraries/Network/RCTNetworking.win32.js +84 -68
  451. package/Libraries/Network/XHRInterceptor.js +66 -18
  452. package/Libraries/Network/XMLHttpRequest.js +107 -31
  453. package/Libraries/Network/convertRequestBody.js +4 -4
  454. package/Libraries/Network/fetch.js +2 -1
  455. package/Libraries/NewAppScreen/components/Colors.js +2 -3
  456. package/Libraries/NewAppScreen/components/DebugInstructions.js +9 -6
  457. package/Libraries/NewAppScreen/components/Header.js +38 -16
  458. package/Libraries/NewAppScreen/components/HermesBadge.js +53 -0
  459. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +52 -27
  460. package/Libraries/NewAppScreen/components/ReloadInstructions.js +5 -2
  461. package/Libraries/NewAppScreen/components/logo.png +0 -0
  462. package/Libraries/NewAppScreen/index.js +12 -6
  463. package/Libraries/Performance/NativeJSCSamplingProfiler.js +5 -12
  464. package/Libraries/Performance/SamplingProfiler.js +5 -5
  465. package/Libraries/Performance/Systrace.d.ts +66 -0
  466. package/Libraries/Performance/Systrace.js +116 -171
  467. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +5 -52
  468. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +116 -0
  469. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +60 -23
  470. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  471. package/Libraries/PersonaCoin/PersonaCoin.js +15 -22
  472. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -0
  473. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  474. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +20 -20
  475. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -0
  476. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  477. package/Libraries/PersonaCoin/PersonaCoinTypes.js +24 -24
  478. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -0
  479. package/Libraries/Pressability/HoverState.js +4 -4
  480. package/Libraries/Pressability/HoverState.win32.js +62 -0
  481. package/Libraries/Pressability/Pressability.js +244 -150
  482. package/Libraries/Pressability/Pressability.win32.js +1093 -0
  483. package/Libraries/Pressability/PressabilityDebug.js +31 -27
  484. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
  485. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  486. package/Libraries/Pressability/usePressability.js +25 -11
  487. package/Libraries/Promise.js +5 -35
  488. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +5 -66
  489. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
  490. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +134 -83
  491. package/Libraries/QuirkSettings/CachingNativeQuirkSettings.js +30 -0
  492. package/Libraries/QuirkSettings/NativeQuirkSettings.js +17 -0
  493. package/Libraries/QuirkSettings/QuirkSettings.js +34 -0
  494. package/Libraries/QuirkSettings/Quirks.js +17 -0
  495. package/Libraries/ReactNative/AppContainer-dev.js +208 -0
  496. package/Libraries/ReactNative/AppContainer-prod.js +50 -0
  497. package/Libraries/ReactNative/AppContainer.js +13 -138
  498. package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
  499. package/Libraries/ReactNative/AppRegistry.js +133 -78
  500. package/Libraries/ReactNative/BridgelessUIManager.js +419 -0
  501. package/Libraries/ReactNative/DisplayMode.js +32 -0
  502. package/Libraries/ReactNative/FabricUIManager.js +116 -27
  503. package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -3
  504. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  505. package/Libraries/ReactNative/I18nManager.js +17 -12
  506. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +5 -13
  507. package/Libraries/ReactNative/NativeI18nManager.js +5 -18
  508. package/Libraries/ReactNative/NativeUIManager.js +5 -114
  509. package/Libraries/ReactNative/PaperUIManager.js +79 -52
  510. package/Libraries/ReactNative/PaperUIManager.win32.js +210 -0
  511. package/Libraries/ReactNative/ReactFabricInternals.js +2 -2
  512. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +150 -0
  513. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +100 -0
  514. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +38 -0
  515. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  516. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +33 -0
  517. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +31 -0
  518. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
  519. package/Libraries/ReactNative/RendererImplementation.js +164 -0
  520. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  521. package/Libraries/ReactNative/RendererProxy.js +26 -0
  522. package/Libraries/ReactNative/RootTag.d.ts +13 -0
  523. package/Libraries/ReactNative/RootTag.js +27 -0
  524. package/Libraries/ReactNative/UIManager.d.ts +113 -0
  525. package/Libraries/ReactNative/UIManager.js +178 -24
  526. package/Libraries/ReactNative/UIManagerProperties.js +3 -8
  527. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +334 -0
  528. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +35 -0
  529. package/Libraries/ReactNative/getNativeComponentAttributes.js +51 -25
  530. package/Libraries/ReactNative/renderApplication.js +71 -23
  531. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  532. package/Libraries/ReactNative/requireNativeComponent.js +4 -4
  533. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  534. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +66 -11
  535. package/Libraries/Renderer/implementations/ReactFabric-dev.js +16225 -19958
  536. package/Libraries/Renderer/implementations/ReactFabric-prod.js +8087 -5327
  537. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +8773 -5583
  538. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16543 -20582
  539. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +8148 -5386
  540. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +8836 -5645
  541. package/Libraries/Renderer/shims/ReactFabric.js +9 -8
  542. package/Libraries/Renderer/shims/ReactFeatureFlags.js +4 -2
  543. package/Libraries/Renderer/shims/ReactNative.js +4 -3
  544. package/Libraries/Renderer/shims/ReactNativeTypes.js +237 -81
  545. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +27 -37
  546. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +7 -6
  547. package/Libraries/Settings/NativeSettingsManager.js +5 -18
  548. package/Libraries/Settings/Settings.d.ts +18 -0
  549. package/Libraries/Settings/Settings.ios.js +7 -7
  550. package/Libraries/Settings/Settings.js +33 -0
  551. package/Libraries/Share/NativeShareModule.js +5 -16
  552. package/Libraries/Share/Share.d.ts +80 -0
  553. package/Libraries/Share/Share.js +33 -25
  554. package/Libraries/StyleSheet/EdgeInsetsPropType.js +5 -2
  555. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +10 -11
  556. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  557. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +52 -16
  558. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +15 -5
  559. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  560. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +11 -5
  561. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +4 -4
  562. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +2 -4
  563. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +2 -2
  564. package/Libraries/StyleSheet/PointPropType.js +1 -1
  565. package/Libraries/StyleSheet/Rect.js +1 -3
  566. package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
  567. package/Libraries/StyleSheet/StyleSheet.js +42 -56
  568. package/Libraries/StyleSheet/StyleSheet.win32.js +43 -57
  569. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +567 -0
  570. package/Libraries/StyleSheet/StyleSheetTypes.js +457 -130
  571. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +11 -35
  572. package/Libraries/StyleSheet/flattenStyle.js +14 -9
  573. package/Libraries/StyleSheet/normalizeColor.js +11 -370
  574. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  575. package/Libraries/StyleSheet/private/_TransformStyle.js +69 -0
  576. package/Libraries/StyleSheet/processAspectRatio.js +63 -0
  577. package/Libraries/StyleSheet/processBackgroundImage.js +384 -0
  578. package/Libraries/StyleSheet/processBoxShadow.js +209 -0
  579. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  580. package/Libraries/StyleSheet/processColor.js +6 -8
  581. package/Libraries/StyleSheet/processColorArray.js +18 -7
  582. package/Libraries/StyleSheet/processFilter.js +321 -0
  583. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  584. package/Libraries/StyleSheet/processTransform.js +125 -111
  585. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  586. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  587. package/Libraries/StyleSheet/splitLayoutProps.js +57 -49
  588. package/Libraries/Text/Text.d.ts +304 -0
  589. package/Libraries/Text/Text.js +508 -270
  590. package/Libraries/Text/Text.win32.js +580 -0
  591. package/Libraries/Text/TextAncestor.js +7 -2
  592. package/Libraries/Text/TextNativeComponent.js +82 -0
  593. package/Libraries/Text/TextNativeComponent.win32.js +117 -0
  594. package/Libraries/Text/TextProps.js +107 -29
  595. package/Libraries/Text/TextProps.win32.js +281 -0
  596. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  597. package/Libraries/TurboModule/RCTExport.js +3 -1
  598. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
  599. package/Libraries/TurboModule/TurboModuleRegistry.js +24 -16
  600. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +5 -28
  601. package/Libraries/Types/CodegenTypes.js +9 -2
  602. package/Libraries/Types/CoreEventTypes.d.ts +259 -0
  603. package/Libraries/Types/CoreEventTypes.js +145 -10
  604. package/Libraries/Types/CoreEventTypes.win32.js +340 -0
  605. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  606. package/Libraries/Types/RootTagTypes.js +11 -0
  607. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  608. package/Libraries/UTFSequence.js +6 -4
  609. package/Libraries/Utilities/Appearance.d.ts +53 -0
  610. package/Libraries/Utilities/Appearance.js +116 -63
  611. package/Libraries/Utilities/BackHandler.android.js +14 -23
  612. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  613. package/Libraries/Utilities/BackHandler.ios.js +14 -96
  614. package/Libraries/Utilities/BackHandler.win32.js +107 -7
  615. package/Libraries/Utilities/DebugEnvironment.js +16 -0
  616. package/Libraries/Utilities/DevLoadingView.js +64 -0
  617. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  618. package/Libraries/Utilities/DevSettings.js +55 -48
  619. package/Libraries/Utilities/DeviceInfo.js +1 -3
  620. package/Libraries/Utilities/DeviceInfo.win32.js +0 -2
  621. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  622. package/Libraries/Utilities/Dimensions.js +30 -49
  623. package/Libraries/Utilities/Dimensions.win32.js +106 -18
  624. package/Libraries/Utilities/FeatureDetection.js +31 -0
  625. package/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  626. package/Libraries/Utilities/FocusManager.win32.js +42 -0
  627. package/Libraries/Utilities/GlobalPerformanceLogger.js +4 -5
  628. package/Libraries/Utilities/HMRClient.js +102 -39
  629. package/Libraries/Utilities/HMRClientProdShim.js +2 -1
  630. package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
  631. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  632. package/Libraries/Utilities/NativeAppearance.js +5 -28
  633. package/Libraries/Utilities/NativeDevLoadingView.js +5 -17
  634. package/Libraries/Utilities/NativeDeviceInfo.js +4 -40
  635. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +5 -30
  636. package/Libraries/Utilities/NativePlatformConstantsIOS.js +5 -26
  637. package/Libraries/Utilities/NativePlatformConstantsWin.js +4 -21
  638. package/Libraries/Utilities/PerformanceLoggerContext.js +17 -10
  639. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  640. package/Libraries/Utilities/PixelRatio.js +6 -6
  641. package/Libraries/Utilities/Platform.android.js +37 -16
  642. package/Libraries/Utilities/Platform.d.ts +106 -0
  643. package/Libraries/Utilities/Platform.flow.js +91 -0
  644. package/Libraries/Utilities/Platform.flow.win32.js +124 -0
  645. package/Libraries/Utilities/Platform.ios.js +39 -19
  646. package/Libraries/Utilities/Platform.win32.js +42 -15
  647. package/Libraries/Utilities/PolyfillFunctions.js +6 -6
  648. package/Libraries/Utilities/RCTLog.js +6 -5
  649. package/Libraries/Utilities/ReactNativeTestTools.js +36 -58
  650. package/Libraries/Utilities/SceneTracker.js +6 -5
  651. package/Libraries/Utilities/__mocks__/BackHandler.js +6 -6
  652. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +1 -1
  653. package/Libraries/Utilities/__mocks__/PixelRatio.js +2 -2
  654. package/Libraries/Utilities/binaryToBase64.js +6 -4
  655. package/Libraries/Utilities/codegenNativeCommands.js +6 -6
  656. package/Libraries/Utilities/codegenNativeComponent.js +24 -14
  657. package/Libraries/Utilities/createPerformanceLogger.js +259 -244
  658. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +12 -6
  659. package/Libraries/Utilities/defineLazyObjectProperty.js +3 -3
  660. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  661. package/Libraries/Utilities/differ/insetsDiffer.js +2 -2
  662. package/Libraries/Utilities/differ/matricesDiffer.js +6 -2
  663. package/Libraries/Utilities/differ/pointsDiffer.js +2 -2
  664. package/Libraries/Utilities/differ/sizesDiffer.js +11 -5
  665. package/Libraries/Utilities/dismissKeyboard.js +1 -1
  666. package/Libraries/Utilities/infoLog.js +3 -2
  667. package/Libraries/Utilities/logError.js +2 -2
  668. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  669. package/Libraries/Utilities/stringifySafe.js +8 -8
  670. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  671. package/Libraries/Utilities/useColorScheme.js +10 -16
  672. package/Libraries/Utilities/useMergeRefs.js +40 -0
  673. package/Libraries/Utilities/useRefEffect.js +45 -0
  674. package/Libraries/Utilities/useWindowDimensions.js +15 -8
  675. package/Libraries/Utilities/warnOnce.js +3 -5
  676. package/Libraries/Vibration/NativeVibration.js +5 -17
  677. package/Libraries/Vibration/Vibration.d.ts +43 -0
  678. package/Libraries/Vibration/Vibration.js +16 -14
  679. package/Libraries/WebSocket/NativeWebSocketModule.js +5 -27
  680. package/Libraries/WebSocket/WebSocket.js +47 -27
  681. package/Libraries/WebSocket/WebSocketEvent.js +5 -2
  682. package/Libraries/WebSocket/WebSocketInterceptor.js +46 -27
  683. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  684. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  685. package/Libraries/YellowBox/YellowBoxDeprecated.js +6 -6
  686. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -6
  687. package/Libraries/__tests__/ButtonWin32-test.js +17 -0
  688. package/Libraries/platform-types.d.ts +25 -0
  689. package/Libraries/promiseRejectionTrackingOptions.js +72 -0
  690. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  691. package/Libraries/vendor/core/ErrorUtils.js +2 -2
  692. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  693. package/Libraries/vendor/emitter/EventEmitter.js +123 -193
  694. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
  695. package/babel.config.js +3 -0
  696. package/flow/HermesInternalType.js +114 -0
  697. package/flow/Position.js +1 -1
  698. package/flow/Stringish.js +1 -1
  699. package/flow/console.js +1 -1
  700. package/flow/global.js +87 -0
  701. package/flow/jest.js +266 -168
  702. package/flow/react.js +15 -0
  703. package/index.js +359 -254
  704. package/index.win32.js +768 -42
  705. package/interface.js +9 -9
  706. package/jest/MockNativeMethods.js +1 -1
  707. package/jest/__tests__/setup-test.js +18 -0
  708. package/jest/assetFileTransformer.js +7 -5
  709. package/jest/local-setup.js +28 -0
  710. package/jest/mockComponent.js +28 -16
  711. package/jest/mockModal.js +32 -0
  712. package/jest/mockNativeComponent.js +40 -0
  713. package/jest/mockScrollView.js +35 -0
  714. package/jest/react-native-env.js +16 -0
  715. package/jest/renderer.js +29 -22
  716. package/jest/setup.js +188 -88
  717. package/jest-snapshot-resolver.js +2 -0
  718. package/jest.config.js +38 -0
  719. package/just-task.js +11 -53
  720. package/metro.config.js +5 -20
  721. package/metroShortPathAssetDataPlugin.js +15 -0
  722. package/overrides.json +535 -0
  723. package/package.json +90 -48
  724. package/react-native.config.js +2 -0
  725. package/rn-get-polyfills.js +3 -6
  726. package/saveAssetPlugin.js +45 -0
  727. package/src/private/animated/NativeAnimatedHelper.js +440 -0
  728. package/src/private/animated/NativeAnimatedHelper.win32.js +443 -0
  729. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  730. package/src/private/animated/useAnimatedPropsMemo.js +349 -0
  731. package/src/private/components/HScrollViewNativeComponents.js +55 -0
  732. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +31 -0
  733. package/src/private/components/VScrollViewNativeComponents.js +48 -0
  734. package/src/private/components/useSyncOnScroll.js +48 -0
  735. package/src/private/debugging/FuseboxSessionObserver.js +42 -0
  736. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  737. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  738. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +20 -0
  739. package/src/private/debugging/setUpFuseboxReactDevToolsDispatcher.js +114 -0
  740. package/src/private/devmenu/DevMenu.d.ts +20 -0
  741. package/src/private/devmenu/DevMenu.js +31 -0
  742. package/src/private/featureflags/ReactNativeFeatureFlags.js +390 -0
  743. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +109 -0
  744. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +81 -0
  745. package/src/private/renderer/errorhandling/ErrorHandlers.js +126 -0
  746. package/src/private/setup/setUpDOM.js +28 -0
  747. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  748. package/src/private/setup/setUpMutationObserver.js +26 -0
  749. package/src/private/setup/setUpPerformanceObserver.js +64 -0
  750. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  751. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  752. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
  753. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  754. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  755. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  756. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  757. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  758. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  759. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  760. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  761. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  762. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  763. package/src/private/specs/modules/NativeAccessibilityInfo.js +36 -0
  764. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +42 -0
  765. package/src/private/specs/modules/NativeAccessibilityManager.js +70 -0
  766. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  767. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  768. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  769. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  770. package/src/private/specs/modules/NativeAppState.js +33 -0
  771. package/src/private/specs/modules/NativeAppearance.js +36 -0
  772. package/src/private/specs/modules/NativeBlobModule.js +61 -0
  773. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  774. package/src/private/specs/modules/NativeClipboard.js +21 -0
  775. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  776. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  777. package/src/private/specs/modules/NativeDevSettings.js +34 -0
  778. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  779. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  780. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  781. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  782. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  783. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  784. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  785. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  786. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  787. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  788. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  789. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  790. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  791. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  792. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  793. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  794. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  795. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  796. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  797. package/src/private/specs/modules/NativeLogBox.js +20 -0
  798. package/src/private/specs/modules/NativeModalManager.js +21 -0
  799. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  800. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  801. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  802. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  803. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  804. package/src/private/specs/modules/NativePlatformConstantsWin.js +44 -0
  805. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +103 -0
  806. package/src/private/specs/modules/NativeReactDevToolsSettingsManager.js +22 -0
  807. package/src/private/specs/modules/NativeRedBox.js +20 -0
  808. package/src/private/specs/modules/NativeSampleTurboModule.js +66 -0
  809. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  810. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  811. package/src/private/specs/modules/NativeShareModule.js +23 -0
  812. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  813. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  814. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  815. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  816. package/src/private/specs/modules/NativeTiming.js +26 -0
  817. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  818. package/src/private/specs/modules/NativeUIManager.js +111 -0
  819. package/src/private/specs/modules/NativeVibration.js +24 -0
  820. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  821. package/src/private/styles/composeStyles.js +27 -0
  822. package/src/private/webapis/dom/geometry/DOMRect.js +82 -0
  823. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +188 -0
  824. package/src/private/webapis/dom/nodes/ReactNativeElement.js +188 -0
  825. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +71 -0
  826. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +247 -0
  827. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +359 -0
  828. package/src/private/webapis/dom/nodes/ReadOnlyText.js +30 -0
  829. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  830. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  831. package/src/private/webapis/dom/nodes/utilities/Traversal.js +54 -0
  832. package/src/private/webapis/dom/oldstylecollections/ArrayLikeUtils.js +46 -0
  833. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +76 -0
  834. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +82 -0
  835. package/src/private/webapis/dom/oldstylecollections/NodeList.js +104 -0
  836. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  837. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +254 -0
  838. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +141 -0
  839. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +276 -0
  840. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +41 -0
  841. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +172 -0
  842. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  843. package/src/private/webapis/mutationobserver/MutationObserver.js +186 -0
  844. package/src/private/webapis/mutationobserver/MutationObserverManager.js +227 -0
  845. package/src/private/webapis/mutationobserver/MutationRecord.js +82 -0
  846. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +58 -0
  847. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +327 -0
  848. package/src/private/webapis/performance/EventTiming.js +145 -0
  849. package/src/private/webapis/performance/LongTasks.js +39 -0
  850. package/src/private/webapis/performance/MemoryInfo.js +54 -0
  851. package/src/private/webapis/performance/Performance.js +278 -0
  852. package/src/private/webapis/performance/PerformanceEntry.js +68 -0
  853. package/src/private/webapis/performance/PerformanceObserver.js +232 -0
  854. package/src/private/webapis/performance/RawPerformanceEntry.js +105 -0
  855. package/src/private/webapis/performance/ReactNativeStartupTiming.js +91 -0
  856. package/src/private/webapis/performance/UserTiming.js +72 -0
  857. package/src/private/webapis/performance/Utilities.js +18 -0
  858. package/src/private/webapis/performance/specs/NativePerformance.js +87 -0
  859. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +247 -0
  860. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  861. package/src-win/Libraries/Components/Button/ButtonWin32.Props.ts +45 -0
  862. package/src-win/Libraries/Components/Button/ButtonWin32.tsx +94 -0
  863. package/src-win/Libraries/Components/EnterString.win32.tsx +110 -0
  864. package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +185 -0
  865. package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +502 -0
  866. package/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  867. package/src-win/Libraries/Components/Touchable/TouchableWin32.Props.tsx +46 -0
  868. package/src-win/Libraries/Components/Touchable/TouchableWin32.Types.tsx +137 -0
  869. package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +624 -0
  870. package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
  871. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
  872. package/src-win/Libraries/Components/View/ViewWin32.d.ts +30 -0
  873. package/src-win/Libraries/Image/ImageTypes.ts +27 -0
  874. package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +22 -0
  875. package/src-win/Libraries/Image/Tests/img/dpitest.png +0 -0
  876. package/src-win/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  877. package/src-win/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  878. package/src-win/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  879. package/src-win/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  880. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  881. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  882. package/src-win/Libraries/PersonaCoin/PersonaCoin.tsx +12 -0
  883. package/src-win/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +17 -0
  884. package/src-win/Libraries/PersonaCoin/PersonaCoinTypes.ts +36 -0
  885. package/src-win/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +38 -0
  886. package/src-win/Libraries/Text/Text.d.ts +304 -0
  887. package/src-win/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  888. package/src-win/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  889. package/src-win/Libraries/platform-types.d.ts +25 -0
  890. package/types/experimental.d.ts +59 -0
  891. package/types/index.d.ts +218 -0
  892. package/types/modules/BatchedBridge.d.ts +32 -0
  893. package/types/modules/Codegen.d.ts +80 -0
  894. package/types/modules/Devtools.d.ts +32 -0
  895. package/types/modules/LaunchScreen.d.ts +18 -0
  896. package/types/modules/globals.d.ts +599 -0
  897. package/types/private/TimerMixin.d.ts +19 -0
  898. package/types/private/Utilities.d.ts +10 -0
  899. package/types/public/DeprecatedPropertiesAlias.d.ts +185 -0
  900. package/types/public/Insets.d.ts +15 -0
  901. package/types/public/ReactNativeRenderer.d.ts +144 -0
  902. package/types/public/ReactNativeTypes.d.ts +139 -0
  903. package/IntegrationTests/AsyncStorageTest.js +0 -217
  904. package/IntegrationTests/PropertiesUpdateTest.js +0 -29
  905. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -92
  906. package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -91
  907. package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -108
  908. package/IntegrationTests/launchWebSocketServer.command +0 -18
  909. package/Libraries/Animated/examples/demo.html +0 -712
  910. package/Libraries/Animated/examples/pic1.jpg +0 -0
  911. package/Libraries/Animated/examples/pic2.jpg +0 -0
  912. package/Libraries/Animated/examples/pic3.jpg +0 -0
  913. package/Libraries/Animated/release/gulpfile.js +0 -155
  914. package/Libraries/Animated/src/Animated.js +0 -49
  915. package/Libraries/Animated/src/AnimatedEvent.js +0 -233
  916. package/Libraries/Animated/src/AnimatedImplementation.js +0 -712
  917. package/Libraries/Animated/src/AnimatedMock.js +0 -156
  918. package/Libraries/Animated/src/AnimatedWeb.js +0 -23
  919. package/Libraries/Animated/src/Easing.js +0 -252
  920. package/Libraries/Animated/src/NativeAnimatedHelper.js +0 -342
  921. package/Libraries/Animated/src/NativeAnimatedModule.js +0 -66
  922. package/Libraries/Animated/src/SpringConfig.js +0 -103
  923. package/Libraries/Animated/src/animations/Animation.js +0 -73
  924. package/Libraries/Animated/src/animations/DecayAnimation.js +0 -120
  925. package/Libraries/Animated/src/animations/SpringAnimation.js +0 -359
  926. package/Libraries/Animated/src/animations/TimingAnimation.js +0 -165
  927. package/Libraries/Animated/src/bezier.js +0 -153
  928. package/Libraries/Animated/src/components/AnimatedFlatList.js +0 -32
  929. package/Libraries/Animated/src/components/AnimatedImage.js +0 -25
  930. package/Libraries/Animated/src/components/AnimatedScrollView.js +0 -32
  931. package/Libraries/Animated/src/components/AnimatedSectionList.js +0 -32
  932. package/Libraries/Animated/src/components/AnimatedText.js +0 -25
  933. package/Libraries/Animated/src/components/AnimatedView.js +0 -23
  934. package/Libraries/Animated/src/createAnimatedComponent.js +0 -223
  935. package/Libraries/Animated/src/nodes/AnimatedAddition.js +0 -63
  936. package/Libraries/Animated/src/nodes/AnimatedDiffClamp.js +0 -71
  937. package/Libraries/Animated/src/nodes/AnimatedDivision.js +0 -68
  938. package/Libraries/Animated/src/nodes/AnimatedInterpolation.js +0 -373
  939. package/Libraries/Animated/src/nodes/AnimatedModulo.js +0 -62
  940. package/Libraries/Animated/src/nodes/AnimatedMultiplication.js +0 -63
  941. package/Libraries/Animated/src/nodes/AnimatedNode.js +0 -184
  942. package/Libraries/Animated/src/nodes/AnimatedProps.js +0 -176
  943. package/Libraries/Animated/src/nodes/AnimatedStyle.js +0 -127
  944. package/Libraries/Animated/src/nodes/AnimatedSubtraction.js +0 -63
  945. package/Libraries/Animated/src/nodes/AnimatedTracking.js +0 -102
  946. package/Libraries/Animated/src/nodes/AnimatedTransform.js +0 -121
  947. package/Libraries/Animated/src/nodes/AnimatedValue.js +0 -265
  948. package/Libraries/Animated/src/nodes/AnimatedValueXY.js +0 -226
  949. package/Libraries/Animated/src/nodes/AnimatedWithChildren.js +0 -87
  950. package/Libraries/Animated/src/polyfills/InteractionManager.js +0 -15
  951. package/Libraries/Animated/src/polyfills/Set.js +0 -26
  952. package/Libraries/Animated/src/polyfills/flattenStyle.js +0 -13
  953. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -162
  954. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -271
  955. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.win32.js +0 -33
  956. package/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js +0 -23
  957. package/Libraries/Components/AppleTV/TVEventHandler.js +0 -52
  958. package/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js +0 -74
  959. package/Libraries/Components/CheckBox/CheckBox.android.js +0 -228
  960. package/Libraries/Components/CheckBox/CheckBox.ios.js +0 -13
  961. package/Libraries/Components/CheckBox/CheckBox.win32.js +0 -12
  962. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -46
  963. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -189
  964. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -46
  965. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  966. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -89
  967. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  968. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js +0 -30
  969. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  970. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -22
  971. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +0 -12
  972. package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +0 -13
  973. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  974. package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +0 -13
  975. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  976. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -68
  977. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -68
  978. package/Libraries/Components/Picker/Picker.js +0 -159
  979. package/Libraries/Components/Picker/Picker.win32.d.ts +0 -1
  980. package/Libraries/Components/Picker/Picker.win32.js +0 -80
  981. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -146
  982. package/Libraries/Components/Picker/PickerAndroid.ios.js +0 -12
  983. package/Libraries/Components/Picker/PickerAndroid.js +0 -12
  984. package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
  985. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
  986. package/Libraries/Components/Picker/PickerIOS.js +0 -14
  987. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -63
  988. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +0 -12
  989. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -46
  990. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -77
  991. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -8
  992. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -35
  993. package/Libraries/Components/ScrollResponder.js +0 -773
  994. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -77
  995. package/Libraries/Components/ScrollView/__mocks__/ScrollViewMock.js +0 -39
  996. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -46
  997. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -46
  998. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  999. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -46
  1000. package/Libraries/Components/Slider/Slider.js +0 -276
  1001. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -60
  1002. package/Libraries/Components/StaticContainer.react.js +0 -51
  1003. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -22
  1004. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -26
  1005. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  1006. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  1007. package/Libraries/Components/Text/TextWin32.js +0 -41
  1008. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -84
  1009. package/Libraries/Components/TextInput/RCTSinglelineTextInputViewConfig.js +0 -134
  1010. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
  1011. package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
  1012. package/Libraries/Components/TextInput/TextInput.win32.d.ts +0 -68
  1013. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +0 -39
  1014. package/Libraries/Components/Touchable/TVTouchable.js +0 -55
  1015. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.d.ts +0 -7
  1016. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.js +0 -3
  1017. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.d.ts +0 -16
  1018. package/Libraries/Components/Touchable/__mocks__/ensureComponentIsNative.js +0 -12
  1019. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
  1020. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -347
  1021. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -384
  1022. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -74
  1023. package/Libraries/Components/View/Tests/ViewWin32Test.d.ts +0 -8
  1024. package/Libraries/Components/View/Tests/ViewWin32Test.js +0 -235
  1025. package/Libraries/Components/View/ViewWin32.Props.d.ts +0 -149
  1026. package/Libraries/Components/View/ViewWin32.Props.js +0 -11
  1027. package/Libraries/Core/setUpSystrace.js +0 -21
  1028. package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
  1029. package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
  1030. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.js +0 -82
  1031. package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
  1032. package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
  1033. package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
  1034. package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
  1035. package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
  1036. package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
  1037. package/Libraries/DeprecatedPropTypes/DeprecatedTVViewPropTypes.js +0 -23
  1038. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
  1039. package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
  1040. package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
  1041. package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
  1042. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -44
  1043. package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
  1044. package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
  1045. package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
  1046. package/Libraries/Image/ImagePickerIOS.js +0 -105
  1047. package/Libraries/Image/ImageViewViewConfig.js +0 -68
  1048. package/Libraries/Image/NativeImagePickerIOS.js +0 -40
  1049. package/Libraries/Image/assetPathUtils.js +0 -91
  1050. package/Libraries/Interaction/Batchinator.js +0 -76
  1051. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -62
  1052. package/Libraries/Interaction/InteractionMixin.js +0 -55
  1053. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  1054. package/Libraries/Linking/NativeLinking.js +0 -41
  1055. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -21
  1056. package/Libraries/Performance/PureComponentDebug.js +0 -73
  1057. package/Libraries/Performance/QuickPerformanceLogger.js +0 -101
  1058. package/Libraries/ReactNative/DummyUIManager.js +0 -123
  1059. package/Libraries/ReactNative/RootTagContext.js +0 -15
  1060. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  1061. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -20493
  1062. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -7440
  1063. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -7718
  1064. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -21091
  1065. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -7677
  1066. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -7955
  1067. package/Libraries/Renderer/shims/ReactTypes.js +0 -192
  1068. package/Libraries/Settings/Settings.android.js +0 -33
  1069. package/Libraries/Storage/AsyncStorage.js +0 -360
  1070. package/Libraries/Storage/NativeAsyncStorage.js +0 -44
  1071. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.android.js +0 -18
  1072. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.js +0 -17
  1073. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -97
  1074. package/Libraries/StyleSheet/StyleSheetValidation.win32.js +0 -102
  1075. package/Libraries/Utilities/BackHandler.win32.d.ts +0 -2
  1076. package/Libraries/Utilities/JSDevSupportModule.js +0 -40
  1077. package/Libraries/Utilities/LoadingView.android.js +0 -29
  1078. package/Libraries/Utilities/LoadingView.ios.js +0 -40
  1079. package/Libraries/Utilities/LoadingView.js +0 -16
  1080. package/Libraries/Utilities/MatrixMath.js +0 -752
  1081. package/Libraries/Utilities/NativeJSDevSupport.js +0 -25
  1082. package/Libraries/Utilities/buildStyleInterpolator.js +0 -211
  1083. package/Libraries/Utilities/clamp.js +0 -23
  1084. package/Libraries/Utilities/deprecatedPropType.js +0 -38
  1085. package/Libraries/Utilities/groupByEveryN.js +0 -51
  1086. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  1087. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -83
  1088. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  1089. package/Libraries/Utilities/truncate.js +0 -51
  1090. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -134
  1091. package/Libraries/polyfills/Object.es7.js +0 -58
  1092. package/Libraries/polyfills/console.js +0 -641
  1093. package/Libraries/polyfills/error-guard.js +0 -115
  1094. package/Libraries/promiseRejectionIsError.js +0 -24
  1095. package/Libraries/vendor/emitter/EmitterSubscription.js +0 -59
  1096. package/Libraries/vendor/emitter/EventSubscription.js +0 -40
  1097. package/Libraries/vendor/emitter/EventSubscriptionVendor.js +0 -101
  1098. package/RNTester/APIExamples/AccessibilityExampleWin32.d.ts +0 -8
  1099. package/RNTester/APIExamples/AccessibilityExampleWin32.js +0 -262
  1100. package/RNTester/APIExamples/ThemingModuleAPI.d.ts +0 -8
  1101. package/RNTester/APIExamples/ThemingModuleAPI.js +0 -80
  1102. package/RNTester/js/RNTesterApp.android.js +0 -363
  1103. package/RNTester/js/RNTesterApp.ios.js +0 -272
  1104. package/RNTester/js/RNTesterApp.win32.js +0 -285
  1105. package/RNTester/js/assets/bandaged.png +0 -0
  1106. package/RNTester/js/assets/bunny.png +0 -0
  1107. package/RNTester/js/assets/call.png +0 -0
  1108. package/RNTester/js/assets/dislike.png +0 -0
  1109. package/RNTester/js/assets/fist.png +0 -0
  1110. package/RNTester/js/assets/flowers.png +0 -0
  1111. package/RNTester/js/assets/flux@3x.png +0 -0
  1112. package/RNTester/js/assets/hawk.png +0 -0
  1113. package/RNTester/js/assets/heart.png +0 -0
  1114. package/RNTester/js/assets/helloworld.html +0 -25
  1115. package/RNTester/js/assets/imageMask.png +0 -0
  1116. package/RNTester/js/assets/like.png +0 -0
  1117. package/RNTester/js/assets/liking.png +0 -0
  1118. package/RNTester/js/assets/messagingtest.html +0 -28
  1119. package/RNTester/js/assets/party.png +0 -0
  1120. package/RNTester/js/assets/poke.png +0 -0
  1121. package/RNTester/js/assets/relay@3x.png +0 -0
  1122. package/RNTester/js/assets/slider-left.png +0 -0
  1123. package/RNTester/js/assets/slider-left@2x.png +0 -0
  1124. package/RNTester/js/assets/slider-right.png +0 -0
  1125. package/RNTester/js/assets/slider-right@2x.png +0 -0
  1126. package/RNTester/js/assets/slider.png +0 -0
  1127. package/RNTester/js/assets/slider@2x.png +0 -0
  1128. package/RNTester/js/assets/superlike.png +0 -0
  1129. package/RNTester/js/assets/trees.jpg +0 -0
  1130. package/RNTester/js/assets/tumblr_mfqekpMktw1rn90umo1_500.gif +0 -0
  1131. package/RNTester/js/assets/uie_comment_highlighted@2x.png +0 -0
  1132. package/RNTester/js/assets/uie_comment_normal@2x.png +0 -0
  1133. package/RNTester/js/assets/uie_thumb_big.png +0 -0
  1134. package/RNTester/js/assets/uie_thumb_normal@2x.png +0 -0
  1135. package/RNTester/js/assets/uie_thumb_selected@2x.png +0 -0
  1136. package/RNTester/js/assets/victory.png +0 -0
  1137. package/RNTester/js/components/ListExampleShared.js +0 -377
  1138. package/RNTester/js/components/ListExampleShared.win32.js +0 -384
  1139. package/RNTester/js/components/RNTesterBlock.js +0 -105
  1140. package/RNTester/js/components/RNTesterButton.js +0 -50
  1141. package/RNTester/js/components/RNTesterExampleContainer.js +0 -80
  1142. package/RNTester/js/components/RNTesterExampleFilter.js +0 -120
  1143. package/RNTester/js/components/RNTesterExampleFilter.win32.js +0 -120
  1144. package/RNTester/js/components/RNTesterExampleList.js +0 -254
  1145. package/RNTester/js/components/RNTesterPage.js +0 -76
  1146. package/RNTester/js/components/RNTesterSettingSwitchRow.js +0 -60
  1147. package/RNTester/js/components/RNTesterTheme.js +0 -90
  1148. package/RNTester/js/components/RNTesterTitle.js +0 -58
  1149. package/RNTester/js/components/TextInlineView.js +0 -207
  1150. package/RNTester/js/components/TextLegend.js +0 -248
  1151. package/RNTester/js/components/createExamplePage.js +0 -31
  1152. package/RNTester/js/examples/Accessibility/AccessibilityAndroidExample.android.js +0 -177
  1153. package/RNTester/js/examples/Accessibility/AccessibilityExample.js +0 -792
  1154. package/RNTester/js/examples/Accessibility/AccessibilityIOSExample.js +0 -72
  1155. package/RNTester/js/examples/Accessibility/check.png +0 -0
  1156. package/RNTester/js/examples/Accessibility/mixed.png +0 -0
  1157. package/RNTester/js/examples/Accessibility/uncheck.png +0 -0
  1158. package/RNTester/js/examples/ActionSheetIOS/ActionSheetIOSExample.js +0 -342
  1159. package/RNTester/js/examples/ActivityIndicator/ActivityIndicatorExample.js +0 -162
  1160. package/RNTester/js/examples/Alert/AlertExample.js +0 -158
  1161. package/RNTester/js/examples/Alert/AlertIOSExample.js +0 -204
  1162. package/RNTester/js/examples/Animated/AnimatedExample.js +0 -347
  1163. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExApp.js +0 -407
  1164. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExBobble.js +0 -171
  1165. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExChained.js +0 -120
  1166. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExScroll.js +0 -124
  1167. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSet.js +0 -149
  1168. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSlides.md +0 -107
  1169. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExTilt.js +0 -154
  1170. package/RNTester/js/examples/AppState/AppStateExample.js +0 -106
  1171. package/RNTester/js/examples/Appearance/AppearanceExample.js +0 -219
  1172. package/RNTester/js/examples/AsyncStorage/AsyncStorageExample.js +0 -103
  1173. package/RNTester/js/examples/Border/BorderExample.js +0 -301
  1174. package/RNTester/js/examples/BoxShadow/BoxShadowExample.js +0 -100
  1175. package/RNTester/js/examples/Button/ButtonExample.js +0 -127
  1176. package/RNTester/js/examples/CheckBox/CheckBoxExample.js +0 -148
  1177. package/RNTester/js/examples/Clipboard/ClipboardExample.js +0 -68
  1178. package/RNTester/js/examples/ColorGradientWin32Example.js +0 -109
  1179. package/RNTester/js/examples/Crash/CrashExample.js +0 -52
  1180. package/RNTester/js/examples/DatePicker/DatePickerAndroidExample.js +0 -170
  1181. package/RNTester/js/examples/DatePicker/DatePickerIOSExample.js +0 -150
  1182. package/RNTester/js/examples/DevSettings/DevSettingsExample.js +0 -47
  1183. package/RNTester/js/examples/Dimensions/DimensionsExample.js +0 -68
  1184. package/RNTester/js/examples/FlatList/FlatListExample.js +0 -287
  1185. package/RNTester/js/examples/Image/ImageCapInsetsExample.js +0 -68
  1186. package/RNTester/js/examples/Image/ImageExample.js +0 -955
  1187. package/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +0 -121
  1188. package/RNTester/js/examples/JSResponderHandlerExample/JSResponderHandlerExample.js +0 -77
  1189. package/RNTester/js/examples/KeyboardAvoidingView/KeyboardAvoidingViewExample.js +0 -120
  1190. package/RNTester/js/examples/Layout/LayoutAnimationExample.js +0 -221
  1191. package/RNTester/js/examples/Layout/LayoutEventsExample.js +0 -165
  1192. package/RNTester/js/examples/Layout/LayoutExample.js +0 -206
  1193. package/RNTester/js/examples/Linking/LinkingExample.js +0 -128
  1194. package/RNTester/js/examples/MaskedView/MaskedViewExample.js +0 -236
  1195. package/RNTester/js/examples/Modal/ModalExample.js +0 -283
  1196. package/RNTester/js/examples/MultiColumn/MultiColumnExample.js +0 -189
  1197. package/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js +0 -702
  1198. package/RNTester/js/examples/NewAppScreen/NewAppScreenExample.js +0 -77
  1199. package/RNTester/js/examples/OrientationChange/OrientationChangeExample.js +0 -66
  1200. package/RNTester/js/examples/PanResponder/PanResponderExample.js +0 -154
  1201. package/RNTester/js/examples/PermissionsAndroid/PermissionsExample.js +0 -130
  1202. package/RNTester/js/examples/Picker/PickerExample.js +0 -220
  1203. package/RNTester/js/examples/Picker/PickerIOSExample.js +0 -190
  1204. package/RNTester/js/examples/PlatformColor/PlatformColorExample.js +0 -355
  1205. package/RNTester/js/examples/PointerEvents/PointerEventsExample.js +0 -240
  1206. package/RNTester/js/examples/Pressable/PressableExample.js +0 -426
  1207. package/RNTester/js/examples/ProgressBarAndroid/ProgressBarAndroidExample.android.js +0 -94
  1208. package/RNTester/js/examples/ProgressViewIOS/ProgressViewIOSExample.js +0 -103
  1209. package/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js +0 -267
  1210. package/RNTester/js/examples/RCTRootView/RCTRootViewIOSExample.js +0 -95
  1211. package/RNTester/js/examples/RTL/RTLExample.js +0 -747
  1212. package/RNTester/js/examples/RefreshControl/RefreshControlExample.js +0 -127
  1213. package/RNTester/js/examples/RootViewSizeFlexibilityExample/RootViewSizeFlexibilityExampleApp.js +0 -68
  1214. package/RNTester/js/examples/SafeAreaView/SafeAreaViewExample.js +0 -137
  1215. package/RNTester/js/examples/ScrollView/ScrollViewAnimatedExample.js +0 -107
  1216. package/RNTester/js/examples/ScrollView/ScrollViewExample.js +0 -346
  1217. package/RNTester/js/examples/ScrollView/ScrollViewSimpleExample.js +0 -105
  1218. package/RNTester/js/examples/SectionList/SectionListExample.js +0 -301
  1219. package/RNTester/js/examples/SegmentedControlIOS/SegmentedControlIOSExample.js +0 -183
  1220. package/RNTester/js/examples/SetPropertiesExample/SetPropertiesExampleApp.js +0 -34
  1221. package/RNTester/js/examples/Share/ShareExample.js +0 -124
  1222. package/RNTester/js/examples/Slider/SliderExample.js +0 -136
  1223. package/RNTester/js/examples/Snapshot/SnapshotExample.js +0 -69
  1224. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.android.js +0 -12
  1225. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.ios.js +0 -67
  1226. package/RNTester/js/examples/StatusBar/StatusBarExample.js +0 -522
  1227. package/RNTester/js/examples/Switch/SwitchExample.js +0 -239
  1228. package/RNTester/js/examples/TVEventHandler/TVEventHandlerExample.js +0 -88
  1229. package/RNTester/js/examples/Text/TextExample.android.js +0 -864
  1230. package/RNTester/js/examples/Text/TextExample.ios.js +0 -1153
  1231. package/RNTester/js/examples/TextInput/TextInputExample.android.js +0 -424
  1232. package/RNTester/js/examples/TextInput/TextInputExample.ios.js +0 -710
  1233. package/RNTester/js/examples/TextInput/TextInputSharedExamples.js +0 -618
  1234. package/RNTester/js/examples/Timer/TimerExample.js +0 -373
  1235. package/RNTester/js/examples/ToastAndroid/ToastAndroidExample.android.js +0 -136
  1236. package/RNTester/js/examples/Touchable/TouchableExample.js +0 -664
  1237. package/RNTester/js/examples/Transform/TransformExample.js +0 -336
  1238. package/RNTester/js/examples/TransparentHitTest/TransparentHitTestExample.js +0 -50
  1239. package/RNTester/js/examples/TurboModule/SampleTurboModuleExample.js +0 -190
  1240. package/RNTester/js/examples/TurboModule/TurboModuleExample.js +0 -26
  1241. package/RNTester/js/examples/Vibration/VibrationExample.js +0 -127
  1242. package/RNTester/js/examples/View/ViewExample.js +0 -471
  1243. package/RNTester/js/examples/WebSocket/WebSocketExample.js +0 -356
  1244. package/RNTester/js/examples/WebSocket/http_test_server.js +0 -33
  1245. package/RNTester/js/examples/WebSocket/websocket_test_server.js +0 -46
  1246. package/RNTester/js/examples/XHR/XHRExample.js +0 -62
  1247. package/RNTester/js/examples/XHR/XHRExampleAbortController.js +0 -58
  1248. package/RNTester/js/examples/XHR/XHRExampleBinaryUpload.js +0 -149
  1249. package/RNTester/js/examples/XHR/XHRExampleDownload.js +0 -242
  1250. package/RNTester/js/examples/XHR/XHRExampleFetch.js +0 -133
  1251. package/RNTester/js/examples/XHR/XHRExampleHeaders.js +0 -114
  1252. package/RNTester/js/examples/XHR/XHRExampleOnTimeOut.js +0 -99
  1253. package/RNTester/js/types/RNTesterTypes.js +0 -47
  1254. package/RNTester/js/utils/RNTesterActions.js +0 -53
  1255. package/RNTester/js/utils/RNTesterList.android.js +0 -257
  1256. package/RNTester/js/utils/RNTesterList.ios.js +0 -366
  1257. package/RNTester/js/utils/RNTesterList.win32.js +0 -240
  1258. package/RNTester/js/utils/RNTesterNavigationReducer.js +0 -49
  1259. package/RNTester/js/utils/RNTesterStatePersister.js +0 -86
  1260. package/RNTester/js/utils/URIActionMap.js +0 -48
  1261. package/api-extractor.json +0 -25
  1262. package/demo/DocPagePropsList.d.ts +0 -18
  1263. package/demo/DocPagePropsList.js +0 -7
  1264. package/demo/DocPagePropsList.js.map +0 -1
  1265. package/docs/api/index.md +0 -12
  1266. package/docs/api/react-native-win32.accessibilityactionevent.md +0 -13
  1267. package/docs/api/react-native-win32.accessibilityactioninfo.md +0 -14
  1268. package/docs/api/react-native-win32.accessibilityactionname.md +0 -11
  1269. package/docs/api/react-native-win32.accessibilityannotationinfo.md +0 -16
  1270. package/docs/api/react-native-win32.accessibilitystate.md +0 -14
  1271. package/docs/api/react-native-win32.annotationtype.md +0 -11
  1272. package/docs/api/react-native-win32.ariarole.md +0 -11
  1273. package/docs/api/react-native-win32.basepropswin32.md +0 -17
  1274. package/docs/api/react-native-win32.buttonwin32._constructor_.md +0 -20
  1275. package/docs/api/react-native-win32.buttonwin32.md +0 -27
  1276. package/docs/api/react-native-win32.buttonwin32.render.md +0 -15
  1277. package/docs/api/react-native-win32.buttonwin32omitstyles.md +0 -11
  1278. package/docs/api/react-native-win32.colorgradientwin32.md +0 -15
  1279. package/docs/api/react-native-win32.cursor.md +0 -11
  1280. package/docs/api/react-native-win32.eventphase.md +0 -21
  1281. package/docs/api/react-native-win32.gradientcolorstop.md +0 -16
  1282. package/docs/api/react-native-win32.gradientcolorvaluewin32.md +0 -16
  1283. package/docs/api/react-native-win32.ibuttonwin32props.md +0 -25
  1284. package/docs/api/react-native-win32.ibuttonwin32props.onblur.md +0 -13
  1285. package/docs/api/react-native-win32.ibuttonwin32props.onfocus.md +0 -13
  1286. package/docs/api/react-native-win32.ibuttonwin32props.onmouseenter.md +0 -13
  1287. package/docs/api/react-native-win32.ibuttonwin32props.onmouseleave.md +0 -13
  1288. package/docs/api/react-native-win32.ibuttonwin32props.ontouchend.md +0 -13
  1289. package/docs/api/react-native-win32.ibuttonwin32props.ontouchstart.md +0 -13
  1290. package/docs/api/react-native-win32.ibuttonwin32props.style.md +0 -13
  1291. package/docs/api/react-native-win32.ibuttonwin32style.md +0 -13
  1292. package/docs/api/react-native-win32.ichildasfunction.md +0 -13
  1293. package/docs/api/react-native-win32.idimensions.height.md +0 -11
  1294. package/docs/api/react-native-win32.idimensions.md +0 -21
  1295. package/docs/api/react-native-win32.idimensions.width.md +0 -11
  1296. package/docs/api/react-native-win32.ihandledkeyboardevent.md +0 -11
  1297. package/docs/api/react-native-win32.ikeyboardevent.md +0 -11
  1298. package/docs/api/react-native-win32.inativekeyboardevent.altkey.md +0 -11
  1299. package/docs/api/react-native-win32.inativekeyboardevent.ctrlkey.md +0 -11
  1300. package/docs/api/react-native-win32.inativekeyboardevent.eventphase.md +0 -11
  1301. package/docs/api/react-native-win32.inativekeyboardevent.key.md +0 -11
  1302. package/docs/api/react-native-win32.inativekeyboardevent.md +0 -23
  1303. package/docs/api/react-native-win32.inativekeyboardevent.metakey.md +0 -11
  1304. package/docs/api/react-native-win32.inativekeyboardevent.shiftkey.md +0 -11
  1305. package/docs/api/react-native-win32.ipersonacoinprops.brandiconsource.md +0 -11
  1306. package/docs/api/react-native-win32.ipersonacoinprops.color.md +0 -11
  1307. package/docs/api/react-native-win32.ipersonacoinprops.disabled.md +0 -11
  1308. package/docs/api/react-native-win32.ipersonacoinprops.displayname.md +0 -11
  1309. package/docs/api/react-native-win32.ipersonacoinprops.emailaddress.md +0 -11
  1310. package/docs/api/react-native-win32.ipersonacoinprops.initials.md +0 -11
  1311. package/docs/api/react-native-win32.ipersonacoinprops.md +0 -29
  1312. package/docs/api/react-native-win32.ipersonacoinprops.onerror.md +0 -11
  1313. package/docs/api/react-native-win32.ipersonacoinprops.onload.md +0 -11
  1314. package/docs/api/react-native-win32.ipersonacoinprops.presence.md +0 -11
  1315. package/docs/api/react-native-win32.ipersonacoinprops.size.md +0 -11
  1316. package/docs/api/react-native-win32.ipersonacoinprops.source.md +0 -11
  1317. package/docs/api/react-native-win32.iposition.left.md +0 -11
  1318. package/docs/api/react-native-win32.iposition.md +0 -21
  1319. package/docs/api/react-native-win32.iposition.top.md +0 -11
  1320. package/docs/api/react-native-win32.ipressevent.md +0 -24
  1321. package/docs/api/react-native-win32.ipressinlocation.locationx.md +0 -11
  1322. package/docs/api/react-native-win32.ipressinlocation.locationy.md +0 -11
  1323. package/docs/api/react-native-win32.ipressinlocation.md +0 -23
  1324. package/docs/api/react-native-win32.ipressinlocation.pagex.md +0 -11
  1325. package/docs/api/react-native-win32.ipressinlocation.pagey.md +0 -11
  1326. package/docs/api/react-native-win32.irenderchild.md +0 -13
  1327. package/docs/api/react-native-win32.irenderstyle.md +0 -13
  1328. package/docs/api/react-native-win32.irespondersyntheticevent.md +0 -21
  1329. package/docs/api/react-native-win32.irespondersyntheticevent.touchhistory.md +0 -16
  1330. package/docs/api/react-native-win32.isignal.md +0 -13
  1331. package/docs/api/react-native-win32.istate.md +0 -13
  1332. package/docs/api/react-native-win32.istateconditions.md +0 -15
  1333. package/docs/api/react-native-win32.itextwin32props.md +0 -20
  1334. package/docs/api/react-native-win32.itextwin32props.textstyle.md +0 -25
  1335. package/docs/api/react-native-win32.itextwin32props.tooltip.md +0 -13
  1336. package/docs/api/react-native-win32.itouchablewin32props.children.md +0 -11
  1337. package/docs/api/react-native-win32.itouchablewin32props.disabled.md +0 -11
  1338. package/docs/api/react-native-win32.itouchablewin32props.filterkeys.md +0 -13
  1339. package/docs/api/react-native-win32.itouchablewin32props.md +0 -36
  1340. package/docs/api/react-native-win32.itouchablewin32props.onlongpress.md +0 -11
  1341. package/docs/api/react-native-win32.itouchablewin32props.rejectrespondertermination.md +0 -11
  1342. package/docs/api/react-native-win32.itouchablewin32props.renderstyle.md +0 -11
  1343. package/docs/api/react-native-win32.itouchablewin32props.touchablegethighlightdelayms.md +0 -11
  1344. package/docs/api/react-native-win32.itouchablewin32props.touchablegethitslop.md +0 -11
  1345. package/docs/api/react-native-win32.itouchablewin32props.touchablegetlongpressdelayms.md +0 -11
  1346. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressoutdelayms.md +0 -11
  1347. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressrectoffset.md +0 -11
  1348. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressin.md +0 -11
  1349. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressout.md +0 -11
  1350. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypress.md +0 -11
  1351. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypressdown.md +0 -11
  1352. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlelongpress.md +0 -11
  1353. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlepress.md +0 -11
  1354. package/docs/api/react-native-win32.itouchablewin32props.touchsounddisabled.md +0 -11
  1355. package/docs/api/react-native-win32.itouchablewin32state.isfocused.md +0 -11
  1356. package/docs/api/react-native-win32.itouchablewin32state.ishovered.md +0 -11
  1357. package/docs/api/react-native-win32.itouchablewin32state.ispressed.md +0 -11
  1358. package/docs/api/react-native-win32.itouchablewin32state.md +0 -20
  1359. package/docs/api/react-native-win32.itouchinfo.currentpagex.md +0 -11
  1360. package/docs/api/react-native-win32.itouchinfo.currentpagey.md +0 -11
  1361. package/docs/api/react-native-win32.itouchinfo.currenttimestamp.md +0 -11
  1362. package/docs/api/react-native-win32.itouchinfo.md +0 -29
  1363. package/docs/api/react-native-win32.itouchinfo.previouspagex.md +0 -11
  1364. package/docs/api/react-native-win32.itouchinfo.previouspagey.md +0 -11
  1365. package/docs/api/react-native-win32.itouchinfo.previoustimestamp.md +0 -11
  1366. package/docs/api/react-native-win32.itouchinfo.startpagex.md +0 -11
  1367. package/docs/api/react-native-win32.itouchinfo.startpagey.md +0 -11
  1368. package/docs/api/react-native-win32.itouchinfo.starttimestamp.md +0 -11
  1369. package/docs/api/react-native-win32.itouchinfo.touchactive.md +0 -11
  1370. package/docs/api/react-native-win32.itransitions.md +0 -15
  1371. package/docs/api/react-native-win32.iviewwin32.focus.md +0 -11
  1372. package/docs/api/react-native-win32.iviewwin32.md +0 -18
  1373. package/docs/api/react-native-win32.iviewwin32props.acceptskeyboardfocus.md +0 -16
  1374. package/docs/api/react-native-win32.iviewwin32props.accessibilityactions.md +0 -11
  1375. package/docs/api/react-native-win32.iviewwin32props.accessibilityannotation.md +0 -15
  1376. package/docs/api/react-native-win32.iviewwin32props.accessibilitylevel.md +0 -11
  1377. package/docs/api/react-native-win32.iviewwin32props.accessibilitypositioninset.md +0 -11
  1378. package/docs/api/react-native-win32.iviewwin32props.accessibilitysetsize.md +0 -11
  1379. package/docs/api/react-native-win32.iviewwin32props.animationclass.md +0 -11
  1380. package/docs/api/react-native-win32.iviewwin32props.children.md +0 -11
  1381. package/docs/api/react-native-win32.iviewwin32props.cursor.md +0 -11
  1382. package/docs/api/react-native-win32.iviewwin32props.focusable.md +0 -11
  1383. package/docs/api/react-native-win32.iviewwin32props.keydownevents.md +0 -11
  1384. package/docs/api/react-native-win32.iviewwin32props.keyupevents.md +0 -11
  1385. package/docs/api/react-native-win32.iviewwin32props.md +0 -44
  1386. package/docs/api/react-native-win32.iviewwin32props.onblur.md +0 -15
  1387. package/docs/api/react-native-win32.iviewwin32props.onblurcapture.md +0 -15
  1388. package/docs/api/react-native-win32.iviewwin32props.onfocus.md +0 -15
  1389. package/docs/api/react-native-win32.iviewwin32props.onfocuscapture.md +0 -15
  1390. package/docs/api/react-native-win32.iviewwin32props.onkeydown.md +0 -11
  1391. package/docs/api/react-native-win32.iviewwin32props.onkeydowncapture.md +0 -11
  1392. package/docs/api/react-native-win32.iviewwin32props.onkeyup.md +0 -11
  1393. package/docs/api/react-native-win32.iviewwin32props.onkeyupcapture.md +0 -11
  1394. package/docs/api/react-native-win32.iviewwin32props.onmouseenter.md +0 -11
  1395. package/docs/api/react-native-win32.iviewwin32props.onmouseleave.md +0 -11
  1396. package/docs/api/react-native-win32.iviewwin32props.tooltip.md +0 -13
  1397. package/docs/api/react-native-win32.iviewwin32props.type.md +0 -11
  1398. package/docs/api/react-native-win32.md +0 -85
  1399. package/docs/api/react-native-win32.omittedaccessibilitypropswin32.md +0 -15
  1400. package/docs/api/react-native-win32.personacoin.md +0 -11
  1401. package/docs/api/react-native-win32.personacoinpresence.md +0 -25
  1402. package/docs/api/react-native-win32.personacoinsize.md +0 -23
  1403. package/docs/api/react-native-win32.sharedaccessibilitypropsiosandwin32.md +0 -13
  1404. package/docs/api/react-native-win32.textstyle.md +0 -13
  1405. package/docs/api/react-native-win32.textwin32._constructor_.md +0 -20
  1406. package/docs/api/react-native-win32.textwin32.md +0 -25
  1407. package/docs/api/react-native-win32.textwin32.render.md +0 -15
  1408. package/docs/api/react-native-win32.textwin32omittypes.md +0 -11
  1409. package/docs/api/react-native-win32.touchablewin32._constructor_.md +0 -20
  1410. package/docs/api/react-native-win32.touchablewin32.componentwillunmount.md +0 -15
  1411. package/docs/api/react-native-win32.touchablewin32.focus.md +0 -11
  1412. package/docs/api/react-native-win32.touchablewin32.md +0 -34
  1413. package/docs/api/react-native-win32.touchablewin32.render.md +0 -15
  1414. package/docs/api/react-native-win32.usefrom.md +0 -13
  1415. package/docs/api/react-native-win32.viewwin32.md +0 -11
  1416. package/docs/api/react-native-win32.viewwin32omittypes.md +0 -11
  1417. package/etc/react-native-win32.api.md +0 -481
  1418. package/flow/Promise.js +0 -47
  1419. package/flow/fbjs.js +0 -258
  1420. package/flow/use-subscription.js +0 -19
  1421. package/jest/preprocessor.js +0 -120
  1422. package/typings-index.d.ts +0 -20
  1423. package/typings-index.js +0 -40
@@ -1,54 +1,69 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
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
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
- const DeprecatedTextInputPropTypes = require('../../DeprecatedPropTypes/DeprecatedTextInputPropTypes');
14
- const Platform = require('../../Utilities/Platform');
15
- const React = require('react');
16
- const ReactNative = require('../../Renderer/shims/ReactNative');
17
- const StyleSheet = require('../../StyleSheet/StyleSheet');
18
- const Text = require('../../Text/Text');
19
- const TextAncestor = require('../../Text/TextAncestor');
20
- const TextInputState = require('./TextInputState');
21
- const TouchableWithoutFeedback = require('../Touchable/TouchableWithoutFeedback');
22
-
23
- const invariant = require('invariant');
24
- const nullthrows = require('nullthrows');
25
- const setAndForwardRef = require('../../Utilities/setAndForwardRef');
26
-
27
- import type {TextStyleProp, ViewStyleProp} from '../../StyleSheet/StyleSheet';
28
- import type {ColorValue} from '../../StyleSheet/StyleSheetTypes';
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
13
+ import type {
14
+ PressEvent,
15
+ ScrollEvent,
16
+ SyntheticEvent,
17
+ } from '../../Types/CoreEventTypes';
29
18
  import type {ViewProps} from '../View/ViewPropTypes';
30
- import type {SyntheticEvent, ScrollEvent} from '../../Types/CoreEventTypes';
31
- import type {PressEvent} from '../../Types/CoreEventTypes';
32
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
33
-
34
- const {useEffect, useRef, useState} = React;
19
+ import type {TextInputType} from './TextInput.flow';
20
+
21
+ import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
22
+ import usePressability from '../../Pressability/usePressability';
23
+ import flattenStyle from '../../StyleSheet/flattenStyle';
24
+ import StyleSheet, {
25
+ type ColorValue,
26
+ type TextStyleProp,
27
+ type ViewStyleProp,
28
+ } from '../../StyleSheet/StyleSheet';
29
+ import Text from '../../Text/Text';
30
+ import TextAncestor from '../../Text/TextAncestor';
31
+ import Platform from '../../Utilities/Platform';
32
+ import useMergeRefs from '../../Utilities/useMergeRefs';
33
+ import TextInputState from './TextInputState';
34
+ import invariant from 'invariant';
35
+ import nullthrows from 'nullthrows';
36
+ import * as React from 'react';
37
+ import {useCallback, useLayoutEffect, useRef, useState} from 'react';
35
38
 
36
39
  type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
40
+ type TextInputInstance = HostInstance & {
41
+ +clear: () => void,
42
+ +isFocused: () => boolean,
43
+ +getNativeRef: () => ?HostInstance,
44
+ +setSelection: (start: number, end: number) => void,
45
+ };
37
46
 
38
47
  let AndroidTextInput;
39
48
  let AndroidTextInputCommands;
40
- let RCTMultilineTextInputView;
41
49
  let RCTSinglelineTextInputView;
50
+ let RCTSinglelineTextInputNativeCommands;
51
+ let RCTMultilineTextInputView;
52
+ let RCTMultilineTextInputNativeCommands;
42
53
 
43
54
  if (Platform.OS === 'android') {
44
55
  AndroidTextInput = require('./AndroidTextInputNativeComponent').default;
45
- AndroidTextInputCommands = require('./AndroidTextInputNativeComponent')
46
- .Commands;
56
+ AndroidTextInputCommands =
57
+ require('./AndroidTextInputNativeComponent').Commands;
47
58
  } else if (Platform.OS === 'ios') {
48
- RCTMultilineTextInputView = require('./RCTMultilineTextInputNativeComponent')
49
- .default;
50
- RCTSinglelineTextInputView = require('./RCTSingelineTextInputNativeComponent')
51
- .default;
59
+ RCTSinglelineTextInputView =
60
+ require('./RCTSingelineTextInputNativeComponent').default;
61
+ RCTSinglelineTextInputNativeCommands =
62
+ require('./RCTSingelineTextInputNativeComponent').Commands;
63
+ RCTMultilineTextInputView =
64
+ require('./RCTMultilineTextInputNativeComponent').default;
65
+ RCTMultilineTextInputNativeCommands =
66
+ require('./RCTMultilineTextInputNativeComponent').Commands;
52
67
  }
53
68
 
54
69
  export type ChangeEvent = SyntheticEvent<
@@ -124,6 +139,9 @@ type DataDetectorTypesType =
124
139
  | 'link'
125
140
  | 'address'
126
141
  | 'calendarEvent'
142
+ | 'trackingNumber'
143
+ | 'flightNumber'
144
+ | 'lookupSuggestion'
127
145
  | 'none'
128
146
  | 'all';
129
147
 
@@ -135,10 +153,10 @@ export type KeyboardType =
135
153
  | 'phone-pad'
136
154
  | 'number-pad'
137
155
  | 'decimal-pad'
156
+ | 'url'
138
157
  // iOS-only
139
158
  | 'ascii-capable'
140
159
  | 'numbers-and-punctuation'
141
- | 'url'
142
160
  | 'name-phone-pad'
143
161
  | 'twitter'
144
162
  | 'web-search'
@@ -147,6 +165,16 @@ export type KeyboardType =
147
165
  // Android-only
148
166
  | 'visible-password';
149
167
 
168
+ export type InputMode =
169
+ | 'none'
170
+ | 'text'
171
+ | 'decimal'
172
+ | 'numeric'
173
+ | 'tel'
174
+ | 'search'
175
+ | 'email'
176
+ | 'url';
177
+
150
178
  export type ReturnKeyType =
151
179
  // Cross Platform
152
180
  | 'done'
@@ -165,6 +193,8 @@ export type ReturnKeyType =
165
193
  | 'route'
166
194
  | 'yahoo';
167
195
 
196
+ export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
197
+
168
198
  export type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';
169
199
 
170
200
  export type TextContentType =
@@ -175,6 +205,15 @@ export type TextContentType =
175
205
  | 'addressState'
176
206
  | 'countryName'
177
207
  | 'creditCardNumber'
208
+ | 'creditCardExpiration'
209
+ | 'creditCardExpirationMonth'
210
+ | 'creditCardExpirationYear'
211
+ | 'creditCardSecurityCode'
212
+ | 'creditCardType'
213
+ | 'creditCardName'
214
+ | 'creditCardGivenName'
215
+ | 'creditCardMiddleName'
216
+ | 'creditCardFamilyName'
178
217
  | 'emailAddress'
179
218
  | 'familyName'
180
219
  | 'fullStreetAddress'
@@ -195,31 +234,30 @@ export type TextContentType =
195
234
  | 'username'
196
235
  | 'password'
197
236
  | 'newPassword'
198
- | 'oneTimeCode';
237
+ | 'oneTimeCode'
238
+ | 'birthdate'
239
+ | 'birthdateDay'
240
+ | 'birthdateMonth'
241
+ | 'birthdateYear'
242
+ | 'dateTime'
243
+ | 'flightNumber'
244
+ | 'shipmentTrackingNumber';
245
+
246
+ export type enterKeyHintType =
247
+ // Cross Platform
248
+ | 'done'
249
+ | 'go'
250
+ | 'next'
251
+ | 'search'
252
+ | 'send'
253
+ // Android-only
254
+ | 'previous'
255
+ // iOS-only
256
+ | 'enter';
199
257
 
200
258
  type PasswordRules = string;
201
259
 
202
260
  type IOSProps = $ReadOnly<{|
203
- /**
204
- * If `false`, disables spell-check style (i.e. red underlines).
205
- * The default value is inherited from `autoCorrect`.
206
- * @platform ios
207
- */
208
- spellCheck?: ?boolean,
209
-
210
- /**
211
- * Determines the color of the keyboard.
212
- * @platform ios
213
- */
214
- keyboardAppearance?: ?('default' | 'light' | 'dark'),
215
-
216
- /**
217
- * If `true`, the keyboard disables the return key when there is no text and
218
- * automatically enables it when there is text. The default value is `false`.
219
- * @platform ios
220
- */
221
- enablesReturnKeyAutomatically?: ?boolean,
222
-
223
261
  /**
224
262
  * When the clear button should appear on the right side of the text view.
225
263
  * This property is supported only for single-line TextInput component.
@@ -255,6 +293,13 @@ type IOSProps = $ReadOnly<{|
255
293
  | ?DataDetectorTypesType
256
294
  | $ReadOnlyArray<DataDetectorTypesType>,
257
295
 
296
+ /**
297
+ * If `true`, the keyboard disables the return key when there is no text and
298
+ * automatically enables it when there is text. The default value is `false`.
299
+ * @platform ios
300
+ */
301
+ enablesReturnKeyAutomatically?: ?boolean,
302
+
258
303
  /**
259
304
  * An optional identifier which links a custom InputAccessoryView to
260
305
  * this text input. The InputAccessoryView is rendered above the
@@ -264,11 +309,10 @@ type IOSProps = $ReadOnly<{|
264
309
  inputAccessoryViewID?: ?string,
265
310
 
266
311
  /**
267
- * Give the keyboard and the system information about the
268
- * expected semantic meaning for the content that users enter.
312
+ * Determines the color of the keyboard.
269
313
  * @platform ios
270
314
  */
271
- textContentType?: ?TextContentType,
315
+ keyboardAppearance?: ?('default' | 'light' | 'dark'),
272
316
 
273
317
  /**
274
318
  * Provide rules for your password.
@@ -293,61 +337,62 @@ type IOSProps = $ReadOnly<{|
293
337
  * @platform ios
294
338
  */
295
339
  scrollEnabled?: ?boolean,
296
- |}>;
297
340
 
298
- type AndroidProps = $ReadOnly<{|
299
341
  /**
300
- * Determines which content to suggest on auto complete, e.g.`username`.
301
- * To disable auto complete, use `off`.
302
- *
303
- * *Android Only*
304
- *
305
- * The following values work on Android only:
306
- *
307
- * - `username`
308
- * - `password`
309
- * - `email`
310
- * - `name`
311
- * - `tel`
312
- * - `street-address`
313
- * - `postal-code`
314
- * - `cc-number`
315
- * - `cc-csc`
316
- * - `cc-exp`
317
- * - `cc-exp-month`
318
- * - `cc-exp-year`
319
- * - `off`
320
- *
321
- * @platform android
342
+ * If `false`, disables spell-check style (i.e. red underlines).
343
+ * The default value is inherited from `autoCorrect`.
344
+ * @platform ios
322
345
  */
323
- autoCompleteType?: ?(
324
- | 'cc-csc'
325
- | 'cc-exp'
326
- | 'cc-exp-month'
327
- | 'cc-exp-year'
328
- | 'cc-number'
329
- | 'email'
330
- | 'name'
331
- | 'password'
332
- | 'postal-code'
333
- | 'street-address'
334
- | 'tel'
335
- | 'username'
336
- | 'off'
346
+ spellCheck?: ?boolean,
347
+
348
+ /**
349
+ * Give the keyboard and the system information about the
350
+ * expected semantic meaning for the content that users enter.
351
+ * `autoComplete` property accomplishes same behavior and is recommended as its supported by both platforms.
352
+ * Avoid using both `autoComplete` and `textContentType`, you can use `Platform.select` for differing platform behaviors.
353
+ * For backwards compatibility, when both set, `textContentType` takes precedence on iOS.
354
+ * @platform ios
355
+ */
356
+ textContentType?: ?TextContentType,
357
+
358
+ /**
359
+ * Set line break strategy on iOS.
360
+ * @platform ios
361
+ */
362
+ lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
363
+
364
+ /**
365
+ * Set line break mode on iOS.
366
+ * @platform ios
367
+ */
368
+ lineBreakModeIOS?: ?(
369
+ | 'wordWrapping'
370
+ | 'char'
371
+ | 'clip'
372
+ | 'head'
373
+ | 'middle'
374
+ | 'tail'
337
375
  ),
338
376
 
339
377
  /**
340
- * Sets the return key to the label. Use it instead of `returnKeyType`.
341
- * @platform android
378
+ * If `false`, the iOS system will not insert an extra space after a paste operation
379
+ * neither delete one or two spaces after a cut or delete operation.
380
+ *
381
+ * The default value is `true`.
382
+ *
383
+ * @platform ios
342
384
  */
343
- returnKeyLabel?: ?string,
385
+ smartInsertDelete?: ?boolean,
386
+ |}>;
344
387
 
388
+ type AndroidProps = $ReadOnly<{|
345
389
  /**
346
- * Sets the number of lines for a `TextInput`. Use it with multiline set to
347
- * `true` to be able to fill the lines.
390
+ * When provided it will set the color of the cursor (or "caret") in the component.
391
+ * Unlike the behavior of `selectionColor` the cursor color will be set independently
392
+ * from the color of the text selection box.
348
393
  * @platform android
349
394
  */
350
- numberOfLines?: ?number,
395
+ cursorColor?: ?ColorValue,
351
396
 
352
397
  /**
353
398
  * When `false`, if there is a small amount of space available around a text input
@@ -359,18 +404,13 @@ type AndroidProps = $ReadOnly<{|
359
404
  */
360
405
  disableFullscreenUI?: ?boolean,
361
406
 
362
- /**
363
- * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
364
- * The default value is `simple`.
365
- * @platform android
366
- */
367
- textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),
368
-
369
- /**
370
- * The color of the `TextInput` underline.
371
- * @platform android
372
- */
373
- underlineColorAndroid?: ?ColorValue,
407
+ importantForAutofill?: ?(
408
+ | 'auto'
409
+ | 'no'
410
+ | 'noExcludeDescendants'
411
+ | 'yes'
412
+ | 'yesExcludeDescendants'
413
+ ),
374
414
 
375
415
  /**
376
416
  * If defined, the provided image resource will be rendered on the left.
@@ -391,20 +431,44 @@ type AndroidProps = $ReadOnly<{|
391
431
  */
392
432
  inlineImagePadding?: ?number,
393
433
 
394
- importantForAutofill?: ?(
395
- | 'auto'
396
- | 'no'
397
- | 'noExcludeDescendants'
398
- | 'yes'
399
- | 'yesExcludeDescendants'
400
- ),
434
+ /**
435
+ * Sets the number of lines for a `TextInput`. Use it with multiline set to
436
+ * `true` to be able to fill the lines.
437
+ * @platform android
438
+ */
439
+ numberOfLines?: ?number,
440
+
441
+ /**
442
+ * Sets the return key to the label. Use it instead of `returnKeyType`.
443
+ * @platform android
444
+ */
445
+ returnKeyLabel?: ?string,
446
+
447
+ /**
448
+ * Sets the number of rows for a `TextInput`. Use it with multiline set to
449
+ * `true` to be able to fill the lines.
450
+ * @platform android
451
+ */
452
+ rows?: ?number,
401
453
 
402
454
  /**
403
455
  * When `false`, it will prevent the soft keyboard from showing when the field is focused.
404
456
  * Defaults to `true`.
405
- * @platform android
406
457
  */
407
458
  showSoftInputOnFocus?: ?boolean,
459
+
460
+ /**
461
+ * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
462
+ * The default value is `simple`.
463
+ * @platform android
464
+ */
465
+ textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),
466
+
467
+ /**
468
+ * The color of the `TextInput` underline.
469
+ * @platform android
470
+ */
471
+ underlineColorAndroid?: ?ColorValue,
408
472
  |}>;
409
473
 
410
474
  export type Props = $ReadOnly<{|
@@ -422,6 +486,137 @@ export type Props = $ReadOnly<{|
422
486
  */
423
487
  autoCapitalize?: ?AutoCapitalize,
424
488
 
489
+ /**
490
+ * Specifies autocomplete hints for the system, so it can provide autofill.
491
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
492
+ * To disable autocomplete, set autoComplete to off.
493
+ *
494
+ * The following values work across platforms:
495
+ *
496
+ * - `additional-name`
497
+ * - `address-line1`
498
+ * - `address-line2`
499
+ * - `birthdate-day` (iOS 17+)
500
+ * - `birthdate-full` (iOS 17+)
501
+ * - `birthdate-month` (iOS 17+)
502
+ * - `birthdate-year` (iOS 17+)
503
+ * - `cc-number`
504
+ * - `cc-csc` (iOS 17+)
505
+ * - `cc-exp` (iOS 17+)
506
+ * - `cc-exp-day` (iOS 17+)
507
+ * - `cc-exp-month` (iOS 17+)
508
+ * - `cc-exp-year` (iOS 17+)
509
+ * - `country`
510
+ * - `current-password`
511
+ * - `email`
512
+ * - `family-name`
513
+ * - `given-name`
514
+ * - `honorific-prefix`
515
+ * - `honorific-suffix`
516
+ * - `name`
517
+ * - `new-password`
518
+ * - `off`
519
+ * - `one-time-code`
520
+ * - `postal-code`
521
+ * - `street-address`
522
+ * - `tel`
523
+ * - `username`
524
+ *
525
+ * The following values work on iOS only:
526
+ *
527
+ * - `cc-name` (iOS 17+)
528
+ * - `cc-given-name` (iOS 17+)
529
+ * - `cc-middle-name` (iOS 17+)
530
+ * - `cc-family-name` (iOS 17+)
531
+ * - `cc-type` (iOS 17+)
532
+ * - `nickname`
533
+ * - `organization`
534
+ * - `organization-title`
535
+ * - `url`
536
+ *
537
+ * The following values work on Android only:
538
+ *
539
+ * - `gender`
540
+ * - `name-family`
541
+ * - `name-given`
542
+ * - `name-middle`
543
+ * - `name-middle-initial`
544
+ * - `name-prefix`
545
+ * - `name-suffix`
546
+ * - `password`
547
+ * - `password-new`
548
+ * - `postal-address`
549
+ * - `postal-address-country`
550
+ * - `postal-address-extended`
551
+ * - `postal-address-extended-postal-code`
552
+ * - `postal-address-locality`
553
+ * - `postal-address-region`
554
+ * - `sms-otp`
555
+ * - `tel-country-code`
556
+ * - `tel-national`
557
+ * - `tel-device`
558
+ * - `username-new`
559
+ */
560
+ autoComplete?: ?(
561
+ | 'additional-name'
562
+ | 'address-line1'
563
+ | 'address-line2'
564
+ | 'birthdate-day'
565
+ | 'birthdate-full'
566
+ | 'birthdate-month'
567
+ | 'birthdate-year'
568
+ | 'cc-csc'
569
+ | 'cc-exp'
570
+ | 'cc-exp-day'
571
+ | 'cc-exp-month'
572
+ | 'cc-exp-year'
573
+ | 'cc-number'
574
+ | 'cc-name'
575
+ | 'cc-given-name'
576
+ | 'cc-middle-name'
577
+ | 'cc-family-name'
578
+ | 'cc-type'
579
+ | 'country'
580
+ | 'current-password'
581
+ | 'email'
582
+ | 'family-name'
583
+ | 'gender'
584
+ | 'given-name'
585
+ | 'honorific-prefix'
586
+ | 'honorific-suffix'
587
+ | 'name'
588
+ | 'name-family'
589
+ | 'name-given'
590
+ | 'name-middle'
591
+ | 'name-middle-initial'
592
+ | 'name-prefix'
593
+ | 'name-suffix'
594
+ | 'new-password'
595
+ | 'nickname'
596
+ | 'one-time-code'
597
+ | 'organization'
598
+ | 'organization-title'
599
+ | 'password'
600
+ | 'password-new'
601
+ | 'postal-address'
602
+ | 'postal-address-country'
603
+ | 'postal-address-extended'
604
+ | 'postal-address-extended-postal-code'
605
+ | 'postal-address-locality'
606
+ | 'postal-address-region'
607
+ | 'postal-code'
608
+ | 'street-address'
609
+ | 'sms-otp'
610
+ | 'tel'
611
+ | 'tel-country-code'
612
+ | 'tel-national'
613
+ | 'tel-device'
614
+ | 'url'
615
+ | 'username'
616
+ | 'username-new'
617
+ | 'off'
618
+ ),
619
+
425
620
  /**
426
621
  * If `false`, disables auto-correct. The default value is `true`.
427
622
  */
@@ -440,19 +635,67 @@ export type Props = $ReadOnly<{|
440
635
  allowFontScaling?: ?boolean,
441
636
 
442
637
  /**
443
- * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
444
- * Possible values:
445
- * `null/undefined` (default): inherit from the parent node or the global default (0)
446
- * `0`: no max, ignore parent/global default
447
- * `>= 1`: sets the maxFontSizeMultiplier of this node to this value
638
+ * If `true`, caret is hidden. The default value is `false`.
639
+ *
640
+ * On Android devices manufactured by Xiaomi with Android Q,
641
+ * when keyboardType equals 'email-address'this will be set
642
+ * in native to 'true' to prevent a system related crash. This
643
+ * will cause cursor to be disabled as a side-effect.
644
+ *
448
645
  */
449
- maxFontSizeMultiplier?: ?number,
646
+ caretHidden?: ?boolean,
647
+
648
+ /*
649
+ * If `true`, contextMenuHidden is hidden. The default value is `false`.
650
+ */
651
+ contextMenuHidden?: ?boolean,
652
+
653
+ /**
654
+ * Provides an initial value that will change when the user starts typing.
655
+ * Useful for simple use-cases where you do not want to deal with listening
656
+ * to events and updating the value prop to keep the controlled state in sync.
657
+ */
658
+ defaultValue?: ?Stringish,
450
659
 
451
660
  /**
452
661
  * If `false`, text is not editable. The default value is `true`.
453
662
  */
454
663
  editable?: ?boolean,
455
664
 
665
+ forwardedRef?: ?ReactRefSetter<TextInputInstance>,
666
+
667
+ /**
668
+ * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
669
+ *
670
+ * The following values is supported:
671
+ *
672
+ * - `enter`
673
+ * - `done`
674
+ * - `go`
675
+ * - `next`
676
+ * - `previous`
677
+ * - `search`
678
+ * - `send`
679
+ */
680
+ enterKeyHint?: ?enterKeyHintType,
681
+
682
+ /**
683
+ * `inputMode` works like the `inputmode` attribute in HTML, it determines which
684
+ * keyboard to open, e.g.`numeric` and has precedence over keyboardType
685
+ *
686
+ * Support the following values:
687
+ *
688
+ * - `none`
689
+ * - `text`
690
+ * - `decimal`
691
+ * - `numeric`
692
+ * - `tel`
693
+ * - `search`
694
+ * - `email`
695
+ * - `url`
696
+ */
697
+ inputMode?: ?InputMode,
698
+
456
699
  /**
457
700
  * Determines which keyboard to open, e.g.`numeric`.
458
701
  *
@@ -464,6 +707,7 @@ export type Props = $ReadOnly<{|
464
707
  * - `decimal-pad`
465
708
  * - `email-address`
466
709
  * - `phone-pad`
710
+ * - `url`
467
711
  *
468
712
  * *iOS Only*
469
713
  *
@@ -471,7 +715,6 @@ export type Props = $ReadOnly<{|
471
715
  *
472
716
  * - `ascii-capable`
473
717
  * - `numbers-and-punctuation`
474
- * - `url`
475
718
  * - `name-phone-pad`
476
719
  * - `twitter`
477
720
  * - `web-search`
@@ -481,42 +724,18 @@ export type Props = $ReadOnly<{|
481
724
  * The following values work on Android only:
482
725
  *
483
726
  * - `visible-password`
727
+ *
484
728
  */
485
729
  keyboardType?: ?KeyboardType,
486
730
 
487
731
  /**
488
- * Determines how the return key should look. On Android you can also use
489
- * `returnKeyLabel`.
490
- *
491
- * *Cross platform*
492
- *
493
- * The following values work across platforms:
494
- *
495
- * - `done`
496
- * - `go`
497
- * - `next`
498
- * - `search`
499
- * - `send`
500
- *
501
- * *Android Only*
502
- *
503
- * The following values work on Android only:
504
- *
505
- * - `none`
506
- * - `previous`
507
- *
508
- * *iOS Only*
509
- *
510
- * The following values work on iOS only:
511
- *
512
- * - `default`
513
- * - `emergency-call`
514
- * - `google`
515
- * - `join`
516
- * - `route`
517
- * - `yahoo`
732
+ * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
733
+ * Possible values:
734
+ * `null/undefined` (default): inherit from the parent node or the global default (0)
735
+ * `0`: no max, ignore parent/global default
736
+ * `>= 1`: sets the maxFontSizeMultiplier of this node to this value
518
737
  */
519
- returnKeyType?: ?ReturnKeyType,
738
+ maxFontSizeMultiplier?: ?number,
520
739
 
521
740
  /**
522
741
  * Limits the maximum number of characters that can be entered. Use this
@@ -535,11 +754,6 @@ export type Props = $ReadOnly<{|
535
754
  */
536
755
  onBlur?: ?(e: BlurEvent) => mixed,
537
756
 
538
- /**
539
- * Callback that is called when the text input is focused.
540
- */
541
- onFocus?: ?(e: FocusEvent) => mixed,
542
-
543
757
  /**
544
758
  * Callback that is called when the text input's text changes.
545
759
  */
@@ -565,6 +779,35 @@ export type Props = $ReadOnly<{|
565
779
  */
566
780
  onEndEditing?: ?(e: EditingEvent) => mixed,
567
781
 
782
+ /**
783
+ * Callback that is called when the text input is focused.
784
+ */
785
+ onFocus?: ?(e: FocusEvent) => mixed,
786
+
787
+ /**
788
+ * Callback that is called when a key is pressed.
789
+ * This will be called with `{ nativeEvent: { key: keyValue } }`
790
+ * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
791
+ * the typed-in character otherwise including `' '` for space.
792
+ * Fires before `onChange` callbacks.
793
+ */
794
+ onKeyPress?: ?(e: KeyPressEvent) => mixed,
795
+
796
+ /**
797
+ * Called when a single tap gesture is detected.
798
+ */
799
+ onPress?: ?(event: PressEvent) => mixed,
800
+
801
+ /**
802
+ * Called when a touch is engaged.
803
+ */
804
+ onPressIn?: ?(event: PressEvent) => mixed,
805
+
806
+ /**
807
+ * Called when a touch is released.
808
+ */
809
+ onPressOut?: ?(event: PressEvent) => mixed,
810
+
568
811
  /**
569
812
  * Callback that is called when the text input selection is changed.
570
813
  * This will be called with
@@ -578,15 +821,6 @@ export type Props = $ReadOnly<{|
578
821
  */
579
822
  onSubmitEditing?: ?(e: EditingEvent) => mixed,
580
823
 
581
- /**
582
- * Callback that is called when a key is pressed.
583
- * This will be called with `{ nativeEvent: { key: keyValue } }`
584
- * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
585
- * the typed-in character otherwise including `' '` for space.
586
- * Fires before `onChange` callbacks.
587
- */
588
- onKeyPress?: ?(e: KeyPressEvent) => mixed,
589
-
590
824
  /**
591
825
  * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.
592
826
  * May also contain other properties from ScrollEvent but on Android contentSize
@@ -604,16 +838,52 @@ export type Props = $ReadOnly<{|
604
838
  */
605
839
  placeholderTextColor?: ?ColorValue,
606
840
 
841
+ /** `readOnly` works like the `readonly` attribute in HTML.
842
+ * If `true`, text is not editable. The default value is `false`.
843
+ * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly
844
+ * for more details.
845
+ */
846
+ readOnly?: ?boolean,
847
+
607
848
  /**
608
- * If `true`, the text input obscures the text entered so that sensitive text
609
- * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
849
+ * Determines how the return key should look. On Android you can also use
850
+ * `returnKeyLabel`.
851
+ *
852
+ * *Cross platform*
853
+ *
854
+ * The following values work across platforms:
855
+ *
856
+ * - `done`
857
+ * - `go`
858
+ * - `next`
859
+ * - `search`
860
+ * - `send`
861
+ *
862
+ * *Android Only*
863
+ *
864
+ * The following values work on Android only:
865
+ *
866
+ * - `none`
867
+ * - `previous`
868
+ *
869
+ * *iOS Only*
870
+ *
871
+ * The following values work on iOS only:
872
+ *
873
+ * - `default`
874
+ * - `emergency-call`
875
+ * - `google`
876
+ * - `join`
877
+ * - `route`
878
+ * - `yahoo`
610
879
  */
611
- secureTextEntry?: ?boolean,
880
+ returnKeyType?: ?ReturnKeyType,
612
881
 
613
882
  /**
614
- * The highlight and cursor color of the text input.
883
+ * If `true`, the text input obscures the text entered so that sensitive text
884
+ * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
615
885
  */
616
- selectionColor?: ?ColorValue,
886
+ secureTextEntry?: ?boolean,
617
887
 
618
888
  /**
619
889
  * The start and end of the text input's selection. Set start and end to
@@ -625,22 +895,15 @@ export type Props = $ReadOnly<{|
625
895
  |}>,
626
896
 
627
897
  /**
628
- * The value to show for the text input. `TextInput` is a controlled
629
- * component, which means the native value will be forced to match this
630
- * value prop if provided. For most uses, this works great, but in some
631
- * cases this may cause flickering - one common cause is preventing edits
632
- * by keeping value the same. In addition to simply setting the same value,
633
- * either set `editable={false}`, or set/update `maxLength` to prevent
634
- * unwanted edits without flicker.
898
+ * The highlight and cursor color of the text input.
635
899
  */
636
- value?: ?Stringish,
900
+ selectionColor?: ?ColorValue,
637
901
 
638
902
  /**
639
- * Provides an initial value that will change when the user starts typing.
640
- * Useful for simple use-cases where you do not want to deal with listening
641
- * to events and updating the value prop to keep the controlled state in sync.
903
+ * The text selection handle color.
904
+ * @platform android
642
905
  */
643
- defaultValue?: ?Stringish,
906
+ selectionHandleColor?: ?ColorValue,
644
907
 
645
908
  /**
646
909
  * If `true`, all text will automatically be selected on focus.
@@ -653,9 +916,34 @@ export type Props = $ReadOnly<{|
653
916
  * multiline fields. Note that for multiline fields, setting `blurOnSubmit`
654
917
  * to `true` means that pressing return will blur the field and trigger the
655
918
  * `onSubmitEditing` event instead of inserting a newline into the field.
919
+ *
920
+ * @deprecated
921
+ * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will
922
+ * override any behavior defined by `blurOnSubmit`.
923
+ * @see submitBehavior
656
924
  */
657
925
  blurOnSubmit?: ?boolean,
658
926
 
927
+ /**
928
+ * When the return key is pressed,
929
+ *
930
+ * For single line inputs:
931
+ *
932
+ * - `'newline`' defaults to `'blurAndSubmit'`
933
+ * - `undefined` defaults to `'blurAndSubmit'`
934
+ *
935
+ * For multiline inputs:
936
+ *
937
+ * - `'newline'` adds a newline
938
+ * - `undefined` defaults to `'newline'`
939
+ *
940
+ * For both single line and multiline inputs:
941
+ *
942
+ * - `'submit'` will only send a submit event and not blur the input
943
+ * - `'blurAndSubmit`' will both blur the input and send a submit event
944
+ */
945
+ submitBehavior?: ?SubmitBehavior,
946
+
659
947
  /**
660
948
  * Note that not all Text styles are supported, an incomplete list of what is not supported includes:
661
949
  *
@@ -676,29 +964,199 @@ export type Props = $ReadOnly<{|
676
964
  style?: ?TextStyleProp,
677
965
 
678
966
  /**
679
- * If `true`, caret is hidden. The default value is `false`.
680
- * This property is supported only for single-line TextInput component on iOS.
681
- */
682
- caretHidden?: ?boolean,
683
-
684
- /*
685
- * If `true`, contextMenuHidden is hidden. The default value is `false`.
967
+ * The value to show for the text input. `TextInput` is a controlled
968
+ * component, which means the native value will be forced to match this
969
+ * value prop if provided. For most uses, this works great, but in some
970
+ * cases this may cause flickering - one common cause is preventing edits
971
+ * by keeping value the same. In addition to simply setting the same value,
972
+ * either set `editable={false}`, or set/update `maxLength` to prevent
973
+ * unwanted edits without flicker.
686
974
  */
687
- contextMenuHidden?: ?boolean,
688
-
689
- forwardedRef?: ?ReactRefSetter<
690
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
691
- >,
975
+ value?: ?Stringish,
692
976
  |}>;
693
977
 
694
- type ImperativeMethods = $ReadOnly<{|
695
- clear: () => void,
696
- isFocused: () => boolean,
697
- getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
698
- |}>;
978
+ type ViewCommands = $NonMaybeType<
979
+ | typeof AndroidTextInputCommands
980
+ | typeof RCTMultilineTextInputNativeCommands
981
+ | typeof RCTSinglelineTextInputNativeCommands,
982
+ >;
983
+
984
+ type LastNativeSelection = {|
985
+ selection: Selection,
986
+ mostRecentEventCount: number,
987
+ |};
699
988
 
700
989
  const emptyFunctionThatReturnsTrue = () => true;
701
990
 
991
+ /**
992
+ * This hook handles the synchronization between the state of the text input
993
+ * in native and in JavaScript. This is necessary due to the asynchronous nature
994
+ * of text input events.
995
+ */
996
+ function useTextInputStateSynchronization_STATE({
997
+ props,
998
+ mostRecentEventCount,
999
+ selection,
1000
+ inputRef,
1001
+ text,
1002
+ viewCommands,
1003
+ }: {
1004
+ props: Props,
1005
+ mostRecentEventCount: number,
1006
+ selection: ?Selection,
1007
+ inputRef: React.RefObject<null | HostInstance>,
1008
+ text: string,
1009
+ viewCommands: ViewCommands,
1010
+ }): {
1011
+ setLastNativeText: string => void,
1012
+ setLastNativeSelection: LastNativeSelection => void,
1013
+ } {
1014
+ const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
1015
+ const [lastNativeSelectionState, setLastNativeSelection] =
1016
+ useState<LastNativeSelection>({
1017
+ selection: {start: -1, end: -1},
1018
+ mostRecentEventCount: mostRecentEventCount,
1019
+ });
1020
+
1021
+ const lastNativeSelection = lastNativeSelectionState.selection;
1022
+
1023
+ // This is necessary in case native updates the text and JS decides
1024
+ // that the update should be ignored and we should stick with the value
1025
+ // that we have in JS.
1026
+ useLayoutEffect(() => {
1027
+ const nativeUpdate: {text?: string, selection?: Selection} = {};
1028
+
1029
+ if (lastNativeText !== props.value && typeof props.value === 'string') {
1030
+ nativeUpdate.text = props.value;
1031
+ setLastNativeText(props.value);
1032
+ }
1033
+
1034
+ if (
1035
+ selection &&
1036
+ lastNativeSelection &&
1037
+ (lastNativeSelection.start !== selection.start ||
1038
+ lastNativeSelection.end !== selection.end)
1039
+ ) {
1040
+ nativeUpdate.selection = selection;
1041
+ setLastNativeSelection({selection, mostRecentEventCount});
1042
+ }
1043
+
1044
+ if (Object.keys(nativeUpdate).length === 0) {
1045
+ return;
1046
+ }
1047
+
1048
+ if (inputRef.current != null) {
1049
+ viewCommands.setTextAndSelection(
1050
+ inputRef.current,
1051
+ mostRecentEventCount,
1052
+ text,
1053
+ selection?.start ?? -1,
1054
+ selection?.end ?? -1,
1055
+ );
1056
+ }
1057
+ }, [
1058
+ mostRecentEventCount,
1059
+ inputRef,
1060
+ props.value,
1061
+ props.defaultValue,
1062
+ lastNativeText,
1063
+ selection,
1064
+ lastNativeSelection,
1065
+ text,
1066
+ viewCommands,
1067
+ ]);
1068
+
1069
+ return {setLastNativeText, setLastNativeSelection};
1070
+ }
1071
+
1072
+ /**
1073
+ * This hook handles the synchronization between the state of the text input
1074
+ * in native and in JavaScript. This is necessary due to the asynchronous nature
1075
+ * of text input events.
1076
+ */
1077
+ function useTextInputStateSynchronization_REFS({
1078
+ props,
1079
+ mostRecentEventCount,
1080
+ selection,
1081
+ inputRef,
1082
+ text,
1083
+ viewCommands,
1084
+ }: {
1085
+ props: Props,
1086
+ mostRecentEventCount: number,
1087
+ selection: ?Selection,
1088
+ inputRef: React.RefObject<null | HostInstance>,
1089
+ text: string,
1090
+ viewCommands: ViewCommands,
1091
+ }): {
1092
+ setLastNativeText: string => void,
1093
+ setLastNativeSelection: LastNativeSelection => void,
1094
+ } {
1095
+ const lastNativeTextRef = useRef<?Stringish>(props.value);
1096
+ const lastNativeSelectionRef = useRef<LastNativeSelection>({
1097
+ selection: {start: -1, end: -1},
1098
+ mostRecentEventCount: mostRecentEventCount,
1099
+ });
1100
+
1101
+ // This is necessary in case native updates the text and JS decides
1102
+ // that the update should be ignored and we should stick with the value
1103
+ // that we have in JS.
1104
+ useLayoutEffect(() => {
1105
+ const nativeUpdate: {text?: string, selection?: Selection} = {};
1106
+
1107
+ const lastNativeSelection = lastNativeSelectionRef.current.selection;
1108
+
1109
+ if (
1110
+ lastNativeTextRef.current !== props.value &&
1111
+ typeof props.value === 'string'
1112
+ ) {
1113
+ nativeUpdate.text = props.value;
1114
+ lastNativeTextRef.current = props.value;
1115
+ }
1116
+
1117
+ if (
1118
+ selection &&
1119
+ lastNativeSelection &&
1120
+ (lastNativeSelection.start !== selection.start ||
1121
+ lastNativeSelection.end !== selection.end)
1122
+ ) {
1123
+ nativeUpdate.selection = selection;
1124
+ lastNativeSelectionRef.current = {selection, mostRecentEventCount};
1125
+ }
1126
+
1127
+ if (Object.keys(nativeUpdate).length === 0) {
1128
+ return;
1129
+ }
1130
+
1131
+ if (inputRef.current != null) {
1132
+ viewCommands.setTextAndSelection(
1133
+ inputRef.current,
1134
+ mostRecentEventCount,
1135
+ text,
1136
+ selection?.start ?? -1,
1137
+ selection?.end ?? -1,
1138
+ );
1139
+ }
1140
+ }, [
1141
+ mostRecentEventCount,
1142
+ inputRef,
1143
+ props.value,
1144
+ props.defaultValue,
1145
+ selection,
1146
+ text,
1147
+ viewCommands,
1148
+ ]);
1149
+
1150
+ return {
1151
+ setLastNativeText: lastNativeText => {
1152
+ lastNativeTextRef.current = lastNativeText;
1153
+ },
1154
+ setLastNativeSelection: lastNativeSelection => {
1155
+ lastNativeSelectionRef.current = lastNativeSelection;
1156
+ },
1157
+ };
1158
+ }
1159
+
702
1160
  /**
703
1161
  * A foundational component for inputting text into the app via a
704
1162
  * keyboard. Props provide configurability for several features, such as
@@ -753,8 +1211,8 @@ const emptyFunctionThatReturnsTrue = () => true;
753
1211
  * return (
754
1212
  * <TextInput
755
1213
  * {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below
756
- * editable = {true}
757
- * maxLength = {40}
1214
+ * editable={true}
1215
+ * maxLength={40}
758
1216
  * />
759
1217
  * );
760
1218
  * }
@@ -778,8 +1236,8 @@ const emptyFunctionThatReturnsTrue = () => true;
778
1236
  * borderBottomWidth: 1 }}
779
1237
  * >
780
1238
  * <UselessTextInput
781
- * multiline = {true}
782
- * numberOfLines = {4}
1239
+ * multiline={true}
1240
+ * numberOfLines={4}
783
1241
  * onChangeText={(text) => this.setState({text})}
784
1242
  * value={this.state.text}
785
1243
  * />
@@ -811,95 +1269,61 @@ const emptyFunctionThatReturnsTrue = () => true;
811
1269
  *
812
1270
  */
813
1271
  function InternalTextInput(props: Props): React.Node {
814
- const inputRef = useRef<null | React.ElementRef<HostComponent<mixed>>>(null);
815
-
816
- // Android sends a "onTextChanged" event followed by a "onSelectionChanged" event, for
817
- // the same "most recent event count".
818
- // For controlled selection, that means that immediately after text is updated,
819
- // a controlled component will pass in the *previous* selection, even if the controlled
820
- // component didn't mean to modify the selection at all.
821
- // Therefore, we ignore selections and pass them through until the selection event has
822
- // been sent.
823
- // Note that this mitigation is NOT needed for Fabric.
824
- let selection: ?Selection =
825
- props.selection == null
1272
+ const {
1273
+ 'aria-busy': ariaBusy,
1274
+ 'aria-checked': ariaChecked,
1275
+ 'aria-disabled': ariaDisabled,
1276
+ 'aria-expanded': ariaExpanded,
1277
+ 'aria-selected': ariaSelected,
1278
+ accessibilityState,
1279
+ id,
1280
+ tabIndex,
1281
+ selection: propsSelection,
1282
+ selectionColor,
1283
+ selectionHandleColor,
1284
+ cursorColor,
1285
+ ...otherProps
1286
+ } = props;
1287
+
1288
+ const inputRef = useRef<null | HostInstance>(null);
1289
+
1290
+ const selection: ?Selection =
1291
+ propsSelection == null
826
1292
  ? null
827
1293
  : {
828
- start: props.selection.start,
829
- end: props.selection.end ?? props.selection.start,
1294
+ start: propsSelection.start,
1295
+ end: propsSelection.end ?? propsSelection.start,
830
1296
  };
831
1297
 
832
- const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
833
-
834
- const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
835
- const [lastNativeSelectionState, setLastNativeSelection] = useState<{|
836
- selection: ?Selection,
837
- mostRecentEventCount: number,
838
- |}>({selection, mostRecentEventCount});
839
-
840
- const lastNativeSelection = lastNativeSelectionState.selection;
841
- const lastNativeSelectionEventCount =
842
- lastNativeSelectionState.mostRecentEventCount;
843
-
844
- if (lastNativeSelectionEventCount < mostRecentEventCount) {
845
- selection = null;
846
- }
847
-
848
1298
  const text =
849
1299
  typeof props.value === 'string'
850
1300
  ? props.value
851
1301
  : typeof props.defaultValue === 'string'
852
- ? props.defaultValue
853
- : '';
1302
+ ? props.defaultValue
1303
+ : '';
854
1304
 
855
- // This is necessary in case native updates the text and JS decides
856
- // that the update should be ignored and we should stick with the value
857
- // that we have in JS.
858
- useEffect(() => {
859
- const nativeUpdate = {};
1305
+ const viewCommands =
1306
+ AndroidTextInputCommands ||
1307
+ (props.multiline === true
1308
+ ? RCTMultilineTextInputNativeCommands
1309
+ : RCTSinglelineTextInputNativeCommands);
860
1310
 
861
- if (lastNativeText !== props.value && typeof props.value === 'string') {
862
- nativeUpdate.text = props.value;
863
- setLastNativeText(props.value);
864
- }
865
-
866
- if (
867
- selection &&
868
- lastNativeSelection &&
869
- (lastNativeSelection.start !== selection.start ||
870
- lastNativeSelection.end !== selection.end)
871
- ) {
872
- nativeUpdate.selection = selection;
873
- setLastNativeSelection({selection, mostRecentEventCount});
874
- }
875
-
876
- if (Object.keys(nativeUpdate).length === 0) {
877
- return;
878
- }
879
-
880
- if (AndroidTextInputCommands && inputRef.current != null) {
881
- AndroidTextInputCommands.setTextAndSelection(
882
- inputRef.current,
883
- mostRecentEventCount,
884
- text,
885
- selection?.start ?? -1,
886
- selection?.end ?? -1,
887
- );
888
- } else if (inputRef.current != null) {
889
- inputRef.current.setNativeProps(nativeUpdate);
890
- }
891
- }, [
892
- mostRecentEventCount,
893
- inputRef,
894
- props.value,
895
- props.defaultValue,
896
- lastNativeText,
897
- selection,
898
- lastNativeSelection,
899
- text,
900
- ]);
1311
+ const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
1312
+ const useTextInputStateSynchronization =
1313
+ ReactNativeFeatureFlags.useRefsForTextInputState()
1314
+ ? useTextInputStateSynchronization_REFS
1315
+ : useTextInputStateSynchronization_STATE;
1316
+ const {setLastNativeText, setLastNativeSelection} =
1317
+ useTextInputStateSynchronization({
1318
+ props,
1319
+ inputRef,
1320
+ mostRecentEventCount,
1321
+ selection,
1322
+ text,
1323
+ viewCommands,
1324
+ });
901
1325
 
902
- useEffect(() => {
1326
+ useLayoutEffect(() => {
903
1327
  const inputRefValue = inputRef.current;
904
1328
 
905
1329
  if (inputRefValue != null) {
@@ -907,98 +1331,84 @@ function InternalTextInput(props: Props): React.Node {
907
1331
 
908
1332
  return () => {
909
1333
  TextInputState.unregisterInput(inputRefValue);
1334
+
1335
+ if (TextInputState.currentlyFocusedInput() === inputRefValue) {
1336
+ nullthrows(inputRefValue).blur();
1337
+ }
910
1338
  };
911
1339
  }
912
- }, [inputRef]);
913
-
914
- useEffect(() => {
915
- // When unmounting we need to blur the input
916
- return () => {
917
- if (isFocused()) {
918
- nullthrows(inputRef.current).blur();
919
- }
920
- };
921
- }, [inputRef]);
1340
+ }, []);
922
1341
 
923
- function clear(): void {
924
- if (AndroidTextInputCommands && inputRef.current != null) {
925
- AndroidTextInputCommands.setTextAndSelection(
926
- inputRef.current,
927
- mostRecentEventCount,
928
- '',
929
- 0,
930
- 0,
931
- );
932
- } else if (inputRef.current != null) {
933
- inputRef.current.setNativeProps({text: ''});
934
- }
935
- }
936
-
937
- // TODO: Fix this returning true on null === null, when no input is focused
938
- function isFocused(): boolean {
939
- return TextInputState.currentlyFocusedInput() === inputRef.current;
940
- }
941
-
942
- function getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
943
- return inputRef.current;
944
- }
945
-
946
- const _setNativeRef = setAndForwardRef({
947
- getForwardedRef: () => props.forwardedRef,
948
- setLocalRef: ref => {
949
- inputRef.current = ref;
1342
+ const setLocalRef = useCallback(
1343
+ (instance: TextInputInstance | null) => {
1344
+ inputRef.current = instance;
950
1345
 
951
1346
  /*
952
- Hi reader from the future. I'm sorry for this.
953
-
954
- This is a hack. Ideally we would forwardRef to the underlying
955
- host component. However, since TextInput has it's own methods that can be
956
- called as well, if we used the standard forwardRef then these
957
- methods wouldn't be accessible and thus be a breaking change.
958
-
959
- We have a couple of options of how to handle this:
960
- - Return a new ref with everything we methods from both. This is problematic
961
- because we need React to also know it is a host component which requires
962
- internals of the class implementation of the ref.
963
- - Break the API and have some other way to call one set of the methods or
964
- the other. This is our long term approach as we want to eventually
965
- get the methods on host components off the ref. So instead of calling
966
- ref.measure() you might call ReactNative.measure(ref). This would hopefully
967
- let the ref for TextInput then have the methods like `.clear`. Or we do it
968
- the other way and make it TextInput.clear(textInputRef) which would be fine
969
- too. Either way though is a breaking change that is longer term.
970
- - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
971
- before we can get to the long term breaking change.
972
- */
973
- if (ref) {
974
- ref.clear = clear;
975
- ref.isFocused = isFocused;
976
- ref.getNativeRef = getNativeRef;
1347
+ Hi reader from the future. I'm sorry for this.
1348
+
1349
+ This is a hack. Ideally we would forwardRef to the underlying
1350
+ host component. However, since TextInput has it's own methods that can be
1351
+ called as well, if we used the standard forwardRef then these
1352
+ methods wouldn't be accessible and thus be a breaking change.
1353
+
1354
+ We have a couple of options of how to handle this:
1355
+ - Return a new ref with everything we methods from both. This is problematic
1356
+ because we need React to also know it is a host component which requires
1357
+ internals of the class implementation of the ref.
1358
+ - Break the API and have some other way to call one set of the methods or
1359
+ the other. This is our long term approach as we want to eventually
1360
+ get the methods on host components off the ref. So instead of calling
1361
+ ref.measure() you might call ReactNative.measure(ref). This would hopefully
1362
+ let the ref for TextInput then have the methods like `.clear`. Or we do it
1363
+ the other way and make it TextInput.clear(textInputRef) which would be fine
1364
+ too. Either way though is a breaking change that is longer term.
1365
+ - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
1366
+ before we can get to the long term breaking change.
1367
+ */
1368
+ if (instance != null) {
1369
+ // $FlowFixMe[incompatible-use] - See the explanation above.
1370
+ Object.assign(instance, {
1371
+ clear(): void {
1372
+ if (inputRef.current != null) {
1373
+ viewCommands.setTextAndSelection(
1374
+ inputRef.current,
1375
+ mostRecentEventCount,
1376
+ '',
1377
+ 0,
1378
+ 0,
1379
+ );
1380
+ }
1381
+ },
1382
+ // TODO: Fix this returning true on null === null, when no input is focused
1383
+ isFocused(): boolean {
1384
+ return TextInputState.currentlyFocusedInput() === inputRef.current;
1385
+ },
1386
+ getNativeRef(): ?HostInstance {
1387
+ return inputRef.current;
1388
+ },
1389
+ setSelection(start: number, end: number): void {
1390
+ if (inputRef.current != null) {
1391
+ viewCommands.setTextAndSelection(
1392
+ inputRef.current,
1393
+ mostRecentEventCount,
1394
+ null,
1395
+ start,
1396
+ end,
1397
+ );
1398
+ }
1399
+ },
1400
+ });
977
1401
  }
978
1402
  },
979
- });
1403
+ [mostRecentEventCount, viewCommands],
1404
+ );
980
1405
 
981
- const _onPress = (event: PressEvent) => {
982
- if (props.editable || props.editable === undefined) {
983
- nullthrows(inputRef.current).focus();
984
- }
985
- };
1406
+ const ref = useMergeRefs<TextInputInstance>(setLocalRef, props.forwardedRef);
986
1407
 
987
1408
  const _onChange = (event: ChangeEvent) => {
988
- if (AndroidTextInputCommands && inputRef.current != null) {
989
- // Do nothing
990
- } else if (inputRef.current != null) {
991
- // Make sure to fire the mostRecentEventCount first so it is already set on
992
- // native when the text value is set.
993
- // This is now only relevant on iOS until we migrate to ViewCommands everywhere
994
- inputRef.current.setNativeProps({
995
- mostRecentEventCount: event.nativeEvent.eventCount,
996
- });
997
- }
998
-
999
- const text = event.nativeEvent.text;
1409
+ const currentText = event.nativeEvent.text;
1000
1410
  props.onChange && props.onChange(event);
1001
- props.onChangeText && props.onChangeText(text);
1411
+ props.onChangeText && props.onChangeText(currentText);
1002
1412
 
1003
1413
  if (inputRef.current == null) {
1004
1414
  // calling `props.onChange` or `props.onChangeText`
@@ -1006,7 +1416,7 @@ function InternalTextInput(props: Props): React.Node {
1006
1416
  return;
1007
1417
  }
1008
1418
 
1009
- setLastNativeText(text);
1419
+ setLastNativeText(currentText);
1010
1420
  // This must happen last, after we call setLastNativeText.
1011
1421
  // Different ordering can cause bugs when editing AndroidTextInputs
1012
1422
  // with multiple Fragments.
@@ -1048,31 +1458,151 @@ function InternalTextInput(props: Props): React.Node {
1048
1458
  };
1049
1459
 
1050
1460
  let textInput = null;
1051
- let additionalTouchableProps: {|
1052
- rejectResponderTermination?: $PropertyType<
1053
- Props,
1054
- 'rejectResponderTermination',
1055
- >,
1056
- // This is a hack to let Flow know we want an exact object
1057
- |} = {...null};
1058
1461
 
1059
- if (Platform.OS === 'ios') {
1060
- const RCTTextInputView = props.multiline
1061
- ? RCTMultilineTextInputView
1062
- : RCTSinglelineTextInputView;
1462
+ const multiline = props.multiline ?? false;
1063
1463
 
1064
- const style = props.multiline
1065
- ? [styles.multilineInput, props.style]
1066
- : props.style;
1464
+ let submitBehavior: SubmitBehavior;
1465
+ if (props.submitBehavior != null) {
1466
+ // `submitBehavior` is set explicitly
1467
+ if (!multiline && props.submitBehavior === 'newline') {
1468
+ // For single line text inputs, `'newline'` is not a valid option
1469
+ submitBehavior = 'blurAndSubmit';
1470
+ } else {
1471
+ submitBehavior = props.submitBehavior;
1472
+ }
1473
+ } else if (multiline) {
1474
+ if (props.blurOnSubmit === true) {
1475
+ submitBehavior = 'blurAndSubmit';
1476
+ } else {
1477
+ submitBehavior = 'newline';
1478
+ }
1479
+ } else {
1480
+ // Single line
1481
+ if (props.blurOnSubmit !== false) {
1482
+ submitBehavior = 'blurAndSubmit';
1483
+ } else {
1484
+ submitBehavior = 'submit';
1485
+ }
1486
+ }
1487
+
1488
+ const accessible = props.accessible !== false;
1489
+ const focusable = props.focusable !== false;
1490
+
1491
+ const {
1492
+ editable,
1493
+ hitSlop,
1494
+ onPress,
1495
+ onPressIn,
1496
+ onPressOut,
1497
+ rejectResponderTermination,
1498
+ } = props;
1499
+
1500
+ const config = React.useMemo(
1501
+ () => ({
1502
+ hitSlop,
1503
+ onPress: (event: PressEvent) => {
1504
+ onPress?.(event);
1505
+ if (editable !== false) {
1506
+ if (inputRef.current != null) {
1507
+ inputRef.current.focus();
1508
+ }
1509
+ }
1510
+ },
1511
+ onPressIn: onPressIn,
1512
+ onPressOut: onPressOut,
1513
+ cancelable: Platform.OS === 'ios' ? !rejectResponderTermination : null,
1514
+ }),
1515
+ [
1516
+ editable,
1517
+ hitSlop,
1518
+ onPress,
1519
+ onPressIn,
1520
+ onPressOut,
1521
+ rejectResponderTermination,
1522
+ ],
1523
+ );
1524
+
1525
+ // Hide caret during test runs due to a flashing caret
1526
+ // makes screenshot tests flakey
1527
+ let caretHidden = props.caretHidden;
1528
+ if (Platform.isTesting) {
1529
+ caretHidden = true;
1530
+ }
1531
+
1532
+ // TextInput handles onBlur and onFocus events
1533
+ // so omitting onBlur and onFocus pressability handlers here.
1534
+ const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};
1535
+
1536
+ let _accessibilityState;
1537
+ if (
1538
+ accessibilityState != null ||
1539
+ ariaBusy != null ||
1540
+ ariaChecked != null ||
1541
+ ariaDisabled != null ||
1542
+ ariaExpanded != null ||
1543
+ ariaSelected != null
1544
+ ) {
1545
+ _accessibilityState = {
1546
+ busy: ariaBusy ?? accessibilityState?.busy,
1547
+ checked: ariaChecked ?? accessibilityState?.checked,
1548
+ disabled: ariaDisabled ?? accessibilityState?.disabled,
1549
+ expanded: ariaExpanded ?? accessibilityState?.expanded,
1550
+ selected: ariaSelected ?? accessibilityState?.selected,
1551
+ };
1552
+ }
1553
+
1554
+ // Keep the original (potentially nested) style when possible, as React can diff these more efficiently
1555
+ let _style = props.style;
1556
+ const flattenedStyle = flattenStyle<TextStyleProp>(props.style);
1557
+ if (flattenedStyle != null) {
1558
+ let overrides: ?{...TextStyleInternal} = null;
1559
+ if (typeof flattenedStyle?.fontWeight === 'number') {
1560
+ overrides = overrides || ({}: {...TextStyleInternal});
1561
+ overrides.fontWeight =
1562
+ // $FlowFixMe[incompatible-cast]
1563
+ (flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
1564
+ }
1565
+
1566
+ if (flattenedStyle.verticalAlign != null) {
1567
+ overrides = overrides || ({}: {...TextStyleInternal});
1568
+ overrides.textAlignVertical =
1569
+ verticalAlignToTextAlignVerticalMap[flattenedStyle.verticalAlign];
1570
+ overrides.verticalAlign = undefined;
1571
+ }
1572
+
1573
+ if (overrides != null) {
1574
+ // $FlowFixMe[incompatible-type]
1575
+ _style = [_style, overrides];
1576
+ }
1577
+ }
1067
1578
 
1068
- additionalTouchableProps.rejectResponderTermination =
1069
- props.rejectResponderTermination;
1579
+ if (Platform.OS === 'ios') {
1580
+ const RCTTextInputView =
1581
+ props.multiline === true
1582
+ ? RCTMultilineTextInputView
1583
+ : RCTSinglelineTextInputView;
1584
+
1585
+ const useMultilineDefaultStyle =
1586
+ props.multiline === true &&
1587
+ (flattenedStyle == null ||
1588
+ (flattenedStyle.padding == null &&
1589
+ flattenedStyle.paddingVertical == null &&
1590
+ flattenedStyle.paddingTop == null));
1070
1591
 
1071
1592
  textInput = (
1072
1593
  <RCTTextInputView
1073
- ref={_setNativeRef}
1074
- {...props}
1594
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1595
+ ref={ref}
1596
+ {...otherProps}
1597
+ {...eventHandlers}
1598
+ accessibilityState={_accessibilityState}
1599
+ accessible={accessible}
1600
+ submitBehavior={submitBehavior}
1601
+ caretHidden={caretHidden}
1075
1602
  dataDetectorTypes={props.dataDetectorTypes}
1603
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1604
+ mostRecentEventCount={mostRecentEventCount}
1605
+ nativeID={id ?? props.nativeID}
1076
1606
  onBlur={_onBlur}
1077
1607
  onChange={_onChange}
1078
1608
  onContentSizeChange={props.onContentSizeChange}
@@ -1081,90 +1611,247 @@ function InternalTextInput(props: Props): React.Node {
1081
1611
  onSelectionChange={_onSelectionChange}
1082
1612
  onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
1083
1613
  selection={selection}
1084
- style={style}
1614
+ selectionColor={selectionColor}
1615
+ style={StyleSheet.compose(
1616
+ useMultilineDefaultStyle ? styles.multilineDefault : null,
1617
+ _style,
1618
+ )}
1085
1619
  text={text}
1086
1620
  />
1087
1621
  );
1088
1622
  } else if (Platform.OS === 'android') {
1089
- const style = [props.style];
1090
1623
  const autoCapitalize = props.autoCapitalize || 'sentences';
1624
+ const _accessibilityLabelledBy =
1625
+ props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
1626
+ const placeholder = props.placeholder ?? '';
1091
1627
  let children = props.children;
1092
- let childCount = 0;
1093
- React.Children.forEach(children, () => ++childCount);
1628
+ const childCount = React.Children.count(children);
1094
1629
  invariant(
1095
- !(props.value && childCount),
1630
+ !(props.value != null && childCount),
1096
1631
  'Cannot specify both value and children.',
1097
1632
  );
1098
1633
  if (childCount > 1) {
1099
1634
  children = <Text>{children}</Text>;
1100
1635
  }
1101
-
1636
+ // For consistency with iOS set cursor/selectionHandle color as selectionColor
1637
+ const colorProps = {
1638
+ selectionColor,
1639
+ selectionHandleColor:
1640
+ selectionHandleColor === undefined
1641
+ ? selectionColor
1642
+ : selectionHandleColor,
1643
+ cursorColor: cursorColor === undefined ? selectionColor : cursorColor,
1644
+ };
1102
1645
  textInput = (
1103
- /* $FlowFixMe the types for AndroidTextInput don't match up exactly with
1104
- the props for TextInput. This will need to get fixed */
1646
+ /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up
1647
+ * exactly with the props for TextInput. This will need to get fixed */
1648
+ /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't
1649
+ * match up exactly with the props for TextInput. This will need to get
1650
+ * fixed */
1651
+ /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't
1652
+ * match up exactly with the props for TextInput. This will need to get
1653
+ * fixed */
1105
1654
  <AndroidTextInput
1106
- ref={_setNativeRef}
1107
- {...props}
1655
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1656
+ ref={ref}
1657
+ {...otherProps}
1658
+ {...colorProps}
1659
+ {...eventHandlers}
1660
+ accessibilityState={_accessibilityState}
1661
+ accessibilityLabelledBy={_accessibilityLabelledBy}
1662
+ accessible={accessible}
1108
1663
  autoCapitalize={autoCapitalize}
1664
+ submitBehavior={submitBehavior}
1665
+ caretHidden={caretHidden}
1109
1666
  children={children}
1110
1667
  disableFullscreenUI={props.disableFullscreenUI}
1668
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1111
1669
  mostRecentEventCount={mostRecentEventCount}
1670
+ nativeID={id ?? props.nativeID}
1671
+ numberOfLines={props.rows ?? props.numberOfLines}
1112
1672
  onBlur={_onBlur}
1113
1673
  onChange={_onChange}
1114
1674
  onFocus={_onFocus}
1115
- /* $FlowFixMe the types for AndroidTextInput don't match up exactly
1116
- * with the props for TextInput. This will need to get fixed */
1675
+ /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match
1676
+ * up exactly with the props for TextInput. This will need to get fixed
1677
+ */
1678
+ /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput
1679
+ * don't match up exactly with the props for TextInput. This will need
1680
+ * to get fixed */
1117
1681
  onScroll={_onScroll}
1118
1682
  onSelectionChange={_onSelectionChange}
1119
- selection={selection}
1120
- style={style}
1683
+ placeholder={placeholder}
1684
+ style={_style}
1121
1685
  text={text}
1122
1686
  textBreakStrategy={props.textBreakStrategy}
1123
1687
  />
1124
1688
  );
1125
1689
  }
1126
1690
  return (
1127
- <TextAncestor.Provider value={true}>
1128
- <TouchableWithoutFeedback
1129
- onLayout={props.onLayout}
1130
- onPress={_onPress}
1131
- accessible={props.accessible}
1132
- accessibilityLabel={props.accessibilityLabel}
1133
- accessibilityRole={props.accessibilityRole}
1134
- accessibilityState={props.accessibilityState}
1135
- nativeID={props.nativeID}
1136
- testID={props.testID}
1137
- {...additionalTouchableProps}>
1138
- {textInput}
1139
- </TouchableWithoutFeedback>
1140
- </TextAncestor.Provider>
1691
+ <TextAncestor.Provider value={true}>{textInput}</TextAncestor.Provider>
1141
1692
  );
1142
1693
  }
1143
1694
 
1695
+ const enterKeyHintToReturnTypeMap = {
1696
+ enter: 'default',
1697
+ done: 'done',
1698
+ go: 'go',
1699
+ next: 'next',
1700
+ previous: 'previous',
1701
+ search: 'search',
1702
+ send: 'send',
1703
+ };
1704
+
1705
+ const inputModeToKeyboardTypeMap = {
1706
+ none: 'default',
1707
+ text: 'default',
1708
+ decimal: 'decimal-pad',
1709
+ numeric: 'number-pad',
1710
+ tel: 'phone-pad',
1711
+ search: Platform.OS === 'ios' ? 'web-search' : 'default',
1712
+ email: 'email-address',
1713
+ url: 'url',
1714
+ };
1715
+
1716
+ // Map HTML autocomplete values to Android autoComplete values
1717
+ const autoCompleteWebToAutoCompleteAndroidMap = {
1718
+ 'address-line1': 'postal-address-region',
1719
+ 'address-line2': 'postal-address-locality',
1720
+ bday: 'birthdate-full',
1721
+ 'bday-day': 'birthdate-day',
1722
+ 'bday-month': 'birthdate-month',
1723
+ 'bday-year': 'birthdate-year',
1724
+ 'cc-csc': 'cc-csc',
1725
+ 'cc-exp': 'cc-exp',
1726
+ 'cc-exp-month': 'cc-exp-month',
1727
+ 'cc-exp-year': 'cc-exp-year',
1728
+ 'cc-number': 'cc-number',
1729
+ country: 'postal-address-country',
1730
+ 'current-password': 'password',
1731
+ email: 'email',
1732
+ 'honorific-prefix': 'name-prefix',
1733
+ 'honorific-suffix': 'name-suffix',
1734
+ name: 'name',
1735
+ 'additional-name': 'name-middle',
1736
+ 'family-name': 'name-family',
1737
+ 'given-name': 'name-given',
1738
+ 'new-password': 'password-new',
1739
+ off: 'off',
1740
+ 'one-time-code': 'sms-otp',
1741
+ 'postal-code': 'postal-code',
1742
+ sex: 'gender',
1743
+ 'street-address': 'street-address',
1744
+ tel: 'tel',
1745
+ 'tel-country-code': 'tel-country-code',
1746
+ 'tel-national': 'tel-national',
1747
+ username: 'username',
1748
+ };
1749
+
1750
+ // Map HTML autocomplete values to iOS textContentType values
1751
+ const autoCompleteWebToTextContentTypeMap = {
1752
+ 'address-line1': 'streetAddressLine1',
1753
+ 'address-line2': 'streetAddressLine2',
1754
+ bday: 'birthdate',
1755
+ 'bday-day': 'birthdateDay',
1756
+ 'bday-month': 'birthdateMonth',
1757
+ 'bday-year': 'birthdateYear',
1758
+ 'cc-csc': 'creditCardSecurityCode',
1759
+ 'cc-exp-month': 'creditCardExpirationMonth',
1760
+ 'cc-exp-year': 'creditCardExpirationYear',
1761
+ 'cc-exp': 'creditCardExpiration',
1762
+ 'cc-given-name': 'creditCardGivenName',
1763
+ 'cc-additional-name': 'creditCardMiddleName',
1764
+ 'cc-family-name': 'creditCardFamilyName',
1765
+ 'cc-name': 'creditCardName',
1766
+ 'cc-number': 'creditCardNumber',
1767
+ 'cc-type': 'creditCardType',
1768
+ 'current-password': 'password',
1769
+ country: 'countryName',
1770
+ email: 'emailAddress',
1771
+ name: 'name',
1772
+ 'additional-name': 'middleName',
1773
+ 'family-name': 'familyName',
1774
+ 'given-name': 'givenName',
1775
+ nickname: 'nickname',
1776
+ 'honorific-prefix': 'namePrefix',
1777
+ 'honorific-suffix': 'nameSuffix',
1778
+ 'new-password': 'newPassword',
1779
+ off: 'none',
1780
+ 'one-time-code': 'oneTimeCode',
1781
+ organization: 'organizationName',
1782
+ 'organization-title': 'jobTitle',
1783
+ 'postal-code': 'postalCode',
1784
+ 'street-address': 'fullStreetAddress',
1785
+ tel: 'telephoneNumber',
1786
+ url: 'URL',
1787
+ username: 'username',
1788
+ };
1789
+
1144
1790
  const ExportedForwardRef: React.AbstractComponent<
1145
1791
  React.ElementConfig<typeof InternalTextInput>,
1146
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1792
+ TextInputInstance,
1793
+ // $FlowFixMe[incompatible-call]
1147
1794
  > = React.forwardRef(function TextInput(
1148
- props,
1149
- forwardedRef: ReactRefSetter<
1150
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1151
- >,
1795
+ {
1796
+ allowFontScaling = true,
1797
+ rejectResponderTermination = true,
1798
+ underlineColorAndroid = 'transparent',
1799
+ autoComplete,
1800
+ textContentType,
1801
+ readOnly,
1802
+ editable,
1803
+ enterKeyHint,
1804
+ returnKeyType,
1805
+ inputMode,
1806
+ showSoftInputOnFocus,
1807
+ keyboardType,
1808
+ ...restProps
1809
+ },
1810
+ forwardedRef: ReactRefSetter<TextInputInstance>,
1152
1811
  ) {
1153
- return <InternalTextInput {...props} forwardedRef={forwardedRef} />;
1812
+ return (
1813
+ <InternalTextInput
1814
+ allowFontScaling={allowFontScaling}
1815
+ rejectResponderTermination={rejectResponderTermination}
1816
+ underlineColorAndroid={underlineColorAndroid}
1817
+ editable={readOnly !== undefined ? !readOnly : editable}
1818
+ returnKeyType={
1819
+ enterKeyHint ? enterKeyHintToReturnTypeMap[enterKeyHint] : returnKeyType
1820
+ }
1821
+ keyboardType={
1822
+ inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType
1823
+ }
1824
+ showSoftInputOnFocus={
1825
+ inputMode == null ? showSoftInputOnFocus : inputMode !== 'none'
1826
+ }
1827
+ autoComplete={
1828
+ Platform.OS === 'android'
1829
+ ? // $FlowFixMe[invalid-computed-prop]
1830
+ // $FlowFixMe[prop-missing]
1831
+ autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??
1832
+ autoComplete
1833
+ : undefined
1834
+ }
1835
+ textContentType={
1836
+ textContentType != null
1837
+ ? textContentType
1838
+ : Platform.OS === 'ios' &&
1839
+ autoComplete &&
1840
+ autoComplete in autoCompleteWebToTextContentTypeMap
1841
+ ? // $FlowFixMe[invalid-computed-prop]
1842
+ // $FlowFixMe[prop-missing]
1843
+ autoCompleteWebToTextContentTypeMap[autoComplete]
1844
+ : textContentType
1845
+ }
1846
+ {...restProps}
1847
+ forwardedRef={forwardedRef}
1848
+ />
1849
+ );
1154
1850
  });
1155
1851
 
1156
- // $FlowFixMe
1157
- ExportedForwardRef.defaultProps = {
1158
- allowFontScaling: true,
1159
- rejectResponderTermination: true,
1160
- underlineColorAndroid: 'transparent',
1161
- };
1162
-
1163
- // TODO: Deprecate this
1164
- // $FlowFixMe
1165
- ExportedForwardRef.propTypes = DeprecatedTextInputPropTypes;
1852
+ ExportedForwardRef.displayName = 'TextInput';
1166
1853
 
1167
- // $FlowFixMe
1854
+ // $FlowFixMe[prop-missing]
1168
1855
  ExportedForwardRef.State = {
1169
1856
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
1170
1857
 
@@ -1173,18 +1860,17 @@ ExportedForwardRef.State = {
1173
1860
  blurTextInput: TextInputState.blurTextInput,
1174
1861
  };
1175
1862
 
1176
- type TextInputComponentStatics = $ReadOnly<{|
1863
+ export type TextInputComponentStatics = $ReadOnly<{|
1177
1864
  State: $ReadOnly<{|
1178
1865
  currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
1179
1866
  currentlyFocusedField: typeof TextInputState.currentlyFocusedField,
1180
1867
  focusTextInput: typeof TextInputState.focusTextInput,
1181
1868
  blurTextInput: typeof TextInputState.blurTextInput,
1182
1869
  |}>,
1183
- propTypes: typeof DeprecatedTextInputPropTypes,
1184
1870
  |}>;
1185
1871
 
1186
1872
  const styles = StyleSheet.create({
1187
- multilineInput: {
1873
+ multilineDefault: {
1188
1874
  // This default top inset makes RCTMultilineTextInputView seem as close as possible
1189
1875
  // to single-line RCTSinglelineTextInputView defaults, using the system defaults
1190
1876
  // of font size 17 and a height of 31 points.
@@ -1192,11 +1878,12 @@ const styles = StyleSheet.create({
1192
1878
  },
1193
1879
  });
1194
1880
 
1195
- module.exports = ((ExportedForwardRef: any): React.AbstractComponent<
1196
- React.ElementConfig<typeof InternalTextInput>,
1197
- $ReadOnly<{|
1198
- ...React.ElementRef<HostComponent<mixed>>,
1199
- ...ImperativeMethods,
1200
- |}>,
1201
- > &
1202
- TextInputComponentStatics);
1881
+ const verticalAlignToTextAlignVerticalMap = {
1882
+ auto: 'auto',
1883
+ top: 'top',
1884
+ bottom: 'bottom',
1885
+ middle: 'center',
1886
+ };
1887
+
1888
+ // $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.
1889
+ module.exports = ((ExportedForwardRef: any): TextInputType);