{{-- Composant PropertyCard — porte fidele de maquettes/PropertyCard.dc.html. Reutilise sur la page Acheter (grille de resultats + biens similaires sur la page Bien), et sera reutilise sur l'Accueil dans un lot ulterieur. Prop : - bien (array) : structure d'un bien telle que renvoyee par CrmClientInterface::biens() / ::bien() (voir app/Services/Crm/fixtures/biens.php pour les champs disponibles). Champs utilises ici : id, localite, lot, prix, surface_habitable, chambres, terrain, photo_principale. Bouton favori : coeur togglable en JS vanilla (public/js/site.js), persistance dans localStorage (cle 'biome.favoris', tableau d'ids) — pas de compte utilisateur, comme dans la maquette (etat local au composant DCLogic, ici reporte sur localStorage cote client). --}} @props(['bien']) @php // Titre "Localite - Lot N" compose cote reader (MiroirCrmClient) ; repli si absent // (fixtures / anciennes donnees). $titre = $bien['titre'] ?? ($bien['localite'].' - Lot '.$bien['lot']); $aPhoto = ! empty($bien['photo_principale']); @endphp
{{-- Lien "etale" : toute la carte est cliquable vers la fiche du bien. Les elements interactifs (favori, boutons) passent au-dessus via z-index. tabindex=-1 : pas un 2e arret clavier (le lien "Voir le bien" en fournit deja un). --}}
@if ($aPhoto) {{-- object-position vers le haut : la vignette reste en 'cover' (remplit toute la carte, aucune bande), mais on ancre le cadrage en haut pour ne plus couper les TOITS des maisons (le rognage se fait davantage sur le bas / le terrain). Valeur ajustable (0% = garde tout le haut, 50% = centre). --}} {{ $titre }} @else
{{ $titre }}
@endif

{{ $titre }}

{{ $bien['prix'] }}
{{ $bien['surface_habitable'] }} {{ $bien['chambres'] }} ch. {{ $bien['terrain'] }}
Voir le bien