only allow undo/redo when canvas is visible
Attributes panel
added the attributes panel and a dispatcher to display a form for each type of operation.
Hash the markup for every type of operation (lazy) to prevent overhead. this is a wip.