Transfer List
Moves one or more list items between two lists. Use when the user needs to explicitly select and assign items from a source pool to a destination.
import
{ TransferList } from "@pepulux/ui"Basic transfer list
Four arrow buttons: move all right, move selected right, move selected left, move all left.
Choices
Chosen
- No items
Enhanced transfer list
Select-all checkbox + item counter per list. Set enhanced to replace move-all buttons with this pattern.
Choices0/6 selected
Chosen0/0 selected
- No items
Pre-populated
Use defaultRight to seed items into the right list on first render.
Available
Assigned
Disabled items
Set disabled on individual TransferItem entries. Disabled items can't be checked or moved.
Modules0/6 selected
Enabled0/0 selected
- No items
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| items* | TransferItem[] | — | All items across both lists. |
| defaultRight | string[] | [] | IDs of items that start in the right list. |
| value | string[] | — | Controlled right-list item IDs. |
| onChange | (ids: string[]) => void | — | Called with updated right-list IDs whenever items move. |
| leftLabel | string | "Choices" | Header label for the left (source) list. |
| rightLabel | string | "Chosen" | Header label for the right (destination) list. |
| enhanced | boolean | false | Shows select-all checkbox + selection counter instead of move-all buttons. |
| className | string | — | Extra classes applied to the root flex wrapper. |
TransferItem
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| id* | string | — | Unique identifier used for move operations. |
| label* | string | — | Display text for the item. |
| disabled | boolean | false | Prevents checking and moving the item. |