import { ButtonHTMLAttributes, AnchorHTMLAttributes, forwardRef } from 'react';
interface BaseButtonProps {
variant?: 'default' | 'secondary';
children: React.ReactNode;
className?: string;
}
type ButtonProps = BaseButtonProps & ButtonHTMLAttributes;
type LinkProps = BaseButtonProps & AnchorHTMLAttributes & { href: string };
const getVariantClasses = (variant: 'default' | 'secondary' = 'default'): string => {
const baseClass =
'h-full w-full px-2 py-1 font-medium transition duration-100 ease-in disabled:cursor-not-allowed disabled:opacity-50';
if (variant === 'secondary') {
return `${baseClass} bg-content text-content-inverse shadow-md hover:bg-content-muted disabled:hover:bg-content`;
}
return `${baseClass} bg-primary-500 text-primary-foreground hover:bg-primary-700 disabled:hover:bg-primary-500`;
};
export const Button = forwardRef(
({ variant = 'default', children, className = '', ...props }, ref) => {
return (
);
}
);
Button.displayName = 'Button';
export const ButtonLink = forwardRef(
({ variant = 'default', children, className = '', ...props }, ref) => {
return (
{children}
);
}
);
ButtonLink.displayName = 'ButtonLink';