Espace adhérent en deux pages, e-mail de contact, logo sans débordement, types de produits pour les promos

- Espace adhérent : /backend/espace (profil, inscriptions, droit à l'image)
  et /backend/espace/promotions (dépôt et suivi). Bandeau et onglets communs
  (EspaceHeader) avec le nombre d'offres en ligne ; la page promotions ouvre
  sur « Mes promotions en cours », puis le formulaire, puis les offres en
  attente et l'historique. Deux entrées dans le menu, titres de page dédiés,
  revalidation des deux chemins.
- Fiche adhérent : colonne members.contact_email (migration 0013), saisie
  dans l'espace adhérent et la fiche staff ; la fiche publique et le JSON-LD
  affichent contact_email, sinon l'e-mail du compte.
- VitrineImage : sans photo de couverture, le logo est contenu à ~60 % d'un
  cadre à hauteur fixe sur un fond du logo flouté ; le conteneur sans hauteur
  qui laissait le logo déborder est supprimé.
- Promotions : la catégorie devient un type de produit ou de service
  (src/lib/promo-categories.ts, 10 groupes, ~85 entrées) pré-sélectionné
  depuis le métier de l'adhérent, à la place de la liste des métiers.
- Tests : catégories de promo (largeur, unicité, pré-sélection pour chaque
  métier du référentiel).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HDbKbJrPWweXXYSxA8MXW7
This commit is contained in:
Claude committed 2026-09-06 09:02:27 +00:00
1 parent 8b46cd6316
commit 23d1d14a49
18 files changed
+2289 -278

No files matched your search

+50
View File
@@ -948,6 +948,56 @@ img {
color: var(--muted);
margin-bottom: 6px;
}
/* Onglets de l'espace adhérent (Profil / Promotions), sous le bandeau. */
.espace-tabs {
display: flex;
gap: 4px;
background: #fff;
border: 1px solid #e6dcc6;
border-top: none;
border-radius: 0 0 16px 16px;
padding: 6px;
}
.espace-tab {
flex: 1;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 11px 14px;
border-radius: 11px;
font-family: "Bricolage Grotesque", "Public Sans", system-ui, sans-serif;
font-weight: 700;
font-size: 14.5px;
color: var(--muted);
text-decoration: none;
transition: background 0.15s ease, color 0.15s ease;
}
.espace-tab:hover {
background: #faf7ef;
color: var(--brown);
}
.espace-tab.active {
background: var(--gold);
color: #33291D;
}
.espace-tab__badge {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 22px;
height: 22px;
padding: 0 7px;
border-radius: 999px;
background: #1f8a5b;
color: #fff;
font-size: 12px;
font-weight: 800;
}
.espace-tab.active .espace-tab__badge {
background: #33291D;
color: #fff;
}
/* Suggestions de tags : pastilles cliquables sous le champ. */
.tag-suggestions {
display: flex;