{{-- brafa admin — Lucide-style line icon component. Mirror of prototype/admin/icons.jsx. Stroke-width 1.5 throughout. Usage: Sizes used in the prototype: 14 px — inside buttons 16 px — sidebar / topbar 18 px — card headers (default) 24 px+ — hero illustrations --}} @props([ 'name', 'size' => 18, 'stroke' => 'currentColor', 'strokeWidth' => 1.5, ]) @php /** * Each entry is the array of strings that make up the icon * at viewBox 0 0 24 24. Keep this list aligned with prototype/admin/icons.jsx. */ $brafaLucidePaths = [ // ---- sidebar nav glyphs 'layout' => ['M3 3h7v7H3z','M14 3h7v7h-7z','M14 14h7v7h-7z','M3 14h7v7H3z'], 'lock' => ['M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2z','M7 11V7a5 5 0 0 1 10 0v4'], 'users' => ['M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2','M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z','M22 21v-2a4 4 0 0 0-3-3.87','M16 3.13a4 4 0 0 1 0 7.75'], 'file' => ['M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z','M14 2v6h6','M9 13h6','M9 17h6'], 'briefcase' => ['M20 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z','M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2'], 'shield' => ['M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'], 'chart' => ['M3 3v18h18','M7 14l3-3 4 4 5-7'], 'building' => ['M3 21h18','M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16','M9 9h.01','M15 9h.01','M9 13h.01','M15 13h.01','M9 17h6'], 'bed' => ['M2 9v11','M22 12v8','M2 14h20','M2 17h20','M7 9h7a4 4 0 0 1 4 4','M6 9V6'], 'map' => ['M9 4L3 6v15l6-2 6 2 6-2V4l-6 2-6-2z','M9 4v15','M15 6v15'], 'note' => ['M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z','M14 2v6h6'], 'key' => ['M21 2l-9.6 9.6','M15.5 7.5l3 3L22 7l-3-3','M11 11a4 4 0 1 1-5.66 5.66A4 4 0 0 1 11 11z'], 'user' => ['M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2','M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z'], 'activity' => ['M22 12h-4l-3 9L9 3l-3 9H2'], // ---- topbar / actions 'bell' => ['M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9','M10 21a2 2 0 0 0 4 0'], 'search' => ['M21 21l-4.35-4.35','M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z'], 'arrow-left' => ['M19 12H5','M12 19l-7-7 7-7'], 'log-out' => ['M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4','M16 17l5-5-5-5','M21 12H9'], 'chevron-down' => ['M6 9l6 6 6-6'], 'chevron-right'=> ['M9 18l6-6-6-6'], 'chevron-left' => ['M15 18l-6-6 6-6'], 'plus' => ['M12 5v14','M5 12h14'], 'check' => ['M20 6L9 17l-5-5'], 'x' => ['M18 6L6 18','M6 6l12 12'], 'alert-circle' => ['M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z','M12 8v4','M12 16h.01'], 'clock' => ['M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z','M12 6v6l4 2'], 'calendar' => ['M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z','M16 2v4','M8 2v4','M3 10h18'], 'mail' => ['M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z','M22 6l-10 7L2 6'], 'phone' => ['M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'], 'map-pin' => ['M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 1 1 18 0z','M12 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'], 'edit-3' => ['M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7','M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'], 'upload' => ['M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4','M17 8l-5-5-5 5','M12 3v12'], 'refresh-ccw' => ['M3 12a9 9 0 0 1 15.5-6.36L21 8','M21 3v5h-5','M21 12a9 9 0 0 1-15.5 6.36L3 16','M3 21v-5h5'], 'dot' => ['M12 12h.01'], 'more-horizontal' => ['M5 12h.01','M12 12h.01','M19 12h.01'], 'external-link' => ['M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6','M15 3h6v6','M10 14L21 3'], 'eye' => ['M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z','M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'], 'credit-card' => ['M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z','M3 11h18'], 'zap' => ['M13 2L3 14h9l-1 8 10-12h-9l1-8z'], 'trash-2' => ['M3 6h18','M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6','M10 11v6','M14 11v6','M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'], 'play' => ['M6 4l14 8-14 8V4z'], 'power' => ['M18.36 6.64a9 9 0 1 1-12.73 0','M12 2v10'], 'hotel' => ['M3 21h18','M5 21V8l7-5 7 5v13','M9 13h.01','M13 13h.01','M9 17h.01','M13 17h.01'], ]; $key = $name; $paths = $brafaLucidePaths[$key] ?? null; @endphp @if ($paths) merge(['class' => 'lucide lucide-' . $key]) }} width="{{ $size }}" height="{{ $size }}" viewBox="0 0 24 24" fill="none" stroke="{{ $stroke }}" stroke-width="{{ $strokeWidth }}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" style="flex-shrink:0;{{ $attributes->get('style') }}" > @foreach ($paths as $d) @endforeach @else {{-- Unknown icon name — render an empty box so layout doesn't collapse, and log it for the dev. --}} @php(\Log::warning('x-lucide: unknown icon name', ['name' => $name])) @endif