@office-iss/react-native-win32 0.0.0-canary.29 → 0.0.0-canary.290

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