board-01
A board page — a ListToolbar over Board, with lanes named by their count, a paged Backlog, linked cards with menus, and No matches.
Last updated
Tasks
Drag a card, or press Space on a focused card to move it with the keyboard.
What it is
A board page — a PageHeader over a ListToolbar and Board, with lanes named by their count, a paged Backlog, cards that link to each task with their own menu, and a No matches state. It is a block: you pull it once with shadcn add, and then you own it —
nothing re-pulls it and no integrity hash tracks your edits, unlike the components it composes.
BoardView in components/ holds the filters and the board; the page is the server-safe frame around it.
Install
npx shadcn@latest add @vegastack/board-01This installs the block's own files plus the components it composes: app-shell, avatar, board, button, data-table-parts, empty, filter-row, list-toolbar, page-header.
Preview
Tasks
Drag a card, or press Space on a focused card to move it with the keyboard.
Anatomy
AppShellPage size="full"›PageHeaderh1 "Tasks" with its "New task" action.ListToolbar— the search and the Filter tool; itsFilterRowholds an AssigneeListFacetand "Clear" while anything is filtered.Board— each lane is a region named with its count ("Backlog, 6 tasks", viacountLabel). The Backlog is paged: itscountis the server's total andloadMorefetches the rest. Each card is a link to its task (getItemHref), named for moves (getItemLabel), with its own Edit / Archive items above Move in one ⋯ menu (getItemActions). An empty lane says so ("No tasks", or "No matching tasks" while filtering).- No matches — when the filters hide every card, the board gives way to an
Emptywith "Clear filters".
Filters and moves
The filters narrow what each lane shows; a move always lands in the full lane, which is why
onMove updates the unfiltered columns. Space on a focused card lifts it into keyboard move mode;
Enter follows its link.
Files
| File | Registry type | Target |
|---|---|---|
board-01/components/board-view.tsx | registry:component | app/board-01/components/board-view.tsx |
board-01/page.tsx | registry:page | app/board-01/page.tsx |