Skip to content
Elements / Data

table

binds state

Rows of a list of records, one table-column per field, for things like inventory, orders or expenses. With sort= and direction=, pressing a header sorts by it; with bind= and key=, pressing a row selects it; columns too wide for the space scroll sideways, the first one staying in view.

Spec · edit me

No problems. The parser accepted every line.

Result · try itOpen in playground
Tweak the props

Props

"text"textA title above the table.optional
itemsexpressionThe list of records, e.g. items=equipment. At most 200 rows; show a page of a longer list with slice() and pagination.required
keynameThe field that identifies each row, e.g. key=id. Needed for bind=.—
bindstateState that holds the selected row's key. Pressing a row sets it.—
sortstateState that holds the field to sort by. Pressing a header sets it; missing values sort last.—
directionstateState that holds asc or desc. Pressing the sorted header again flips it.—
onactionActions to run after a row is selected, with bind= already set, e.g. emit:changed. Separate several with ;—
ifconditionShow only when this expression is true, e.g. if=done or if={count>0}. Every element takes it.—
tipstringA short explanation shown on hover, keyboard focus or a tap, e.g. tip="Orders not yet shipped": for a term or a number some people won't know, instead of more words on screen. It makes the element a Tab stop if it isn't one. Every element takes it.—

Children: table-column

SayShape v0.1 is an early prototype under the MIT License. Status · GitHub