Skip to content
THE COMPONENT LIBRARY
Skip to content

Component reference

Transfer

Assign a subset of available permissions.

Preview

Live preview

Changes apply to this preview only.

Available4
With access2
2 teammates with access

Width adapts to the available space

More examples

Different configurations and compositions using the real Pimolu API. Each preview runs independently and follows the site appearance.

Search and bulk moves

Each list filters independently; “move all” skips disabled items.

Open preview

Custom rendering

render replaces the default label and description while the checkbox keeps an accessible name.

Open preview

States

A disabled transfer keeps its values visible but blocks every interaction; an empty target shows its empty state.

Open preview

Usage

Keep transferred ids authoritative and avoid treating transfer selection as authorization.

API reference

Generated from the public TypeScript declarations. Native HTML attributes are inherited where the component extends them; this reference includes Pimolu props and selected common native attributes.

PimoluTransferItem

Type source
PimoluTransferItem public API
NameTypeDefaultDescription
keyRequiredstring—Public Pimolu prop; see the source declaration for details.
labelRequiredstring—Visible label associated with the control.
descriptionstring | undefined—Public Pimolu prop; see the source declaration for details.
disabledboolean | undefinedfalsePublic Pimolu prop; see the source declaration for details.
keyRequired

string

No default extracted.

Public Pimolu prop; see the source declaration for details.

labelRequired

string

No default extracted.

Visible label associated with the control.

description

string | undefined

No default extracted.

Public Pimolu prop; see the source declaration for details.

disabled

boolean | undefined

Default: false

Public Pimolu prop; see the source declaration for details.

PimoluTransferProps

Type source
PimoluTransferProps public API
NameTypeDefaultDescription
dataRequiredreadonly PimoluTransferItem[]—Public Pimolu prop; see the source declaration for details.
targetKeysreadonly string[] | undefined—Controlled keys of the target (right) list.
defaultTargetKeysreadonly string[] | undefined[]Initial target keys when uncontrolled.
onChange((targetKeys: string[]) => void) | undefined—Called with the next target keys after a move.
titlesreadonly [string, string] | undefined—[source title, target title].
searchableboolean | undefinedfalseRender a search field above each list.
disabledboolean | undefinedfalseDisable every checkbox, search field and move control.
showCountboolean | undefinedtrueShow the number of items in each list header.
showMoveAllboolean | undefinedtrueShow the "move all" controls next to the selected-item controls.
listHeightstring | number | undefined240Height of each scrollable list. Defaults to 240.
render((item: PimoluTransferItem) => ReactNode) | undefined—Custom content for an item; replaces the label and description.
emptyMessagestring | undefined"No items."Public Pimolu prop; see the source declaration for details.
classNamestring | undefined—Public Pimolu prop; see the source declaration for details.
styleCSSProperties | undefined—Public Pimolu prop; see the source declaration for details.
aria-labelstring | undefined—Public Pimolu prop; see the source declaration for details.
dataRequired

readonly PimoluTransferItem[]

No default extracted.

Public Pimolu prop; see the source declaration for details.

targetKeys

readonly string[] | undefined

No default extracted.

Controlled keys of the target (right) list.

defaultTargetKeys

readonly string[] | undefined

Default: []

Initial target keys when uncontrolled.

onChange

((targetKeys: string[]) => void) | undefined

No default extracted.

Called with the next target keys after a move.

titles

readonly [string, string] | undefined

No default extracted.

[source title, target title].

searchable

boolean | undefined

Default: false

Render a search field above each list.

disabled

boolean | undefined

Default: false

Disable every checkbox, search field and move control.

showCount

boolean | undefined

Default: true

Show the number of items in each list header.

showMoveAll

boolean | undefined

Default: true

Show the "move all" controls next to the selected-item controls.

listHeight

string | number | undefined

Default: 240

Height of each scrollable list. Defaults to 240.

render

((item: PimoluTransferItem) => ReactNode) | undefined

No default extracted.

Custom content for an item; replaces the label and description.

emptyMessage

string | undefined

Default: "No items."

Public Pimolu prop; see the source declaration for details.

className

string | undefined

No default extracted.

Public Pimolu prop; see the source declaration for details.

style

CSSProperties | undefined

No default extracted.

Public Pimolu prop; see the source declaration for details.

aria-label

string | undefined

No default extracted.

Public Pimolu prop; see the source declaration for details.

Accessibility

  • Name both lists and transfer actions; expose selection and counts without color alone.
Read the accessibility guide →