When an input doesn't have focus (those have their own notion of undo/redo), cmd z/shift cmd z (and ctrl variants on windows) should undo the last change made. I think all input changes should be batched while an input has focus. For example, if you are using arrowup/down to change the value of an input, each onChange event should not could as a single undo stop. Rather, the final value before the input is blurred should be considered the value. All operations should be undoable, including moving matrices around, inverting, etc. Probably easiest to store the entire state of all the matrices on every undo stop, guaranteeing we will always be able to go back to where we were previously.
When an input doesn't have focus (those have their own notion of undo/redo), cmd z/shift cmd z (and ctrl variants on windows) should undo the last change made. I think all input changes should be batched while an input has focus. For example, if you are using arrowup/down to change the value of an input, each
onChangeevent should not could as a single undo stop. Rather, the final value before the input is blurred should be considered the value. All operations should be undoable, including moving matrices around, inverting, etc. Probably easiest to store the entire state of all the matrices on every undo stop, guaranteeing we will always be able to go back to where we were previously.