@@ -7,7 +7,7 @@ import { useInputGroupContext } from "../input-group";
7
7
import { classNames } from "../utils" ;
8
8
9
9
export const inputFieldClasses = cva (
10
- "w-full z-[1] appearance-none outline-none dark:text-secondary-200 transition-all disabled:bg-secondary-100 disabled:dark:bg-secondary-800 disabled:cursor-not-allowed " ,
10
+ "w-full z-[1] border appearance-none outline-none dark:text-secondary-200 transition-all" ,
11
11
{
12
12
variants : {
13
13
size : {
@@ -16,10 +16,17 @@ export const inputFieldClasses = cva(
16
16
lg : "py-2 text-lg" ,
17
17
} ,
18
18
variant : {
19
- solid : "bg-secondary-50 dark:bg-secondary-800/20" ,
20
- outline :
21
- "read-only:focus:border-secondary-300 dark:read-only:focus:border-secondary-700 read-only:focus:ring-0" ,
22
- ghost : "border border-transparent" ,
19
+ solid : "" ,
20
+ outline : "" ,
21
+ ghost : "" ,
22
+ } ,
23
+ disabled : {
24
+ true : "" ,
25
+ false : "" ,
26
+ } ,
27
+ readonly : {
28
+ true : "" ,
29
+ false : "" ,
23
30
} ,
24
31
invalid : {
25
32
true : "border-red-500 focus:ring-red-200 dark:border-red-400 dark:focus:ring-red-100/20" ,
@@ -38,21 +45,42 @@ export const inputFieldClasses = cva(
38
45
} ,
39
46
} ,
40
47
compoundVariants : [
48
+ {
49
+ variant : "solid" ,
50
+ disabled : false ,
51
+ readonly : false ,
52
+ className : "bg-secondary-50 dark:bg-secondary-900" ,
53
+ } ,
54
+ {
55
+ disabled : true ,
56
+ readonly : false ,
57
+ className : "bg-secondary-100 dark:bg-secondary-800 cursor-not-allowed" ,
58
+ } ,
41
59
{
42
60
variant : [ "solid" , "outline" ] ,
43
- size : [ "sm" , "md" , "lg" ] ,
44
- className : classNames (
45
- "border border-secondary-300 dark:border-secondary-700 outline-none" ,
46
- "hover:border-primary-500 dark:hover:border-primary-400 disabled:hover:border-secondary-300 dark:disabled:hover:border-secondary-700" ,
47
- "focus:border-primary-500 dark:focus:border-primary-400" ,
48
- "focus:ring-2 focus:ring-primary-200 dark:focus:ring-primary-100/20" ,
49
- ) ,
61
+ disabled : false ,
62
+ className : "hover:border-primary-500 dark:hover:border-primary-400" ,
63
+ } ,
64
+ {
65
+ variant : [ "solid" , "outline" ] ,
66
+ className : "border-secondary-300 dark:border-zinc-700" ,
67
+ } ,
68
+ {
69
+ disabled : false ,
70
+ readonly : false ,
71
+ className :
72
+ "focus:ring-primary-200 focus:border-primary-500 dark:focus:ring-primary-100/20 dark:focus:border-primary-400 focus:ring-2" ,
50
73
} ,
51
74
{
52
75
variant : [ "outline" , "ghost" ] ,
53
- size : [ "sm" , "md" , "lg" ] ,
76
+ disabled : false ,
77
+ readonly : false ,
54
78
className : "bg-transparent" ,
55
79
} ,
80
+ {
81
+ variant : "ghost" ,
82
+ className : "border-transparent" ,
83
+ } ,
56
84
{
57
85
size : "sm" ,
58
86
isLeftAddon : false ,
@@ -186,7 +214,12 @@ export const InputField = forwardRef<HTMLInputElement, InputField>(
186
214
} ,
187
215
forwardedRef ,
188
216
) => {
189
- const fieldControlContext = useFieldControlContext ( ) ?? { } ;
217
+ const fieldControlContext = useFieldControlContext ( ) ?? {
218
+ isDisabled : false ,
219
+ isLoading : false ,
220
+ isReadOnly : false ,
221
+ isRequired : false ,
222
+ } ;
190
223
191
224
const name = props . name || fieldControlContext . name ;
192
225
const disabled =
@@ -224,6 +257,8 @@ export const InputField = forwardRef<HTMLInputElement, InputField>(
224
257
inputFieldClasses ( {
225
258
size : inputGroupContext . size ,
226
259
variant,
260
+ disabled,
261
+ readonly,
227
262
invalid,
228
263
isLeftAddon : inputGroupContext . isLeftAddon ,
229
264
isRightAddon : inputGroupContext . isRightAddon ,
0 commit comments