@props([ 'href' => null, 'variant' => 'primary', 'size' => 'md', 'type' => 'button', 'disabled' => false, // ICON 'icon' => null, 'iconPosition' => 'left', // left | right | top | bottom ]) @php $baseClass = 'fluent-button'; $variantClass = match($variant) { 'primary' => 'fluent-button--primary', 'outline' => 'fluent-button--outline', 'subtle' => 'fluent-button--subtle', 'ghost' => 'fluent-button--ghost', 'success' => 'fluent-button--success', 'danger' => 'fluent-button--danger', 'warning' => 'fluent-button--warning', 'info' => 'fluent-button--info', default => 'fluent-button--primary', }; $sizeClass = match($size) { 'sm' => 'fluent-button--sm', 'lg' => 'fluent-button--lg', default => 'fluent-button--md', }; $iconClass = $icon ? "is-icon is-icon--{$iconPosition}" : ''; $classes = trim("$baseClass $variantClass $sizeClass $iconClass"); @endphp {{-- ========================= RENDER AS LINK ========================= --}} @if($href) merge(['class' => $classes]) }}> @if($icon && $iconPosition === 'top') @endif @if($icon && $iconPosition === 'left') @endif {{ $slot }} @if($icon && $iconPosition === 'right') @endif @if($icon && $iconPosition === 'bottom') @endif {{-- ========================= RENDER AS BUTTON ========================= --}} @else @endif