registry/default/variants/v-autocomplete-16.tsx
"use client";
import {
Autocomplete,
AutocompleteEmpty,
AutocompleteInput,
AutocompleteItem,
AutocompleteList,
AutocompletePopup,
} from "@/registry/default/ui/autocomplete";
type Country = { id: string; label: string; code: string; flag: string };
const countries: Country[] = [
{ code: "US", flag: "๐บ๐ธ", id: "us", label: "United States" },
{ code: "GB", flag: "๐ฌ๐ง", id: "gb", label: "United Kingdom" },
{ code: "DE", flag: "๐ฉ๐ช", id: "de", label: "Germany" },
{ code: "FR", flag: "๐ซ๐ท", id: "fr", label: "France" },
{ code: "JP", flag: "๐ฏ๐ต", id: "jp", label: "Japan" },
{ code: "IN", flag: "๐ฎ๐ณ", id: "in", label: "India" },
{ code: "CA", flag: "๐จ๐ฆ", id: "ca", label: "Canada" },
{ code: "AU", flag: "๐ฆ๐บ", id: "au", label: "Australia" },
{ code: "BR", flag: "๐ง๐ท", id: "br", label: "Brazil" },
{ code: "SG", flag: "๐ธ๐ฌ", id: "sg", label: "Singapore" },
{ code: "NL", flag: "๐ณ๐ฑ", id: "nl", label: "Netherlands" },
{ code: "SE", flag: "๐ธ๐ช", id: "se", label: "Sweden" },
{ code: "NO", flag: "๐ณ๐ด", id: "no", label: "Norway" },
{ code: "CH", flag: "๐จ๐ญ", id: "ch", label: "Switzerland" },
{ code: "KR", flag: "๐ฐ๐ท", id: "kr", label: "South Korea" },
{ code: "MX", flag: "๐ฒ๐ฝ", id: "mx", label: "Mexico" },
{ code: "ES", flag: "๐ช๐ธ", id: "es", label: "Spain" },
{ code: "IT", flag: "๐ฎ๐น", id: "it", label: "Italy" },
{ code: "PL", flag: "๐ต๐ฑ", id: "pl", label: "Poland" },
{ code: "ZA", flag: "๐ฟ๐ฆ", id: "za", label: "South Africa" },
];
export default function Particle() {
return (
<div className="flex w-full max-w-xs flex-col gap-1.5">
<label className="font-medium text-sm">Country</label>
<Autocomplete items={countries}>
<AutocompleteInput
placeholder="Search countryโฆ"
showClear
showTrigger
/>
<AutocompletePopup>
<AutocompleteEmpty>No country found.</AutocompleteEmpty>
<AutocompleteList>
{(country: Country) => (
<AutocompleteItem key={country.id} value={country}>
<div className="flex w-full items-center gap-2.5">
<span aria-hidden="true" className="text-base leading-none">
{country.flag}
</span>
<span className="flex-1 font-medium text-sm">
{country.label}
</span>
<span className="font-mono text-muted-foreground text-xs">
{country.code}
</span>
</div>
</AutocompleteItem>
)}
</AutocompleteList>
</AutocompletePopup>
</Autocomplete>
</div>
);
}






















