Retour utilisateur du 23/09/2026 : "si il n'y a plus de place sur la
page il faut automatiquement créer une autre page [et y] coller le
contenu et amener l'utilisateur sur la page" — remplace le
comportement précédent (overflow:hidden, contenu clipsé, à gérer
manuellement).
- Nouvelle capacité serveur : document_engine.move_document_element_to_page
(+ route POST /document/<slug>/elements/<id>/move-to-page) déplace un
élément (et ses enfants de rangée en cascade) vers une AUTRE page —
jusqu'ici move_document_element ne gérait que le réordonnancement DANS
la même page.
- Client : forgeDocCheckPageOverflow, appelée à la fin de CHAQUE
forgeDocRefreshCanvas (point d'entrée unique après toute mutation) :
mesure le débordement réel (scrollHeight vs clientHeight), trouve le
premier élément top-niveau qui dépasse le bas de la page
(getBoundingClientRect, tient compte du zoom), déplace cet élément et
tout ce qui le suit vers une page neuve, puis y bascule l'utilisateur.
Jamais déclenché sur une page mini-jeu (toujours seule sur sa page,
aucun débordement pertinent à corriger).
Vérifié par un test jsdom dédié (géométrie simulée via
getBoundingClientRect/scrollHeight/clientHeight, jsdom n'ayant pas de
vrai moteur de mise en page) : ordre des déplacements, page inchangée
si le contenu tient, page mini-jeu jamais scindée. 6 nouveaux tests
Python (document_engine + route). 711/711 tests passent.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>