Akbub's picture
deploy: Nexus AI v0.2.0 - SAP C4C Lead Creation UI included in fresh frontend build
d1f3f31
Raw
History Blame Contribute Delete
1.21 kB
import { cn } from '@/lib/utils';
type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
variant?: 'primary' | 'secondary' | 'ghost';
size?: 'sm' | 'md' | 'lg';
};
const variantMap = {
primary:
'bg-nexus-accent text-white hover:bg-nexus-accent/90 shadow-soft border border-nexus-accent/20',
secondary:
'bg-nexus-card text-nexus-fg border border-nexus-border hover:border-nexus-accent/30 hover:bg-nexus-card/90',
ghost: 'text-nexus-muted hover:text-nexus-fg hover:bg-nexus-card/60',
};
const sizeMap = {
sm: 'h-9 px-3 text-sm rounded-lg',
md: 'h-11 px-5 text-sm rounded-xl',
lg: 'h-12 px-6 text-base rounded-xl',
};
export function Button({
className,
variant = 'primary',
size = 'md',
children,
...props
}: ButtonProps) {
return (
<button
className={cn(
'inline-flex items-center justify-center gap-2 font-medium transition-all duration-300',
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-nexus-accent/40',
'disabled:pointer-events-none disabled:opacity-50',
variantMap[variant],
sizeMap[size],
className,
)}
{...props}
>
{children}
</button>
);
}