Back to Shark UI

Autocomplete

docs/components/autocomplete

latest9.7 KB
Original Source

Sections

Components

Utilities

Forms

Hooks

Autocomplete

Copy Markdown

Displays a searchable list of options.

DocsAPI

PreviewCode

Search fruits

Installation#

CLIManual

pnpmbunnpmyarn

pnpm dlx shadcn@latest add @shark/autocomplete

Anatomy#

Autocomplete
├── AutocompleteInput
└── AutocompleteContent
    ├── AutocompleteEmpty
    └── AutocompleteList
        └── AutocompleteGroup
            ├── AutocompleteGroupLabel
            └── AutocompleteItem

Usage#

import { useFilter, useListCollection } from "@ark-ui/react";
import {
  Autocomplete,
  AutocompleteContent,
  AutocompleteEmpty,
  AutocompleteGroup,
  AutocompleteInput,
  AutocompleteItem,
  AutocompleteList,
} from "@/components/ui/autocomplete";
const { contains } = useFilter({ sensitivity: "base" });
const { collection, filter } = useListCollection({
  initialItems: [
    { label: "Apple", value: "apple" },
    { label: "Banana", value: "banana" },
  ],
  filter: contains,
});

<Autocomplete
  collection={collection}
  onInputValueChange={({ inputValue }) => filter(inputValue)}
>
  <AutocompleteInput placeholder="Select an option" />
  <AutocompleteContent>
    <AutocompleteEmpty />
    <AutocompleteList>
      {items.map((item) => (
        <AutocompleteItem item={item} key={item.value}>
          {item.label}
        </AutocompleteItem>
      ))}
    </AutocompleteList>
  </AutocompleteContent>
</Autocomplete>

Controlled#

Control the selected value with value and onValueChange props.

PreviewCode

Selected: banana

States#

Invalid#

PreviewCode

Disabled#

PreviewCode

Sizes#

Small#

PreviewCode

Medium#

PreviewCode

Large#

PreviewCode

Examples#

Group#

PreviewCode

With Field#

Use Field components to style with the field components.

PreviewCode

Country

We'll use this for shipping estimates

With clear button#

Pass showClear to AutocompleteInput to show a clear button.

PreviewCode

With trigger#

Pass showTrigger to AutocompleteInput to show the dropdown trigger button.

PreviewCode

With start icon#

Use InputGroupAddon to add a start icon to the input.

PreviewCode

API Reference#

Autocomplete#

Root component.

PropTypeDefault
collectionListCollection<T>required
valuestring[]-
defaultValuestring[]-
onValueChange(details: ValueChangeDetails<T>) => void-
onInputValueChange(details: InputValueChangeDetails) => void-
disabledboolean-
openOnClickbooleantrue
lazyMountbooleantrue
unmountOnExitbooleantrue
classNamestring-

AutocompleteInput#

Input with dropdown trigger and clear button.

PropTypeDefault
size`"sm""md"
showTriggerbooleanfalse
showClearbooleanfalse
disabledboolean-
classNamestring-

AutocompleteContent#

Holds the dropdown options. Displayed in a portal.

PropTypeDefault
classNamestring-
asChildboolean-

AutocompleteGroup#

Groups related items. Use with groupBy on the collection.

PropTypeDefault
heading`stringReactNode`
classNamestring-

AutocompleteGroupLabel#

Label for a group of options. Use inside AutocompleteGroup.

PropTypeDefault
classNamestring-
asChildboolean-

AutocompleteItem#

Single selectable option in the dropdown list.

PropTypeDefault
itemTrequired
classNamestring-
asChildboolean-

AutocompleteEmpty#

Shown when no options match the current filter. Use for empty state.

PropTypeDefault
classNamestring-
asChildboolean-

For a complete list of props, see the Ark UI documentation.

[

Previous page

Aspect Ratio ](/docs/components/aspect-ratio)[

Next page

Avatar ](/docs/components/avatar)

On This Page

InstallationAnatomyUsageControlledStatesInvalidDisabledSizesSmallMediumLargeExamplesGroupWith FieldWith clear buttonWith triggerWith start iconAPI ReferenceAutocompleteAutocompleteInputAutocompleteContentAutocompleteGroupAutocompleteGroupLabelAutocompleteItemAutocompleteEmpty