e.stopPropagation()}
- style={{
- width: '90%', maxWidth: 640, maxHeight: '80vh',
- background: 'var(--bg-dialog)',
- border: '1px solid var(--border)',
- borderRadius: 12,
- display: 'flex', flexDirection: 'column',
- overflow: 'hidden',
- color: 'var(--text-primary)',
- fontFamily: 'var(--font)', fontSize: 11,
- boxShadow: '0 8px 32px rgba(0,0,0,0.4)',
- }}>
- {/* Header */}
-
-
-
- Symbol / Objekt einfuegen
-
-
-
+ const innerStyle = embedded ? {
+ width: '100%', height: '100%',
+ background: 'var(--bg-dialog)',
+ display: 'flex', flexDirection: 'column',
+ overflow: 'hidden',
+ color: 'var(--text-primary)',
+ fontFamily: 'var(--font)', fontSize: 11,
+ } : {
+ width: '90%', maxWidth: 640, maxHeight: '80vh',
+ background: 'var(--bg-dialog)',
+ border: '1px solid var(--border)',
+ borderRadius: 12,
+ display: 'flex', flexDirection: 'column',
+ overflow: 'hidden',
+ color: 'var(--text-primary)',
+ fontFamily: 'var(--font)', fontSize: 11,
+ boxShadow: '0 8px 32px rgba(0,0,0,0.4)',
+ }
- {/* Toolbar */}
-
- setSearch(ev.target.value)}
- placeholder="Suchen (Name oder Tag)…"
- autoFocus
- style={{ flex: 1, height: BAR_H, padding: '0 12px',
- fontSize: 11 }} />
- setTypeFilter('all')} />
- setTypeFilter('symbol')} />
- setTypeFilter('object')} />
-
+ const content = (
+
+ {/* Header */}
+
+
+
+ Symbol / Objekt einfuegen
+
+
+
- {/* Grid */}
-
- {filtered.length === 0 ? (
-
- {placable.length === 0
- ? 'Keine Symbole/Objekte in der Library.'
- : 'Nichts gefunden.'}
-
- ) : (
-
- {filtered.map(it => (
-
- ))}
-
- )}
-
+ {/* Toolbar */}
+
+ setSearch(ev.target.value)}
+ placeholder="Suchen (Name oder Tag)…"
+ autoFocus
+ style={{ flex: 1, height: BAR_H, padding: '0 12px',
+ fontSize: 11 }} />
+ setTypeFilter('all')} />
+ setTypeFilter('symbol')} />
+ setTypeFilter('object')} />
+
- {/* Footer */}
-
- Klick auf Item → im Viewport Punkt waehlen zum Platzieren.
- {filtered.length > 0 && (
- · {filtered.length} / {placable.length}
- )}
-
+ {/* Grid */}
+
+ {filtered.length === 0 ? (
+
+ {placable.length === 0
+ ? 'Keine Symbole/Objekte in der Library.'
+ : 'Nichts gefunden.'}
+
+ ) : (
+
+ {filtered.map(it => (
+
+ ))}
+
+ )}
+
+
+ {/* Footer */}
+
+ Klick auf Item → im Viewport Punkt waehlen zum Platzieren.
+ {filtered.length > 0 && (
+ · {filtered.length} / {placable.length}
+ )}
)
+
+ if (embedded) return content
+ return (
+
+
e.stopPropagation()}>{content}
+
+ )
}
diff --git a/src/main.jsx b/src/main.jsx
index afc4813..32ae9dc 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -6,6 +6,7 @@ import ZeichnungsebenenApp from './ZeichnungsebenenApp.jsx'
import GeschossSettingsApp from './GeschossSettingsApp.jsx'
import ProjectSettingsApp from './ProjectSettingsApp.jsx'
import LibraryApp from './LibraryApp.jsx'
+import SymbolPickerApp from './SymbolPickerApp.jsx'
import EbenenSettingsApp from './EbenenSettingsApp.jsx'
import GeschossDialogApp from './GeschossDialogApp.jsx'
import LayerCombinationsApp from './LayerCombinationsApp.jsx'
@@ -43,6 +44,7 @@ const RootApp = mode === 'gestaltung' ? GestaltungApp
: mode === 'geschoss_settings' ? GeschossSettingsApp
: mode === 'project_settings' ? ProjectSettingsApp
: mode === 'library' ? LibraryApp
+ : mode === 'symbol_picker' ? SymbolPickerApp
: mode === 'ebenen_settings' ? EbenenSettingsApp
: mode === 'geschoss_dialog' ? GeschossDialogApp
: mode === 'layer_combinations' ? LayerCombinationsApp