# `PhoenixStorybook.Story.LiveComponentBehaviour`
[🔗](https://github.com/phenixdigital/phoenix_storybook/blob/v1.1.0/lib/phoenix_storybook/stories/story.ex#L158)

Behaviour implemented by any live component story

# `aliases`

```elixir
@callback aliases() :: [atom()]
```

# `attributes`

```elixir
@callback attributes() :: [PhoenixStorybook.Stories.Attr.t()]
```

# `component`

```elixir
@callback component() :: atom()
```

# `container`

```elixir
@callback container() :: atom()
```

# `extra_sources`

```elixir
@callback extra_sources() :: [String.t()]
```

# `handle_info`
*optional* 

```elixir
@callback handle_info(term(), Phoenix.LiveView.Socket.t()) ::
  {:noreply, Phoenix.LiveView.Socket.t()}
```

# `imports`

```elixir
@callback imports() :: [{atom(), [{atom(), integer()}]}]
```

# `layout`

```elixir
@callback layout() :: atom()
```

# `render_source`

```elixir
@callback render_source() :: atom()
```

# `slots`

```elixir
@callback slots() :: [PhoenixStorybook.Stories.Slot.t()]
```

# `template`

```elixir
@callback template() :: String.t()
```

# `variations`

```elixir
@callback variations() :: [
  PhoenixStorybook.Stories.Variation.t()
  | PhoenixStorybook.Stories.VariationGroup.t()
]
```

---

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