diff --git a/packages/react-native/Libraries/Components/TextInput/TextInput.d.ts b/packages/react-native/Libraries/Components/TextInput/TextInput.d.ts index 407a73e786f..6f24c1d360b 100644 --- a/packages/react-native/Libraries/Components/TextInput/TextInput.d.ts +++ b/packages/react-native/Libraries/Components/TextInput/TextInput.d.ts @@ -979,9 +979,9 @@ export interface TextInputProps style?: StyleProp | undefined; /** - * Align the input text to the left, center, or right sides of the input field. + * Align the input text to the left, center, right, start, or end side of the input field. */ - textAlign?: 'left' | 'center' | 'right' | undefined; + textAlign?: 'left' | 'center' | 'right' | 'start' | 'end' | undefined; /** * Used to locate this view in end-to-end tests diff --git a/packages/react-native/Libraries/Components/TextInput/TextInput.flow.js b/packages/react-native/Libraries/Components/TextInput/TextInput.flow.js index 8511e65e769..a38c30aa751 100644 --- a/packages/react-native/Libraries/Components/TextInput/TextInput.flow.js +++ b/packages/react-native/Libraries/Components/TextInput/TextInput.flow.js @@ -1051,9 +1051,9 @@ type TextInputBaseProps = Readonly<{ value?: ?Stringish, /** - * Align the input text to the left, center, or right sides of the input field. + * Align the input text to the left, center, right, start, or end side of the input field. */ - textAlign?: ?('left' | 'center' | 'right'), + textAlign?: ?('left' | 'center' | 'right' | 'start' | 'end'), }>; /** @build-types emit-as-interface Uniwind compatibility */ diff --git a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts index 76f2709eff0..a34ff98222e 100644 --- a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts +++ b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts @@ -634,7 +634,15 @@ export interface TextStyle extends TextStyleIOS, TextStyleAndroid, ViewStyle { | undefined; letterSpacing?: number | undefined; lineHeight?: number | undefined; - textAlign?: 'auto' | 'left' | 'right' | 'center' | 'justify' | undefined; + textAlign?: + | 'auto' + | 'left' + | 'right' + | 'center' + | 'justify' + | 'start' + | 'end' + | undefined; textDecorationLine?: | 'none' | 'underline' diff --git a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js index a0b67c613ce..dec894ab912 100644 --- a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js +++ b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js @@ -1031,7 +1031,14 @@ type ____TextStyle_InternalBase = Readonly<{ textShadowColor?: ____ColorValue_Internal, letterSpacing?: number, lineHeight?: number, - textAlign?: 'auto' | 'left' | 'right' | 'center' | 'justify', + textAlign?: + | 'auto' + | 'left' + | 'right' + | 'center' + | 'justify' + | 'start' + | 'end', textAlignVertical?: 'auto' | 'top' | 'bottom' | 'center', includeFontPadding?: boolean, textDecorationLine?: diff --git a/packages/react-native/React/Base/RCTConvert.mm b/packages/react-native/React/Base/RCTConvert.mm index 9400163dd81..9b7dd699ce6 100644 --- a/packages/react-native/React/Base/RCTConvert.mm +++ b/packages/react-native/React/Base/RCTConvert.mm @@ -316,6 +316,8 @@ + (NSLocale *)NSLocale:(id)json NSTextAlignment, (@{ @"auto" : @(NSTextAlignmentNatural), + @"start" : @(NSTextAlignmentLeft), + @"end" : @(NSTextAlignmentRight), @"left" : @(NSTextAlignmentLeft), @"center" : @(NSTextAlignmentCenter), @"right" : @(NSTextAlignmentRight), diff --git a/packages/react-native/React/Tests/Text/RCTAttributedTextUtilsTest.mm b/packages/react-native/React/Tests/Text/RCTAttributedTextUtilsTest.mm index 6a6ddb3be62..6db07643956 100644 --- a/packages/react-native/React/Tests/Text/RCTAttributedTextUtilsTest.mm +++ b/packages/react-native/React/Tests/Text/RCTAttributedTextUtilsTest.mm @@ -10,6 +10,9 @@ #import +#include +#include + using namespace facebook::react; @interface RCTAttributedTextUtilsTest : XCTestCase @@ -18,6 +21,40 @@ @interface RCTAttributedTextUtilsTest : XCTestCase @implementation RCTAttributedTextUtilsTest +static NSTextAlignment NSTextAlignmentFromTextAlign( + NSString *textAlign, + LayoutDirection layoutDirection) +{ + ContextContainer contextContainer{}; + PropsParserContext parserContext{-1, contextContainer}; + TextAlignment textAlignment = TextAlignment::Natural; + fromRawValue(parserContext, RawValue{folly::dynamic{textAlign.UTF8String}}, textAlignment); + + TextAttributes textAttributes; + textAttributes.alignment = textAlignment; + textAttributes.layoutDirection = layoutDirection; + + NSDictionary *attributes = RCTNSTextAttributesFromTextAttributes(textAttributes); + NSParagraphStyle *paragraphStyle = attributes[NSParagraphStyleAttributeName]; + return paragraphStyle.alignment; +} + +- (void)testTextAlignmentStartAndEndResolveWithLayoutDirection +{ + XCTAssertEqual( + NSTextAlignmentFromTextAlign(@"start", LayoutDirection::LeftToRight), + NSTextAlignmentLeft); + XCTAssertEqual( + NSTextAlignmentFromTextAlign(@"start", LayoutDirection::RightToLeft), + NSTextAlignmentRight); + XCTAssertEqual( + NSTextAlignmentFromTextAlign(@"end", LayoutDirection::LeftToRight), + NSTextAlignmentRight); + XCTAssertEqual( + NSTextAlignmentFromTextAlign(@"end", LayoutDirection::RightToLeft), + NSTextAlignmentLeft); +} + - (void)testSamenessOfEmptyAttributedStrings { NSAttributedString *attributedString1 = [[NSAttributedString alloc] initWithString:@""]; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt index 7ebe3263307..d09559fa08c 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt @@ -527,6 +527,8 @@ public class TextAttributeProps private constructor() { "justify" -> Gravity.LEFT null, "auto" -> Gravity.NO_GRAVITY + "start" -> if (isRTL) Gravity.RIGHT else Gravity.LEFT + "end" -> if (isRTL) Gravity.LEFT else Gravity.RIGHT "left" -> if (isRTL) Gravity.RIGHT else Gravity.LEFT "right" -> if (isRTL) Gravity.LEFT else Gravity.RIGHT "center" -> Gravity.CENTER_HORIZONTAL diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt index e434dee5a7b..9fb9553ee63 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt @@ -211,7 +211,7 @@ internal object TextLayoutManager { if (alignmentAttr == "center") { alignment = Layout.Alignment.ALIGN_CENTER - } else if (alignmentAttr == "right") { + } else if (alignmentAttr == "right" || alignmentAttr == "end") { alignment = if (swapNormalAndOpposite) Layout.Alignment.ALIGN_NORMAL else Layout.Alignment.ALIGN_OPPOSITE diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt index 02d20c2af7f..b56a59fdf04 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt @@ -558,6 +558,8 @@ public open class ReactTextInputManager public constructor() : when (textAlign) { null, "auto" -> view.gravityHorizontal = Gravity.NO_GRAVITY + "start" -> view.gravityHorizontal = Gravity.START + "end" -> view.gravityHorizontal = Gravity.END "left" -> view.gravityHorizontal = Gravity.LEFT "right" -> view.gravityHorizontal = Gravity.RIGHT "center" -> view.gravityHorizontal = Gravity.CENTER_HORIZONTAL diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/text/TextAttributePropsTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/text/TextAttributePropsTest.kt new file mode 100644 index 00000000000..0b63ff69a2a --- /dev/null +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/text/TextAttributePropsTest.kt @@ -0,0 +1,37 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.views.text + +import android.view.Gravity +import com.facebook.react.bridge.JavaOnlyMap +import com.facebook.react.uimanager.ReactStylesDiffMap +import org.assertj.core.api.Assertions.assertThat +import org.junit.Test + +class TextAttributePropsTest { + + @Test + fun textAlignStartUsesStartSide() { + assertThat(textAlignment("start", isRTL = false)).isEqualTo(Gravity.LEFT) + assertThat(textAlignment("start", isRTL = true)).isEqualTo(Gravity.RIGHT) + } + + @Test + fun textAlignEndUsesEndSide() { + assertThat(textAlignment("end", isRTL = false)).isEqualTo(Gravity.RIGHT) + assertThat(textAlignment("end", isRTL = true)).isEqualTo(Gravity.LEFT) + } + + private fun textAlignment(textAlign: String, isRTL: Boolean): Int { + return TextAttributeProps.getTextAlignment( + ReactStylesDiffMap(JavaOnlyMap.of("textAlign", textAlign)), + isRTL, + Gravity.CENTER_HORIZONTAL, + ) + } +} diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt index 2aabc6ed3a9..5d5009ea0be 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt @@ -438,6 +438,18 @@ class ReactTextInputPropertyTest { assertThat(view.gravity and Gravity.HORIZONTAL_GRAVITY_MASK) .isEqualTo(Gravity.CENTER_HORIZONTAL) + manager.updateProperties(view, buildStyles("textAlign", "start")) + assertThat( + view.gravity and + (Gravity.HORIZONTAL_GRAVITY_MASK or Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK)) + .isEqualTo(Gravity.START) + + manager.updateProperties(view, buildStyles("textAlign", "end")) + assertThat( + view.gravity and + (Gravity.HORIZONTAL_GRAVITY_MASK or Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK)) + .isEqualTo(Gravity.END) + manager.updateProperties(view, buildStyles("textAlign", null)) assertThat(view.gravity and Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(defaultHorizontalGravity) diff --git a/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h b/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h index b8e8f79d9b8..235e966ae13 100644 --- a/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h @@ -629,8 +629,12 @@ inline void fromRawValue(const PropsParserContext &context, const RawValue &valu react_native_expect(value.hasType()); if (value.hasType()) { auto string = (std::string)value; - if (string == "auto" || string == "start") { + if (string == "auto") { result = TextAlignment::Natural; + } else if (string == "start") { + result = TextAlignment::Start; + } else if (string == "end") { + result = TextAlignment::End; } else if (string == "left") { result = TextAlignment::Left; } else if (string == "center") { @@ -665,6 +669,10 @@ inline std::string toString(const TextAlignment &textAlignment) return "right"; case TextAlignment::Justified: return "justified"; + case TextAlignment::Start: + return "start"; + case TextAlignment::End: + return "end"; } LOG(ERROR) << "Unsupported TextAlignment value"; diff --git a/packages/react-native/ReactCommon/react/renderer/attributedstring/primitives.h b/packages/react-native/ReactCommon/react/renderer/attributedstring/primitives.h index 459bbcf632c..37ad9265edc 100644 --- a/packages/react-native/ReactCommon/react/renderer/attributedstring/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/attributedstring/primitives.h @@ -97,7 +97,9 @@ enum class TextAlignment { Left, // Visually left aligned. Center, // Visually centered. Right, // Visually right aligned. - Justified // Fully-justified. The last line in a paragraph is natural-aligned. + Justified, // Fully-justified. The last line in a paragraph is natural-aligned. + Start, // Aligned to the start side of the paragraph direction. + End // Aligned to the end side of the paragraph direction. }; enum class TextAlignmentVertical { diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp b/packages/react-native/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp index 5ac6bc433d9..ff39802b356 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp @@ -9,6 +9,8 @@ #include #include +#include +#include #include #include @@ -22,8 +24,22 @@ Element rawTextElement(const char* text) { return Element().props(rawTextProps); } +std::string roundTripTextAlignment(const char* textAlignment) { + ContextContainer contextContainer{}; + PropsParserContext parserContext{-1, contextContainer}; + TextAlignment result = TextAlignment::Natural; + fromRawValue( + parserContext, RawValue{folly::dynamic{textAlignment}}, result); + return toString(result); +} + } // namespace +TEST(BaseTextShadowNodeTest, textAlignmentStartAndEndRoundTrip) { + EXPECT_EQ(roundTripTextAlignment("start"), "start"); + EXPECT_EQ(roundTripTextAlignment("end"), "end"); +} + TEST(BaseTextShadowNodeTest, fragmentsWithDifferentAttributes) { ContextContainer contextContainer{}; PropsParserContext parserContext{-1, contextContainer}; diff --git a/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm b/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm index f2e125970d6..932957a1e06 100644 --- a/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +++ b/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm @@ -18,6 +18,25 @@ using namespace facebook::react; +inline static TextAlignment RCTResolveTextAlignment( + TextAlignment textAlignment, + LayoutDirection layoutDirection) +{ + const bool isRTL = layoutDirection == LayoutDirection::RightToLeft; + switch (textAlignment) { + case TextAlignment::Start: + return isRTL ? TextAlignment::Right : TextAlignment::Left; + case TextAlignment::End: + return isRTL ? TextAlignment::Left : TextAlignment::Right; + case TextAlignment::Right: + return isRTL ? TextAlignment::Left : TextAlignment::Right; + case TextAlignment::Left: + return isRTL ? TextAlignment::Right : TextAlignment::Left; + default: + return textAlignment; + } +} + inline static UIFontWeight RCTUIFontWeightFromInteger(NSInteger fontWeight) { assert(fontWeight > 50); @@ -196,14 +215,9 @@ inline static CGFloat RCTEffectiveFontSizeMultiplierFromTextAttributes(const Tex NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; BOOL isParagraphStyleUsed = NO; if (textAttributes.alignment.has_value()) { - TextAlignment textAlignment = textAttributes.alignment.value_or(TextAlignment::Natural); - if (textAttributes.layoutDirection.value_or(LayoutDirection::LeftToRight) == LayoutDirection::RightToLeft) { - if (textAlignment == TextAlignment::Right) { - textAlignment = TextAlignment::Left; - } else if (textAlignment == TextAlignment::Left) { - textAlignment = TextAlignment::Right; - } - } + TextAlignment textAlignment = RCTResolveTextAlignment( + textAttributes.alignment.value_or(TextAlignment::Natural), + textAttributes.layoutDirection.value_or(LayoutDirection::LeftToRight)); paragraphStyle.alignment = RCTNSTextAlignmentFromTextAlignment(textAlignment); isParagraphStyleUsed = YES; diff --git a/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h b/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h index 8166d69f919..8678d6ee4a6 100644 --- a/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h @@ -24,6 +24,10 @@ inline static NSTextAlignment RCTNSTextAlignmentFromTextAlignment(facebook::reac return NSTextAlignmentCenter; case facebook::react::TextAlignment::Justified: return NSTextAlignmentJustified; + case facebook::react::TextAlignment::Start: + return NSTextAlignmentNatural; + case facebook::react::TextAlignment::End: + return NSTextAlignmentRight; } } diff --git a/packages/react-native/ReactNativeApi.d.ts b/packages/react-native/ReactNativeApi.d.ts index bfebffaa6fc..af88ac42e0b 100644 --- a/packages/react-native/ReactNativeApi.d.ts +++ b/packages/react-native/ReactNativeApi.d.ts @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<20bbe8284af4b8863a39651a46b7a53a>> + * @generated SignedSource<<10889ead2857238c3286b036b73f9945>> * * This file was generated by scripts/js-api/build-types/index.js. */ @@ -805,7 +805,14 @@ declare type ____TextStyle_InternalBase = { readonly includeFontPadding?: boolean readonly letterSpacing?: number readonly lineHeight?: number - readonly textAlign?: "auto" | "center" | "justify" | "left" | "right" + readonly textAlign?: + | "auto" + | "center" + | "end" + | "justify" + | "left" + | "right" + | "start" readonly textAlignVertical?: "auto" | "bottom" | "center" | "top" readonly textDecorationColor?: ____ColorValue_Internal readonly textDecorationLine?: @@ -5183,7 +5190,7 @@ declare type TextInputBaseProps = { readonly selectTextOnFocus?: boolean readonly style?: TextStyleProp readonly submitBehavior?: SubmitBehavior - readonly textAlign?: "center" | "left" | "right" + readonly textAlign?: "center" | "end" | "left" | "right" | "start" readonly value?: string } declare type TextInputBlurEvent = BlurEvent @@ -5919,7 +5926,7 @@ export { AlertOptions, // a0cdac0f AlertType, // 5ab91217 AndroidKeyboardEvent, // e03becc8 - Animated, // 1ac00401 + Animated, // 8d5b3c35 AppConfig, // 35c0ca70 AppRegistry, // 7ef8e53a AppState, // 12012be5 @@ -6139,7 +6146,7 @@ export { StatusBarProps, // b72a9127 StatusBarStyle, // 78f53eea StyleProp, // fa0e9b4a - StyleSheet, // ebb07d46 + StyleSheet, // cdddb9ae SubmitBehavior, // c4ddf490 Switch, // b004beeb SwitchChangeEvent, // 899635b1 @@ -6149,9 +6156,9 @@ export { TVViewPropsIOS, // 330ce7b5 TargetedEvent, // 16e98910 TaskProvider, // 266dedf2 - Text, // 90eee1c6 + Text, // f792e51d TextContentType, // 239b3ecc - TextInput, // d6b1ef70 + TextInput, // 1c32d882 TextInputAndroidProps, // 3f09ce49 TextInputBlurEvent, // b77af40e TextInputChangeEvent, // f55eef98 @@ -6161,13 +6168,13 @@ export { TextInputIOSProps, // 0d05a855 TextInputInstance, // 5a0c0e0d TextInputKeyPressEvent, // 546c5d07 - TextInputProps, // d989bb55 + TextInputProps, // 08c36ff7 TextInputSelectionChangeEvent, // e58f2abc TextInputSubmitEditingEvent, // 6bcb2aa5 TextInstance, // 05463a96 TextLayoutEvent, // 3f54186f - TextProps, // 490e7cc7 - TextStyle, // ab0f32ca + TextProps, // 58466ea1 + TextStyle, // b62b8399 ToastAndroid, // 88a8969a Touchable, // c15da0a2 TouchableHighlight, // 20ba0199 diff --git a/packages/react-native/__typetests__/index.tsx b/packages/react-native/__typetests__/index.tsx index 71e2298a193..6f01828b1c5 100644 --- a/packages/react-native/__typetests__/index.tsx +++ b/packages/react-native/__typetests__/index.tsx @@ -232,6 +232,10 @@ const viewStyle: StyleProp = { }; const textStyle: StyleProp = { fontSize: 20, + textAlign: 'start', +}; +const endAlignedTextStyle: StyleProp = { + textAlign: 'end', }; const imageStyle: StyleProp = { resizeMode: 'contain', diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index 429dedfc5d2..856ca5de643 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -6517,10 +6517,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index 35d4903d0ce..fc5d502f43d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -6331,10 +6331,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index 8cf9ec3d407..3c7976383a5 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -6508,10 +6508,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api index 2505b89426a..befe4eda816 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -8700,10 +8700,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api index e86099d6f8a..b8a2bc0e946 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -8542,10 +8542,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api index 97e1c11230c..b6ddd12ba29 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -8691,10 +8691,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api index e40ffd1a577..d5a411a318e 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -4855,10 +4855,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api index 2c5d2474a71..58b6e865ab2 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -4709,10 +4709,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical { diff --git a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api index 8c562f2e732..34b09638a2f 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -4846,10 +4846,12 @@ enum facebook::react::SubmitBehavior { enum facebook::react::TextAlignment { Center, + End, Justified, Left, Natural, Right, + Start, } enum facebook::react::TextAlignmentVertical {