# Hakushi v0.1.0 - API Reference

## Modules

- [Hakushi.Issho](Hakushi.Issho.md): A shared canvas on [Issho](https://hex.pm/packages/issho): the canvas's
graph is a document of an Issho room, the canvas's LiveView is one of
the room's sessions, and Issho is the room's people and their cursors.

- Canvas
  - [Hakushi](Hakushi.md): Hakushi (白紙, "a blank sheet of paper") is a canvas for Phoenix: an
endless sheet that people pan and zoom, with nodes of your own HEEx on
it, joined by edges.
  - [Hakushi.Canvas](Hakushi.Canvas.md): The LiveComponent behind `Hakushi.Components.canvas/1`.
  - [Hakushi.Components](Hakushi.Components.md): Function components for the canvas.
  - [Hakushi.Live](Hakushi.Live.md): The `on_mount` hook of a LiveView with a shared canvas (`live`), and the
app's own changes to a canvas.
  - [Hakushi.Messages](Hakushi.Messages.md): The words of the canvas: the labels of its controls, the reasons it
gives when it refuses a change, and the announcements for screen
readers.

- Graph
  - [Hakushi.Change](Hakushi.Change.md): A change to a canvas: what a person did, or what the app does.
  - [Hakushi.Edge](Hakushi.Edge.md): An edge of a canvas: a line from a handle of one node to a handle of
another.
  - [Hakushi.Graph](Hakushi.Graph.md): The nodes and edges of a canvas.
  - [Hakushi.Node](Hakushi.Node.md): A node of a canvas: a box at a place, drawn by the `:node` slot of its
`type`.
  - [Hakushi.Rules](Hakushi.Rules.md): The rules of the edges of a canvas, the same in the browser and on the
server.

- Storage
  - [Hakushi.Graph.Type](Hakushi.Graph.Type.md): An Ecto type for a whole canvas in one column: a `:map` (`jsonb` on
PostgreSQL, JSON text on SQLite and MySQL).

- Testing
  - [Hakushi.Test](Hakushi.Test.md): Helpers for `Phoenix.LiveViewTest`, to read and change the canvases of
a LiveView with no browser.

## Mix Tasks

- [mix hakushi.build](Mix.Tasks.Hakushi.Build.md): Builds the Hakushi canvas into `priv/static`.
- [mix hakushi.install](Mix.Tasks.Hakushi.Install.md): Sets up Hakushi in a Phoenix application.
- [mix hakushi.release_check](Mix.Tasks.Hakushi.ReleaseCheck.md): Checks the built files before a release of Hakushi.

