Panel-Konsistenz: Gestaltung context-aware + Tabellen-Cleanup
Gestaltung: - Backend detektiert geometryKind (curve / curveOpen / 3d / mixed), ignoriert DOSSIER-Source-Curves (wand_axis etc.) damit die Klassifikation einer Wand-Selektion (Axis + Volume) als reines 3D durchgeht. - UI zeigt sektion-spezifische Section-Heads: 2D-Curve → Fill+Pen, 3D-Solid → Section Style+Boundary. Section Style + Fill nutzen jetzt einen gemeinsamen HatchEditor (gleiche Controls). - _set_section_style schreibt per-Object SectionHatchIndex/Scale/ Rotation/Color via _try_set_attr-Multifallback. - Selection-Summary liest dieselben Properties zurueck. - ColorBar als Pill (borderRadius 999) statt eckig. - "Attribute"-Header oben raus (war alt + redundant). Ebenen / Zeichnungsebenen: - Aktive Zeile wieder als Pill (borderRadius 999) — aber ohne Margin/Shift, Inhalt springt nicht. Kein bold-text-change mehr. - Linker borderLeft komplett raus — vorher leere graue Spalte am Panel-Rand sichtbar. - Inhalt mehr nach links (Padding 8/6 statt 12). - Zeilen-minHeight 24, kompaktere Icons. - EbenenSettings: Ebene-Picker auf BarCombo. - GeschossManager: Gebaeudehoehe-Zeile raus, Stift→Settings-Icon. ElementeApp: - Alle btn-contained/btn-outlined → BarToggle (Wand-Aufbau, Raum- Align, Treppe-Lage/Modus, Oeffnung-Ref/Rahmen/Fluegel/Glas, AutoOverride). - ReferenzSelector → BarToggle. - "Neues Element"-Container ohne Box-Border, Header-Slot beherbergt Projektuebersicht-Pill statt label. - Property-Labels (UK/OK/Dicke/...) von text-muted auf text-secondary (war zu blass). - Gruener Accent-Border um Properties-Containern → normaler border. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -51,9 +51,8 @@ function ZeichnungsebeneRow({
|
||||
padding: '1px 12px',
|
||||
margin: 0,
|
||||
background: active ? 'var(--active-dim)' : 'var(--bg-item)',
|
||||
borderRadius: 0,
|
||||
borderLeft: '3px solid ' + (active ? 'var(--accent)' : 'transparent'),
|
||||
borderBottom: '1px solid var(--border-light)',
|
||||
borderRadius: active ? 999 : 0,
|
||||
borderBottom: active ? '1px solid transparent' : '1px solid var(--border-light)',
|
||||
cursor: 'pointer',
|
||||
userSelect: 'none',
|
||||
minHeight: 24,
|
||||
@@ -67,7 +66,7 @@ function ZeichnungsebeneRow({
|
||||
><Icon name={eyeIcon} size={12} /></button>
|
||||
|
||||
<span style={{
|
||||
fontWeight: active ? 700 : 500,
|
||||
fontWeight: 500,
|
||||
fontSize: 11,
|
||||
color: active ? 'var(--active-light)' : 'var(--text-label)',
|
||||
flex: 1, minWidth: 0,
|
||||
@@ -128,9 +127,6 @@ export default function GeschossManager({
|
||||
const [ctxMenu, setCtxMenu] = useState(null) // { x, y, id }
|
||||
|
||||
const sorted = [...zeichnungsebenen].reverse()
|
||||
const gesamthoehe = zeichnungsebenen
|
||||
.filter(z => z.isGeschoss)
|
||||
.reduce((s, z) => s + (z.hoehe ?? 0), 0)
|
||||
|
||||
const addQuick = () => {
|
||||
// Standard: NICHT-Geschoss-Zeichnungsebene (z.B. Möblierung, Bemassung,
|
||||
@@ -235,19 +231,6 @@ export default function GeschossManager({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style={{
|
||||
display: 'flex', justifyContent: 'space-between', alignItems: 'center',
|
||||
padding: '3px 14px',
|
||||
background: 'var(--bg-section)',
|
||||
borderBottom: '1px solid var(--border-light)',
|
||||
}}>
|
||||
<span className="label-xs">Gebäudehöhe</span>
|
||||
<span style={{ fontSize: 11, fontFamily: 'var(--font-mono)', color: 'var(--text-secondary)' }}>
|
||||
{gesamthoehe.toFixed(2)} m
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
{/* Master-Row: Master-Eye links + Master-Lock rechts (analog
|
||||
EbenenManager). */}
|
||||
<div style={{
|
||||
|
||||
Reference in New Issue
Block a user