# `MishkaGervaz.Form.Entities.Header`
[🔗](https://github.com/mishka-group/mishka_gervaz/blob/v0.0.1-alpha.3/lib/mishka_gervaz/form/entities/header.ex#L1)

Form header — static title + description pair rendered above the
fields, with optional icon and a custom HEEx render escape hatch.

Visibility gating (`visible` / `restricted`) follows the same access
conventions used by `MishkaGervaz.Form.Entities.Field` and
`MishkaGervaz.Form.Entities.Group`. Title and description accept
strings or zero-/one-arity functions, so they can render dynamic
content from the form state.

## Example

    layout do
      header do
        title "Account Permissions"
        description "Configure what this account can access."
        icon "hero-shield-check"
        class "mb-6"
        visible fn state -> state.mode == :update end
      end
    end

See `MishkaGervaz.Form.Dsl.Layout` for the surrounding section.

# `t`

```elixir
@type t() :: %MishkaGervaz.Form.Entities.Header{
  __spark_metadata__: map() | nil,
  class: String.t() | nil,
  description: String.t() | (-&gt; String.t()) | (map() -&gt; String.t()) | nil,
  extra: map(),
  icon: String.t() | nil,
  render:
    (map() -&gt; Phoenix.LiveView.Rendered.t())
    | (map(), map() -&gt; Phoenix.LiveView.Rendered.t())
    | nil,
  restricted: boolean() | (map() -&gt; boolean()),
  title: String.t() | (-&gt; String.t()) | (map() -&gt; String.t()) | nil,
  visible: boolean() | (map() -&gt; boolean())
}
```

# `transform`

---

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