// Inhalts-Panel „Werkzeuge" — die vertikale Werkzeug-Palette (ArchiCAD-/ // Vectorworks-Stil): eine Zeile je Zeichenwerkzeug, jeweils Icon + Name, das // aktive Werkzeug hervorgehoben. Darunter — wenn das Wand-Werkzeug aktiv ist — // ein Wandtyp-Auswahlfeld, und ein kompakter Fang-Abschnitt mit Checkboxen. // // Daten/Handler kommen über usePanelHost (kein Prop-Drilling). Die Werkzeug- // Liste und ihre Metadaten stammen aus der Tools-Registry (TOOL_ORDER/getTool). // // Bezeichner englisch, UI-Text/Kommentare deutsch (CONVENTIONS.md). Alle sichtbaren // Texte über t(...). import { t } from "../i18n"; import { usePanelHost } from "./host"; import type { ToolId } from "./host"; import { TOOL_ORDER, getTool } from "../tools/tools"; // ── Icons ────────────────────────────────────────────────────────────────── // Keine echten Asset-Icons vorhanden: schlichte Inline-SVG-Glyphen je Werkzeug // (~16×16, stroke=currentColor, fill=none), damit das Icon die Textfarbe der // Zeile übernimmt. function ToolIcon({ id }: { id: ToolId }) { const common = { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 1.4, strokeLinecap: "round" as const, strokeLinejoin: "round" as const, }; switch (id) { case "select": // Pfeil-Cursor. return ( ); case "wall": // Zwei parallele Linien (Wandband). return ( ); case "ceiling": // Deckenplatte: gefülltes Rechteck mit Diagonal-Schraffur (Slab-Symbol). return ( ); case "window": // Fenster: Rahmen-Rechteck mit Mittelsprosse (Verglasung). return ( ); case "door": // Tür: Pfosten + Türblatt mit Schwenkbogen. return ( ); case "stair": // Treppensymbol: gestufte Linie (Tritte) + Lauflinie mit Pfeil. return ( ); case "room": // Raum: umschlossene Fläche (Rechteck) mit Flächen-Marke (kleines Kreuz). return ( ); case "line": // Einzelne Diagonale. return ( ); case "polyline": // Dreisegmentiger Zickzack. return ( ); case "rect": // Rechteck-Umriss. return ( ); default: return null; } } // ── Panel ──────────────────────────────────────────────────────────────────── export function ToolsPanel() { const host = usePanelHost(); const snap = host.snap; return (