@@ -2,14 +2,20 @@ import { type ChangeEvent, type CSSProperties, type ReactNode, useRef } from "re
2
2
import { useControllableState , useMergeRefs } from "../../hooks" ;
3
3
import type { PrimitiveProps } from "../../primitives" ;
4
4
import { inputTextShareStyles } from "../../shared/styles" ;
5
- import type { FormFieldProps } from "../../shared/types" ;
5
+ import type { FormInputFieldProps } from "../../shared/types" ;
6
6
import { tx } from "../../utils" ;
7
7
import { InputAffix } from "./input-affix" ;
8
8
import { type InputGroupContextValue , useInputGroup } from "./input-group-context" ;
9
- import { inputAffixDefaultSizes , inputGroupStyles , inputSizeStyles } from "./input.styles" ;
9
+ import {
10
+ inputAffixDefaultSizes ,
11
+ inputGroupStyles ,
12
+ inputHeightStyles ,
13
+ inputSizeStyles ,
14
+ inputStyles ,
15
+ } from "./input.styles" ;
10
16
11
17
export type InputProps = Partial < InputGroupContextValue > &
12
- FormFieldProps & {
18
+ FormInputFieldProps & {
13
19
/**
14
20
* 可控值
15
21
*/
@@ -26,23 +32,6 @@ export type InputProps = Partial<InputGroupContextValue> &
26
32
*/
27
33
onChange ?: ( value : string | number ) => void ;
28
34
29
- /**
30
- * 是否无效
31
- * @default false
32
- */
33
- invalid ?: boolean ;
34
-
35
- /**
36
- * 占位符文本
37
- */
38
- placeholder ?: string ;
39
-
40
- /**
41
- * 是否全宽度
42
- * @default false
43
- */
44
- fullWidth ?: boolean ;
45
-
46
35
/**
47
36
* 前置元素
48
37
*/
@@ -118,14 +107,8 @@ export const Input = (props: PrimitiveProps<"input", InputProps, "children">) =>
118
107
return (
119
108
< div
120
109
className = { tx (
121
- "relative inline-flex h-fit items-center rounded-md border" ,
122
- "outline-1 outline-transparent transition-colors" ,
123
- "focus-within:border-bg-primary-emphasis focus-within:outline-bg-primary-emphasis/70" ,
124
- fullWidth && "w-full" ,
110
+ inputStyles ( { disabled, invalid, fullWidth } ) ,
125
111
group && [ inputGroupStyles , "focus-within:z-1" ] ,
126
- invalid ? "border-bd-invalid" : "border-bd-normal" ,
127
- ! disabled && ! invalid && "not-focus-within:hover:border-bd-hovered" ,
128
- disabled && "opacity-60" ,
129
112
className ,
130
113
) }
131
114
style = {
@@ -143,6 +126,7 @@ export const Input = (props: PrimitiveProps<"input", InputProps, "children">) =>
143
126
"bg-bg-normal rounded-md transition-colors" ,
144
127
disabled && "bg-bg-subtlest/60" ,
145
128
inputSizeStyles [ size ] ,
129
+ inputHeightStyles [ size ] ,
146
130
inputTextShareStyles [ size ] ,
147
131
prefix && "ps-(--pw)" ,
148
132
suffix && "pe-(--sw)" ,
0 commit comments