{{--
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)
@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