@props([ 'name', 'variant' => 'outline', // outline | solid ]) {{-- Icon helper — Heroicons v2 (inline SVG). Usage: Only the icons referenced across the design docs are bundled. Stroke icons inherit `stroke="currentColor"`, solid icons `fill="currentColor"`. --}} @php $outline = [ // --- Layout / navigation --- 'squares-2x2' => '', 'bars-3' => '', 'x-mark' => '', 'chevron-right' => '', 'chevron-down' => '', 'chevron-up' => '', 'arrow-up-tray' => '', 'arrow-path' => '', 'arrow-left' => '', 'arrow-trending-up' => '', // --- Theme toggles --- 'sun' => '', 'moon' => '', // --- Common actions --- 'bell' => '', 'magnifying-glass' => '', 'arrow-right-on-rectangle' => '', 'user' => '', 'key' => '', 'ellipsis-horizontal'=> '', 'plus' => '', 'sparkles' => '', 'queue-list' => '', 'funnel' => '', 'megaphone' => '', 'beaker' => '', 'eye' => '', 'eye-slash' => '', 'lock-closed' => '', 'bolt' => '', 'arrow-down-tray' => '', 'printer' => '', 'trash' => '', 'home' => '', 'chat-bubble' => '', // --- Status / feedback --- 'clock' => '', 'check' => '', 'check-circle' => '', 'x-circle' => '', 'check-badge' => '', 'exclamation-triangle' => '', 'information-circle' => '', // --- Sidebar service icons --- 'identification' => '', 'document-check' => '', 'heart' => '', 'pencil-square' => '', 'user-group' => '', 'clipboard-document-check' => '', 'home-modern' => '', 'building-office-2' => '', 'users' => '', 'folder-open' => '', 'scale' => '', 'globe-alt' => '', 'chart-bar-square' => '', 'user-cog' => '', 'shield-check' => '', 'cog-6-tooth' => '', 'cloud-arrow-up' => '', 'document' => '', ]; $solid = [ 'check-circle' => '', 'x-circle' => '', 'exclamation-triangle' => '', 'information-circle' => '', 'check' => '', 'lock-closed' => '', 'bolt' => '', 'check-badge' => '', 'shield-check' => '', ]; $set = $variant === 'solid' ? $solid : $outline; $body = $set[$name] ?? ($outline[$name] ?? null); @endphp @if ($body) @if ($variant === 'solid') merge(['class' => 'w-5 h-5', 'aria-hidden' => 'true']) }} viewBox="0 0 24 24" fill="currentColor"> {!! $body !!} @else merge(['class' => 'w-5 h-5', 'aria-hidden' => 'true']) }} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"> {!! $body !!} @endif @else {{-- Unknown icon name: render a neutral placeholder square so layout never breaks --}} merge(['class' => 'w-5 h-5', 'aria-hidden' => 'true']) }} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"> @endif