tuil
ReferenceComponentsTransfer list

Transfer list

Move typed items between available and selected collections without losing keyboard focus or semantic identity.

View rawEdit

Overview

Move typed items between available and selected collections without losing keyboard focus or semantic identity.

Installation

npx @mwillbanks/tuil add transfer-list

The CLI writes source-owned components beneath the destination configured in tuil.config.ts; the default import below assumes src/components/tuil.

Loading executable example…

Components and subcomponents

APISignatureDescription
TransferListfunction TransferListPublic function TransferList.

Interaction

Arrow keys navigate, Space selects, and Tab changes the active collection.

API and events

onValueChange receives the selected item set.

Every interactive component publishes semantic roles, labels, state, and focus identity through the renderer's SemanticRegistry. Callback failures flow to the owning application's error boundary.

Documentation flow diagram. props and runtime state; semantic registration; focus and input routing; callback or state update; rerender; S0 leads to S1; S1 leads to S2; S2 leads to S3
Documentation flow diagram. props and runtime state; semantic registration; focus and input routing; callback or state update; rerender; S0 leads to S1; S1 leads to S2; S2 leads to S3

Example

import type { ComponentProps } from "react";
import { TransferList } from "@/components/tuil/forms/transfer-list";

export function Example(props: ComponentProps<typeof TransferList>) {
  return <TransferList {...props} />;
}

Registry-installed components are source-owned: customize the generated file in your application, and use the package reference for the shared runtime contracts.

On this page