1
- import * as React from " react"
2
- import { Slot } from " @radix-ui/react-slot"
3
- import { cva , type VariantProps } from " class-variance-authority"
1
+ import * as React from ' react'
2
+ import { Slot } from ' @radix-ui/react-slot'
3
+ import { cva } from ' class-variance-authority'
4
4
5
- import { cn } from "@/lib/utils"
5
+ import type { VariantProps } from 'class-variance-authority'
6
+
7
+ import { cn } from '@/lib/utils'
6
8
7
9
const buttonVariants = cva (
8
10
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive" ,
9
11
{
10
12
variants : {
11
13
variant : {
12
14
default :
13
- " bg-primary text-primary-foreground shadow-xs hover:bg-primary/90" ,
15
+ ' bg-primary text-primary-foreground shadow-xs hover:bg-primary/90' ,
14
16
destructive :
15
- " bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60" ,
17
+ ' bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60' ,
16
18
outline :
17
- " border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50" ,
19
+ ' border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50' ,
18
20
secondary :
19
- " bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80" ,
21
+ ' bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80' ,
20
22
ghost :
21
- " hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50" ,
22
- link : " text-primary underline-offset-4 hover:underline" ,
23
+ ' hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50' ,
24
+ link : ' text-primary underline-offset-4 hover:underline' ,
23
25
} ,
24
26
size : {
25
- default : " h-9 px-4 py-2 has-[>svg]:px-3" ,
26
- sm : " h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5" ,
27
- lg : " h-10 rounded-md px-6 has-[>svg]:px-4" ,
28
- icon : " size-9" ,
27
+ default : ' h-9 px-4 py-2 has-[>svg]:px-3' ,
28
+ sm : ' h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5' ,
29
+ lg : ' h-10 rounded-md px-6 has-[>svg]:px-4' ,
30
+ icon : ' size-9' ,
29
31
} ,
30
32
} ,
31
33
defaultVariants : {
32
- variant : " default" ,
33
- size : " default" ,
34
+ variant : ' default' ,
35
+ size : ' default' ,
34
36
} ,
35
- }
37
+ } ,
36
38
)
37
39
38
40
function Button ( {
@@ -41,11 +43,11 @@ function Button({
41
43
size,
42
44
asChild = false ,
43
45
...props
44
- } : React . ComponentProps < " button" > &
46
+ } : React . ComponentProps < ' button' > &
45
47
VariantProps < typeof buttonVariants > & {
46
48
asChild ?: boolean
47
49
} ) {
48
- const Comp = asChild ? Slot : " button"
50
+ const Comp = asChild ? Slot : ' button'
49
51
50
52
return (
51
53
< Comp
0 commit comments