import type { CSSProperties } from 'react' import React from 'react' import { type VariantProps, cva } from 'class-variance-authority' import Spinner from '../spinner' import classNames from '@/utils/classnames' const buttonVariants = cva( 'btn disabled:btn-disabled', { variants: { variant: { 'primary': 'btn-primary', 'warning': 'btn-warning', 'secondary': 'btn-secondary', 'secondary-accent': 'btn-secondary-accent', 'ghost': 'btn-ghost', 'ghost-accent': 'btn-ghost-accent', 'tertiary': 'btn-tertiary', }, size: { small: 'btn-small', medium: 'btn-medium', large: 'btn-large', }, }, defaultVariants: { variant: 'secondary', size: 'medium', }, }, ) export type ButtonProps = { destructive?: boolean loading?: boolean styleCss?: CSSProperties } & React.ButtonHTMLAttributes & VariantProps const Button = React.forwardRef( ({ className, variant, size, destructive, loading, styleCss, children, ...props }, ref) => { return ( ) }, ) Button.displayName = 'Button' export default Button export { Button, buttonVariants }