{# # ============================================================================ # MOLECULE: OPTION CARD # ============================================================================ # Carte sélectionnable (icône + titre + description) utilisée dans les # groupes de choix exclusifs : visibilité, mode de génération, etc. # # COMPOSITION # ----------- # - _atoms/icon/icon.html.twig # # PARAMÈTRES # ---------- # icon : string Nom de l'icône Solar (requis) # title : string Titre principal (requis) # description : string Texte secondaire (optionnel) # selected : bool État sélectionné (défaut : false) # disabled : bool État désactivé (défaut : false) # disabledHint : string Texte alternatif quand disabled = true (optionnel) # attr : object Attributs HTML additionnels (data-*, etc.) (optionnel) # class : string Classes additionnelles (optionnel) # ============================================================================ #} {% set icon = icon ?? null %} {% set title = title ?? '' %} {% set description = description ?? null %} {% set selected = selected ?? false %} {% set disabled = disabled ?? false %} {% set disabledHint = disabledHint ?? null %} {% set attr = attr ?? {} %} {% set class = class ?? '' %} {% set stateClasses = selected ? 'border-primary bg-primary/5 cursor-pointer' : (disabled ? 'border-gray-200 bg-white opacity-50 cursor-not-allowed' : 'border-gray-200 bg-white cursor-pointer hover:border-primary/40 hover:bg-primary/5 hover:-translate-y-0.5 hover:shadow-sm') %} {% set iconColor = selected ? 'text-primary' : (disabled ? 'text-gray-300' : 'text-gray-400') %}