@@ -3,16 +3,16 @@ import { cva, type VariantProps } from "class-variance-authority";
33import { cn } from "../../utils/cn" ;
44
55const buttonVariants = cva (
6- "inline-flex items-center justify-center rounded-lg transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-blue-500 disabled:pointer-events-none disabled:opacity-50" ,
6+ "inline-flex items-center justify-center rounded-lg transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 disabled:pointer-events-none disabled:opacity-50" ,
77 {
88 variants : {
99 variant : {
10- default : "bg-blue-500 text-white hover:bg-blue-600" ,
11- destructive : "bg-red-500/20 text-red-300 hover :bg-red-500/30 " ,
12- outline : "border border-gray-700 bg-transparent hover:bg-gray-700 " ,
13- ghost : "hover:bg-gray-700 " ,
14- link : "text-blue-400 hover:text-blue-300 underline-offset-4 hover:underline" ,
15- amber : "bg-amber-500/20 text-amber-300 border border -amber-500/30 hover:bg-amber-500/30 " ,
10+ default : "bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark: hover:bg-blue-600" ,
11+ destructive : "bg-red-600 text-white hover:bg- red-700 dark :bg-red-500 dark:hover:bg-red-600 " ,
12+ outline : "border border-gray-300 dark:border-gray-600 bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-900 dark:text-gray-100 " ,
13+ ghost : "hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-900 dark:text-gray-100 " ,
14+ link : "text-blue-600 dark:text-blue- 400 hover:text-blue-700 dark: hover:text-blue-300 underline-offset-4 hover:underline" ,
15+ amber : "bg-amber-600 text-white hover:bg- amber-700 dark:bg -amber-500 dark: hover:bg-amber-600 " ,
1616 } ,
1717 size : {
1818 default : "h-9 px-4 py-2" ,
@@ -35,9 +35,11 @@ export interface ButtonProps
3535}
3636
3737export const Button = React . forwardRef < HTMLButtonElement , ButtonProps > (
38- ( { className, variant, size, ...props } , ref ) => {
38+ ( { className, variant, size, asChild, ...props } , ref ) => {
39+ const Comp = asChild ? 'span' : 'button' ;
40+
3941 return (
40- < button
42+ < Comp
4143 className = { cn ( buttonVariants ( { variant, size, className } ) ) }
4244 ref = { ref }
4345 { ...props }
0 commit comments