# Kontextmenü & Anzeige-Modi — 1:1 wie DOSSIER > Quelle: DOSSIER `src/components/ContextMenu.jsx` + `DrawingLevelsApp.jsx`/Ebenen-Panel. > Maus-Schema (unsere Festlegung): **Mitte = navigieren** (Plan Pan / 3D Orbit, Shift+Mitte Pan) · > **Links = Auswahl** · **Rechts = Kontextmenü** · **Rad = Zoom**. ## ContextMenu-Komponente (generisch, wiederverwendbar) `ContextMenu({ x, y, items, onClose, title })` - **item**: `{ label, icon?, onClick, disabled?, danger?, shortcut?, divider? }` - Fixed-Position mit Rand-Clamp (4px); min-width 200px; Radius 13px; weicher Schatten; Mount-Animation `scale(.94) translateY(-5px)` 100ms; Item-Hover = `--accent-dim`; `danger` = rote Schrift; `divider` = 1px Trenner; Titel oben (caps, 10px, muted). - **Schließen:** Klick außerhalb · Escape · erneuter Rechtsklick · nach Item-Klick. - z-index ~300 (unter Modals). ## Ebenen-Kontextmenü (Rechtsklick auf Ebenen-Zeile) 1. **Ebeneneinstellungen…** (`settings`) — Ebenen-Dialog *(Rhino-spez. → vorerst Stub)* 2. — Trenner — 3. **Sub-Ebene hinzufügen…** (`add`) 4. **Selektion hierher übertragen** (`move_down`) *(braucht Auswahl → später)* 5. — Trenner — 6. **Duplizieren** (`content_copy`) — Klon mit Suffix „ KOPIE" 7. **Eigenschaften kopieren** (`colorize`) — Farbe + Linienstärke 8. **Eigenschaften einfügen** (`format_paint`) — disabled wenn Clipboard leer 9. — Trenner — 10. **Löschen** (`delete`, danger) — disabled wenn ≤1 Ebene Titel = Ebenenname/-code. ## Zeichnungsebenen-Kontextmenü (Rechtsklick auf Geschoss/Schnitt/Zeichnung) 1. **Einstellungen…** (`settings`) 2. — Trenner — 3. **Duplizieren** (`content_copy`) — Klon mit Suffix „ Kopie" 4. — Trenner — 5. **Löschen** (`delete`, danger) — disabled wenn ≤1 Ebene Titel = Name. ## „+"-Menü (Zeichnungsebenen) **Geschoss** (`layers`) · **Schnitt / Ansicht** (`content_cut`) · — · **Zeichnung** (`edit_note`) ## Anzeige-Modi (Dropdown oben im Panel) — **5 Modi** (für Ebenen UND Zeichnungsebenen) | Wert | Label | Verhalten | |---|---|---| | `all_force` | **Alle anzeigen** | alle erzwungen sichtbar; Augen gedimmt; Klick aufs Auge → wechselt zu „Ausgewählte" | | `all` | **Ausgewählte** | sichtbar nach per-Zeile-Flag | | `active` | **Nur aktive** | nur aktive sichtbar; andere stark gedimmt | | `grey` | **Andere grau** | aktive normal, andere 45% (Sichtbarkeits-Flags gelten) | | `grey_locked` | **Andere grau & gesperrt** | wie grey + andere gesperrt | Regel: Klick aufs Auge in `all_force`/`active` schaltet automatisch auf `all`. *(Hinweis: Panel-System-Workflow hatte vorerst nur 3 Modi — beim Kontextmenü-Build auf diese 5 angleichen.)* ## Migration (was sofort geht / was Stub bleibt) - Sofort: ContextMenu-Komponente 1:1; Duplizieren, Eigenschaften kopieren/einfügen, Löschen, +Menü, 5 Anzeige-Modi (alles reine JSON-State-Operationen). - Stub/später: „Ebeneneinstellungen…"/„Einstellungen…" (Dialog), „Sub-Ebene hinzufügen", „Selektion hierher übertragen".