Stempel-Stil-Bulk-Apply + Manager-Tab in ProjectSettings

PHASE 1 — Bulk-Apply auf mehrere selektierte Raeume:
- Backend _cmd_apply_raum_stil: leere ids im Patch → nimmt automatisch
  alle aktuell SELEKTIERTEN raum_outlines aus dem Doc (Bulk-Fallback)
- Frontend sendet leere ids fuer die Default-Bulk-Variante. User
  selektiert N Raeume im Viewport → klickt Stil im Properties-Picker →
  Stil wird auf alle angewendet. Inkludiert immer den Properties-Raum.

PHASE 2 — Stil-Manager als Settings-Tab:
- Neuer Tab "Raumstile" in ProjectSettings-Dialog
- Liste aller Stile mit Drag-Reorder (HTML5 native), Inline-Rename,
  Duplicate (content_copy-Icon), Delete (mit Confirm)
- Mini-Preview: zeigt Layout-Struktur (z.B. "nummer·name / funktion / area")
  und der Name wird mit Font/Bold/Italic des Stils gerendert als Vorschau
- Backend _cmd_reorder_raum_stile + _cmd_duplicate_raum_stil in elemente.py
- ProjectSettings-Bridge dispatcht direkt zu elemente.load/save_raum_stempel_stile
  (kein Roundtrip via Elemente-Bridge noetig)
- STILE_UPDATED-Message nach jeder Op pusht die neue Liste zum Dialog
- params bei _open_project_settings enthalten jetzt raumStempelStile + fonts

Bridge-Exports: reorderRaumStile / duplicateRaumStil in rhinoBridge.js
This commit is contained in:
2026-05-26 23:47:38 +02:00
parent f208e7fc00
commit 7fbda8c289
5 changed files with 308 additions and 5 deletions
+4
View File
@@ -252,6 +252,10 @@ export function deleteRaumStil(id) { send('DELETE_RAUM_STIL', { id }) }
export function applyRaumStil(stilId, ids) {
send('APPLY_RAUM_STIL', { stilId, ids })
}
export function reorderRaumStile(ids) { send('REORDER_RAUM_STILE', { ids }) }
export function duplicateRaumStil(id, newName) {
send('DUPLICATE_RAUM_STIL', { id, newName })
}
export function setSectionStyle(enabled, source, color, pattern, scale, rotation,
opts = {}) {
send('SET_SECTION_STYLE', {