zkit-ui 2.0.12 → 2.0.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ActionDialog.d.ts","sourceRoot":"","sources":["../../../src/services/ActionDialogService/ActionDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyC/B,OAAO,KAAK,EAIV,iBAAiB,EACjB,eAAe,EAGhB,MAAM,SAAS,CAAC;AA8oBjB,eAAO,MAAM,YAAY,sFAA+B,CAAC"}
1
+ {"version":3,"file":"ActionDialog.d.ts","sourceRoot":"","sources":["../../../src/services/ActionDialogService/ActionDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyC/B,OAAO,KAAK,EAIV,iBAAiB,EACjB,eAAe,EAGhB,MAAM,SAAS,CAAC;AA0oBjB,eAAO,MAAM,YAAY,sFAA+B,CAAC"}
@@ -425,16 +425,12 @@ const ActionDialogRoot = React.forwardRef(function ActionDialog({ accessibilityL
425
425
  if (resolvedDismiss.backPress)
426
426
  dismissWithReason('back');
427
427
  }, pointerEvents: actualOpen ? 'auto' : 'none', style: [
428
- hostMode === 'inline' ? react_native_1.StyleSheet.absoluteFill : styles.modalRoot,
428
+ hostMode === 'inline' ? styles.inlineRoot : styles.modalRoot,
429
429
  {
430
430
  elevation: react_native_1.Platform.OS === 'android' ? (_b = layer === null || layer === void 0 ? void 0 : layer.zIndex) !== null && _b !== void 0 ? _b : shared_1.ACTION_DIALOG_DEFAULT_Z_INDEX : 0,
431
431
  zIndex: (_c = layer === null || layer === void 0 ? void 0 : layer.zIndex) !== null && _c !== void 0 ? _c : shared_1.ACTION_DIALOG_DEFAULT_Z_INDEX,
432
432
  },
433
- ], testID: testID, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessible: false, onPress: handleOverlayPress, style: react_native_1.StyleSheet.absoluteFill, children: (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { pointerEvents: "none", style: [
434
- react_native_1.StyleSheet.absoluteFill,
435
- { backgroundColor: resolvedColors.backdrop },
436
- overlayStyle,
437
- ] }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "box-none", style: [
433
+ ], testID: testID, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessible: false, onPress: handleOverlayPress, style: react_native_1.StyleSheet.absoluteFill, children: (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { pointerEvents: "none", style: [styles.backdrop, { backgroundColor: resolvedColors.backdrop }, overlayStyle] }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "box-none", style: [
438
434
  styles.center,
439
435
  {
440
436
  paddingBottom: Math.max(insets.bottom, (0, zkit_tools_1.wp)(16)),
@@ -482,6 +478,12 @@ const styles = react_native_1.StyleSheet.create({
482
478
  modalRoot: {
483
479
  flex: 1,
484
480
  },
481
+ inlineRoot: {
482
+ ...react_native_1.StyleSheet.absoluteFillObject,
483
+ },
484
+ backdrop: {
485
+ ...react_native_1.StyleSheet.absoluteFillObject,
486
+ },
485
487
  center: {
486
488
  alignItems: 'center',
487
489
  flex: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Switch/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Switch/index.tsx"],"names":[],"mappings":"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"}
@@ -563,25 +563,20 @@ function SwitchImpl({ checked: checkedProp, defaultChecked = false, onCheckedCha
563
563
  },
564
564
  focusRingAnimatedStyle,
565
565
  ] }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
566
- react_native_1.StyleSheet.absoluteFill,
566
+ react_native_1.StyleSheet.absoluteFillObject,
567
567
  {
568
568
  borderRadius: trackRadius,
569
569
  backgroundColor: visualUncheckedTrackColor,
570
570
  },
571
571
  trackStyle,
572
572
  ] }), (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { pointerEvents: "none", style: [
573
- react_native_1.StyleSheet.absoluteFill,
573
+ react_native_1.StyleSheet.absoluteFillObject,
574
574
  {
575
575
  borderRadius: trackRadius,
576
576
  backgroundColor: visualCheckedTrackColor,
577
577
  },
578
578
  checkedTrackAnimatedStyle,
579
- ] }), hasStateText ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: "none", style: [react_native_1.StyleSheet.absoluteFill, styles.stateTextLayer], children: [(0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [
580
- react_native_1.StyleSheet.absoluteFill,
581
- styles.stateTextSlot,
582
- checkedTextSlotStyle,
583
- checkedTextAnimatedStyle,
584
- ], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
579
+ ] }), hasStateText ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: "none", style: styles.stateTextLayer, children: [(0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [styles.stateTextSlot, checkedTextSlotStyle, checkedTextAnimatedStyle], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
585
580
  styles.stateText,
586
581
  {
587
582
  color: visualCheckedTextColor,
@@ -589,12 +584,7 @@ function SwitchImpl({ checked: checkedProp, defaultChecked = false, onCheckedCha
589
584
  lineHeight: stateTextLineHeight,
590
585
  },
591
586
  stateTextStyle,
592
- ], children: (_d = stateText === null || stateText === void 0 ? void 0 : stateText.checked) !== null && _d !== void 0 ? _d : '' }) }), (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [
593
- react_native_1.StyleSheet.absoluteFill,
594
- styles.stateTextSlot,
595
- uncheckedTextSlotStyle,
596
- uncheckedTextAnimatedStyle,
597
- ], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
587
+ ], children: (_d = stateText === null || stateText === void 0 ? void 0 : stateText.checked) !== null && _d !== void 0 ? _d : '' }) }), (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { style: [styles.stateTextSlot, uncheckedTextSlotStyle, uncheckedTextAnimatedStyle], children: (0, jsx_runtime_1.jsx)(Text_1.Text, { allowFontScaling: false, ellipsizeMode: "clip", numberOfLines: 1, style: [
598
588
  styles.stateText,
599
589
  {
600
590
  color: visualUncheckedTextColor,
@@ -657,10 +647,12 @@ const styles = react_native_1.StyleSheet.create({
657
647
  position: 'absolute',
658
648
  },
659
649
  stateTextLayer: {
650
+ ...react_native_1.StyleSheet.absoluteFillObject,
660
651
  alignItems: 'center',
661
652
  justifyContent: 'center',
662
653
  },
663
654
  stateTextSlot: {
655
+ ...react_native_1.StyleSheet.absoluteFillObject,
664
656
  alignItems: 'center',
665
657
  justifyContent: 'center',
666
658
  overflow: 'hidden',
@@ -48,6 +48,7 @@ export interface TextInputProps extends NativeTextInputProps {
48
48
  readOnly?: boolean;
49
49
  required?: boolean;
50
50
  invalid?: boolean;
51
+ hidePlaceholderOnFocus?: boolean;
51
52
  variant?: TextInputVariant;
52
53
  tone?: TextInputTone;
53
54
  status?: TextInputStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/TextInput/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/TextInput/index.tsx"],"names":[],"mappings":"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"}
@@ -266,7 +266,7 @@ function assignRef(ref, value) {
266
266
  ref.current = value;
267
267
  }
268
268
  }
269
- const TextInputBase = React.forwardRef(function TextInput({ value, defaultValue = '', onChange, onNativeChange, onSubmit, disabled = false, readOnly = false, required = false, invalid, variant = 'outline', tone = 'primary', status = 'default', size = 'md', color, colors, layout, label, labelAction, description, error, prefix, suffix, clearable = false, clearIcon, clearAccessibilityLabel, onClear, minRows, maxRows, showCount = false, renderCount, style, fieldStyle, inputStyle, labelStyle, descriptionStyle, errorStyle, countStyle, prefixStyle, suffixStyle, clearButtonStyle, maxFontSizeMultiplier, placeholderTextColor, selectionColor, cursorColor, selectionHandleColor, onBlur, onFocus, onSubmitEditing, accessibilityLabel, accessibilityHint, accessibilityState, maxLength, multiline = false, numberOfLines, testID, underlineColorAndroid, ...nativeProps }, forwardedRef) {
269
+ const TextInputBase = React.forwardRef(function TextInput({ value, defaultValue = '', onChange, onNativeChange, onSubmit, disabled = false, readOnly = false, required = false, invalid, hidePlaceholderOnFocus = true, variant = 'outline', tone = 'primary', status = 'default', size = 'md', color, colors, layout, label, labelAction, description, error, prefix, suffix, clearable = false, clearIcon, clearAccessibilityLabel, onClear, minRows, maxRows, showCount = false, renderCount, style, fieldStyle, inputStyle, labelStyle, descriptionStyle, errorStyle, countStyle, prefixStyle, suffixStyle, clearButtonStyle, maxFontSizeMultiplier, placeholderTextColor, selectionColor, cursorColor, selectionHandleColor, onBlur, onFocus, onSubmitEditing, accessibilityLabel, accessibilityHint, accessibilityState, maxLength, multiline = false, numberOfLines, placeholder, testID, underlineColorAndroid, ...nativeProps }, forwardedRef) {
270
270
  var _a, _b, _c;
271
271
  const theme = (0, useTheme_1.useTheme)();
272
272
  const { t } = (0, useI18n_1.useI18n)();
@@ -276,6 +276,7 @@ const TextInputBase = React.forwardRef(function TextInput({ value, defaultValue
276
276
  const currentValueRef = React.useRef(isControlled ? value !== null && value !== void 0 ? value : '' : initialValueRef.current);
277
277
  const shouldTrackValue = clearable || showCount || renderCount != null;
278
278
  const hasSyncedUncontrolledValueRef = React.useRef(false);
279
+ const [isFocused, setIsFocused] = React.useState(false);
279
280
  const [, scheduleValueRender] = React.useReducer((revision) => revision + 1, 0);
280
281
  if (isControlled) {
281
282
  currentValueRef.current = value !== null && value !== void 0 ? value : '';
@@ -389,7 +390,7 @@ const TextInputBase = React.forwardRef(function TextInput({ value, defaultValue
389
390
  const finalCursorColor = cursorColor !== null && cursorColor !== void 0 ? cursorColor : finalSelectionColor;
390
391
  const finalHandleColor = selectionHandleColor !== null && selectionHandleColor !== void 0 ? selectionHandleColor : finalSelectionColor;
391
392
  const webCaretStyle = React.useMemo(() => (IS_WEB ? { caretColor: finalCursorColor } : null), [finalCursorColor]);
392
- const computedAccessibilityLabel = (_b = accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : extractReadableText(label)) !== null && _b !== void 0 ? _b : nativeProps.placeholder;
393
+ const computedAccessibilityLabel = (_b = accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : extractReadableText(label)) !== null && _b !== void 0 ? _b : placeholder;
393
394
  const computedAccessibilityHint = accessibilityHint !== null && accessibilityHint !== void 0 ? accessibilityHint : extractReadableText(resolvedStatus === 'error' ? error : description);
394
395
  const finalClearAccessibilityLabel = clearAccessibilityLabel !== null && clearAccessibilityLabel !== void 0 ? clearAccessibilityLabel : t('textInput.clear');
395
396
  const commitValue = React.useCallback((nextValue) => {
@@ -406,9 +407,11 @@ const TextInputBase = React.forwardRef(function TextInput({ value, defaultValue
406
407
  onNativeChange === null || onNativeChange === void 0 ? void 0 : onNativeChange(event);
407
408
  }, [onNativeChange]);
408
409
  const handleFocus = React.useCallback((event) => {
410
+ setIsFocused(true);
409
411
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
410
412
  }, [onFocus]);
411
413
  const handleBlur = React.useCallback((event) => {
414
+ setIsFocused(false);
412
415
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
413
416
  }, [onBlur]);
414
417
  const handleSubmitEditing = React.useCallback((event) => {
@@ -455,7 +458,7 @@ const TextInputBase = React.forwardRef(function TextInput({ value, defaultValue
455
458
  return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.root, rootSizeStyle, style], children: [labelNode || labelAction ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.labelRow, { marginBottom: metrics.labelGap }], children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.labelContent, children: [labelNode, required && labelNode ? ((0, jsx_runtime_1.jsx)(Text_1.Text, { accessibilityElementsHidden: true, tone: "danger", importantForAccessibility: "no", style: styles.requiredMark, children: "*" })) : null] }), labelAction ? (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.labelAction, children: labelAction }) : null] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.field, fieldSizeStyle, fieldVisualStyle, fieldStyle], children: [prefixNode, (0, jsx_runtime_1.jsx)(TextInputPrimitive_1.TextInputPrimitive, { ref: setInputRef, ...nativeProps, accessibilityHint: computedAccessibilityHint, accessibilityLabel: computedAccessibilityLabel, accessibilityState: {
456
459
  ...accessibilityState,
457
460
  disabled,
458
- }, cursorColor: finalCursorColor, defaultValue: nativeDefaultValue, editable: interactive, maxFontSizeMultiplier: maxFontSizeMultiplier, maxLength: maxLength, multiline: multiline, numberOfLines: multiline ? resolvedMinRows : numberOfLines, onBlur: handleBlur, onChange: handleNativeChange, onChangeText: handleChangeText, onFocus: handleFocus, onSubmitEditing: handleSubmitEditing, placeholderTextColor: placeholderTextColor !== null && placeholderTextColor !== void 0 ? placeholderTextColor : visualColors.placeholderColor, readOnly: readOnly || disabled, selectionColor: finalSelectionColor, selectionHandleColor: finalHandleColor, style: [styles.input, inputBaseStyle, WEB_INPUT_RESET_STYLE, webCaretStyle, inputStyle], testID: testID, underlineColorAndroid: underlineColorAndroid !== null && underlineColorAndroid !== void 0 ? underlineColorAndroid : 'transparent', value: nativeValue }), showClearButton ? ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityLabel: finalClearAccessibilityLabel, accessibilityRole: "button", hitSlop: {
461
+ }, cursorColor: finalCursorColor, defaultValue: nativeDefaultValue, editable: interactive, maxFontSizeMultiplier: maxFontSizeMultiplier, maxLength: maxLength, multiline: multiline, numberOfLines: multiline ? resolvedMinRows : numberOfLines, onBlur: handleBlur, onChange: handleNativeChange, onChangeText: handleChangeText, onFocus: handleFocus, onSubmitEditing: handleSubmitEditing, placeholder: hidePlaceholderOnFocus && isFocused ? undefined : placeholder, placeholderTextColor: placeholderTextColor !== null && placeholderTextColor !== void 0 ? placeholderTextColor : visualColors.placeholderColor, readOnly: readOnly || disabled, selectionColor: finalSelectionColor, selectionHandleColor: finalHandleColor, style: [styles.input, inputBaseStyle, WEB_INPUT_RESET_STYLE, webCaretStyle, inputStyle], testID: testID, underlineColorAndroid: underlineColorAndroid !== null && underlineColorAndroid !== void 0 ? underlineColorAndroid : 'transparent', value: nativeValue }), showClearButton ? ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityLabel: finalClearAccessibilityLabel, accessibilityRole: "button", hitSlop: {
459
462
  bottom: (0, zkit_tools_1.wp)(8),
460
463
  left: (0, zkit_tools_1.wp)(8),
461
464
  right: (0, zkit_tools_1.wp)(8),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zkit-ui",
3
- "version": "2.0.12",
3
+ "version": "2.0.14",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -197,6 +197,14 @@
197
197
  "publishConfig": {
198
198
  "registry": "https://registry.npmjs.org/"
199
199
  },
200
+ "scripts": {
201
+ "build": "node scripts/build.cjs",
202
+ "verify:entrypoints": "node scripts/verify-entrypoints.cjs",
203
+ "verify": "pnpm run build && pnpm run verify:entrypoints",
204
+ "typecheck": "tsc -p tsconfig.json --noEmit",
205
+ "prepack": "pnpm run build",
206
+ "prepublishOnly": "pnpm run build"
207
+ },
200
208
  "dependencies": {
201
209
  "@vant/area-data": "^2.1.0",
202
210
  "dayjs": "^1.11.13",
@@ -223,6 +231,7 @@
223
231
  },
224
232
  "devDependencies": {
225
233
  "@expo/vector-icons": "^15.1.1",
234
+ "@lodev09/react-native-true-sheet": "workspace:*",
226
235
  "@shopify/flash-list": "^2.3.1",
227
236
  "@types/react": "~19.1.17",
228
237
  "dayjs": "^1.11.13",
@@ -239,13 +248,6 @@
239
248
  "react-native-svg": "^15.12.1",
240
249
  "react-native-worklets": "0.5.1",
241
250
  "sonner-native": "^0.22.2",
242
- "typescript": "~5.9.3",
243
- "@lodev09/react-native-true-sheet": "3.10.0"
244
- },
245
- "scripts": {
246
- "build": "node scripts/build.cjs",
247
- "verify:entrypoints": "node scripts/verify-entrypoints.cjs",
248
- "verify": "pnpm run build && pnpm run verify:entrypoints",
249
- "typecheck": "tsc -p tsconfig.json --noEmit"
251
+ "typescript": "~5.9.3"
250
252
  }
251
- }
253
+ }
@@ -573,7 +573,7 @@ const ActionDialogRoot = React.forwardRef<ActionDialogRef, ActionDialogProps>(fu
573
573
  }}
574
574
  pointerEvents={actualOpen ? 'auto' : 'none'}
575
575
  style={[
576
- hostMode === 'inline' ? StyleSheet.absoluteFill : styles.modalRoot,
576
+ hostMode === 'inline' ? styles.inlineRoot : styles.modalRoot,
577
577
  {
578
578
  elevation: Platform.OS === 'android' ? layer?.zIndex ?? ACTION_DIALOG_DEFAULT_Z_INDEX : 0,
579
579
  zIndex: layer?.zIndex ?? ACTION_DIALOG_DEFAULT_Z_INDEX,
@@ -584,11 +584,7 @@ const ActionDialogRoot = React.forwardRef<ActionDialogRef, ActionDialogProps>(fu
584
584
  <Pressable accessible={false} onPress={handleOverlayPress} style={StyleSheet.absoluteFill}>
585
585
  <Animated.View
586
586
  pointerEvents="none"
587
- style={[
588
- StyleSheet.absoluteFill,
589
- { backgroundColor: resolvedColors.backdrop },
590
- overlayStyle,
591
- ]}
587
+ style={[styles.backdrop, { backgroundColor: resolvedColors.backdrop }, overlayStyle]}
592
588
  />
593
589
  </Pressable>
594
590
 
@@ -707,6 +703,12 @@ const styles = StyleSheet.create({
707
703
  modalRoot: {
708
704
  flex: 1,
709
705
  },
706
+ inlineRoot: {
707
+ ...StyleSheet.absoluteFillObject,
708
+ },
709
+ backdrop: {
710
+ ...StyleSheet.absoluteFillObject,
711
+ },
710
712
  center: {
711
713
  alignItems: 'center',
712
714
  flex: 1,
@@ -897,7 +897,7 @@ function SwitchImpl(
897
897
  />
898
898
  <View
899
899
  style={[
900
- StyleSheet.absoluteFill,
900
+ StyleSheet.absoluteFillObject,
901
901
  {
902
902
  borderRadius: trackRadius,
903
903
  backgroundColor: visualUncheckedTrackColor,
@@ -908,7 +908,7 @@ function SwitchImpl(
908
908
  <Animated.View
909
909
  pointerEvents="none"
910
910
  style={[
911
- StyleSheet.absoluteFill,
911
+ StyleSheet.absoluteFillObject,
912
912
  {
913
913
  borderRadius: trackRadius,
914
914
  backgroundColor: visualCheckedTrackColor,
@@ -918,15 +918,8 @@ function SwitchImpl(
918
918
  />
919
919
 
920
920
  {hasStateText ? (
921
- <View pointerEvents="none" style={[StyleSheet.absoluteFill, styles.stateTextLayer]}>
922
- <Animated.View
923
- style={[
924
- StyleSheet.absoluteFill,
925
- styles.stateTextSlot,
926
- checkedTextSlotStyle,
927
- checkedTextAnimatedStyle,
928
- ]}
929
- >
921
+ <View pointerEvents="none" style={styles.stateTextLayer}>
922
+ <Animated.View style={[styles.stateTextSlot, checkedTextSlotStyle, checkedTextAnimatedStyle]}>
930
923
  <Text
931
924
  allowFontScaling={false}
932
925
  ellipsizeMode="clip"
@@ -944,14 +937,7 @@ function SwitchImpl(
944
937
  {stateText?.checked ?? ''}
945
938
  </Text>
946
939
  </Animated.View>
947
- <Animated.View
948
- style={[
949
- StyleSheet.absoluteFill,
950
- styles.stateTextSlot,
951
- uncheckedTextSlotStyle,
952
- uncheckedTextAnimatedStyle,
953
- ]}
954
- >
940
+ <Animated.View style={[styles.stateTextSlot, uncheckedTextSlotStyle, uncheckedTextAnimatedStyle]}>
955
941
  <Text
956
942
  allowFontScaling={false}
957
943
  ellipsizeMode="clip"
@@ -1083,10 +1069,12 @@ const styles = StyleSheet.create({
1083
1069
  position: 'absolute',
1084
1070
  },
1085
1071
  stateTextLayer: {
1072
+ ...StyleSheet.absoluteFillObject,
1086
1073
  alignItems: 'center',
1087
1074
  justifyContent: 'center',
1088
1075
  },
1089
1076
  stateTextSlot: {
1077
+ ...StyleSheet.absoluteFillObject,
1090
1078
  alignItems: 'center',
1091
1079
  justifyContent: 'center',
1092
1080
  overflow: 'hidden',
@@ -9,6 +9,7 @@
9
9
  - 对外统一使用 `value / defaultValue / onChange`,`onChange` 直接返回字符串
10
10
  - 非受控输入默认不在每次键入时触发内部 re-render;只有 `clearable / showCount / renderCount` 需要同步 UI 时才追踪值
11
11
  - `disabled` 与 `readOnly` 分离:禁用会进入禁用视觉,只读保持普通信息层级但不可编辑
12
+ - 默认在聚焦时隐藏 placeholder,避免 Android 原生 hint 与空输入光标重叠;需要保留原生行为时使用 `hidePlaceholderOnFocus={false}`
12
13
  - 原生键盘能力继续作为顶层 props 透传,例如 `keyboardType / inputMode / autoComplete / enterKeyHint / submitBehavior`
13
14
  - 焦点态不额外高亮边框;边框颜色只表达默认、禁用和显式状态反馈
14
15
  - `style` 作用于根容器,原生输入样式使用 `inputStyle`
@@ -149,6 +150,7 @@ export function Demo() {
149
150
  - `readOnly?: boolean`
150
151
  - `required?: boolean`
151
152
  - `invalid?: boolean`
153
+ - `hidePlaceholderOnFocus?: boolean`
152
154
  - `variant?: 'outline' | 'filled' | 'plain'`
153
155
  - `tone?: 'primary' | 'neutral' | 'success' | 'warning' | 'danger' | 'info'`
154
156
  - `status?: 'default' | 'success' | 'warning' | 'error'`
@@ -193,5 +195,6 @@ export function Demo() {
193
195
 
194
196
  - Android 默认设置 `underlineColorAndroid="transparent"`,避免系统下划线破坏组件视觉
195
197
  - 高级 `TextInput` 会清零原生输入层 padding,由外层 Field 统一管理间距,避免 Android 默认输入内边距被圆角容器裁切
198
+ - 高级 `TextInput` 默认在聚焦时移除原生 placeholder,避免空输入光标与 hint 首字符重叠;原始 placeholder 仍用于自动推导无障碍标签
196
199
  - 光标、选区和选择手柄默认使用主题强调色;Android 会按光标色设置稳定 key,规避部分 OEM/Fabric 下光标颜色首次提交不稳定的问题
197
200
  - Web 会移除输入框默认 outline,焦点态不额外改变组件边框颜色
@@ -95,6 +95,7 @@ export interface TextInputProps extends NativeTextInputProps {
95
95
  readOnly?: boolean;
96
96
  required?: boolean;
97
97
  invalid?: boolean;
98
+ hidePlaceholderOnFocus?: boolean;
98
99
 
99
100
  variant?: TextInputVariant;
100
101
  tone?: TextInputTone;
@@ -439,6 +440,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
439
440
  readOnly = false,
440
441
  required = false,
441
442
  invalid,
443
+ hidePlaceholderOnFocus = true,
442
444
  variant = 'outline',
443
445
  tone = 'primary',
444
446
  status = 'default',
@@ -484,6 +486,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
484
486
  maxLength,
485
487
  multiline = false,
486
488
  numberOfLines,
489
+ placeholder,
487
490
  testID,
488
491
  underlineColorAndroid,
489
492
  ...nativeProps
@@ -498,6 +501,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
498
501
  const currentValueRef = React.useRef(isControlled ? value ?? '' : initialValueRef.current);
499
502
  const shouldTrackValue = clearable || showCount || renderCount != null;
500
503
  const hasSyncedUncontrolledValueRef = React.useRef(false);
504
+ const [isFocused, setIsFocused] = React.useState(false);
501
505
  const [, scheduleValueRender] = React.useReducer((revision: number) => revision + 1, 0);
502
506
 
503
507
  if (isControlled) {
@@ -655,7 +659,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
655
659
  [finalCursorColor]
656
660
  );
657
661
  const computedAccessibilityLabel =
658
- accessibilityLabel ?? extractReadableText(label) ?? nativeProps.placeholder;
662
+ accessibilityLabel ?? extractReadableText(label) ?? placeholder;
659
663
  const computedAccessibilityHint =
660
664
  accessibilityHint ??
661
665
  extractReadableText(resolvedStatus === 'error' ? error : description);
@@ -688,6 +692,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
688
692
 
689
693
  const handleFocus = React.useCallback(
690
694
  (event: Parameters<NonNullable<TextInputPrimitiveProps['onFocus']>>[0]) => {
695
+ setIsFocused(true);
691
696
  onFocus?.(event);
692
697
  },
693
698
  [onFocus]
@@ -695,6 +700,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
695
700
 
696
701
  const handleBlur = React.useCallback(
697
702
  (event: Parameters<NonNullable<TextInputPrimitiveProps['onBlur']>>[0]) => {
703
+ setIsFocused(false);
698
704
  onBlur?.(event);
699
705
  },
700
706
  [onBlur]
@@ -811,6 +817,7 @@ const TextInputBase = React.forwardRef<TextInputRef, TextInputProps>(function Te
811
817
  onChangeText={handleChangeText}
812
818
  onFocus={handleFocus}
813
819
  onSubmitEditing={handleSubmitEditing}
820
+ placeholder={hidePlaceholderOnFocus && isFocused ? undefined : placeholder}
814
821
  placeholderTextColor={placeholderTextColor ?? visualColors.placeholderColor}
815
822
  readOnly={readOnly || disabled}
816
823
  selectionColor={finalSelectionColor}