La page a une largeur/un ratio fixes côté moteur (960px, A4 paysage) —
sans mise à l'échelle, elle débordait verticalement de la fenêtre
d'aperçu (plus petite qu'un canevas d'édition en plein écran) et
défilait/rognait au lieu de tenir entière. Un script calcule maintenant
le facteur d'échelle qui la fait toujours tenir en entier (transform:
scale, jamais un agrandissement au-delà de 1), recalculé au
redimensionnement.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Trois retours distincts :
- Plus de présélection du thème déjà appliqué à l'ouverture — un choix
toujours explicite de l'utilisateur.
- L'état vide (.docTemplatePreviewEmpty) restait visible EN MÊME TEMPS
que l'iframe une fois un thème sélectionné : `display:flex` posé
directement dessus battait le `display:none` natif de [hidden]
(même bug déjà rencontré pour .docSidebarTabPanel[hidden] plus tôt
dans le projet) — les deux se partageaient flex:1, coupant l'aperçu
en deux au lieu de lui laisser tout l'espace.
- L'aperçu ne montrait que la première page du modèle sans aucun moyen
d'en voir les autres : la route /document/<slug>/theme/<id>/preview
rend désormais TOUTES les pages, une barre Précédent/Suivant
(entièrement côté client, aucun aller-retour serveur supplémentaire)
permet de naviguer entre elles.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Nouveau bouton dans le topbar de l'éditeur, à côté d'Aperçu, qui ouvre
une modale listant les thèmes du catalogue (document_engine/themes/).
Cliquer un thème charge un VRAI aperçu (rendu serveur réel dans un
iframe, jamais une resucée CSS côté client) avec le choix de garder le
contenu actuel ou de le remplacer par le contenu de démonstration du
modèle.
Architecture pensée pour une centaine de thèmes futurs : chaque thème
est une feuille de style externe (static/document/themes/<id>.css) qui
habille les classes fixes du moteur, jamais du code qui en changerait
la structure. Premier thème implémenté pour valider le mécanisme :
"Sécurité Incendie" (6 pages de contenu réel, quiz inclus).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>