@@ -10,17 +10,21 @@ import {
1010const baseLabelClasses = 'block mb-2 text-sm font-medium'
1111
1212// INPUT
13- const defaultInputClasses =
14- 'bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500'
13+ const defaultInputClasses = 'block flex-grow w-full p-0 bg-transparent text-inherit ring-offset-0 ring-0 border-0 focus:ring-offset-0 focus:ring-0 focus:border-0'
14+
15+ // BLOCK
16+ const defaultBlockClasses =
17+ 'has-[input:focus]:ring-offset-0 has-[input:focus]:ring-1 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg has-[input:focus]:ring-blue-500 has-[input:focus]:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:has-[input:focus]:ring-blue-500 dark:has-[input:focus]:border-blue-500'
18+
1519const disabledInputClasses = 'cursor-not-allowed bg-gray-100'
1620const inputSizeClasses : Record < InputSize , string > = {
1721 lg : 'p-4' ,
1822 md : 'p-2.5 text-sm' ,
1923 sm : 'p-2 text-sm' ,
2024}
2125
22- const successInputClasses = 'bg-green-50 border-green-500 dark:border-green-500 text-green-900 dark:text-green-400 placeholder-green-700 dark:placeholder-green-500 focus:ring-green-500 focus:border-green-500'
23- const errorInputClasses = 'bg-red-50 border-red-500 text-red-900 placeholder-red-700 focus:ring-red-500 focus:border-red-500 dark:text-red-500 dark:placeholder-red-500 dark:border-red-500'
26+ const successInputClasses = 'bg-green-50 border-green-500 dark:border-green-500 text-green-900 dark:text-green-400 placeholder-green-700 dark:placeholder-green-500 has-[input: focus] :ring-green-500 has-[input: focus] :border-green-500'
27+ const errorInputClasses = 'bg-red-50 border-red-500 text-red-900 placeholder-red-700 has-[input: focus] :ring-red-500 has-[input: focus] :border-red-500 dark:text-red-500 dark:placeholder-red-500 dark:border-red-500'
2428
2529export type UseInputClassesProps = {
2630 size : Ref < InputSize >
@@ -29,10 +33,11 @@ export type UseInputClassesProps = {
2933}
3034
3135export function useInputClasses ( props : UseInputClassesProps ) : {
36+ inputBlockClasses : Ref < string >
3237 inputClasses : Ref < string >
3338 labelClasses : Ref < string >
3439} {
35- const inputClasses = computed ( ( ) => {
40+ const inputBlockClasses = computed ( ( ) => {
3641 const vs = props . validationStatus . value
3742
3843 const classByStatus = vs === validationStatusMap . Success
@@ -42,13 +47,16 @@ export function useInputClasses (props: UseInputClassesProps): {
4247 : ''
4348
4449 return twMerge (
45- defaultInputClasses ,
50+ defaultBlockClasses ,
4651 classByStatus ,
47- inputSizeClasses [ props . size . value ] ,
4852 props . disabled . value ? disabledInputClasses : '' ,
4953 )
5054 } )
5155
56+ const inputClasses = computed ( ( ) => {
57+ return twMerge ( defaultInputClasses , inputSizeClasses [ props . size . value ] )
58+ } )
59+
5260 const labelClasses = computed ( ( ) => {
5361 const vs = props . validationStatus . value
5462 const classByStatus = vs === validationStatusMap . Success
@@ -61,6 +69,7 @@ export function useInputClasses (props: UseInputClassesProps): {
6169 } )
6270
6371 return {
72+ inputBlockClasses,
6473 inputClasses,
6574 labelClasses,
6675 }
0 commit comments