DocsGitHub
Getting Started
  • Overview
  • Design Tokens
Components
  • Accordion
  • Alert
  • Announcement
  • Avatar
  • Badge
  • BigCalendar
  • Breadcrumb
  • Button
  • ButtonGroup
  • Calendar
  • Card
  • Checkbox
  • Chip
  • CloseButton
  • Combobox
  • CommandPalette
  • ContextMenu
  • Currency
  • DatePicker
  • DescriptionList
  • Drawer
  • DropdownMenu
  • EmptyState
  • Field
  • FileUpload
  • FormGrid
  • Hotkey
  • Icon
  • Input
  • Metric
  • Modal
  • MultiSelect
  • NumberInput
  • Pagination
  • Popover
  • ProgressBar
  • Radio
  • Rating
  • SegmentedControl
  • Select
  • SelectionCard
  • Sidebar
  • Skeleton
  • Slider
  • Spinner
  • Stepper
  • Switch
  • Table
  • Tabs
  • Textarea
  • Timeline
  • TimePicker
  • Toast
  • Tooltip
  • TransferList
  • TreeView
  • Wizard
Charts
  • Overview
  • Area Chart
  • Bar Chart
  • Donut Chart
  • Line Chart
  • Pie Chart
  • Stacked Bar Chart

TransferList

Assigns permissions and other values between two keyboard-accessible multi-select listboxes.

Default

Select one or more permissions, then use the logical move controls to transfer them.

Available

0 of 5
Create and edit customers
View invoices
Approve invoices
Export reports
System administration

Selected

0 of 1
View customers
tsx
<TransferList options={permissions} defaultValue={["customers.read"]} />

Installation

tsx
import { TransferList } from "madagent";

Searchable

Each column filters independently without changing selection or assignment state.

Available

0 of 6
View customers
Create and edit customers
View invoices
Approve invoices
Export reports
System administration

Selected

0 of 0
No options
tsx
<TransferList options={permissions} searchable />

Controlled

Available permissions

0 of 5
Create and edit customers
View invoices
Approve invoices
Export reports
System administration

Assigned permissions

0 of 1
View customers
tsx
const [value, setValue] = useState(["customers.read"]);
<TransferList options={permissions} value={value} onChange={setValue} />

Custom Height

Set a logical block size for both scrolling listboxes.

Available

0 of 6
View customers
Create and edit customers
View invoices
Approve invoices
Export reports
System administration

Selected

0 of 0
No options
tsx
<TransferList options={permissions} height="12rem" />

API Reference

PropTypeDefaultDescription
options
TransferListOption[]
-All transferable values with labels and optional disabled state
value
string[]
-Controlled values in the target list
defaultValue
string[]
[]Initial target values
onChange
(values: string[]) => void
-Called after a transfer
sourceTitle
ReactNode
"Available"Source column heading
targetTitle
ReactNode
"Selected"Target column heading
searchable
boolean
falseAdds an independent filter to each column
height
string
"18rem"Logical block size of both scrolling listboxes

RTL Support

Components automatically adapt to right-to-left languages using CSS logical properties.

Preview

الصلاحيات المتاحة

0 of 3
إنشاء السجلات
اعتماد الفواتير
إدارة النظام

الصلاحيات المحددة

0 of 1
عرض السجلات

Usage

tsx
<TransferList options={arabicPermissions} sourceTitle="المتاحة" targetTitle="المحددة" searchable />