"""Tokens de marque luxury · CLAUDE.md contrainte #4 (source unique de vérité). Dark + doré : `#0a0a12` fond · `#f0b429` accent doré. Typographies : Fraunces (titres) + Cormorant Garamond (corps éditorial). Ces constantes sont importées par le générateur ET vérifiées par la baseline QA Playwright (tests/e2e/_shared/contract.ts) — garder les valeurs synchronisées. """ from __future__ import annotations # Couleurs canoniques (contrainte #4). COLOR_BG = "#0a0a12" # fond dark COLOR_ACCENT = "#f0b429" # doré COLOR_INK = "#f5f3ee" # texte clair sur fond dark COLOR_MUTED = "#8b8778" # texte secondaire # Typographies canoniques (contrainte #4). FONT_DISPLAY = "Fraunces" FONT_BODY = "Cormorant Garamond" # Devises canoniques (contrainte #10 · USD + DOP). DEVISE_PRIMAIRE = "USD" DEVISE_SECONDAIRE = "DOP" # Libellés de statut affichés sur le site public (FR par défaut). STATUT_LABELS = { "disponible": "Disponible", "en_developpement": "En développement", "bientot": "Bientôt", "en_processus": "En processus", } # Statuts pour lesquels on affiche « Prochainement · Détails à venir » # au lieu d'une grille de prix (jamais de prix inventé — contrainte #6). STATUTS_SANS_PRIX = {"en_developpement", "bientot", "en_processus"} def statut_label(statut: str) -> str: return STATUT_LABELS.get(statut, statut)