# `MingaEditor.State.ExtensionSurfaces`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/state/extension_surfaces.ex#L1)

Per-editor registries through which extensions contribute behavior and UI.

Keeping registry identities together makes editor isolation explicit without
moving daemon-singleton extension lifecycle into the Editor process.

# `t`

```elixir
@type t() :: %MingaEditor.State.ExtensionSurfaces{
  agent_semantic_ui_registry: MingaEditor.Agent.SemanticUI.Registry.table(),
  events_registry: Minga.Events.registry(),
  sidebar_registry: MingaEditor.Extension.Sidebar.table()
}
```

# `install_agent_semantic_ui_registry`

```elixir
@spec install_agent_semantic_ui_registry(
  t(),
  MingaEditor.Agent.SemanticUI.Registry.table()
) :: t()
```

Installs the semantic agent UI registry selected for this editor.

# `install_events_registry`

```elixir
@spec install_events_registry(t(), Minga.Events.registry()) :: t()
```

Installs the event registry selected for this editor.

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates extension registry state for one editor instance.

---

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