Added drag-and-drop functionality to the canvas editor by implementing a custom pointer-based handler that communicates via postMessage. Because the canvas operates across an iframe boundary, standard React-based libraries like @dnd-kit were not viable; the solution now sends a validated block order update to the parent container. Additionally, fixed a selection bug in closestBlock() where it was incorrectly targeting child elements instead of the main .cv-block wrapper. Drag and drop is simple