Listbox

Accessible list of selectable items with keyboard navigation. Uses native ARIA listbox/option roles.

Example

Selected: opt-1

Option One
Option Two
Option Three
Disabled Option

Props

Listbox.Root

PropTypeDefaultDescription
classstringAdditional CSS classes
childrenSnippetListbox items

Listbox.Item

PropTypeDefaultDescription
valuestringItem value (required)
selectedbooleanfalseWhether the item is selected
disabledbooleanfalseDisables the item
onSelect(value: string) => voidCallback when item is selected
classstringAdditional CSS classes
childrenSnippetItem content

Usage

<script>
  import { Listbox } from '@chrissnell/chonky-ui';

  let selected = $state('opt-1');

  const items = [
    { value: 'opt-1', label: 'Option One' },
    { value: 'opt-2', label: 'Option Two' },
    { value: 'opt-3', label: 'Option Three' },
  ];
</script>

<Listbox.Root>
  {#each items as item}
    <Listbox.Item
      value={item.value}
      selected={selected === item.value}
      onSelect={(v) => (selected = v)}
    >
      {item.label}
    </Listbox.Item>
  {/each}
</Listbox.Root>