{{-- Primary Button Component Usage: Submit Small Button Large Button Disabled Button Link Button --}} @props([ 'type' => 'button', 'size' => 'md', 'href' => null, ]) @php // Using semantic color tokens for primary action $baseClasses = 'inline-flex items-center justify-center border border-transparent rounded-md font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors duration-200 ease-in-out dark:bg-primary-500 dark:hover:bg-primary-600 dark:focus:ring-primary-400 disabled:opacity-50 disabled:cursor-not-allowed'; $sizes = [ 'sm' => 'px-3 py-2 text-sm min-h-[36px]', 'md' => 'px-4 py-2.5 text-sm min-h-[44px]', 'lg' => 'px-5 py-3 text-base min-h-[48px]' ]; $sizeClasses = $sizes[$size] ?? $sizes['md']; $classes = $baseClasses . ' ' . $sizeClasses; @endphp @if ($href) except(['type'])->merge(['class' => $classes]) }}> {{ $slot }} @else @endif