react-native-windows 0.76.3 → 0.77.0-preview.2
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.
- package/.flowconfig +5 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
- package/Libraries/Animated/AnimatedEvent.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
- package/Libraries/Animated/animations/Animation.js +60 -25
- package/Libraries/Animated/animations/DecayAnimation.js +26 -38
- package/Libraries/Animated/animations/SpringAnimation.js +33 -39
- package/Libraries/Animated/animations/TimingAnimation.js +34 -42
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
- package/Libraries/Animated/createAnimatedComponent.js +60 -33
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
- package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
- package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +104 -46
- package/Libraries/Animated/nodes/AnimatedStyle.js +116 -39
- package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
- package/Libraries/Animated/useAnimatedProps.js +41 -35
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
- package/Libraries/Components/Button.js +9 -4
- package/Libraries/Components/Button.windows.js +19 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +2 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
- package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +4 -4
- package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
- package/Libraries/Components/ScrollView/ScrollView.js +49 -88
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
- package/Libraries/Components/Switch/Switch.js +8 -6
- package/Libraries/Components/Switch/Switch.windows.js +8 -6
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
- package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
- package/Libraries/Components/TextInput/TextInput.js +37 -13
- package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
- package/Libraries/Components/TextInput/TextInputState.js +11 -13
- package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
- package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
- package/Libraries/Components/Touchable/Position.js +7 -2
- package/Libraries/Components/Touchable/Touchable.js +4 -0
- package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
- package/Libraries/Components/View/View.js +4 -4
- package/Libraries/Components/View/View.windows.js +12 -5
- package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
- package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
- package/Libraries/Components/View/ViewNativeComponent.js +6 -98
- package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
- package/Libraries/Components/View/ViewPropTypes.js +0 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
- package/Libraries/Core/ExceptionsManager.js +50 -29
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -10
- package/Libraries/Core/setUpDeveloperTools.js +1 -5
- package/Libraries/Core/setUpErrorHandling.js +20 -18
- package/Libraries/Core/setUpReactDevTools.js +107 -8
- package/Libraries/Core/setUpSegmentFetcher.js +1 -0
- package/Libraries/Core/setUpTimers.js +21 -18
- package/Libraries/Debugging/DebuggingOverlay.js +4 -5
- package/Libraries/Image/AssetSourceResolver.js +12 -1
- package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
- package/Libraries/Image/Image.android.js +1 -5
- package/Libraries/Image/Image.d.ts +20 -29
- package/Libraries/Image/Image.ios.js +0 -2
- package/Libraries/Image/Image.windows.js +5 -1
- package/Libraries/Image/ImageBackground.js +2 -5
- package/Libraries/Image/ImageProps.js +7 -6
- package/Libraries/Image/ImageResizeMode.d.ts +8 -1
- package/Libraries/Image/ImageResizeMode.js +4 -1
- package/Libraries/Image/ImageSource.d.ts +0 -2
- package/Libraries/Image/ImageSource.js +0 -2
- package/Libraries/Image/ImageTypes.flow.js +11 -9
- package/Libraries/Image/ImageUtils.js +6 -3
- package/Libraries/Image/ImageViewNativeComponent.js +5 -3
- package/Libraries/Inspector/Inspector.js +1 -0
- package/Libraries/Inspector/NetworkOverlay.js +4 -0
- package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
- package/Libraries/Interaction/InteractionManager.js +6 -1
- package/Libraries/Interaction/InteractionManagerStub.js +176 -0
- package/Libraries/Interaction/TouchHistoryMath.js +22 -19
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +1 -2
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/Lists/SectionListModern.js +7 -7
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +3 -3
- package/Libraries/LogBox/LogBox.js +18 -5
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
- package/Libraries/Modal/Modal.d.ts +12 -0
- package/Libraries/Modal/Modal.js +31 -4
- package/Libraries/Modal/Modal.windows.js +18 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
- package/Libraries/Network/FormData.js +11 -3
- package/Libraries/Network/XHRInterceptor.js +63 -14
- package/Libraries/Network/XMLHttpRequest.js +26 -1
- package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
- package/Libraries/Pressability/HoverState.js +2 -0
- package/Libraries/Pressability/Pressability.js +2 -3
- package/Libraries/Pressability/Pressability.windows.js +2 -3
- package/Libraries/Pressability/usePressability.js +4 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.js +1 -11
- package/Libraries/ReactNative/DisplayMode.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
- package/Libraries/ReactNative/RendererImplementation.js +18 -17
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
- package/Libraries/ReactNative/renderApplication.js +9 -8
- package/Libraries/ReactNative/requireNativeComponent.js +5 -2
- package/Libraries/Renderer/shims/ReactFabric.js +3 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +3 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/StyleSheet/StyleSheet.js +7 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
- package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
- package/Libraries/StyleSheet/processTransform.js +3 -34
- package/Libraries/Text/Text.js +248 -249
- package/Libraries/Text/Text.windows.js +298 -292
- package/Libraries/Text/TextNativeComponent.js +0 -1
- package/Libraries/Text/TextProps.windows.js +2 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
- package/Libraries/Types/CoreEventTypes.d.ts +3 -10
- package/Libraries/Types/CoreEventTypes.js +4 -6
- package/Libraries/Types/CoreEventTypes.windows.js +4 -6
- package/Libraries/Utilities/Appearance.js +3 -1
- package/Libraries/Utilities/BackHandler.android.js +6 -18
- package/Libraries/Utilities/BackHandler.d.ts +0 -4
- package/Libraries/Utilities/BackHandler.ios.js +0 -7
- package/Libraries/Utilities/BackHandler.windows.js +6 -18
- package/Libraries/Utilities/HMRClient.js +3 -4
- package/Libraries/Utilities/Platform.flow.js +2 -2
- package/Libraries/Utilities/Platform.flow.windows.js +3 -2
- package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- package/Libraries/Utilities/useMergeRefs.js +26 -7
- package/Libraries/WebSocket/WebSocketEvent.js +4 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
- package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
- package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +197 -18
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +13 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +24 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +5 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
- package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
- package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
- package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
- package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
- package/PropertySheets/Bundle.Common.targets +1 -1
- package/PropertySheets/Bundle.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/PropertySheets/OutputMSBuildProperties.targets +3 -1
- package/PropertySheets/React.Cpp.props +6 -0
- package/ReactCommon/ReactCommon.vcxproj +5 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +227 -74
- package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
- package/Shared/InspectorPackagerConnection.cpp +3 -6
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/InstanceManager.h +1 -1
- package/Shared/OInstance.h +1 -1
- package/Shared/Shared.vcxitems +17 -2
- package/Shared/Shared.vcxitems.filters +3 -1
- package/Shared/TurboModuleManager.cpp +29 -4
- package/codegen/NativeAccessibilityInfoSpec.g.h +27 -9
- package/codegen/NativeAccessibilityManagerSpec.g.h +19 -13
- package/codegen/NativeActionSheetManagerSpec.g.h +4 -0
- package/codegen/NativeExceptionsManagerSpec.g.h +1 -7
- package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
- package/codegen/NativePerformanceSpec.g.h +127 -3
- package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
- package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +125 -137
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/Props.cpp +1 -0
- package/codegen/react/components/rnwcore/Props.h +1 -0
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
- package/codegen/react/components/rnwcore/States.h +0 -12
- package/codegen/rnwcoreJSI-generated.cpp +219 -186
- package/codegen/rnwcoreJSI.h +942 -511
- package/index.js +10 -3
- package/index.windows.js +10 -3
- package/jest/setup.js +36 -1
- package/just-task.js +15 -0
- package/package.json +22 -22
- package/src/private/animated/NativeAnimatedHelper.js +18 -16
- package/src/private/animated/useAnimatedPropsMemo.js +356 -0
- package/src/private/components/HScrollViewNativeComponents.js +1 -27
- package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
- package/src/private/components/VScrollViewNativeComponents.js +2 -25
- package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
- package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
- package/src/private/devmenu/DevMenu.d.ts +20 -0
- package/src/private/devmenu/DevMenu.js +31 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
- package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
- package/src/private/setup/setUpDOM.js +14 -6
- package/src/private/setup/setUpMutationObserver.js +5 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
- package/src/private/specs/modules/NativeAppearance.js +4 -10
- package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
- package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
- package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
- package/src/private/webapis/performance/EventTiming.js +13 -8
- package/src/private/webapis/performance/Performance.js +66 -73
- package/src/private/webapis/performance/PerformanceEntry.js +2 -5
- package/src/private/webapis/performance/PerformanceObserver.js +65 -164
- package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +11 -7
- package/src/private/webapis/performance/Utilities.js +18 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
- package/templates/cpp-lib/template.config.js +13 -7
- package/templates/templateUtils.js +10 -0
- package/types/index.d.ts +1 -1
- package/types/public/ReactNativeTypes.d.ts +4 -8
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
- package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -53
- package/codegen/NativePerformanceObserverSpec.g.h +0 -131
- package/src/private/components/useSyncOnScroll.js +0 -48
- package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
- package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
- package/types/experimental.d.ts +0 -59
- /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
|
@@ -11,7 +11,7 @@ import type * as React from 'react';
|
|
|
11
11
|
import {Constructor} from '../../../types/private/Utilities';
|
|
12
12
|
import {TimerMixin} from '../../../types/private/TimerMixin';
|
|
13
13
|
import {
|
|
14
|
-
|
|
14
|
+
HostInstance,
|
|
15
15
|
NativeMethods,
|
|
16
16
|
} from '../../../types/public/ReactNativeTypes';
|
|
17
17
|
import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
|
|
@@ -255,6 +255,11 @@ export interface TextInputIOSProps {
|
|
|
255
255
|
* - `'birthdateDay'` (iOS 17+)
|
|
256
256
|
* - `'birthdateMonth'` (iOS 17+)
|
|
257
257
|
* - `'birthdateYear'` (iOS 17+)
|
|
258
|
+
* - `'cellularEID'` (iOS 17.4+)
|
|
259
|
+
* - `'cellularIMEI'` (iOS 17.4+)
|
|
260
|
+
* - `'dateTime'` (iOS 15+)
|
|
261
|
+
* - `'flightNumber'` (iOS 15+)
|
|
262
|
+
* - `'shipmentTrackingNumber'` (iOS 15+)
|
|
258
263
|
*
|
|
259
264
|
*/
|
|
260
265
|
textContentType?:
|
|
@@ -299,6 +304,11 @@ export interface TextInputIOSProps {
|
|
|
299
304
|
| 'birthdateDay'
|
|
300
305
|
| 'birthdateMonth'
|
|
301
306
|
| 'birthdateYear'
|
|
307
|
+
| 'cellularEID'
|
|
308
|
+
| 'cellularIMEI'
|
|
309
|
+
| 'dateTime'
|
|
310
|
+
| 'flightNumber'
|
|
311
|
+
| 'shipmentTrackingNumber'
|
|
302
312
|
| undefined;
|
|
303
313
|
|
|
304
314
|
/**
|
|
@@ -316,6 +326,19 @@ export interface TextInputIOSProps {
|
|
|
316
326
|
| 'push-out'
|
|
317
327
|
| undefined;
|
|
318
328
|
|
|
329
|
+
/**
|
|
330
|
+
* Set line break mode on iOS.
|
|
331
|
+
* @platform ios
|
|
332
|
+
*/
|
|
333
|
+
lineBreakModeIOS?:
|
|
334
|
+
| 'wordWrapping'
|
|
335
|
+
| 'char'
|
|
336
|
+
| 'clip'
|
|
337
|
+
| 'head'
|
|
338
|
+
| 'middle'
|
|
339
|
+
| 'tail'
|
|
340
|
+
| undefined;
|
|
341
|
+
|
|
319
342
|
/**
|
|
320
343
|
* If `false`, the iOS system will not insert an extra space after a paste operation
|
|
321
344
|
* neither delete one or two spaces after a cut or delete operation.
|
|
@@ -937,21 +960,21 @@ interface TextInputState {
|
|
|
937
960
|
* Returns the ref of the currently focused text field, if one exists
|
|
938
961
|
* If no text field is focused it returns null
|
|
939
962
|
*/
|
|
940
|
-
currentlyFocusedInput():
|
|
963
|
+
currentlyFocusedInput(): HostInstance;
|
|
941
964
|
|
|
942
965
|
/**
|
|
943
966
|
* @param textField ref of the text field to focus
|
|
944
967
|
* Focuses the specified text field
|
|
945
968
|
* noop if the text field was already focused
|
|
946
969
|
*/
|
|
947
|
-
focusTextInput(textField?:
|
|
970
|
+
focusTextInput(textField?: HostInstance): void;
|
|
948
971
|
|
|
949
972
|
/**
|
|
950
973
|
* @param textField ref of the text field to focus
|
|
951
974
|
* Unfocuses the specified text field
|
|
952
975
|
* noop if it wasn't focused
|
|
953
976
|
*/
|
|
954
|
-
blurTextInput(textField?:
|
|
977
|
+
blurTextInput(textField?: HostInstance): void;
|
|
955
978
|
}
|
|
956
979
|
|
|
957
980
|
/**
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
|
|
12
12
|
import type {
|
|
13
13
|
PressEvent,
|
|
14
14
|
ScrollEvent,
|
|
@@ -22,7 +22,6 @@ import {
|
|
|
22
22
|
type ViewStyleProp,
|
|
23
23
|
} from '../../StyleSheet/StyleSheet';
|
|
24
24
|
import * as React from 'react';
|
|
25
|
-
type ComponentRef = React.ElementRef<HostComponent<mixed>>;
|
|
26
25
|
|
|
27
26
|
type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
|
|
28
27
|
|
|
@@ -198,7 +197,12 @@ export type TextContentType =
|
|
|
198
197
|
| 'birthdate'
|
|
199
198
|
| 'birthdateDay'
|
|
200
199
|
| 'birthdateMonth'
|
|
201
|
-
| 'birthdateYear'
|
|
200
|
+
| 'birthdateYear'
|
|
201
|
+
| 'cellularEID'
|
|
202
|
+
| 'cellularIMEI'
|
|
203
|
+
| 'dateTime'
|
|
204
|
+
| 'flightNumber'
|
|
205
|
+
| 'shipmentTrackingNumber';
|
|
202
206
|
|
|
203
207
|
export type enterKeyHintType =
|
|
204
208
|
| 'enter'
|
|
@@ -262,6 +266,12 @@ type IOSProps = $ReadOnly<{|
|
|
|
262
266
|
*/
|
|
263
267
|
inputAccessoryViewID?: ?string,
|
|
264
268
|
|
|
269
|
+
/**
|
|
270
|
+
* An optional label that overrides the default input accessory view button label.
|
|
271
|
+
* @platform ios
|
|
272
|
+
*/
|
|
273
|
+
inputAccessoryViewButtonLabel?: ?string,
|
|
274
|
+
|
|
265
275
|
/**
|
|
266
276
|
* Determines the color of the keyboard.
|
|
267
277
|
* @platform ios
|
|
@@ -312,6 +322,19 @@ type IOSProps = $ReadOnly<{|
|
|
|
312
322
|
*/
|
|
313
323
|
lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
|
|
314
324
|
|
|
325
|
+
/**
|
|
326
|
+
* Set line break mode on iOS.
|
|
327
|
+
* @platform ios
|
|
328
|
+
*/
|
|
329
|
+
lineBreakModeIOS?: ?(
|
|
330
|
+
| 'wordWrapping'
|
|
331
|
+
| 'char'
|
|
332
|
+
| 'clip'
|
|
333
|
+
| 'head'
|
|
334
|
+
| 'middle'
|
|
335
|
+
| 'tail'
|
|
336
|
+
),
|
|
337
|
+
|
|
315
338
|
/**
|
|
316
339
|
* If `false`, the iOS system will not insert an extra space after a paste operation
|
|
317
340
|
* neither delete one or two spaces after a cut or delete operation.
|
|
@@ -608,9 +631,7 @@ export type Props = $ReadOnly<{|
|
|
|
608
631
|
*/
|
|
609
632
|
editable?: ?boolean,
|
|
610
633
|
|
|
611
|
-
forwardedRef?: ?ReactRefSetter<
|
|
612
|
-
React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
|
|
613
|
-
>,
|
|
634
|
+
forwardedRef?: ?ReactRefSetter<HostInstance & ImperativeMethods>,
|
|
614
635
|
|
|
615
636
|
/**
|
|
616
637
|
* `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
|
|
@@ -956,7 +977,7 @@ export type Props = $ReadOnly<{|
|
|
|
956
977
|
type ImperativeMethods = $ReadOnly<{|
|
|
957
978
|
clear: () => void,
|
|
958
979
|
isFocused: () => boolean,
|
|
959
|
-
getNativeRef: () => ?
|
|
980
|
+
getNativeRef: () => ?HostInstance,
|
|
960
981
|
setSelection: (start: number, end: number) => void,
|
|
961
982
|
|}>;
|
|
962
983
|
|
|
@@ -1071,22 +1092,18 @@ type ImperativeMethods = $ReadOnly<{|
|
|
|
1071
1092
|
* or control this param programmatically with native code.
|
|
1072
1093
|
*
|
|
1073
1094
|
*/
|
|
1074
|
-
type InternalTextInput = (
|
|
1095
|
+
type InternalTextInput = component(
|
|
1096
|
+
ref: React.RefSetter<$ReadOnly<{...HostInstance, ...ImperativeMethods}>>,
|
|
1097
|
+
...Props
|
|
1098
|
+
);
|
|
1075
1099
|
|
|
1076
1100
|
export type TextInputComponentStatics = $ReadOnly<{|
|
|
1077
1101
|
State: $ReadOnly<{|
|
|
1078
|
-
currentlyFocusedInput: () => ?
|
|
1102
|
+
currentlyFocusedInput: () => ?HostInstance,
|
|
1079
1103
|
currentlyFocusedField: () => ?number,
|
|
1080
|
-
focusTextInput: (textField: ?
|
|
1081
|
-
blurTextInput: (textField: ?
|
|
1104
|
+
focusTextInput: (textField: ?HostInstance) => void,
|
|
1105
|
+
blurTextInput: (textField: ?HostInstance) => void,
|
|
1082
1106
|
|}>,
|
|
1083
1107
|
|}>;
|
|
1084
1108
|
|
|
1085
|
-
export type TextInputType =
|
|
1086
|
-
React.ElementConfig<InternalTextInput>,
|
|
1087
|
-
$ReadOnly<{|
|
|
1088
|
-
...React.ElementRef<HostComponent<mixed>>,
|
|
1089
|
-
...ImperativeMethods,
|
|
1090
|
-
|}>,
|
|
1091
|
-
> &
|
|
1092
|
-
TextInputComponentStatics;
|
|
1109
|
+
export type TextInputType = InternalTextInput & TextInputComponentStatics;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
|
|
12
12
|
import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
|
|
13
13
|
import type {
|
|
14
14
|
PressEvent,
|
|
@@ -37,10 +37,10 @@ import * as React from 'react';
|
|
|
37
37
|
import {useCallback, useLayoutEffect, useRef, useState} from 'react';
|
|
38
38
|
|
|
39
39
|
type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
|
|
40
|
-
type TextInputInstance =
|
|
40
|
+
type TextInputInstance = HostInstance & {
|
|
41
41
|
+clear: () => void,
|
|
42
42
|
+isFocused: () => boolean,
|
|
43
|
-
+getNativeRef: () => ?
|
|
43
|
+
+getNativeRef: () => ?HostInstance,
|
|
44
44
|
+setSelection: (start: number, end: number) => void,
|
|
45
45
|
};
|
|
46
46
|
|
|
@@ -238,7 +238,12 @@ export type TextContentType =
|
|
|
238
238
|
| 'birthdate'
|
|
239
239
|
| 'birthdateDay'
|
|
240
240
|
| 'birthdateMonth'
|
|
241
|
-
| 'birthdateYear'
|
|
241
|
+
| 'birthdateYear'
|
|
242
|
+
| 'cellularEID'
|
|
243
|
+
| 'cellularIMEI'
|
|
244
|
+
| 'dateTime'
|
|
245
|
+
| 'flightNumber'
|
|
246
|
+
| 'shipmentTrackingNumber';
|
|
242
247
|
|
|
243
248
|
export type enterKeyHintType =
|
|
244
249
|
// Cross Platform
|
|
@@ -305,6 +310,12 @@ type IOSProps = $ReadOnly<{|
|
|
|
305
310
|
*/
|
|
306
311
|
inputAccessoryViewID?: ?string,
|
|
307
312
|
|
|
313
|
+
/**
|
|
314
|
+
* An optional label that overrides the default input accessory view button label.
|
|
315
|
+
* @platform ios
|
|
316
|
+
*/
|
|
317
|
+
inputAccessoryViewButtonLabel?: ?string,
|
|
318
|
+
|
|
308
319
|
/**
|
|
309
320
|
* Determines the color of the keyboard.
|
|
310
321
|
* @platform ios
|
|
@@ -358,6 +369,19 @@ type IOSProps = $ReadOnly<{|
|
|
|
358
369
|
*/
|
|
359
370
|
lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
|
|
360
371
|
|
|
372
|
+
/**
|
|
373
|
+
* Set line break mode on iOS.
|
|
374
|
+
* @platform ios
|
|
375
|
+
*/
|
|
376
|
+
lineBreakModeIOS?: ?(
|
|
377
|
+
| 'wordWrapping'
|
|
378
|
+
| 'char'
|
|
379
|
+
| 'clip'
|
|
380
|
+
| 'head'
|
|
381
|
+
| 'middle'
|
|
382
|
+
| 'tail'
|
|
383
|
+
),
|
|
384
|
+
|
|
361
385
|
/**
|
|
362
386
|
* If `false`, the iOS system will not insert an extra space after a paste operation
|
|
363
387
|
* neither delete one or two spaces after a cut or delete operation.
|
|
@@ -988,7 +1012,7 @@ function useTextInputStateSynchronization_STATE({
|
|
|
988
1012
|
props: Props,
|
|
989
1013
|
mostRecentEventCount: number,
|
|
990
1014
|
selection: ?Selection,
|
|
991
|
-
inputRef: React.RefObject<null |
|
|
1015
|
+
inputRef: React.RefObject<null | HostInstance>,
|
|
992
1016
|
text: string,
|
|
993
1017
|
viewCommands: ViewCommands,
|
|
994
1018
|
}): {
|
|
@@ -1069,7 +1093,7 @@ function useTextInputStateSynchronization_REFS({
|
|
|
1069
1093
|
props: Props,
|
|
1070
1094
|
mostRecentEventCount: number,
|
|
1071
1095
|
selection: ?Selection,
|
|
1072
|
-
inputRef: React.RefObject<null |
|
|
1096
|
+
inputRef: React.RefObject<null | HostInstance>,
|
|
1073
1097
|
text: string,
|
|
1074
1098
|
viewCommands: ViewCommands,
|
|
1075
1099
|
}): {
|
|
@@ -1269,7 +1293,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1269
1293
|
...otherProps
|
|
1270
1294
|
} = props;
|
|
1271
1295
|
|
|
1272
|
-
const inputRef = useRef<null |
|
|
1296
|
+
const inputRef = useRef<null | HostInstance>(null);
|
|
1273
1297
|
|
|
1274
1298
|
const selection: ?Selection =
|
|
1275
1299
|
propsSelection == null
|
|
@@ -1367,7 +1391,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1367
1391
|
isFocused(): boolean {
|
|
1368
1392
|
return TextInputState.currentlyFocusedInput() === inputRef.current;
|
|
1369
1393
|
},
|
|
1370
|
-
getNativeRef(): ?
|
|
1394
|
+
getNativeRef(): ?HostInstance {
|
|
1371
1395
|
return inputRef.current;
|
|
1372
1396
|
},
|
|
1373
1397
|
setSelection(start: number, end: number): void {
|
|
@@ -1515,7 +1539,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1515
1539
|
|
|
1516
1540
|
// TextInput handles onBlur and onFocus events
|
|
1517
1541
|
// so omitting onBlur and onFocus pressability handlers here.
|
|
1518
|
-
const {onBlur, onFocus, ...eventHandlers} = usePressability(config)
|
|
1542
|
+
const {onBlur, onFocus, ...eventHandlers} = usePressability(config);
|
|
1519
1543
|
|
|
1520
1544
|
let _accessibilityState;
|
|
1521
1545
|
if (
|
|
@@ -1771,11 +1795,11 @@ const autoCompleteWebToTextContentTypeMap = {
|
|
|
1771
1795
|
username: 'username',
|
|
1772
1796
|
};
|
|
1773
1797
|
|
|
1774
|
-
const ExportedForwardRef:
|
|
1775
|
-
React.
|
|
1776
|
-
|
|
1798
|
+
const ExportedForwardRef: component(
|
|
1799
|
+
ref: React.RefSetter<TextInputInstance>,
|
|
1800
|
+
...props: React.ElementConfig<typeof InternalTextInput>
|
|
1777
1801
|
// $FlowFixMe[incompatible-call]
|
|
1778
|
-
|
|
1802
|
+
) = React.forwardRef(function TextInput(
|
|
1779
1803
|
{
|
|
1780
1804
|
allowFontScaling = true,
|
|
1781
1805
|
rejectResponderTermination = true,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
|
|
12
12
|
import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
|
|
13
13
|
import type {
|
|
14
14
|
KeyEvent, // Windows
|
|
@@ -39,10 +39,10 @@ import * as React from 'react';
|
|
|
39
39
|
import {useCallback, useLayoutEffect, useRef, useState} from 'react';
|
|
40
40
|
|
|
41
41
|
type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
|
|
42
|
-
type TextInputInstance =
|
|
42
|
+
type TextInputInstance = HostInstance & {
|
|
43
43
|
+clear: () => void,
|
|
44
44
|
+isFocused: () => boolean,
|
|
45
|
-
+getNativeRef: () => ?
|
|
45
|
+
+getNativeRef: () => ?HostInstance,
|
|
46
46
|
+setSelection: (start: number, end: number) => void,
|
|
47
47
|
};
|
|
48
48
|
|
|
@@ -250,7 +250,12 @@ export type TextContentType =
|
|
|
250
250
|
| 'birthdate'
|
|
251
251
|
| 'birthdateDay'
|
|
252
252
|
| 'birthdateMonth'
|
|
253
|
-
| 'birthdateYear'
|
|
253
|
+
| 'birthdateYear'
|
|
254
|
+
| 'cellularEID'
|
|
255
|
+
| 'cellularIMEI'
|
|
256
|
+
| 'dateTime'
|
|
257
|
+
| 'flightNumber'
|
|
258
|
+
| 'shipmentTrackingNumber';
|
|
254
259
|
|
|
255
260
|
export type enterKeyHintType =
|
|
256
261
|
// Cross Platform
|
|
@@ -317,6 +322,12 @@ type IOSProps = $ReadOnly<{|
|
|
|
317
322
|
*/
|
|
318
323
|
inputAccessoryViewID?: ?string,
|
|
319
324
|
|
|
325
|
+
/**
|
|
326
|
+
* An optional label that overrides the default input accessory view button label.
|
|
327
|
+
* @platform ios
|
|
328
|
+
*/
|
|
329
|
+
inputAccessoryViewButtonLabel?: ?string,
|
|
330
|
+
|
|
320
331
|
/**
|
|
321
332
|
* Determines the color of the keyboard.
|
|
322
333
|
* @platform ios
|
|
@@ -367,6 +378,19 @@ type IOSProps = $ReadOnly<{|
|
|
|
367
378
|
*/
|
|
368
379
|
lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
|
|
369
380
|
|
|
381
|
+
/**
|
|
382
|
+
* Set line break mode on iOS.
|
|
383
|
+
* @platform ios
|
|
384
|
+
*/
|
|
385
|
+
lineBreakModeIOS?: ?(
|
|
386
|
+
| 'wordWrapping'
|
|
387
|
+
| 'char'
|
|
388
|
+
| 'clip'
|
|
389
|
+
| 'head'
|
|
390
|
+
| 'middle'
|
|
391
|
+
| 'tail'
|
|
392
|
+
),
|
|
393
|
+
|
|
370
394
|
/**
|
|
371
395
|
* If `false`, the iOS system will not insert an extra space after a paste operation
|
|
372
396
|
* neither delete one or two spaces after a cut or delete operation.
|
|
@@ -1065,7 +1089,7 @@ function useTextInputStateSynchronization_STATE({
|
|
|
1065
1089
|
props: Props,
|
|
1066
1090
|
mostRecentEventCount: number,
|
|
1067
1091
|
selection: ?Selection,
|
|
1068
|
-
inputRef: React.RefObject<null |
|
|
1092
|
+
inputRef: React.RefObject<null | HostInstance>,
|
|
1069
1093
|
text: string,
|
|
1070
1094
|
viewCommands: ViewCommands,
|
|
1071
1095
|
}): {
|
|
@@ -1146,7 +1170,7 @@ function useTextInputStateSynchronization_REFS({
|
|
|
1146
1170
|
props: Props,
|
|
1147
1171
|
mostRecentEventCount: number,
|
|
1148
1172
|
selection: ?Selection,
|
|
1149
|
-
inputRef: React.RefObject<null |
|
|
1173
|
+
inputRef: React.RefObject<null | HostInstance>,
|
|
1150
1174
|
text: string,
|
|
1151
1175
|
viewCommands: ViewCommands,
|
|
1152
1176
|
}): {
|
|
@@ -1336,6 +1360,8 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1336
1360
|
'aria-disabled': ariaDisabled,
|
|
1337
1361
|
'aria-expanded': ariaExpanded,
|
|
1338
1362
|
'aria-selected': ariaSelected,
|
|
1363
|
+
'aria-multiselectable': ariaMultiselectable, // Windows
|
|
1364
|
+
'aria-required': ariaRequired, // Windows
|
|
1339
1365
|
accessibilityState,
|
|
1340
1366
|
id,
|
|
1341
1367
|
tabIndex,
|
|
@@ -1346,7 +1372,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1346
1372
|
...otherProps
|
|
1347
1373
|
} = props;
|
|
1348
1374
|
|
|
1349
|
-
const inputRef = useRef<null |
|
|
1375
|
+
const inputRef = useRef<null | HostInstance>(null);
|
|
1350
1376
|
|
|
1351
1377
|
const selection: ?Selection =
|
|
1352
1378
|
propsSelection == null
|
|
@@ -1364,8 +1390,8 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1364
1390
|
: '';
|
|
1365
1391
|
|
|
1366
1392
|
const viewCommands =
|
|
1367
|
-
WindowsTextInputCommands ||
|
|
1368
|
-
AndroidTextInputCommands ||
|
|
1393
|
+
WindowsTextInputCommands || // [Windows]
|
|
1394
|
+
AndroidTextInputCommands ||
|
|
1369
1395
|
(props.multiline === true
|
|
1370
1396
|
? RCTMultilineTextInputNativeCommands
|
|
1371
1397
|
: RCTSinglelineTextInputNativeCommands);
|
|
@@ -1450,7 +1476,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1450
1476
|
currentlyFocusedInput === inputRef.current
|
|
1451
1477
|
);
|
|
1452
1478
|
},
|
|
1453
|
-
getNativeRef(): ?
|
|
1479
|
+
getNativeRef(): ?HostInstance {
|
|
1454
1480
|
return inputRef.current;
|
|
1455
1481
|
},
|
|
1456
1482
|
setSelection(start: number, end: number): void {
|
|
@@ -1604,7 +1630,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1604
1630
|
|
|
1605
1631
|
// TextInput handles onBlur and onFocus events
|
|
1606
1632
|
// so omitting onBlur and onFocus pressability handlers here.
|
|
1607
|
-
const {onBlur, onFocus, ...eventHandlers} = usePressability(config)
|
|
1633
|
+
const {onBlur, onFocus, ...eventHandlers} = usePressability(config);
|
|
1608
1634
|
const eventPhase = Object.freeze({Capturing: 1, Bubbling: 3});
|
|
1609
1635
|
const _keyDown = (event: KeyEvent) => {
|
|
1610
1636
|
if (props.keyDownEvents && event.isPropagationStopped() !== true) {
|
|
@@ -1664,7 +1690,9 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1664
1690
|
ariaChecked != null ||
|
|
1665
1691
|
ariaDisabled != null ||
|
|
1666
1692
|
ariaExpanded != null ||
|
|
1667
|
-
ariaSelected != null
|
|
1693
|
+
ariaSelected != null ||
|
|
1694
|
+
ariaMultiselectable != null || // Windows
|
|
1695
|
+
ariaRequired != null // Windows
|
|
1668
1696
|
) {
|
|
1669
1697
|
_accessibilityState = {
|
|
1670
1698
|
busy: ariaBusy ?? accessibilityState?.busy,
|
|
@@ -1672,6 +1700,9 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1672
1700
|
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
1673
1701
|
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
1674
1702
|
selected: ariaSelected ?? accessibilityState?.selected,
|
|
1703
|
+
multiselectable:
|
|
1704
|
+
ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows
|
|
1705
|
+
required: ariaRequired ?? accessibilityState?.required, // Windows
|
|
1675
1706
|
};
|
|
1676
1707
|
}
|
|
1677
1708
|
|
|
@@ -1955,11 +1986,11 @@ const autoCompleteWebToTextContentTypeMap = {
|
|
|
1955
1986
|
username: 'username',
|
|
1956
1987
|
};
|
|
1957
1988
|
|
|
1958
|
-
const ExportedForwardRef:
|
|
1959
|
-
React.
|
|
1960
|
-
|
|
1989
|
+
const ExportedForwardRef: component(
|
|
1990
|
+
ref: React.RefSetter<TextInputInstance>,
|
|
1991
|
+
...props: React.ElementConfig<typeof InternalTextInput>
|
|
1961
1992
|
// $FlowFixMe[incompatible-call]
|
|
1962
|
-
|
|
1993
|
+
) = React.forwardRef(function TextInput(
|
|
1963
1994
|
{
|
|
1964
1995
|
allowFontScaling = true,
|
|
1965
1996
|
rejectResponderTermination = true,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// through here.
|
|
14
14
|
|
|
15
15
|
import type {
|
|
16
|
-
|
|
16
|
+
HostInstance,
|
|
17
17
|
MeasureInWindowOnSuccessCallback,
|
|
18
18
|
MeasureLayoutOnSuccessCallback,
|
|
19
19
|
MeasureOnSuccessCallback,
|
|
@@ -24,24 +24,22 @@ import {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSi
|
|
|
24
24
|
|
|
25
25
|
const {findNodeHandle} = require('../../ReactNative/RendererProxy');
|
|
26
26
|
const Platform = require('../../Utilities/Platform');
|
|
27
|
-
const React = require('react');
|
|
28
|
-
type ComponentRef = React.ElementRef<HostComponent<mixed>>;
|
|
29
27
|
|
|
30
|
-
let currentlyFocusedInputRef: ?
|
|
28
|
+
let currentlyFocusedInputRef: ?HostInstance = null;
|
|
31
29
|
const inputs = new Set<{
|
|
32
30
|
blur(): void,
|
|
33
31
|
focus(): void,
|
|
34
32
|
measure(callback: MeasureOnSuccessCallback): void,
|
|
35
33
|
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,
|
|
36
34
|
measureLayout(
|
|
37
|
-
relativeToNativeNode: number |
|
|
35
|
+
relativeToNativeNode: number | HostInstance,
|
|
38
36
|
onSuccess: MeasureLayoutOnSuccessCallback,
|
|
39
37
|
onFail?: () => void,
|
|
40
38
|
): void,
|
|
41
39
|
setNativeProps(nativeProps: {...}): void,
|
|
42
40
|
}>();
|
|
43
41
|
|
|
44
|
-
function currentlyFocusedInput(): ?
|
|
42
|
+
function currentlyFocusedInput(): ?HostInstance {
|
|
45
43
|
return currentlyFocusedInputRef;
|
|
46
44
|
}
|
|
47
45
|
|
|
@@ -59,13 +57,13 @@ function currentlyFocusedField(): ?number {
|
|
|
59
57
|
return findNodeHandle(currentlyFocusedInputRef);
|
|
60
58
|
}
|
|
61
59
|
|
|
62
|
-
function focusInput(textField: ?
|
|
60
|
+
function focusInput(textField: ?HostInstance): void {
|
|
63
61
|
if (currentlyFocusedInputRef !== textField && textField != null) {
|
|
64
62
|
currentlyFocusedInputRef = textField;
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
|
|
68
|
-
function blurInput(textField: ?
|
|
66
|
+
function blurInput(textField: ?HostInstance): void {
|
|
69
67
|
if (currentlyFocusedInputRef === textField && textField != null) {
|
|
70
68
|
currentlyFocusedInputRef = null;
|
|
71
69
|
}
|
|
@@ -92,7 +90,7 @@ function blurField(textFieldID: ?number) {
|
|
|
92
90
|
* Focuses the specified text field
|
|
93
91
|
* noop if the text field was already focused or if the field is not editable
|
|
94
92
|
*/
|
|
95
|
-
function focusTextInput(textField: ?
|
|
93
|
+
function focusTextInput(textField: ?HostInstance) {
|
|
96
94
|
if (typeof textField === 'number') {
|
|
97
95
|
if (__DEV__) {
|
|
98
96
|
console.error(
|
|
@@ -131,7 +129,7 @@ function focusTextInput(textField: ?ComponentRef) {
|
|
|
131
129
|
* Unfocuses the specified text field
|
|
132
130
|
* noop if it wasn't focused
|
|
133
131
|
*/
|
|
134
|
-
function blurTextInput(textField: ?
|
|
132
|
+
function blurTextInput(textField: ?HostInstance) {
|
|
135
133
|
if (typeof textField === 'number') {
|
|
136
134
|
if (__DEV__) {
|
|
137
135
|
console.error(
|
|
@@ -157,7 +155,7 @@ function blurTextInput(textField: ?ComponentRef) {
|
|
|
157
155
|
}
|
|
158
156
|
}
|
|
159
157
|
|
|
160
|
-
function registerInput(textField:
|
|
158
|
+
function registerInput(textField: HostInstance) {
|
|
161
159
|
if (typeof textField === 'number') {
|
|
162
160
|
if (__DEV__) {
|
|
163
161
|
console.error(
|
|
@@ -171,7 +169,7 @@ function registerInput(textField: ComponentRef) {
|
|
|
171
169
|
inputs.add(textField);
|
|
172
170
|
}
|
|
173
171
|
|
|
174
|
-
function unregisterInput(textField:
|
|
172
|
+
function unregisterInput(textField: HostInstance) {
|
|
175
173
|
if (typeof textField === 'number') {
|
|
176
174
|
if (__DEV__) {
|
|
177
175
|
console.error(
|
|
@@ -184,7 +182,7 @@ function unregisterInput(textField: ComponentRef) {
|
|
|
184
182
|
inputs.delete(textField);
|
|
185
183
|
}
|
|
186
184
|
|
|
187
|
-
function isTextInput(textField:
|
|
185
|
+
function isTextInput(textField: HostInstance): boolean {
|
|
188
186
|
if (typeof textField === 'number') {
|
|
189
187
|
if (__DEV__) {
|
|
190
188
|
console.error(
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// through here.
|
|
14
14
|
|
|
15
15
|
import type {
|
|
16
|
-
|
|
16
|
+
HostInstance,
|
|
17
17
|
MeasureInWindowOnSuccessCallback,
|
|
18
18
|
MeasureLayoutOnSuccessCallback,
|
|
19
19
|
MeasureOnSuccessCallback,
|
|
@@ -25,24 +25,22 @@ import {Commands as WindowsTextInputCommands} from '../../Components/TextInput/W
|
|
|
25
25
|
|
|
26
26
|
const {findNodeHandle} = require('../../ReactNative/RendererProxy');
|
|
27
27
|
const Platform = require('../../Utilities/Platform');
|
|
28
|
-
const React = require('react');
|
|
29
|
-
type ComponentRef = React.ElementRef<HostComponent<mixed>>;
|
|
30
28
|
|
|
31
|
-
let currentlyFocusedInputRef: ?
|
|
29
|
+
let currentlyFocusedInputRef: ?HostInstance = null;
|
|
32
30
|
const inputs = new Set<{
|
|
33
31
|
blur(): void,
|
|
34
32
|
focus(): void,
|
|
35
33
|
measure(callback: MeasureOnSuccessCallback): void,
|
|
36
34
|
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,
|
|
37
35
|
measureLayout(
|
|
38
|
-
relativeToNativeNode: number |
|
|
36
|
+
relativeToNativeNode: number | HostInstance,
|
|
39
37
|
onSuccess: MeasureLayoutOnSuccessCallback,
|
|
40
38
|
onFail?: () => void,
|
|
41
39
|
): void,
|
|
42
40
|
setNativeProps(nativeProps: {...}): void,
|
|
43
41
|
}>();
|
|
44
42
|
|
|
45
|
-
function currentlyFocusedInput(): ?
|
|
43
|
+
function currentlyFocusedInput(): ?HostInstance {
|
|
46
44
|
return currentlyFocusedInputRef;
|
|
47
45
|
}
|
|
48
46
|
|
|
@@ -60,13 +58,13 @@ function currentlyFocusedField(): ?number {
|
|
|
60
58
|
return findNodeHandle(currentlyFocusedInputRef);
|
|
61
59
|
}
|
|
62
60
|
|
|
63
|
-
function focusInput(textField: ?
|
|
61
|
+
function focusInput(textField: ?HostInstance): void {
|
|
64
62
|
if (currentlyFocusedInputRef !== textField && textField != null) {
|
|
65
63
|
currentlyFocusedInputRef = textField;
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
function blurInput(textField: ?
|
|
67
|
+
function blurInput(textField: ?HostInstance): void {
|
|
70
68
|
if (currentlyFocusedInputRef === textField && textField != null) {
|
|
71
69
|
currentlyFocusedInputRef = null;
|
|
72
70
|
}
|
|
@@ -93,7 +91,7 @@ function blurField(textFieldID: ?number) {
|
|
|
93
91
|
* Focuses the specified text field
|
|
94
92
|
* noop if the text field was already focused or if the field is not editable
|
|
95
93
|
*/
|
|
96
|
-
function focusTextInput(textField: ?
|
|
94
|
+
function focusTextInput(textField: ?HostInstance) {
|
|
97
95
|
if (typeof textField === 'number') {
|
|
98
96
|
if (__DEV__) {
|
|
99
97
|
console.error(
|
|
@@ -141,7 +139,7 @@ function focusTextInput(textField: ?ComponentRef) {
|
|
|
141
139
|
* Unfocuses the specified text field
|
|
142
140
|
* noop if it wasn't focused
|
|
143
141
|
*/
|
|
144
|
-
function blurTextInput(textField: ?
|
|
142
|
+
function blurTextInput(textField: ?HostInstance) {
|
|
145
143
|
if (typeof textField === 'number') {
|
|
146
144
|
if (__DEV__) {
|
|
147
145
|
console.error(
|
|
@@ -172,7 +170,7 @@ function blurTextInput(textField: ?ComponentRef) {
|
|
|
172
170
|
}
|
|
173
171
|
}
|
|
174
172
|
|
|
175
|
-
function registerInput(textField:
|
|
173
|
+
function registerInput(textField: HostInstance) {
|
|
176
174
|
if (typeof textField === 'number') {
|
|
177
175
|
if (__DEV__) {
|
|
178
176
|
console.error(
|
|
@@ -186,7 +184,7 @@ function registerInput(textField: ComponentRef) {
|
|
|
186
184
|
inputs.add(textField);
|
|
187
185
|
}
|
|
188
186
|
|
|
189
|
-
function unregisterInput(textField:
|
|
187
|
+
function unregisterInput(textField: HostInstance) {
|
|
190
188
|
if (typeof textField === 'number') {
|
|
191
189
|
if (__DEV__) {
|
|
192
190
|
console.error(
|
|
@@ -199,7 +197,7 @@ function unregisterInput(textField: ComponentRef) {
|
|
|
199
197
|
inputs.delete(textField);
|
|
200
198
|
}
|
|
201
199
|
|
|
202
|
-
function isTextInput(textField:
|
|
200
|
+
function isTextInput(textField: HostInstance): boolean {
|
|
203
201
|
if (typeof textField === 'number') {
|
|
204
202
|
if (__DEV__) {
|
|
205
203
|
console.error(
|