Audit complet de mise en forme — Titre/Paragraphe (1er élément du tableau)

Nouveau module partagé document_engine/rendering/box_style.py
(padding/margin/background_color/border_radius/border par côté/height/
min-height/max-height/min-width/box-shadow/opacity/align_self) —
réutilisable tel quel par tous les kinds suivants du tableau d'audit.

Titre/Paragraphe gagnent : barré, police de caractère, taille de
police, hauteur de ligne, espacement des lettres, majuscules/
minuscules/capitales, ombre du texte, et tous les attributs de boîte
partagés ci-dessus. Interface entièrement à base de curseurs/cases à
cocher/listes déroulantes/sélecteurs de couleur natifs — plus aucun
champ de texte libre pour une valeur CSS (retour utilisateur).

Deux bugs transversaux corrigés au passage (concernent tout
l'éditeur) :
- Le panneau Propriétés n'était jamais reconstruit après un clic sur un
  bouton (gras/alignement/segments...) — il fallait recharger la page
  pour voir l'état réel. Corrigé dans forgeDocUpdateAttributes, point
  d'entrée unique de toute mise à jour d'attribut.
- Les cases à cocher et curseurs héritaient à tort le style d'un champ
  de texte (padding/bordure/fond/largeur 100%) via la règle générique
  .docField input.

Ajoute docs/plan/AUDIT_MISE_EN_FORME.md : suivi de l'audit élément par
élément (Titre/Paragraphe traité, Image ensuite).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-26 09:25:30 +02:00
co-authored by Claude Sonnet 5
parent e03bea39c5
commit 6c7675fad0
10 changed files with 942 additions and 25 deletions
+9 -4
View File
@@ -45,10 +45,15 @@ l'affichage/debug hors bibliothèque).
Attributs posés à la création d'un élément de ce type (voir
`document_engine/elements/add_document_element.py`).
- **Retour** : un dict d'attributs par défaut, dépendant du `kind` :
texte (`content/style` + `bold/italic/underline/align/color/max_width` —
`max_width` vide par défaut = pleine largeur de `.docPageContent`,
une valeur CSS libre ex. `"60ch"`/`"480px"` restreint le bloc, voir
`rendering.md`),
texte (`content/style` + `bold/italic/underline/strikethrough/align/
color/max_width/font_family/font_size/line_height/letter_spacing/
text_transform/text_shadow` + les attributs de boîte partagés
`padding/margin/background_color/border_radius/height/min_height/
max_height/min_width/box_shadow/opacity/align_self/border`, voir
`rendering/box_style.py` — tous vides, `False` ou `"none"`/`"stretch"`
par défaut = comportement historique inchangé ; `max_width`
restreint la largeur du bloc, une valeur CSS libre ex. `"60ch"`/
`"480px"`, voir `rendering.md`),
image (`src/alt/svg_markup` — `svg_markup` prend le pas sur `src` au
rendu, voir rendering.md), bouton (`label/target/
attachment_stored_name/attachment_filename` — la pièce jointe est