Compose a Combobox component
mainThe Combobox is a compound component. A standard implementation follows this structure:
<Combobox.Root>
<Combobox.Trigger>
<Combobox.TextInput placeholder="Pick me" />
<Combobox.Icon />
</Combobox.Trigger>
<Combobox.Portal>
<Combobox.Content>
<Combobox.Viewport>
<Combobox.Item value="1">
<Combobox.ItemText>Option 1</Combobox.ItemText>
<Combobox.ItemIndicator>
<Check />
</Combobox.ItemIndicator>
</Combobox.Item>
<Combobox.NoValueFound>No value found</Combobox.NoValueFound>
<Combobox.CreateItem>Create a new value</Combobox.CreateItem>
</Combobox.Viewport>
</Combobox.Content>
</Combobox.Portal>
</Combobox.Root>Sub-components:
Combobox.Root: The main wrapper.Combobox.Trigger: The element that opens the list.Combobox.TextInput: The input field for typing/filtering.Combobox.Icon: An icon within the trigger.Combobox.Portal: Renders the dropdown content in a portal.Combobox.Content: The container for the dropdown list.Combobox.Viewport: The scrollable area for items.Combobox.Item: An individual selectable option.Combobox.ItemText: The text label for an item.Combobox.ItemIndicator: A visual indicator (like a checkmark) for the selected item.Combobox.NoValueFound: Displayed when the filter matches no items.Combobox.CreateItem: An option to trigger custom value creation.
<Combobox.Root>
<Combobox.Trigger>
<Combobox.TextInput placeholder="Pick me" />
<Combobox.Icon />
</Combobox.Trigger>
<Combobox.Portal>
<Combobox.Content>
<Combobox.Viewport>
<Combobox.Item value="1">
<Combobox.ItemText>Option 1</Combobox.ItemText>
<Combobox.ItemIndicator>
<Check />
</Combobox.ItemIndicator>
</Combobox.Item>
<Combobox.NoValueFound>No value found</Combobox.NoValueFound>
<Combobox.CreateItem>Create a new value</Combobox.CreateItem>
</Combobox.Viewport>
</Combobox.Content>
</Combobox.Portal>
</Combobox.Root>