Modules
Lists, trees and boards that people reorder, for Phoenix LiveView: the
components in Narabe.Components (sortable_list/1, tree/1,
board/1, tree_picker/1), and the order in your database with
Narabe.Ecto.
Lists, trees and boards that people reorder: sortable_list/1,
tree/1, board/1, and tree_picker/1 to choose a place in a tree.
Order in your database: a move applied in one transaction, positions for new rows, a list's keys spread out again, and the order to read it in. The same on Postgres, MySQL and SQLite.
People and agents seen moving things, with Issho: a list, a tree or a board shows the item each person is on, the items someone is dragging (in their color, with their name) and where they would land, and an agent that moves items goes to them and drags them there before the move lands, for the people who watch.
Helpers for the LiveView of a list, a tree or a board.
The words of the lists, trees and boards: button labels, what a screen reader hears as items are lifted, moved and dropped, and why a move was refused.
The column of an item's position, in a migration: a text compared byte
by byte, as position keys must be (see Narabe.Position).
A move, as a drop sends it: these items (one, or several selected), into
this parent (a tree's item, a board's column, or nil for the top level
or a plain list), right after one item, or right before another.
A schema's order, declared once: the options of Narabe.Ecto that every
call on the schema then takes.
Position keys: a text per item that sorts between its neighbours, so that moving an item writes that one row, and two people moving at once both land.
What may go where: the same rules in the browser, as people drag (a drop
that breaks them is not offered), and on the server, as Narabe.Ecto
applies a move (one that breaks them is refused).
Helpers for Phoenix.LiveViewTest, to move, open, rename and pick in
tests with no browser.
A tree's items, flat, as a page shows them: each after its parent, with its level and its place among its siblings.
Mix Tasks
Builds Narabe into priv/static.
Sets up Narabe in a Phoenix application.
Checks the built files before a release of Narabe.