Modules
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.
The LiveComponent behind Hakushi.Components.canvas/1.
A change to a canvas: what a person did, or what the app does.
Function components for the canvas.
An edge of a canvas: a line from a handle of one node to a handle of another.
The nodes and edges of a canvas.
An Ecto type for a whole canvas in one column: a :map (jsonb on
PostgreSQL, JSON text on SQLite and MySQL).
A shared canvas on 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.
The on_mount hook of a LiveView with a shared canvas (live), and the
app's own changes to a canvas.
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.
A node of a canvas: a box at a place, drawn by the :node slot of its
type.
The rules of the edges of a canvas, the same in the browser and on the server.
Helpers for Phoenix.LiveViewTest, to read and change the canvases of
a LiveView with no browser.
Mix Tasks
Builds the Hakushi canvas into priv/static.
Sets up Hakushi in a Phoenix application.
Checks the built files before a release of Hakushi.