Ajoute icône/largeur/arrondi/gras/majuscules à l'étiquette (badge)
Nouveaux attributs par élément (svg_markup/width/border_radius/bold/ uppercase, tous vides ou False par défaut = comportement historique inchangé), réglables depuis le panneau Propriétés — même esprit que bold/align/color déjà présents sur titre/paragraphe. Fixer une largeur implique toujours de sortir de l'étirement pleine largeur par défaut (align-self:flex-start posé automatiquement avec elle). Le kicker "Module obligatoire" du thème Sécurité Incendie s'en sert maintenant (icône flamme, largeur au contenu, arrondi complet, gras, majuscules) pour être conforme à la maquette d'origine — la puce décorative CSS générique qui la remplaçait disparaît du thème. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
1296edc2f8
commit
e03bea39c5
@@ -1800,11 +1800,25 @@ function forgeDocRenderBadgeProps(panel, el) {
|
||||
panel.innerHTML = `
|
||||
${forgeDocPropsHeader('étiquette')}
|
||||
<div class="docField"><label for="docBadgeContent">Contenu</label><input type="text" id="docBadgeContent" value="${forgeDocEscapeHtml(a.content || '')}"></div>
|
||||
<div class="docField"><label for="docBadgeSvg">Icône SVG (optionnel)</label><textarea id="docBadgeSvg" rows="3">${forgeDocEscapeHtml(a.svg_markup || '')}</textarea></div>
|
||||
<div class="docField">
|
||||
<span class="docFieldLabel">Mise en forme</span>
|
||||
<div class="docToolbarRow">
|
||||
<button type="button" class="docFmtBtn ${a.bold ? 'is-active' : ''}" id="docBadgeBoldBtn" title="Gras">B</button>
|
||||
<button type="button" class="docFmtBtn ${a.uppercase ? 'is-active' : ''}" id="docBadgeUppercaseBtn" title="Majuscules">AA</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="docField"><label for="docBadgeWidth">Largeur (optionnel, ex. fit-content, 220px)</label><input type="text" id="docBadgeWidth" value="${forgeDocEscapeHtml(a.width || '')}" placeholder="pleine largeur"></div>
|
||||
<div class="docField"><label for="docBadgeRadius">Arrondi des bords (optionnel, ex. 7px, 999px)</label><input type="text" id="docBadgeRadius" value="${forgeDocEscapeHtml(a.border_radius || '')}"></div>
|
||||
${forgeDocDeleteButtonHtml()}
|
||||
`;
|
||||
document.getElementById('docBadgeContent').addEventListener('change', (e) => {
|
||||
forgeDocUpdateAttributes(el.id, { ...el.attributes, content: e.target.value });
|
||||
});
|
||||
function patch(partial) { forgeDocUpdateAttributes(el.id, { ...el.attributes, ...partial }); }
|
||||
document.getElementById('docBadgeContent').addEventListener('change', (e) => patch({ content: e.target.value }));
|
||||
document.getElementById('docBadgeSvg').addEventListener('change', (e) => patch({ svg_markup: e.target.value.trim() }));
|
||||
document.getElementById('docBadgeBoldBtn').addEventListener('click', () => patch({ bold: !a.bold }));
|
||||
document.getElementById('docBadgeUppercaseBtn').addEventListener('click', () => patch({ uppercase: !a.uppercase }));
|
||||
document.getElementById('docBadgeWidth').addEventListener('change', (e) => patch({ width: e.target.value.trim() }));
|
||||
document.getElementById('docBadgeRadius').addEventListener('change', (e) => patch({ border_radius: e.target.value.trim() }));
|
||||
}
|
||||
|
||||
function forgeDocRenderCarteProps(panel, el) {
|
||||
|
||||
@@ -61,10 +61,15 @@
|
||||
background: linear-gradient(90deg, var(--theme-safety-red), var(--theme-hazard-amber));
|
||||
}
|
||||
|
||||
/* ---- Étiquette (badge) : encart compact type avertissement/repère,
|
||||
avec une puce décorative (::before, glyphe générique — le kind
|
||||
"badge" du moteur ne porte aucun slot d'icône, voir
|
||||
document_engine/rendering/render_document_element.py::_render_badge). ---- */
|
||||
/* ---- Étiquette (badge) : encart compact type avertissement/repère.
|
||||
L'icône est maintenant un vrai contenu (attribut svg_markup, voir
|
||||
_render_badge) plutôt qu'un glyphe CSS décoratif — un thème n'a plus
|
||||
qu'à dimensionner l'icône fournie, jamais à en inventer une. Largeur/
|
||||
arrondi/gras/majuscules restent des attributs PAR ÉLÉMENT (voir
|
||||
element_kind_labels.element_default_attributes) : ce thème ne pose
|
||||
ici que l'apparence par défaut d'un badge SANS ces réglages (pleine
|
||||
largeur, 7px d'arrondi) — le contenu-seed du kicker "Module
|
||||
obligatoire" les override lui-même (voir securite_incendie_seed.py). ---- */
|
||||
.docBadge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
@@ -79,10 +84,16 @@
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.docBadge::before {
|
||||
content: "●";
|
||||
.docBadgeIcon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
color: var(--theme-safety-red);
|
||||
font-size: 9px;
|
||||
}
|
||||
|
||||
.docBadgeIcon svg {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
}
|
||||
|
||||
/* ---- Liste à puces / numérotée : coche sécurité / pastille panneau ---- */
|
||||
|
||||
Reference in New Issue
Block a user