Free
Pro

Pick List

A dual-listbox for moving items between available and selected panes. Click to highlight (⌘/Ctrl-click for multi), use the transfer buttons, or double-click an item to move it. Integrates with Angular Forms via [(ngModel)] / formControlName.

Pronew

Pick List — part of Base UI Pro

Unlock it plus 90 pro blocks, widgets & layouts — $99 one-time. Lifetime updates, 14-day money-back guarantee.

Unlock Pro

Basic usage

Bind [options] to the full catalog and [(ngModel)] to the selected values array.

Available cities

10 items

Selected cities

2 items

Selected: [ "ber", "lis" ]

HTML


TypeScript

Filter

Add the filter attribute to show search boxes above each list.

Available

12 items

Picked

0 items

No items

HTML

Installation

Run the following command to add this component to your project:

bash

npx base-ui-cli add pick-list

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Base UI MCP server.

bash

npx -y base-ui-mcp

Base UI provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)

// Install: npx base-ui-cli add pick-list
// Paths are relative to aliases.components (default: src/app/components)
import { PickListComponent, PickListItem } from './pick-list/pick-list.component';

@Component({
  selector: 'app-your-component',
  imports: [
    PickListComponent
  ],
  template: `...`
})
export class YourComponent {}

API for pick-list — generated from JSDoc in the library source.

API reference for pick-list
APIMemberTypeDefaultDescription
PickListItemlabelstringDisplay label.
PickListItemvalueunknownValue stored in the form control / target list.
PickListItemdisabledbooleanWhen true, the item cannot be moved.
base-pick-listclassstring''Extra host classes merged via `cn()`.
base-pick-listoptionsPickListItem[][]Full option catalog. Selected values are removed from the source pane.
base-pick-listsourceHeaderunknown'Available'Header above the available (source) list.
base-pick-listtargetHeaderunknown'Selected'Header above the selected (target) list.
base-pick-listfilterbooleanfalseShows filter inputs above each list.
base-pick-listdisabledbooleanfalseDisables the entire control (also set by forms via `setDisabledState`).
base-pick-list(selectionChange)unknown[]Emitted whenever the selected values array changes.