@office-iss/react-native-win32 0.0.0-canary.283 → 0.0.0-canary.285

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 (473) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +79 -1
  3. package/CHANGELOG.md +32 -8
  4. package/IntegrationTests/AccessibilityManagerTest.js +17 -12
  5. package/IntegrationTests/AppEventsTest.js +47 -32
  6. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +10 -14
  7. package/IntegrationTests/ImageCachePolicyTest.js +64 -81
  8. package/IntegrationTests/ImageSnapshotTest.js +17 -20
  9. package/IntegrationTests/IntegrationTestHarnessTest.js +34 -52
  10. package/IntegrationTests/IntegrationTestsApp.js +11 -6
  11. package/IntegrationTests/LayoutEventsTest.js +1 -1
  12. package/IntegrationTests/LoggingTestModule.js +2 -1
  13. package/IntegrationTests/PromiseTest.js +51 -43
  14. package/IntegrationTests/SimpleSnapshotTest.js +19 -24
  15. package/IntegrationTests/SyncMethodTest.js +9 -13
  16. package/IntegrationTests/TimersTest.js +3 -3
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +39 -18
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -2
  19. package/Libraries/Alert/Alert.flow.js +62 -0
  20. package/Libraries/Alert/Alert.js +5 -28
  21. package/Libraries/Alert/Alert.win32.js +6 -28
  22. package/Libraries/Alert/NativeAlertManager.js +2 -2
  23. package/Libraries/Alert/RCTAlertManager.android.js +1 -1
  24. package/Libraries/Alert/RCTAlertManager.flow.js +20 -0
  25. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  26. package/Libraries/Animated/AnimatedMock.js +1 -1
  27. package/Libraries/Animated/NativeAnimatedModule.js +2 -2
  28. package/Libraries/Animated/NativeAnimatedTurboModule.js +2 -2
  29. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  30. package/Libraries/Animated/nodes/AnimatedValue.js +35 -13
  31. package/Libraries/Animated/useAnimatedProps.js +4 -332
  32. package/Libraries/AppState/AppState.js +1 -1
  33. package/Libraries/AppState/NativeAppState.js +2 -2
  34. package/Libraries/BatchedBridge/BatchedBridge.js +4 -2
  35. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  36. package/Libraries/BatchedBridge/NativeModules.js +4 -3
  37. package/Libraries/Blob/Blob.js +4 -4
  38. package/Libraries/Blob/BlobManager.js +3 -2
  39. package/Libraries/Blob/BlobRegistry.js +3 -9
  40. package/Libraries/Blob/File.js +3 -2
  41. package/Libraries/Blob/FileReader.js +8 -174
  42. package/Libraries/Blob/FileReader_new.js +231 -0
  43. package/Libraries/Blob/FileReader_old.js +186 -0
  44. package/Libraries/Blob/NativeBlobModule.js +2 -2
  45. package/Libraries/Blob/NativeFileReaderModule.js +2 -2
  46. package/Libraries/Blob/URLSearchParams.js +1 -2
  47. package/Libraries/BugReporting/BugReporting.js +2 -2
  48. package/Libraries/BugReporting/NativeBugReporting.js +2 -2
  49. package/Libraries/BugReporting/dumpReactTree.js +2 -2
  50. package/Libraries/BugReporting/getReactData.js +1 -1
  51. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +2 -2
  52. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +2 -2
  53. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +2 -2
  54. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  55. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  56. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  57. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +5 -5
  58. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  59. package/Libraries/Components/Button.js +2 -2
  60. package/Libraries/Components/Button.win32.js +2 -2
  61. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  62. package/Libraries/Components/Clipboard/NativeClipboard.js +2 -2
  63. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  64. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +7 -7
  65. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +2 -2
  66. package/Libraries/Components/Keyboard/Keyboard.js +9 -9
  67. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +18 -22
  68. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +2 -2
  69. package/Libraries/Components/Pressable/Pressable.js +4 -4
  70. package/Libraries/Components/Pressable/Pressable.win32.js +4 -4
  71. package/Libraries/Components/Pressable/useAndroidRippleForView.js +9 -9
  72. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +10 -11
  73. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  74. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  75. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  76. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  77. package/Libraries/Components/RefreshControl/RefreshControl.js +9 -9
  78. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  79. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  80. package/Libraries/Components/ScrollView/ScrollView.js +32 -26
  81. package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
  82. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -2
  83. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  84. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  85. package/Libraries/Components/Sound/NativeSoundManager.js +2 -2
  86. package/Libraries/Components/Sound/SoundManager.js +1 -1
  87. package/Libraries/Components/StaticRenderer.js +4 -4
  88. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +2 -2
  89. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +2 -2
  90. package/Libraries/Components/StatusBar/StatusBar.js +33 -18
  91. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  92. package/Libraries/Components/Switch/Switch.js +6 -6
  93. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  94. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +31 -31
  95. package/Libraries/Components/TextInput/InputAccessoryView.js +5 -3
  96. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  97. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  98. package/Libraries/Components/TextInput/TextInput.flow.js +117 -107
  99. package/Libraries/Components/TextInput/TextInput.js +122 -115
  100. package/Libraries/Components/TextInput/TextInput.win32.js +124 -117
  101. package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
  102. package/Libraries/Components/TextInput/TextInputState.js +3 -1
  103. package/Libraries/Components/TextInput/TextInputState.win32.js +3 -1
  104. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +2 -2
  105. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  106. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +68 -6
  107. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  108. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  109. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  110. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  111. package/Libraries/Components/Touchable/Position.js +1 -1
  112. package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
  113. package/Libraries/Components/Touchable/TouchableHighlight.js +12 -12
  114. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +15 -15
  115. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
  116. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -7
  117. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +4 -4
  118. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  119. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +11 -3
  120. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  121. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
  122. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
  123. package/Libraries/Components/View/View.js +1 -1
  124. package/Libraries/Components/View/View.win32.js +1 -1
  125. package/Libraries/Components/View/ViewAccessibility.js +2 -2
  126. package/Libraries/Components/View/ViewAccessibility.win32.js +2 -2
  127. package/Libraries/Components/View/ViewPropTypes.js +22 -22
  128. package/Libraries/Components/View/ViewPropTypes.win32.js +22 -22
  129. package/Libraries/Core/Devtools/getDevServer.js +1 -3
  130. package/Libraries/Core/Devtools/loadBundleFromServer.js +4 -2
  131. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +4 -2
  132. package/Libraries/Core/Devtools/openFileInEditor.js +2 -4
  133. package/Libraries/Core/Devtools/openURLInBrowser.js +5 -4
  134. package/Libraries/Core/Devtools/parseErrorStack.js +4 -4
  135. package/Libraries/Core/Devtools/parseHermesStack.js +2 -2
  136. package/Libraries/Core/Devtools/symbolicateStackTrace.js +5 -4
  137. package/Libraries/Core/ExceptionsManager.js +6 -4
  138. package/Libraries/Core/InitializeCore.js +5 -2
  139. package/Libraries/Core/NativeExceptionsManager.js +2 -2
  140. package/Libraries/Core/RawEventEmitter.js +2 -2
  141. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  142. package/Libraries/Core/ReactNativeVersion.js +3 -5
  143. package/Libraries/Core/ReactNativeVersionCheck.js +2 -4
  144. package/Libraries/Core/ReactNativeVersionCheck.win32.js +2 -4
  145. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +2 -2
  146. package/Libraries/Core/Timers/JSTimers.js +4 -4
  147. package/Libraries/Core/Timers/NativeTiming.js +2 -2
  148. package/Libraries/Core/Timers/immediateShim.js +2 -9
  149. package/Libraries/Core/polyfillPromise.js +1 -1
  150. package/Libraries/Core/registerCallableModule.js +1 -1
  151. package/Libraries/Core/setUpAlert.js +1 -1
  152. package/Libraries/Core/setUpBatchedBridge.js +4 -3
  153. package/Libraries/Core/setUpDeveloperTools.js +2 -9
  154. package/Libraries/Core/setUpErrorHandling.js +2 -2
  155. package/Libraries/Core/setUpReactDevTools.js +23 -5
  156. package/Libraries/Core/setUpTimers.js +45 -66
  157. package/Libraries/Core/setUpXHR.js +6 -6
  158. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  159. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  160. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  161. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  162. package/Libraries/Events/CustomEvent.js +2 -2
  163. package/Libraries/Image/AssetRegistry.js +8 -1
  164. package/Libraries/Image/AssetSourceResolver.js +3 -3
  165. package/Libraries/Image/Image.android.js +3 -1
  166. package/Libraries/Image/Image.ios.js +1 -1
  167. package/Libraries/Image/Image.win32.js +1 -1
  168. package/Libraries/Image/ImageBackground.js +1 -1
  169. package/Libraries/Image/ImageProps.js +17 -17
  170. package/Libraries/Image/ImageViewNativeComponent.js +4 -5
  171. package/Libraries/Image/NativeImageEditor.js +2 -2
  172. package/Libraries/Image/NativeImageLoaderAndroid.js +2 -2
  173. package/Libraries/Image/NativeImageLoaderIOS.js +2 -2
  174. package/Libraries/Image/NativeImageLoaderWin32.js +2 -2
  175. package/Libraries/Image/NativeImageStoreAndroid.js +2 -2
  176. package/Libraries/Image/NativeImageStoreIOS.js +2 -2
  177. package/Libraries/Image/RelativeImageStub.js +3 -1
  178. package/Libraries/Image/nativeImageSource.js +3 -3
  179. package/Libraries/Image/resolveAssetSource.js +4 -2
  180. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  181. package/Libraries/Interaction/InteractionManager.js +11 -8
  182. package/Libraries/Interaction/InteractionManagerStub.js +1 -1
  183. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  184. package/Libraries/Interaction/NativeFrameRateLogger.js +2 -2
  185. package/Libraries/Interaction/PanResponder.js +8 -8
  186. package/Libraries/Interaction/TaskQueue.js +1 -1
  187. package/Libraries/Interaction/TouchHistoryMath.js +27 -1
  188. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -4
  189. package/Libraries/Linking/Linking.d.ts +3 -3
  190. package/Libraries/Linking/Linking.js +10 -9
  191. package/Libraries/Linking/NativeIntentAndroid.js +2 -2
  192. package/Libraries/Linking/NativeLinkingManager.js +2 -2
  193. package/Libraries/Lists/FillRateHelper.js +1 -1
  194. package/Libraries/Lists/FlatList.js +10 -11
  195. package/Libraries/Lists/SectionList.js +7 -9
  196. package/Libraries/Lists/SectionListModern.js +6 -6
  197. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  198. package/Libraries/Lists/VirtualizeUtils.js +1 -3
  199. package/Libraries/Lists/VirtualizedList.js +1 -1
  200. package/Libraries/Lists/VirtualizedListContext.js +1 -3
  201. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  202. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
  203. package/Libraries/LogBox/Data/LogBoxData.js +15 -15
  204. package/Libraries/LogBox/Data/LogBoxLog.js +51 -29
  205. package/Libraries/LogBox/Data/parseLogBoxLog.js +10 -10
  206. package/Libraries/LogBox/LogBox.js +13 -1
  207. package/Libraries/LogBox/LogBoxInspectorContainer.js +3 -3
  208. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
  209. package/Libraries/LogBox/UI/LogBoxButton.js +4 -4
  210. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +8 -2
  211. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +50 -31
  212. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +50 -31
  213. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +2 -2
  214. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
  215. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -2
  216. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  217. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
  218. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -2
  219. package/Libraries/Modal/Modal.js +10 -10
  220. package/Libraries/Modal/NativeModalManager.js +2 -2
  221. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  222. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  223. package/Libraries/NativeModules/specs/NativeDevSettings.js +2 -2
  224. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +2 -2
  225. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +2 -2
  226. package/Libraries/NativeModules/specs/NativeLogBox.js +2 -2
  227. package/Libraries/NativeModules/specs/NativeRedBox.js +2 -2
  228. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -2
  229. package/Libraries/Network/NativeNetworkingAndroid.js +2 -2
  230. package/Libraries/Network/NativeNetworkingIOS.js +2 -2
  231. package/Libraries/Network/RCTNetworking.android.js +1 -1
  232. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  233. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  234. package/Libraries/Network/XMLHttpRequest.js +11 -685
  235. package/Libraries/Network/XMLHttpRequest_new.js +790 -0
  236. package/Libraries/Network/XMLHttpRequest_old.js +697 -0
  237. package/Libraries/Network/convertRequestBody.js +3 -1
  238. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -2
  239. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  240. package/Libraries/Pressability/Pressability.js +10 -10
  241. package/Libraries/Pressability/Pressability.win32.js +10 -10
  242. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  243. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +2 -2
  244. package/Libraries/Promise.js +2 -2
  245. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +2 -2
  246. package/Libraries/ReactNative/AppContainer-dev.js +2 -2
  247. package/Libraries/ReactNative/AppContainer.js +3 -3
  248. package/Libraries/ReactNative/AppRegistry.js +1 -1
  249. package/Libraries/ReactNative/BridgelessUIManager.js +4 -9
  250. package/Libraries/ReactNative/FabricUIManager.js +18 -8
  251. package/Libraries/ReactNative/I18nManager.js +4 -3
  252. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +2 -2
  253. package/Libraries/ReactNative/NativeI18nManager.js +2 -2
  254. package/Libraries/ReactNative/NativeUIManager.js +2 -2
  255. package/Libraries/ReactNative/PaperUIManager.js +3 -4
  256. package/Libraries/ReactNative/PaperUIManager.win32.js +3 -4
  257. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +85 -31
  258. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +3 -3
  259. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +3 -3
  260. package/Libraries/ReactNative/RendererImplementation.js +9 -0
  261. package/Libraries/ReactNative/UIManager.d.ts +1 -0
  262. package/Libraries/ReactNative/UIManager.js +3 -3
  263. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  264. package/Libraries/ReactNative/getNativeComponentAttributes.js +6 -5
  265. package/Libraries/ReactNative/requireNativeComponent.js +2 -1
  266. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +12 -6
  267. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -1
  268. package/Libraries/Settings/NativeSettingsManager.js +2 -2
  269. package/Libraries/Settings/Settings.ios.js +1 -1
  270. package/Libraries/Settings/Settings.js +1 -1
  271. package/Libraries/Settings/Settings.win32.js +1 -1
  272. package/Libraries/Share/NativeShareModule.js +2 -2
  273. package/Libraries/Share/Share.js +1 -1
  274. package/Libraries/StyleSheet/Rect.js +2 -2
  275. package/Libraries/StyleSheet/StyleSheet.js +3 -2
  276. package/Libraries/StyleSheet/StyleSheet.win32.js +3 -2
  277. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  278. package/Libraries/StyleSheet/private/_TransformStyle.js +18 -18
  279. package/Libraries/StyleSheet/processBackgroundImage.js +138 -136
  280. package/Libraries/StyleSheet/processBoxShadow.js +4 -0
  281. package/Libraries/StyleSheet/processColorArray.js +1 -1
  282. package/Libraries/Text/Text.js +1 -1
  283. package/Libraries/Text/Text.win32.js +1 -1
  284. package/Libraries/Text/TextAncestor.js +2 -3
  285. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  286. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +2 -2
  287. package/Libraries/Types/CodegenTypes.js +2 -1
  288. package/Libraries/Types/CoreEventTypes.js +42 -40
  289. package/Libraries/Types/CoreEventTypes.win32.js +42 -40
  290. package/Libraries/UTFSequence.js +2 -2
  291. package/Libraries/Utilities/Appearance.js +0 -8
  292. package/Libraries/Utilities/BackHandler.android.js +2 -2
  293. package/Libraries/Utilities/BackHandler.ios.js +2 -2
  294. package/Libraries/Utilities/BackHandler.win32.js +2 -2
  295. package/Libraries/Utilities/HMRClient.js +2 -2
  296. package/Libraries/Utilities/NativeAppearance.js +2 -2
  297. package/Libraries/Utilities/NativeDevLoadingView.js +2 -2
  298. package/Libraries/Utilities/NativeDeviceInfo.js +2 -2
  299. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +2 -2
  300. package/Libraries/Utilities/NativePlatformConstantsIOS.js +2 -2
  301. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  302. package/Libraries/Utilities/Platform.android.js +4 -4
  303. package/Libraries/Utilities/Platform.flow.js +8 -8
  304. package/Libraries/Utilities/Platform.flow.win32.js +8 -8
  305. package/Libraries/Utilities/Platform.ios.js +4 -4
  306. package/Libraries/Utilities/Platform.win32.js +2 -2
  307. package/Libraries/Utilities/ReactNativeTestTools.js +5 -5
  308. package/Libraries/Utilities/codegenNativeCommands.js +2 -2
  309. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  310. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  311. package/Libraries/Utilities/dismissKeyboard.js +2 -1
  312. package/Libraries/Utilities/stringifySafe.js +2 -2
  313. package/Libraries/Vibration/NativeVibration.js +2 -2
  314. package/Libraries/Vibration/Vibration.js +1 -1
  315. package/Libraries/WebSocket/NativeWebSocketModule.js +2 -2
  316. package/Libraries/WebSocket/WebSocket.js +8 -285
  317. package/Libraries/WebSocket/WebSocketEvent.js +2 -2
  318. package/Libraries/WebSocket/WebSocketInterceptor.js +39 -11
  319. package/Libraries/WebSocket/WebSocket_new.js +325 -0
  320. package/Libraries/WebSocket/WebSocket_old.js +297 -0
  321. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  322. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  323. package/flow/jest.js +14 -14
  324. package/index.js +40 -38
  325. package/index.win32.js +40 -38
  326. package/jest/mockScrollView.js +1 -1
  327. package/jest/setup.js +305 -262
  328. package/overrides.json +44 -56
  329. package/package.json +17 -17
  330. package/src/private/animated/createAnimatedPropsHook.js +360 -0
  331. package/src/private/animated/{useAnimatedPropsMemo.js → createAnimatedPropsMemoHook.js} +84 -32
  332. package/src/private/components/HScrollViewNativeComponents.js +1 -1
  333. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  334. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +1 -1
  335. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +1 -1
  336. package/src/private/devmenu/DevMenu.js +1 -1
  337. package/src/private/featureflags/ReactNativeFeatureFlags.js +29 -55
  338. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -1
  339. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -8
  340. package/{Libraries/Inspector → src/private/inspector}/BorderBox.js +3 -3
  341. package/{Libraries/Inspector → src/private/inspector}/BoxInspector.js +9 -6
  342. package/{Libraries/Inspector → src/private/inspector}/ElementBox.js +8 -8
  343. package/{Libraries/Inspector → src/private/inspector}/ElementProperties.js +18 -15
  344. package/{Libraries/Inspector → src/private/inspector}/Inspector.js +21 -18
  345. package/{Libraries/Inspector → src/private/inspector}/InspectorOverlay.js +9 -8
  346. package/{Libraries/Inspector → src/private/inspector}/InspectorPanel.js +17 -15
  347. package/{Libraries/Inspector → src/private/inspector}/NetworkOverlay.js +40 -24
  348. package/{Libraries/Inspector → src/private/inspector}/PerformanceOverlay.js +7 -6
  349. package/{Libraries/Inspector → src/private/inspector}/ReactDevToolsOverlay.js +9 -8
  350. package/{Libraries/Inspector → src/private/inspector}/StyleInspector.js +6 -6
  351. package/{Libraries/Network → src/private/inspector}/XHRInterceptor.js +1 -1
  352. package/{Libraries/Inspector → src/private/inspector}/getInspectorDataForViewAtPoint.js +5 -3
  353. package/{Libraries/Inspector → src/private/inspector}/resolveBoxStyle.js +5 -4
  354. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -4
  355. package/src/private/setup/setUpDOM.js +7 -2
  356. package/src/private/{specs → specs_DEPRECATED}/components/ActivityIndicatorViewNativeComponent.js +2 -2
  357. package/src/private/{specs → specs_DEPRECATED}/components/AndroidDrawerLayoutNativeComponent.js +6 -6
  358. package/src/private/{specs → specs_DEPRECATED}/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  359. package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  360. package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwitchNativeComponent.js +4 -4
  361. package/src/private/{specs → specs_DEPRECATED}/components/DebuggingOverlayNativeComponent.js +2 -2
  362. package/src/private/{specs → specs_DEPRECATED}/components/ProgressBarAndroidNativeComponent.js +2 -2
  363. package/src/private/{specs → specs_DEPRECATED}/components/PullToRefreshViewNativeComponent.js +2 -2
  364. package/src/private/{specs → specs_DEPRECATED}/components/RCTInputAccessoryViewNativeComponent.js +2 -2
  365. package/src/private/{specs → specs_DEPRECATED}/components/RCTModalHostViewNativeComponent.js +4 -4
  366. package/src/private/{specs → specs_DEPRECATED}/components/RCTSafeAreaViewNativeComponent.js +2 -2
  367. package/src/private/{specs → specs_DEPRECATED}/components/SwitchNativeComponent.js +4 -4
  368. package/src/private/{specs → specs_DEPRECATED}/components/UnimplementedNativeViewNativeComponent.js +2 -2
  369. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityManager.js +2 -2
  370. package/src/private/{specs → specs_DEPRECATED}/modules/NativeActionSheetManager.js +7 -7
  371. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAlertManager.js +2 -2
  372. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedModule.js +2 -2
  373. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedTurboModule.js +2 -2
  374. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppState.js +3 -3
  375. package/src/private/{specs → specs_DEPRECATED}/modules/NativeBlobModule.js +1 -1
  376. package/src/private/{specs → specs_DEPRECATED}/modules/NativeClipboard.js +1 -1
  377. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevMenu.js +0 -1
  378. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevSettings.js +0 -1
  379. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceInfo.js +8 -8
  380. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDialogManagerAndroid.js +4 -4
  381. package/src/private/{specs → specs_DEPRECATED}/modules/NativeExceptionsManager.js +2 -2
  382. package/src/private/{specs → specs_DEPRECATED}/modules/NativeFrameRateLogger.js +1 -1
  383. package/src/private/{specs → specs_DEPRECATED}/modules/NativeI18nManager.js +2 -2
  384. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageEditor.js +9 -9
  385. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderAndroid.js +1 -1
  386. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderIOS.js +1 -1
  387. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderWin32.js +1 -1
  388. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreAndroid.js +1 -1
  389. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreIOS.js +3 -3
  390. package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingIOS.js +2 -2
  391. package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsAndroid.js +4 -4
  392. package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsIOS.js +4 -4
  393. package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsWin.js +5 -10
  394. package/src/private/{specs → specs_DEPRECATED}/modules/NativePushNotificationManagerIOS.js +7 -7
  395. package/src/private/{specs → specs_DEPRECATED}/modules/NativeSampleTurboModule.js +2 -2
  396. package/src/private/{specs → specs_DEPRECATED}/modules/NativeSettingsManager.js +2 -2
  397. package/src/private/{specs → specs_DEPRECATED}/modules/NativeShareModule.js +3 -3
  398. package/src/private/{specs → specs_DEPRECATED}/modules/NativeSourceCode.js +2 -2
  399. package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerAndroid.js +4 -4
  400. package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerIOS.js +6 -6
  401. package/src/private/{specs → specs_DEPRECATED}/modules/NativeToastAndroid.js +2 -2
  402. package/src/private/{specs → specs_DEPRECATED}/modules/NativeVibration.js +1 -1
  403. package/src/private/{specs → specs_DEPRECATED}/modules/NativeWebSocketModule.js +1 -1
  404. package/src/private/webapis/dom/events/CustomEvent.js +40 -0
  405. package/src/private/webapis/dom/events/Event.js +236 -0
  406. package/src/private/webapis/dom/events/EventHandlerAttributes.js +130 -0
  407. package/src/private/webapis/dom/events/EventTarget.js +436 -0
  408. package/src/private/webapis/dom/events/internals/EventInternals.js +120 -0
  409. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +52 -0
  410. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +120 -0
  411. package/src/private/webapis/dom/nodes/ReactNativeElement.js +48 -25
  412. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +6 -5
  413. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +25 -25
  414. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +55 -77
  415. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +144 -0
  416. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +55 -0
  417. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +43 -0
  418. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +305 -194
  419. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  420. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  421. package/src/private/webapis/{dom/oldstylecollections → geometry}/DOMRectList.js +3 -3
  422. package/src/private/webapis/html/events/MessageEvent.js +63 -0
  423. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +2 -2
  424. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  425. package/src/private/webapis/intersectionobserver/{IntersectionObserverManager.js → internals/IntersectionObserverManager.js} +20 -17
  426. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  427. package/src/private/webapis/mutationobserver/{MutationObserverManager.js → internals/MutationObserverManager.js} +12 -14
  428. package/src/private/webapis/performance/EventTiming.js +1 -1
  429. package/src/private/webapis/performance/Performance.js +3 -3
  430. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  431. package/src/private/webapis/performance/{RawPerformanceEntry.js → internals/RawPerformanceEntry.js} +6 -6
  432. package/src/private/webapis/performance/{Utilities.js → internals/Utilities.js} +1 -1
  433. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +1 -1
  434. package/src/private/webapis/websockets/events/CloseEvent.js +54 -0
  435. package/src/private/webapis/xhr/events/ProgressEvent.js +54 -0
  436. package/types/index.d.ts +0 -5
  437. package/Libraries/Animated/AnimatedWeb.js +0 -26
  438. package/Libraries/Inspector/Inspector.win32.js +0 -212
  439. package/Libraries/Inspector/InspectorOverlay.win32.js +0 -68
  440. package/Libraries/JSInspector/InspectorAgent.js +0 -27
  441. package/Libraries/JSInspector/JSInspector.js +0 -33
  442. package/Libraries/JSInspector/NetworkAgent.js +0 -295
  443. package/Libraries/Utilities/DebugEnvironment.js +0 -16
  444. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +0 -19
  445. package/Libraries/YellowBox/YellowBoxDeprecated.js +0 -75
  446. package/src/private/specs/modules/NativeCPUTime.js +0 -24
  447. package/src/private/specs/modules/NativeFantom.js +0 -37
  448. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfo.js +0 -0
  449. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfoWin32.js +0 -0
  450. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppearance.js +0 -0
  451. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBugReporting.js +0 -0
  452. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevLoadingView.js +0 -0
  453. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceEventManager.js +0 -0
  454. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFileReaderModule.js +0 -0
  455. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeHeadlessJsTaskSupport.js +0 -0
  456. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeIntentAndroid.js +0 -0
  457. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeJSCHeapCapture.js +0 -0
  458. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeKeyboardObserver.js +0 -0
  459. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLinkingManager.js +0 -0
  460. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLogBox.js +0 -0
  461. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeModalManager.js +0 -0
  462. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingAndroid.js +0 -0
  463. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePermissionsAndroid.js +0 -0
  464. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeReactDevToolsSettingsManager.js +0 -0
  465. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeRedBox.js +0 -0
  466. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSegmentFetcher.js +0 -0
  467. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSoundManager.js +0 -0
  468. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeTiming.js +0 -0
  469. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeUIManager.js +0 -0
  470. /package/src/private/webapis/dom/nodes/{utilities → internals}/Traversal.js +0 -0
  471. /package/src/private/webapis/{dom/geometry → geometry}/DOMRect.js +0 -0
  472. /package/src/private/webapis/{dom/geometry → geometry}/DOMRectReadOnly.js +0 -0
  473. /package/src/private/webapis/{dom/oldstylecollections → utils}/ArrayLikeUtils.js +0 -0
@@ -22,12 +22,17 @@ type LinearGradientDirection =
22
22
  | {type: 'angle', value: number}
23
23
  | {type: 'keyword', value: string};
24
24
 
25
+ // null color indicate that the transition hint syntax is used. e.g. red, 20%, blue
26
+ type ColorStopColor = ProcessedColorValue | null;
27
+ // percentage or pixel value
28
+ type ColorStopPosition = number | string | null;
29
+
25
30
  type ParsedGradientValue = {
26
31
  type: 'linearGradient',
27
32
  direction: LinearGradientDirection,
28
33
  colorStops: $ReadOnlyArray<{
29
- color: ProcessedColorValue,
30
- position: number,
34
+ color: ColorStopColor,
35
+ position: ColorStopPosition,
31
36
  }>,
32
37
  };
33
38
 
@@ -49,33 +54,58 @@ export default function processBackgroundImage(
49
54
  } else if (Array.isArray(backgroundImage)) {
50
55
  for (const bgImage of backgroundImage) {
51
56
  const processedColorStops: Array<{
52
- color: ProcessedColorValue,
53
- position: number | null,
57
+ color: ColorStopColor,
58
+ position: ColorStopPosition,
54
59
  }> = [];
55
60
  for (let index = 0; index < bgImage.colorStops.length; index++) {
56
61
  const colorStop = bgImage.colorStops[index];
57
- const processedColor = processColor(colorStop.color);
58
- if (processedColor == null) {
59
- // If a color is invalid, return an empty array and do not apply gradient. Same as web.
60
- return [];
61
- }
62
- if (colorStop.positions != null && colorStop.positions.length > 0) {
63
- for (const position of colorStop.positions) {
64
- if (position.endsWith('%')) {
65
- processedColorStops.push({
66
- color: processedColor,
67
- position: parseFloat(position) / 100,
68
- });
69
- } else {
70
- // If a position is invalid, return an empty array and do not apply gradient. Same as web.
71
- return [];
72
- }
62
+ const positions = colorStop.positions;
63
+ // Color transition hint syntax (red, 20%, blue)
64
+ if (
65
+ colorStop.color == null &&
66
+ Array.isArray(positions) &&
67
+ positions.length === 1
68
+ ) {
69
+ const position = positions[0];
70
+ if (
71
+ typeof position === 'number' ||
72
+ (typeof position === 'string' && position.endsWith('%'))
73
+ ) {
74
+ processedColorStops.push({
75
+ color: null,
76
+ position,
77
+ });
78
+ } else {
79
+ // If a position is invalid, return an empty array and do not apply gradient. Same as web.
80
+ return [];
73
81
  }
74
82
  } else {
75
- processedColorStops.push({
76
- color: processedColor,
77
- position: null,
78
- });
83
+ const processedColor = processColor(colorStop.color);
84
+ if (processedColor == null) {
85
+ // If a color is invalid, return an empty array and do not apply gradient. Same as web.
86
+ return [];
87
+ }
88
+ if (positions != null && positions.length > 0) {
89
+ for (const position of positions) {
90
+ if (
91
+ typeof position === 'number' ||
92
+ (typeof position === 'string' && position.endsWith('%'))
93
+ ) {
94
+ processedColorStops.push({
95
+ color: processedColor,
96
+ position,
97
+ });
98
+ } else {
99
+ // If a position is invalid, return an empty array and do not apply gradient. Same as web.
100
+ return [];
101
+ }
102
+ }
103
+ } else {
104
+ processedColorStops.push({
105
+ color: processedColor,
106
+ position: null,
107
+ });
108
+ }
79
109
  }
80
110
  }
81
111
 
@@ -109,12 +139,10 @@ export default function processBackgroundImage(
109
139
  }
110
140
  }
111
141
 
112
- const fixedColorStops = getFixedColorStops(processedColorStops);
113
-
114
142
  result = result.concat({
115
143
  type: 'linearGradient',
116
144
  direction,
117
- colorStops: fixedColorStops,
145
+ colorStops: processedColorStops,
118
146
  });
119
147
  }
120
148
  }
@@ -137,13 +165,6 @@ function parseCSSLinearGradient(
137
165
  let direction: LinearGradientDirection = DEFAULT_DIRECTION;
138
166
  const trimmedDirection = parts[0].trim().toLowerCase();
139
167
 
140
- // matches individual color stops in a gradient function
141
- // supports various color formats: named colors, hex colors, rgb(a), and hsl(a)
142
- // e.g. "red 20%", "blue 50%", "rgba(0, 0, 0, 0.5) 30% 50%"
143
- // TODO: does not support color hint syntax yet. It is WIP.
144
- const colorStopRegex =
145
- /\s*((?:(?:rgba?|hsla?)\s*\([^)]+\))|#[0-9a-fA-F]+|[a-zA-Z]+)(?:\s+(-?[0-9.]+%?)(?:\s+(-?[0-9.]+%?))?)?\s*/gi;
146
-
147
168
  if (ANGLE_UNIT_REGEX.test(trimmedDirection)) {
148
169
  const parsedAngle = getAngleInDegrees(trimmedDirection);
149
170
  if (parsedAngle != null) {
@@ -165,59 +186,107 @@ function parseCSSLinearGradient(
165
186
  // If a direction is invalid, return an empty array and do not apply any gradient. Same as web.
166
187
  return [];
167
188
  }
168
- } else if (!colorStopRegex.test(trimmedDirection)) {
169
- // If first part is not an angle/direction or a color stop, return an empty array and do not apply any gradient. Same as web.
170
- return [];
171
189
  }
172
- colorStopRegex.lastIndex = 0;
173
190
 
191
+ const colorStopsString = parts.join(',');
174
192
  const colorStops = [];
175
- const fullColorStopsStr = parts.join(',');
176
- let colorStopMatch;
177
- while ((colorStopMatch = colorStopRegex.exec(fullColorStopsStr))) {
178
- const [, color, position1, position2] = colorStopMatch;
179
- const processedColor = processColor(color.trim().toLowerCase());
180
- if (processedColor == null) {
181
- // If a color is invalid, return an empty array and do not apply any gradient. Same as web.
193
+ // split by comma, but not if it's inside a parentheses. e.g. red, rgba(0, 0, 0, 0.5), green => ["red", "rgba(0, 0, 0, 0.5)", "green"]
194
+ const stops = colorStopsString.split(/,(?![^(]*\))/);
195
+ let prevStop = null;
196
+ for (let i = 0; i < stops.length; i++) {
197
+ const stop = stops[i];
198
+ const trimmedStop = stop.trim().toLowerCase();
199
+ // Match function like pattern or single words
200
+ const colorStopParts = trimmedStop.match(/\S+\([^)]*\)|\S+/g);
201
+ if (colorStopParts == null) {
202
+ // If a color stop is invalid, return an empty array and do not apply any gradient. Same as web.
182
203
  return [];
183
204
  }
205
+ // Case 1: [color, position, position]
206
+ if (colorStopParts.length === 3) {
207
+ const color = colorStopParts[0];
208
+ const position1 = getPositionFromCSSValue(colorStopParts[1]);
209
+ const position2 = getPositionFromCSSValue(colorStopParts[2]);
210
+ const processedColor = processColor(color);
211
+ if (processedColor == null) {
212
+ // If a color is invalid, return an empty array and do not apply any gradient. Same as web.
213
+ return [];
214
+ }
184
215
 
185
- if (typeof position1 !== 'undefined') {
186
- if (position1.endsWith('%')) {
187
- colorStops.push({
188
- color: processedColor,
189
- position: parseFloat(position1) / 100,
190
- });
191
- } else {
216
+ if (position1 == null || position2 == null) {
192
217
  // If a position is invalid, return an empty array and do not apply any gradient. Same as web.
193
218
  return [];
194
219
  }
195
- } else {
220
+
221
+ colorStops.push({
222
+ color: processedColor,
223
+ position: position1,
224
+ });
196
225
  colorStops.push({
197
226
  color: processedColor,
198
- position: null,
227
+ position: position2,
199
228
  });
200
229
  }
201
-
202
- if (typeof position2 !== 'undefined') {
203
- if (position2.endsWith('%')) {
230
+ // Case 2: [color, position]
231
+ else if (colorStopParts.length === 2) {
232
+ const color = colorStopParts[0];
233
+ const position = getPositionFromCSSValue(colorStopParts[1]);
234
+ const processedColor = processColor(color);
235
+ if (processedColor == null) {
236
+ // If a color is invalid, return an empty array and do not apply any gradient. Same as web.
237
+ return [];
238
+ }
239
+ if (position == null) {
240
+ // If a position is invalid, return an empty array and do not apply any gradient. Same as web.
241
+ return [];
242
+ }
243
+ colorStops.push({
244
+ color: processedColor,
245
+ position,
246
+ });
247
+ }
248
+ // Case 3: [color]
249
+ // Case 4: [position] => transition hint syntax
250
+ else if (colorStopParts.length === 1) {
251
+ const position = getPositionFromCSSValue(colorStopParts[0]);
252
+ if (position != null) {
253
+ // handle invalid transition hint syntax. transition hint syntax must have color before and after the position. e.g. red, 20%, blue
254
+ if (
255
+ (prevStop != null &&
256
+ prevStop.length === 1 &&
257
+ getPositionFromCSSValue(prevStop[0]) != null) ||
258
+ i === stops.length - 1 ||
259
+ i === 0
260
+ ) {
261
+ // If the last stop is a transition hint syntax, return an empty array and do not apply any gradient. Same as web.
262
+ return [];
263
+ }
204
264
  colorStops.push({
205
- color: processedColor,
206
- position: parseFloat(position2) / 100,
265
+ color: null,
266
+ position,
207
267
  });
208
268
  } else {
209
- // If a position is invalid, return an empty array and do not apply any gradient. Same as web.
210
- return [];
269
+ const processedColor = processColor(colorStopParts[0]);
270
+ if (processedColor == null) {
271
+ // If a color is invalid, return an empty array and do not apply any gradient. Same as web.
272
+ return [];
273
+ }
274
+ colorStops.push({
275
+ color: processedColor,
276
+ position: null,
277
+ });
211
278
  }
279
+ } else {
280
+ // If a color stop is invalid, return an empty array and do not apply any gradient. Same as web.
281
+ return [];
212
282
  }
283
+ prevStop = colorStopParts;
213
284
  }
214
285
 
215
- const fixedColorStops = getFixedColorStops(colorStops);
216
-
217
286
  gradients.push({
218
287
  type: 'linearGradient',
219
288
  direction,
220
- colorStops: fixedColorStops,
289
+ colorStops,
221
290
  });
222
291
  }
223
292
 
@@ -283,79 +352,12 @@ function getAngleInDegrees(angle?: string): ?number {
283
352
  }
284
353
  }
285
354
 
286
- // https://drafts.csswg.org/css-images-4/#color-stop-fixup
287
- function getFixedColorStops(
288
- colorStops: $ReadOnlyArray<{
289
- color: ProcessedColorValue,
290
- position: number | null,
291
- }>,
292
- ): Array<{
293
- color: ProcessedColorValue,
294
- position: number,
295
- }> {
296
- let fixedColorStops: Array<{
297
- color: ProcessedColorValue,
298
- position: number,
299
- }> = [];
300
- let hasNullPositions = false;
301
- let maxPositionSoFar = colorStops[0].position ?? 0;
302
- for (let i = 0; i < colorStops.length; i++) {
303
- const colorStop = colorStops[i];
304
- let newPosition = colorStop.position;
305
- if (newPosition === null) {
306
- // Step 1:
307
- // If the first color stop does not have a position,
308
- // set its position to 0%. If the last color stop does not have a position,
309
- // set its position to 100%.
310
- if (i === 0) {
311
- newPosition = 0;
312
- } else if (i === colorStops.length - 1) {
313
- newPosition = 1;
314
- }
315
- }
316
- // Step 2:
317
- // If a color stop or transition hint has a position
318
- // that is less than the specified position of any color stop or transition hint
319
- // before it in the list, set its position to be equal to the
320
- // largest specified position of any color stop or transition hint before it.
321
- if (newPosition !== null) {
322
- newPosition = Math.max(newPosition, maxPositionSoFar);
323
- fixedColorStops[i] = {
324
- color: colorStop.color,
325
- position: newPosition,
326
- };
327
- maxPositionSoFar = newPosition;
328
- } else {
329
- hasNullPositions = true;
330
- }
355
+ function getPositionFromCSSValue(position: string) {
356
+ if (position.endsWith('px')) {
357
+ return parseFloat(position);
331
358
  }
332
359
 
333
- // Step 3:
334
- // If any color stop still does not have a position,
335
- // then, for each run of adjacent color stops without positions,
336
- // set their positions so that they are evenly spaced between the preceding and
337
- // following color stops with positions.
338
- if (hasNullPositions) {
339
- let lastDefinedIndex = 0;
340
- for (let i = 1; i < fixedColorStops.length; i++) {
341
- if (fixedColorStops[i] !== undefined) {
342
- const unpositionedStops = i - lastDefinedIndex - 1;
343
- if (unpositionedStops > 0) {
344
- const startPosition = fixedColorStops[lastDefinedIndex].position;
345
- const endPosition = fixedColorStops[i].position;
346
- const increment =
347
- (endPosition - startPosition) / (unpositionedStops + 1);
348
- for (let j = 1; j <= unpositionedStops; j++) {
349
- fixedColorStops[lastDefinedIndex + j] = {
350
- color: colorStops[lastDefinedIndex + j].color,
351
- position: startPosition + increment * j,
352
- };
353
- }
354
- }
355
- lastDefinedIndex = i;
356
- }
357
- }
360
+ if (position.endsWith('%')) {
361
+ return position;
358
362
  }
359
-
360
- return fixedColorStops;
361
363
  }
@@ -205,5 +205,9 @@ function parseLength(length: string): ?number {
205
205
  return null;
206
206
  }
207
207
 
208
+ if (match[3] == null && match[1] !== '0') {
209
+ return null;
210
+ }
211
+
208
212
  return Number(match[1]);
209
213
  }
@@ -32,4 +32,4 @@ function processColorElement(color: ColorValue): ProcessedColorValue {
32
32
  return value;
33
33
  }
34
34
 
35
- module.exports = processColorArray;
35
+ export default processColorArray;
@@ -534,4 +534,4 @@ const verticalAlignToTextAlignVerticalMap = {
534
534
  middle: 'center',
535
535
  };
536
536
 
537
- module.exports = Text;
537
+ export default Text;
@@ -574,4 +574,4 @@ const verticalAlignToTextAlignVerticalMap = {
574
574
  middle: 'center',
575
575
  };
576
576
 
577
- module.exports = Text;
577
+ export default Text;
@@ -15,9 +15,8 @@ const React = require('react');
15
15
  /**
16
16
  * Whether the current element is the descendant of a <Text> element.
17
17
  */
18
- const TextAncestorContext: React$Context<$FlowFixMe> =
19
- React.createContext(false);
18
+ const TextAncestorContext: React$Context<boolean> = React.createContext(false);
20
19
  if (__DEV__) {
21
20
  TextAncestorContext.displayName = 'TextAncestorContext';
22
21
  }
23
- module.exports = TextAncestorContext;
22
+ export default TextAncestorContext;
@@ -12,7 +12,7 @@ import type {TurboModule} from './RCTExport';
12
12
 
13
13
  import invariant from 'invariant';
14
14
 
15
- const NativeModules = require('../BatchedBridge/NativeModules');
15
+ const NativeModules = require('../BatchedBridge/NativeModules').default;
16
16
 
17
17
  const turboModuleProxy = global.__turboModuleProxy;
18
18
 
@@ -8,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- export * from '../../../src/private/specs/modules/NativeSampleTurboModule';
12
- import NativeSampleTurboModule from '../../../src/private/specs/modules/NativeSampleTurboModule';
11
+ export * from '../../../src/private/specs_DEPRECATED/modules/NativeSampleTurboModule';
12
+ import NativeSampleTurboModule from '../../../src/private/specs_DEPRECATED/modules/NativeSampleTurboModule';
13
13
  export default NativeSampleTurboModule;
@@ -29,7 +29,8 @@ export type DirectEventHandler<
29
29
  export type Double = number;
30
30
  export type Float = number;
31
31
  export type Int32 = number;
32
- export type UnsafeObject = $FlowFixMe; // Object is forbidden in strict mode
32
+ /* $FlowFixMe[unclear-type] Object is forbidden in strict mode */
33
+ export type UnsafeObject = Object;
33
34
  export type UnsafeMixed = mixed;
34
35
 
35
36
  type DefaultTypes = number | boolean | string | $ReadOnlyArray<string>;
@@ -10,14 +10,14 @@
10
10
 
11
11
  import type {HostInstance} from '../Renderer/shims/ReactNativeTypes';
12
12
 
13
- export type SyntheticEvent<+T> = $ReadOnly<{|
13
+ export type SyntheticEvent<+T> = $ReadOnly<{
14
14
  bubbles: ?boolean,
15
15
  cancelable: ?boolean,
16
16
  currentTarget: number | HostInstance,
17
17
  defaultPrevented: ?boolean,
18
- dispatchConfig: $ReadOnly<{|
18
+ dispatchConfig: $ReadOnly<{
19
19
  registrationName: string,
20
- |}>,
20
+ }>,
21
21
  eventPhase: ?number,
22
22
  preventDefault: () => void,
23
23
  isDefaultPrevented: () => boolean,
@@ -29,16 +29,16 @@ export type SyntheticEvent<+T> = $ReadOnly<{|
29
29
  target: ?number | HostInstance,
30
30
  timeStamp: number,
31
31
  type: ?string,
32
- |}>;
32
+ }>;
33
33
 
34
- export type ResponderSyntheticEvent<T> = $ReadOnly<{|
34
+ export type ResponderSyntheticEvent<T> = $ReadOnly<{
35
35
  ...SyntheticEvent<T>,
36
- touchHistory: $ReadOnly<{|
36
+ touchHistory: $ReadOnly<{
37
37
  indexOfSingleActiveTouch: number,
38
38
  mostRecentTimeStamp: number,
39
39
  numberActiveTouches: number,
40
40
  touchBank: $ReadOnlyArray<
41
- $ReadOnly<{|
41
+ $ReadOnly<{
42
42
  touchActive: boolean,
43
43
  startPageX: number,
44
44
  startPageY: number,
@@ -49,37 +49,37 @@ export type ResponderSyntheticEvent<T> = $ReadOnly<{|
49
49
  previousPageX: number,
50
50
  previousPageY: number,
51
51
  previousTimeStamp: number,
52
- |}>,
52
+ }>,
53
53
  >,
54
- |}>,
55
- |}>;
54
+ }>,
55
+ }>;
56
56
 
57
- export type Layout = $ReadOnly<{|
57
+ export type Layout = $ReadOnly<{
58
58
  x: number,
59
59
  y: number,
60
60
  width: number,
61
61
  height: number,
62
- |}>;
62
+ }>;
63
63
 
64
- export type TextLayout = $ReadOnly<{|
64
+ export type TextLayout = $ReadOnly<{
65
65
  ...Layout,
66
66
  ascender: number,
67
67
  capHeight: number,
68
68
  descender: number,
69
69
  text: string,
70
70
  xHeight: number,
71
- |}>;
71
+ }>;
72
72
 
73
73
  export type LayoutEvent = SyntheticEvent<
74
- $ReadOnly<{|
74
+ $ReadOnly<{
75
75
  layout: Layout,
76
- |}>,
76
+ }>,
77
77
  >;
78
78
 
79
79
  export type TextLayoutEvent = SyntheticEvent<
80
- $ReadOnly<{|
80
+ $ReadOnly<{
81
81
  lines: Array<TextLayout>,
82
- |}>,
82
+ }>,
83
83
  >;
84
84
 
85
85
  /**
@@ -221,7 +221,7 @@ export interface NativePointerEvent extends NativeMouseEvent {
221
221
  export type PointerEvent = SyntheticEvent<NativePointerEvent>;
222
222
 
223
223
  export type PressEvent = ResponderSyntheticEvent<
224
- $ReadOnly<{|
224
+ $ReadOnly<{
225
225
  changedTouches: $ReadOnlyArray<$PropertyType<PressEvent, 'nativeEvent'>>,
226
226
  force?: number,
227
227
  identifier: number,
@@ -232,60 +232,62 @@ export type PressEvent = ResponderSyntheticEvent<
232
232
  target: ?number,
233
233
  timestamp: number,
234
234
  touches: $ReadOnlyArray<$PropertyType<PressEvent, 'nativeEvent'>>,
235
- |}>,
235
+ }>,
236
236
  >;
237
237
 
238
238
  export type ScrollEvent = SyntheticEvent<
239
- $ReadOnly<{|
240
- contentInset: $ReadOnly<{|
239
+ $ReadOnly<{
240
+ contentInset: $ReadOnly<{
241
241
  bottom: number,
242
242
  left: number,
243
243
  right: number,
244
244
  top: number,
245
- |}>,
246
- contentOffset: $ReadOnly<{|
245
+ }>,
246
+ contentOffset: $ReadOnly<{
247
247
  y: number,
248
248
  x: number,
249
- |}>,
250
- contentSize: $ReadOnly<{|
249
+ }>,
250
+ contentSize: $ReadOnly<{
251
251
  height: number,
252
252
  width: number,
253
- |}>,
254
- layoutMeasurement: $ReadOnly<{|
253
+ }>,
254
+ layoutMeasurement: $ReadOnly<{
255
255
  height: number,
256
256
  width: number,
257
- |}>,
258
- targetContentOffset?: $ReadOnly<{|
257
+ }>,
258
+ targetContentOffset?: $ReadOnly<{
259
259
  y: number,
260
260
  x: number,
261
- |}>,
262
- velocity?: $ReadOnly<{|
261
+ }>,
262
+ velocity?: $ReadOnly<{
263
263
  y: number,
264
264
  x: number,
265
- |}>,
265
+ }>,
266
266
  zoomScale?: number,
267
267
  responderIgnoreScroll?: boolean,
268
- |}>,
268
+ }>,
269
269
  >;
270
270
 
271
271
  export type BlurEvent = SyntheticEvent<
272
- $ReadOnly<{|
272
+ $ReadOnly<{
273
273
  target: number,
274
- |}>,
274
+ ...
275
+ }>,
275
276
  >;
276
277
 
277
278
  export type FocusEvent = SyntheticEvent<
278
- $ReadOnly<{|
279
+ $ReadOnly<{
279
280
  target: number,
280
- |}>,
281
+ ...
282
+ }>,
281
283
  >;
282
284
 
283
285
  export type MouseEvent = SyntheticEvent<
284
- $ReadOnly<{|
286
+ $ReadOnly<{
285
287
  clientX: number,
286
288
  clientY: number,
287
289
  pageX: number,
288
290
  pageY: number,
289
291
  timestamp: number,
290
- |}>,
292
+ }>,
291
293
  >;