# `OpenUI.Element`
[🔗](https://github.com/ideia4it/openui/blob/v0.1.1/lib/openui/element.ex#L1)

A component in a program tree. `props` maps prop names to values; before
evaluation a value may still be an expression.

`statement_id` names the statement the component came from, when it came
from one. `key` is its path in the evaluated tree (`"0"` for the entry,
`"0.children.1"` for the entry's second child) and addresses it for
interactions.

# `t`

```elixir
@type t() :: %OpenUI.Element{
  key: String.t() | nil,
  props: %{required(String.t()) =&gt; term()},
  statement_id: String.t() | nil,
  type: String.t()
}
```

---

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