Deploy Ladill Mini / deploy (push) Successful in 25s
Sync mobile-header-btn partials, mobile x-btn.create, and update dashboard header actions for consistent mobile FABs. Co-authored-by: Cursor <cursoragent@cursor.com>
54 lines
2.7 KiB
PHP
54 lines
2.7 KiB
PHP
@php
|
|
$variant = $variant ?? 'primary';
|
|
$type = $type ?? 'submit';
|
|
$tag = ! empty($href) ? 'a' : 'button';
|
|
$ariaLabel = $ariaLabel ?? $label ?? '';
|
|
$desktopLabel = $desktopLabel ?? $label ?? '';
|
|
$showDesktopIcon = $showDesktopIcon ?? ($variant === 'primary');
|
|
|
|
$mobileClass = match ($variant) {
|
|
'primary' => 'btn-fab h-10 w-10 lg:hidden',
|
|
'outline' => 'inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-700 shadow-sm transition hover:border-slate-300 hover:bg-slate-50 lg:hidden',
|
|
'dark' => 'inline-flex h-10 w-10 items-center justify-center rounded-full bg-gray-900 text-white shadow-sm transition hover:bg-gray-800 lg:hidden',
|
|
'indigo' => 'inline-flex h-10 w-10 items-center justify-center rounded-full bg-indigo-600 text-white shadow-sm transition hover:bg-indigo-700 lg:hidden',
|
|
default => 'btn-fab h-10 w-10 lg:hidden',
|
|
};
|
|
|
|
$desktopClass = match ($variant) {
|
|
'primary' => 'btn-primary hidden items-center lg:inline-flex',
|
|
'outline' => 'hidden items-center rounded-lg border border-gray-200 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm transition hover:bg-gray-50 lg:inline-flex',
|
|
'dark' => 'hidden items-center gap-1.5 rounded-lg bg-gray-900 px-3.5 py-2 text-sm font-medium text-white transition hover:bg-gray-800 lg:inline-flex',
|
|
'indigo' => 'hidden items-center justify-center rounded-xl bg-indigo-600 px-4 py-2.5 text-sm font-semibold text-white transition hover:bg-indigo-700 lg:inline-flex',
|
|
default => 'btn-primary hidden items-center lg:inline-flex',
|
|
};
|
|
|
|
$extraClass = $class ?? '';
|
|
@endphp
|
|
|
|
<{{ $tag }}
|
|
@if ($tag === 'a') href="{{ $href }}" @endif
|
|
@if ($tag === 'button') type="{{ $type }}" @endif
|
|
aria-label="{{ $ariaLabel }}"
|
|
title="{{ $ariaLabel }}"
|
|
@if (! empty($attributes)) {!! $attributes !!} @endif
|
|
class="{{ trim($mobileClass.' '.$extraClass) }}"
|
|
>
|
|
<svg class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true">
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15"/>
|
|
</svg>
|
|
</{{ $tag }}>
|
|
|
|
<{{ $tag }}
|
|
@if ($tag === 'a') href="{{ $href }}" @endif
|
|
@if ($tag === 'button') type="{{ $type }}" @endif
|
|
@if (! empty($attributes)) {!! $attributes !!} @endif
|
|
class="{{ trim($desktopClass.' '.$extraClass) }}"
|
|
>
|
|
@if ($showDesktopIcon)
|
|
<svg class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true">
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15"/>
|
|
</svg>
|
|
@endif
|
|
{{ $desktopLabel }}
|
|
</{{ $tag }}>
|