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:
co-authored by
Claude Sonnet 5
parent
e03bea39c5
commit
6c7675fad0
@@ -5,6 +5,7 @@ défaut posés à la création de chaque type."""
|
||||
|
||||
from typing import Any
|
||||
|
||||
from ..rendering.box_style import BOX_DEFAULTS, default_border
|
||||
from .association_config import DEFAULT_ASSOCIATION_CONFIG
|
||||
from .memory_config import DEFAULT_MEMORY_CONFIG
|
||||
from .mots_config import DEFAULT_MOTS_CONFIG
|
||||
@@ -44,12 +45,26 @@ _TEXT_DEFAULTS = {
|
||||
"bold": False,
|
||||
"italic": False,
|
||||
"underline": False,
|
||||
"strikethrough": False,
|
||||
"align": "left",
|
||||
"color": "var(--forge-text)",
|
||||
# Vide par défaut = pleine largeur de .docPageContent (comportement
|
||||
# historique) ; une valeur CSS libre (ex. "60ch", "480px") restreint
|
||||
# la largeur du bloc — voir render_document_element._render_text.
|
||||
"max_width": "",
|
||||
# Vides par défaut = valeurs du préréglage `style` inchangées (voir
|
||||
# _STYLE_PRESETS dans render_document_element.py) — une valeur
|
||||
# explicite les remplace (retour utilisateur du 26/09/2026, audit des
|
||||
# réglages manquants).
|
||||
"font_family": "",
|
||||
"font_size": "",
|
||||
"line_height": "",
|
||||
"letter_spacing": "",
|
||||
"text_transform": "none",
|
||||
"text_shadow": "",
|
||||
# Attributs de boîte partagés avec d'autres kinds (padding/margin/
|
||||
# background_color/border_radius/align_self) — voir rendering/box_style.py.
|
||||
**BOX_DEFAULTS,
|
||||
}
|
||||
|
||||
|
||||
@@ -58,9 +73,17 @@ def element_default_attributes(kind: str) -> dict[str, Any]:
|
||||
docs/plan/PLAN.md §3.3/§3.4/§3.5 pour la liste des propriétés
|
||||
éditables par panneau, ici juste leur valeur de départ."""
|
||||
if kind == "titre":
|
||||
return {"content": "Nouveau titre", "style": "titre1", **_TEXT_DEFAULTS}
|
||||
# "border" copié à chaque appel (jamais un dict partagé/muté par
|
||||
# référence entre plusieurs éléments — même raison que la copie
|
||||
# de "questions" pour le quiz plus bas).
|
||||
return {"content": "Nouveau titre", "style": "titre1", **_TEXT_DEFAULTS, "border": default_border()}
|
||||
if kind == "paragraphe":
|
||||
return {"content": "Nouveau paragraphe de texte.", "style": "paragraphe", **_TEXT_DEFAULTS}
|
||||
return {
|
||||
"content": "Nouveau paragraphe de texte.",
|
||||
"style": "paragraphe",
|
||||
**_TEXT_DEFAULTS,
|
||||
"border": default_border(),
|
||||
}
|
||||
if kind == "image":
|
||||
# svg_markup (optionnel) prend le pas sur src au rendu (voir
|
||||
# render_document_element._render_image) — un contenu vectoriel
|
||||
|
||||
Reference in New Issue
Block a user