# `Macaw.Component.Mode`
[🔗](https://github.com/dcoai/macaw_component/blob/v0.1.3/lib/macaw/component/mode.ex#L1)

The rendering modes and what each allows (spec/02 §3).

    iex> Macaw.Component.Mode.allows?(:socketless, :hooks)
    true
    iex> Macaw.Component.Mode.allows?(:neutral, :live_regions)
    false

# `t`

```elixir
@type t() :: :live | :socketless | :neutral | :print
```

# `all`

```elixir
@spec all() :: [t(), ...]
```

The four modes, in order.

# `allows?`

```elixir
@spec allows?(t(), atom()) :: boolean()
```

Whether a mode allows a feature. An unknown mode or feature raises `ArgumentError`: it is
a programming error, not data.

# `features`

```elixir
@spec features() :: [atom(), ...]
```

The features a mode may allow, in order.

---

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