@@ -42,6 +42,12 @@ const baseStyleCloseButton = defineStyle({
42
42
...tagTheme . baseStyle ?. closeButton ,
43
43
opacity : 1 ,
44
44
m : 0 ,
45
+ // Clear default
46
+ _focusVisible : null ,
47
+ "&:focus-visible, &:hover" : {
48
+ outline : "3px solid" ,
49
+ outlineOffset : "-2px" ,
50
+ } ,
45
51
} )
46
52
47
53
const baseStyle = definePartsStyle ( {
@@ -50,49 +56,54 @@ const baseStyle = definePartsStyle({
50
56
closeButton : baseStyleCloseButton ,
51
57
} )
52
58
59
+ const getStatusStyles = ( status : string , variant : string ) => {
60
+ const statusStyles = STATUS_COLORS [ status ] [ variant ]
61
+
62
+ return {
63
+ container : statusStyles ,
64
+ }
65
+ }
66
+
53
67
const variantSubtle = definePartsStyle ( ( props ) => {
54
68
const { status = "normal" } = props
55
69
const defaultStyles = tagTheme . variants ?. subtle ( props )
56
- const statusStyles = STATUS_COLORS [ status ] . subtle
70
+ const statusStyles = getStatusStyles ( status , " subtle" )
57
71
return {
58
72
container : {
59
73
...defaultStyles ?. container ,
60
74
// Remove default dark mode styles
61
75
_dark : { } ,
62
- ...statusStyles ,
63
- } ,
64
- label : {
65
- // ...warningLabelStyles
76
+ ...statusStyles . container ,
66
77
} ,
67
78
}
68
79
} )
69
80
70
81
const variantSolid = definePartsStyle ( ( props ) => {
71
82
const { status = "normal" } = props
72
83
const defaultStyles = tagTheme . variants ?. solid ( props )
73
- const statusStyles = STATUS_COLORS [ status ] . solid
84
+ const statusStyles = getStatusStyles ( status , " solid" )
74
85
return {
75
86
container : {
76
87
...defaultStyles ?. container ,
77
88
// Remove default dark mode styles
78
89
_dark : { } ,
79
- ...statusStyles ,
90
+ ...statusStyles . container ,
80
91
} ,
81
92
}
82
93
} )
83
94
84
95
const variantOutline = definePartsStyle ( ( props ) => {
85
96
const { status = "normal" } = props
86
97
const defaultStyles = tagTheme . variants ?. outline ( props )
87
- const statusStyles = STATUS_COLORS [ status ] . outline
98
+ const statusStyles = getStatusStyles ( status , " outline" )
88
99
return {
89
100
container : {
90
101
...defaultStyles ?. container ,
91
102
boxShadow : "none" ,
92
103
borderColor : $badgeColor . reference ,
93
104
// Remove default dark mode styles
94
105
_dark : { } ,
95
- ...statusStyles ,
106
+ ...statusStyles . container ,
96
107
} ,
97
108
}
98
109
} )
0 commit comments