import Link from 'next/link' import clsx from 'clsx' function ArrowIcon(props) { return ( ) } const variantStyles = { primary: 'rounded-[5px] bg-netbird text-white border-0 border-transparent duration-300 relative overflow-hidden group', secondary: 'rounded-full bg-zinc-100 py-1 px-3 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800/40 dark:text-zinc-400 dark:ring-1 dark:ring-inset dark:ring-zinc-800 dark:hover:bg-zinc-800 dark:hover:text-zinc-300', filled: 'rounded-full bg-zinc-900 py-1 px-3 text-white hover:bg-zinc-700 dark:bg-netbird dark:text-white dark:hover:bg-netbird-dark', outline: 'rounded-full py-1 px-3 text-zinc-700 ring-1 ring-inset ring-zinc-900/10 hover:bg-zinc-900/2.5 hover:text-zinc-900 dark:text-zinc-400 dark:ring-white/10 dark:hover:bg-white/5 dark:hover:text-white', 'outline-arrow': 'rounded-[5px] text-zinc-700 ring-1 ring-inset ring-zinc-900/10 hover:bg-zinc-900/2.5 hover:text-zinc-900 dark:text-zinc-400 dark:ring-white/10 dark:hover:bg-white/5 dark:hover:text-white duration-300 relative overflow-hidden group', text: 'text-netbird hover:text-netbird-dark dark:text-netbird dark:hover:text-netbird-light', } export function Button({ variant = 'primary', className, children, arrow, ...props }) { let Component = props.href ? Link : 'button' className = clsx( 'inline-flex gap-0.5 justify-center text-[12px] md:text-xs px-3 py-2 md:px-3 md:py-2 lg:px-4 lg:py-2.5 font-medium transition whitespace-nowrap items-center', variantStyles[variant], className ) let arrowIcon = ( ) if (variant === 'primary' || variant === 'outline-arrow') { const divProps = {} if (!props.href && props.onClick) { divProps.onClick = props.onClick } return (
{variant === 'primary' && ( )} {variant === 'primary' && ( )} {arrow === 'left' && arrowIcon} {children} {arrow === 'right' && arrowIcon}
) } return ( {arrow === 'left' && arrowIcon} {children} {arrow === 'right' && arrowIcon} ) }