LogisBaseLogisBase

Kanban

<Kanban> is a draggable board component with configurable columns and item cards. Used for status pipelines, dispatch boards, and any column-based workflow.

<Kanban>

<Kanban> is a board component with configurable columns and draggable item cards. Items move between columns by drag-and-drop. Used for status pipelines (To DoIn ProgressDone), dispatch boards, order workflow boards, and any column-based UI.

Basic Usage

<Kanban
  @columns={{this.columns}}
  @items={{this.items}}
  @groupBy='status'
  @onItemDrop={{this.handleDrop}}
  @onItemClick={{this.openItem}}
>
  <:card as |item|>
    <div class='font-semibold'>{{item.title}}</div>
    <div class='text-xs text-gray-500'>{{item.description}}</div>
  </:card>
</Kanban>

Arguments

ArgumentTypeDescription
@columnsarrayColumn definitions — { id, label, color? }
@itemsarrayItems to render
@groupBystringProperty path on each item to determine its column
@editablebooleanEnable drag-and-drop (default true)
@onItemDrop(item, fromColumn, toColumn)Called when an item is moved between columns
@onItemClick(item)Called when an item is clicked
@onColumnDrop(column, fromIndex, toIndex)Called when a column is reordered

Named Blocks

BlockPurpose
:cardCustom item card renderer (yields the item)
:column-headerCustom column header (yields the column)

Real-World Examples

{{! Order dispatch board }}
<Kanban
  @columns={{array
    (hash id='created' label='New')
    (hash id='dispatched' label='Dispatched')
    (hash id='started' label='In Transit')
    (hash id='completed' label='Delivered')
  }}
  @items={{this.orders}}
  @groupBy='status'
  @onItemDrop={{this.advanceOrder}}
  @onItemClick={{this.openOrder}}
>
  <:card as |order|>
    <Pill @resource={{order.driver}} />
    <div class='text-xs'>{{order.public_id}}</div>
  </:card>
</Kanban>

Source

Kanban | LogisBase