Improve editor placement and selection workflows (#543)
* feat: expose accepted canvas node selections * feat(editor): replace bulk delete alert with dialog * fix(editor): allow immediate selection after opening placement * feat(spawn): preview model during placement * feat(editor): add cross-project selection clipboard * fix(editor): harden placement and clipboard previews * fix(editor): preserve carried clipboard state * fix(editor): replace active paste drafts safely
This commit is contained in:
@@ -41,6 +41,17 @@ interface NodeEvent<T extends AnyNode = AnyNode> {
|
||||
|
||||
Grid events only carry `position` and `nativeEvent` (no `node`).
|
||||
|
||||
## Selection Intent Events
|
||||
|
||||
`selection:canvas-node-click` fires after the editor accepts a 2D or 3D node
|
||||
click and resolves the node that selection actually targets. Hosts can use it
|
||||
for contextual navigation without reacting to programmatic `setSelection`
|
||||
calls. The payload is the resolved `AnyNode`.
|
||||
|
||||
`selection:find-node` is the explicit reveal intent emitted by the node action
|
||||
menu. Hosts and plugins that own catalogs or panels listen to it and reveal the
|
||||
node's related controls or presets.
|
||||
|
||||
## Emitting
|
||||
|
||||
Renderers emit via `useNodeEvents` — never call `emitter.emit` directly in a renderer:
|
||||
|
||||
Reference in New Issue
Block a user