* Add full undo/redo support for screens
* Add loading states to disable spamming undo/redo
* Add keyboard shortcuts for undo and redo
* Fix modals not closing in design section when escape is pressed
* Remove log
* Add smart metadata saving to undo/redo
* Add error handling to undo/redo
* Add active state to hoverable icons
* Fix screen deletion
* Always attempt to get latest doc version before deleting in case rev has changed
* Move undo listener top level, hide controls when on certain tabs, and improve selection state
* Add tooltips to undo/redo control
* Update automation section nav to match other sections
* Fix automation list padding
* Fix some styles in create automation modal
* Improve automation section styles and add undo/redo
* Update styles in add action modal
* Fix button size when creating admin user
* Fix styles in add automation step modal
* Fix issue selecting disabled automation steps
* Reset automation history store when changing app
* Reduce spammy unnecessary API calls when editing cron trigger
* WIP automation refactor
* Rewrite most automation state
* Rewrite most of the rest of automation state
* Finish refactor of automation state
* Fix selection state when selecting new doc after history recreates it
* Prune nullish or empty block inputs from automations and avoid sending API requests when no changes have been made
* Fix animation issues with automations
* Sort automations and refetch list when adding or deleting
* Fix formatting
* Add back in ability to swap between values and bindings for block inputs
* Lint
* Format
* Fix potential issue in design section when selected screen is unset
* Fix automation arrow directions everywhere, tidy up logic and fix crash when using invalid looping
* Lint
* Fix more cases of automation errors
* Fix implicity any TS error
* Respect _id specified when creating automations
* Fix crash in history store when reverting a change on a doc whose ID has changed
* Lint
* Ensure cloneDeep helper doesn't crash when a nullish value is passed in
* Remove deprecated frontend automation test
---------
Co-authored-by: Rory Powell <rory.codes@gmail.com>
* Ensure update state actions have a binding for their own key
* Make own binding generation more futureproof
* Refactor array.find to array.some
* Move state binding generation up a level to account for all actions needing to be able to reference newly created state bindings
* Shrink cloud upgrade button to proper size
* Add brackets to fix operator precedence when ejecting blocks to prevent undefined custom CSS
* Prevent relationship fields in forms from being used as datasources
* Remove extraneous navigation when adding a component which caused next navigation to fail
* Improve form logic concerning when to fully remount itself to fix issues with stale schema being passed in