@props([ 'active' => null, // App\Enums\GalleryCategory — categoría activa (tipada) o // null (índice de galería): ningún ítem del nav se marca y el // tema/copy caen al default (pools / "Inspiration Gallery"). 'image' => null, 'alt' => '', 'title' => null, // override del h1; default = label de la categoría activa 'subtitle' => null, // override del párrafo; default = copy por categoría ]) @php use App\Enums\GalleryCategory; // La lista de categorías sale de la ÚNICA fuente (el enum), no de literales. $categories = GalleryCategory::all(); // Tema del tint: la categoría activa o, sin activa (índice), pools por defecto. $theme = $active?->value ?? GalleryCategory::Pools->value; $title ??= $active?->label() ?? 'Inspiration Gallery'; $subtitle ??= $active ? 'Real South Florida ' . strtolower($active->label()) . ' projects — designed and built to impress.' : 'Dreams brought to life.'; @endphp {{-- Hero de galería v2: MISMA estructura que heroes/home.blade.php (imagen full-bleed + .hero-tint + bloque de contenido en container/flex-1/pb-12), pero con imagen ESTÁTICA (sin Swiper) y, donde home tiene los bullets de paginación, acá va el nav de categorías (reusado tal cual del hero de galería anterior — heroes/gallery.blade.php, que se conserva intacto). Color del tint por categoría: home decide el tema con CSS :has() porque el slide activo lo mueve el DOM del Swiper en runtime; acá la categoría activa ya la sabe PHP al renderizar, así que no hace falta :has() — la sección lleva data-theme="{{ $active->value }}" y app.css setea --hero-tint-color por ese atributo (ÚNICA fuente de color; el nav/select de abajo, reusado del hero viejo, sigue leyendo --gallery-accent, que dentro de [data-theme] es solo un alias de --hero-tint-color — ver app.css, no hay valor duplicado). --}}