shadcn.io is an independent project built on shadcn/ui
All, Bugs, Features, and Docs sit between the search box and the list. A button keeps only that category, and the search runs inside what remains. The issues include Bug Report and Feature Request.
Use it for a long list with a few clear categories, where a filter is quicker than typing the category. Group headings are the other split, on a Combobox. In Vue, Ark UI searches the list it is given. The buttons change that list.
Installation
Anatomy

Usage
<Combobox
:collection="collection"
@input-value-change="handleInputValueChange"
@value-change="handleValueChange"
:positioning="{ getAnchorElement: () => triggerRef }"
selectionBehavior="clear"
:value="value"
>
<ComboboxTrigger
:class='cn(
buttonVariants({ variant: "outline" }),
"w-[250px] justify-between"
)'
ref="triggerRef"
>
{{ selected ? selected.label : "Select item..." }}
</ComboboxTrigger>
<ComboboxContent>
<ComboboxInput class="w-full" placeholder="Search items..." :showTrigger="false" />
<div class="flex gap-1 border-b p-2">
<Button
v-for="option in filters"
:aria-pressed="category === option.value"
:data-category="option.value"
:key="option.label"
@click="handleFilter"
:pill="true"
size="xs"
:variant='category === option.value ? "default" : "outline"'
>
{{ option.label }}
<!-- The rest of the file is under Installation. -->FAQ
How are the filter buttons built?
Small pill Buttons in a row with border-b p-2. The active one uses the default variant and the rest are outline, and each sets aria-pressed.
How does a button set the filter?
It stores its category, read from a data-category attribute, in state. All stores an empty category, which shows everything.
How do the filter and the search combine?
The items are narrowed to the category first, then the search filters what's left.
Both are applied while building the collection with createListCollection.
Which issues are listed?
Bug Report and Critical Bug (Bugs), Feature Request and New Feature (Features), and Documentation (Docs). No item found. shows when nothing matches.
API Reference
Combobox
Sets collection="collection", input-value-change="handleInputValueChange", value-change="handleValueChange", positioning, getAnchorElement and class. The rest is on the Combobox page.
Button
Sets v-for="option in filters", aria-pressed="category === option.value", data-category="option.value", key="option.label", click="handleFilter" and pill. The rest is on the Button page.





