vanilla-javascript (no libraries) example of basic workspace undo and redo actions