UNPKG

@bpmsoftwaresolutions/renderx-plugins

Version:

RenderX plugins meta-package with unit tests and build + manifest generation

61 lines (58 loc) 1.67 kB
/** * Canvas Component Selection Plugin (callback-first) */ export const sequence = { id: "Canvas.component-select-symphony", name: "Canvas Component Selection Symphony", description: "Select/deselect a canvas component and notify via callback", version: "1.0.0", key: "C Major", tempo: 120, timeSignature: "4/4", category: "ui-interactions", movements: [ { id: "selection", name: "Selection", description: "Select or clear selection", beats: [ { beat: 1, event: "canvas:selection:show", title: "Show selection", dynamics: "mf", timing: "immediate", errorHandling: "continue", handler: "handleSelect", }, { beat: 2, event: "canvas:selection:hide", title: "Hide selection", dynamics: "mf", timing: "immediate", errorHandling: "continue", handler: "handleFinalize", }, ], }, ], events: { triggers: ["canvas:selection:show", "canvas:selection:hide"], emits: ["canvas:selection:show", "canvas:selection:hide"], }, }; export const handlers = { handleSelect: ({ elementId, onSelectionChange }, ctx) => { try { onSelectionChange?.(elementId); } catch {} return { elementId, selected: true }; }, handleFinalize: ({ elementId, clearSelection, onSelectionChange }, ctx) => { try { if (clearSelection === true) onSelectionChange?.(null); } catch {} return { elementId: elementId ?? null, cleared: clearSelection === true }; }, };