@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