| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- 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
 -   spinnerClassName?: string
 - } & React.ButtonHTMLAttributes<HTMLButtonElement> & VariantProps<typeof buttonVariants>
 - 
 - const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
 -   ({ className, variant, size, destructive, loading, styleCss, children, spinnerClassName, ...props }, ref) => {
 -     return (
 -       <button
 -         type='button'
 -         className={classNames(
 -           buttonVariants({ variant, size, className }),
 -           destructive && 'btn-destructive',
 -         )}
 -         ref={ref}
 -         style={styleCss}
 -         {...props}
 -       >
 -         {children}
 -         {loading && <Spinner loading={loading} className={classNames('!text-white !h-3 !w-3 !border-2 !ml-1', spinnerClassName)} />}
 -       </button>
 -     )
 -   },
 - )
 - Button.displayName = 'Button'
 - 
 - export default Button
 - export { Button, buttonVariants }
 
 
  |