'use client';
import { ButtonProps } from '../types';
import clsx from 'clsx';
import { twMerge } from 'tailwind-merge';
import { Link } from './link';
export const Button = (props: ButtonProps) => {
const {
appearance = 'filled',
size = 'md',
href,
target,
children,
className,
...rest
} = props;
const variants = {
filled:
'bg-primary text-primary-foreground border border-primary hover:bg-white hover:border-primary hover:text-primary',
outlined:
'bg-transparent text-primary hover:bg-primary hover:text-primary-foreground',
ghost:
'bg-transparent border-transparent text-primary hover:bg-primary hover:text-primary-foreground',
link: 'px-0 h-auto underline underline-offset-2'
};
const sizes = {
sm: 'h-8',
md: 'h-10',
lg: 'h-12',
xl: 'h-14'
};
const buttonClasses = twMerge(
clsx(
'px-4 text-xs transition-all duration-200',
'inline-flex gap-2 justify-center items-center',
variants[appearance],
sizes[size],
className
),
className
);
return props.href ? (
{children}
) : (
);
};