

<InteractiveDemo
  name="list-box"
  controls="[
  {
    type: 'enum',
    name: 'selectionMode',
    options: ['none', 'single', 'multiple'],
    defaultValue: 'single',
  },
  {
    type: 'enum',
    name: 'orientation',
    options: ['horizontal', 'vertical'],
    defaultValue: 'vertical',
  },
]"
/>

## Installation [#installation]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npx shadcn@latest add @dotui/list-box
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm dlx shadcn@latest add @dotui/list-box
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn dlx shadcn@latest add @dotui/list-box
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bun x shadcn@latest add @dotui/list-box
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Usage [#usage]

Use list boxes to display a list of options and allow users to select one or more of them.

```tsx
import { ListBox, ListBoxItem } from '@/components/ui/list-box'
```

```tsx
<ListBox aria-label="Options" selectionMode="single">
  <ListBoxItem>Option 1</ListBoxItem>
  <ListBoxItem>Option 2</ListBoxItem>
  <ListBoxItem>Option 3</ListBoxItem>
</ListBox>
```

## Examples [#examples]

<Examples>
  <Example name="list-box/demos/basic" />

  <Example name="list-box/demos/multiple-selection" />

  <Example name="list-box/demos/with-description" />

  <Example name="list-box/demos/with-icons" />

  <Example name="list-box/demos/danger" />

  <Example name="list-box/demos/sections" />

  <Example name="list-box/demos/separator" />

  <Example name="list-box/demos/user-menu" />

  <Example name="list-box/demos/disabled" />

  <Example name="list-box/demos/horizontal" />

  <Example name="list-box/demos/grid" />

  <Example name="list-box/demos/async" />

  <Example name="list-box/demos/empty" />

  <Example name="list-box/demos/in-select" />

  <Example name="list-box/demos/in-combobox" />

  <Example name="list-box/demos/in-command" />
</Examples>

## API Reference [#api-reference]

### ListBox [#listbox]

<Reference name="list-box" />

### ListBoxItem [#listboxitem]

<Reference name="list-box-item" />

### ListBoxSection [#listboxsection]

<Reference name="list-box-section" />

### ListBoxSectionHeader [#listboxsectionheader]

<Reference name="list-box-section-header" />

### ListBoxLoader [#listboxloader]

<Reference name="list-box-loader" />

### ListBoxVirtualizer [#listboxvirtualizer]

<Reference name="list-box-virtualizer" />
