/** * Affichage du sujet d'examen (consigne + documents) — purement présentationnel. * * Depuis la refonte /sujets (2026-04-21), le choix du sujet se fait sur une * page dédiée (SujetsPage). Ce composant n'affiche que le sujet sélectionné. * * Le contenu est admin-curé (pas du texte IA) → plain-text avec whitespace-pre-wrap, * pas de react-markdown. * * Règle H : purement présentationnel — le sujet vient du parent. * Règle L : tokens Direction H exclusivement. */ import { Badge } from '@/shared/ui/Badge' import { Card } from '@/shared/ui/Card' import type { SujetData } from '@/entities/production/types' interface Props { sujet: SujetData | null } function DocumentBlock({ titre, texte }: { titre: string | null; texte: string | null }) { if (!titre && !texte) return null return (
{titre &&

{titre}

} {texte &&

{texte}

}
) } export function SujetDisplay({ sujet }: Props) { if (!sujet) return null return (
{sujet.role && (
Rôle {sujet.role}
)} {sujet.contexte && (

{sujet.contexte}

)}

Consigne

{sujet.consigne}

) }