@props([
'variant' => 'primary', // primary, secondary, destructive, ghost
'size' => 'md', // sm, md, lg
'type' => 'button',
'href' => null,
'icon' => null,
'iconPosition' => 'left',
'loading' => false,
'disabled' => false,
])
@php
$baseClasses = 'inline-flex items-center justify-center gap-2 font-medium rounded-xl transition-all duration-200 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed';
$variants = [
'primary' => 'glass-button-primary text-white',
'secondary' => 'glass-button text-db-text-secondary hover:text-db-text-primary',
'destructive' => 'glass-button border-red-500/20 hover:border-red-500/40 text-red-400 hover:shadow-[0_0_20px_rgba(239,68,68,0.2)]',
'ghost' => 'bg-transparent hover:bg-white/5 text-db-text-muted hover:text-db-text-primary',
];
$sizes = [
'sm' => 'px-3 py-1.5 text-xs',
'md' => 'px-4 py-2.5 text-sm',
'lg' => 'px-6 py-3 text-sm',
];
$classes = $baseClasses . ' ' . ($variants[$variant] ?? $variants['primary']) . ' ' . ($sizes[$size] ?? $sizes['md']);
@endphp
@if($href && !$disabled)
merge(['class' => $classes]) }}>
@if($icon && $iconPosition === 'left')
{!! $icon !!}
@endif
{{ $slot }}
@if($icon && $iconPosition === 'right')
{!! $icon !!}
@endif
@else
@endif