# dstar v0.1.0-alpha.1 - Table of Contents

Batteries-included Datastar toolkit for Elixir: SSE primitives, event dispatch, CSRF, and more. For any Plug or Phoenix app.

## Pages

- [Dstar](readme.md)
- [Changelog](changelog.md)
- [Migrating from PhoenixDatastar to Dstar](migrating-from-phoenix-datastar.md)

## Modules

- Pages
  - [Dstar.Component](Dstar.Component.md): Shared UI + its event handlers in one module — for drawers, pickers,
and other components used across many pages.
  - [Dstar.Page](Dstar.Page.md): One module per page: render, event handlers, stream callbacks, and
colocated function components.
  - [Dstar.Page.Assigns](Dstar.Page.Assigns.md): Assign helpers that work in both halves of a Dstar page module.
  - [Dstar.Page.Helpers](Dstar.Page.Helpers.md): Template and handler helpers imported by `use Dstar.Page`.
  - [Dstar.Page.Plug](Dstar.Page.Plug.md): The plug behind `Dstar.Router.dstar/2`. Drives `Dstar.Page` callbacks
  - [Dstar.Router](Dstar.Router.md): Router macros for Dstar pages and components.

- Functional core
  - [Dstar](Dstar.md): Datastar SSE helpers for Elixir/Phoenix.
  - [Dstar.Actions](Dstar.Actions.md): Helpers for generating Datastar action expressions and encoding module names.
  - [Dstar.Elements](Dstar.Elements.md): Functions for patching and removing DOM elements via SSE.
  - [Dstar.SSE](Dstar.SSE.md): Server-Sent Event (SSE) connection helpers.
  - [Dstar.Scripts](Dstar.Scripts.md): Executes JavaScript on the client via SSE.
  - [Dstar.Signals](Dstar.Signals.md): Functions for reading and patching Datastar signals via SSE.

- Plugs
  - [Dstar.Plugs.Dispatch](Dstar.Plugs.Dispatch.md): Dynamic event dispatch plug.
  - [Dstar.Plugs.RenameCsrfParam](Dstar.Plugs.RenameCsrfParam.md): Renames a CSRF body param to `_csrf_token` so that `Plug.CSRFProtection`
can find it.

- Testing
  - [Dstar.Test](Dstar.Test.md): Assertions for Dstar SSE responses in `Plug.Test` / `Phoenix.ConnTest`
tests. Chunked SSE bodies accumulate in `conn.resp_body` on the test
adapter; these helpers parse them back into events.

- Utilities
  - [Dstar.Utility.StreamRegistry](Dstar.Utility.StreamRegistry.md): Opt-in per-tab stream deduplication.

