# `PhiaUiDesign.Canvas.History`
[🔗](https://github.com/charlenopires/PhiaUI/blob/v0.1.17/lib/phiaui_design/canvas/history.ex#L1)

Command-pattern undo/redo stack for scene operations.

# `command`

```elixir
@type command() ::
  {:insert, PhiaUiDesign.Canvas.Node.t()}
  | {:delete, PhiaUiDesign.Canvas.Node.t()}
  | {:update, String.t(), map(), map()}
  | {:move, String.t(), String.t() | nil, String.t() | nil, integer()}
```

# `can_redo?`

Check if redo is available

# `can_undo?`

Check if undo is available

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `clear`

Clear all history

# `push`

Push a command onto the undo stack, clearing redo

# `redo`

Pop the last command from redo stack (returns nil if empty)

# `start_link`

# `undo`

Pop the last command from undo stack (returns nil if empty)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
