# DemoDirector v0.1.1 - Table of Contents

> Narrated, highlighted, animated demos for Phoenix LiveView — author with Tidewave and play right in your app.

## Pages

- [Demo Director](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [DemoDirector](DemoDirector.md): Direct AI-driven product demos for Phoenix apps, right from your
Tidewave Web tab.
- [DemoDirector.Components](DemoDirector.Components.md): HEEx components for the DemoDirector overlay.
- [DemoDirector.Demos](DemoDirector.Demos.md): Discovers and parses metadata from saved demo scripts.
- [DemoDirector.HEEx](DemoDirector.HEEx.md): HEEx-template helpers for tagging elements as demo-targetable.
- [DemoDirector.Playback](DemoDirector.Playback.md): Server-side entry point for pushing playback JS to every connected
overlay.
- [DemoDirector.PlaybackChannel](DemoDirector.PlaybackChannel.md): Phoenix channel that relays playback JS from the server to every
connected overlay.
- [DemoDirector.PlaybackSocket](DemoDirector.PlaybackSocket.md): Phoenix socket that the overlay JS connects to in order to receive
playback messages from `mix demo_director.play`.
- [DemoDirector.Plug.Index](DemoDirector.Plug.Index.md): Renders a tiny HTML listing of every saved demo and serves each
demo's emitted JS at `<mount>/demos/<name>.js`.
- [DemoDirector.Plug.Play](DemoDirector.Plug.Play.md): Receives a POST containing JavaScript and broadcasts it on the
`demo_director:playback` PubSub topic so connected overlays can
eval it.
- [DemoDirector.Plug.Static](DemoDirector.Plug.Static.md): Mounted at the package's mount path by
`DemoDirector.Router.demo_director/1`. Routes
- [DemoDirector.Router](DemoDirector.Router.md): Router macro for mounting DemoDirector's static assets and
registering the mount path so the overlay component can construct
asset URLs.

## Mix Tasks

- [mix demo_director.install](Mix.Tasks.DemoDirector.Install.md): Installs `demo_director` into a Phoenix application.
- [mix demo_director.play](Mix.Tasks.DemoDirector.Play.md): Prints a URL you can open (or click in your terminal) that plays a
saved DemoDirector demo against the running dev server.

