"use client" import { Autocomplete, useFilter } from "react-aria-components" import { Example, ExampleWrapper, } from "@/registry/bases/aria/components/example" import { Button } from "@/registry/bases/aria/ui/button" import { Dialog, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "@/registry/bases/aria/ui/dialog" import { Field, FieldDescription, FieldError, FieldLabel, } from "@/registry/bases/aria/ui/field" import { Input } from "@/registry/bases/aria/ui/input" import { Item, ItemContent, ItemDescription, ItemTitle, } from "@/registry/bases/aria/ui/item" import { NativeSelect, NativeSelectOption, } from "@/registry/bases/aria/ui/native-select" import { Select, SelectContent, SelectEmpty, SelectGroup, SelectInput, SelectItem, SelectLabel, SelectList, SelectPopover, SelectSeparator, SelectTrigger, SelectValue, } from "@/registry/bases/aria/ui/select" import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder" export default function SelectExample() { return ( ) } function SelectBasic() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes" }, { label: "Pineapple", value: "pineapple" }, ] return ( ) } function SelectSides() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, ] return (
{(["start", "left", "top", "bottom", "right", "end"] as const).map( (placement) => ( ) )}
) } function SelectWithIcons() { const items = [ { label: ( <> Line ), value: "line", }, { label: ( <> Bar ), value: "bar", }, { label: ( <> Pie ), value: "pie", }, ] return (
) } function SelectWithGroups() { const fruits = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, ] const vegetables = [ { label: "Carrot", value: "carrot" }, { label: "Broccoli", value: "broccoli" }, { label: "Spinach", value: "spinach" }, ] return ( ) } function SelectLargeList() { const items = Array.from({ length: 100 }).map((_, i) => ({ label: `Item ${i}`, value: `item-${i}`, })) return ( ) } function SelectSizes() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, ] return (
) } function SelectWithButton() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, ] return (
) } function SelectItemAligned() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes", disabled: true }, { label: "Pineapple", value: "pineapple" }, ] return ( ) } function SelectWithField() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes" }, { label: "Pineapple", value: "pineapple" }, ] return ( Favorite Fruit Choose your favorite fruit from the list. ) } function SelectInvalid() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes" }, { label: "Pineapple", value: "pineapple" }, ] return (
Favorite Fruit
) } function SelectInline() { const items = [ { label: "All", value: "all" }, { label: "Active", value: "active" }, { label: "Inactive", value: "inactive" }, ] return (
Sort by Name Date Status
) } function SelectDisabled() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes", disabled: true }, { label: "Pineapple", value: "pineapple" }, ] return ( ) } const plans = [ { name: "Starter", description: "Perfect for individuals getting started.", }, { name: "Professional", description: "Ideal for growing teams and businesses.", }, { name: "Enterprise", description: "Advanced features for large organizations.", }, ] function SelectPlan() { return ( ) } function SelectPlanItem({ plan }: { plan: (typeof plans)[number] }) { return ( {plan.name} {plan.description} ) } function SelectMultiple() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes" }, { label: "Pineapple", value: "pineapple" }, { label: "Strawberry", value: "strawberry" }, { label: "Watermelon", value: "watermelon" }, ] return ( ) } function SelectInDialog() { const items = [ { label: "Apple", value: "apple" }, { label: "Banana", value: "banana" }, { label: "Blueberry", value: "blueberry" }, { label: "Grapes", value: "grapes" }, { label: "Pineapple", value: "pineapple" }, ] return ( Select Example Use the select below to choose a fruit. ) } const countries = [ { code: "ar", value: "argentina", label: "Argentina", continent: "South America", }, { code: "au", value: "australia", label: "Australia", continent: "Oceania" }, { code: "br", value: "brazil", label: "Brazil", continent: "South America" }, { code: "ca", value: "canada", label: "Canada", continent: "North America" }, { code: "cn", value: "china", label: "China", continent: "Asia" }, { code: "co", value: "colombia", label: "Colombia", continent: "South America", }, { code: "eg", value: "egypt", label: "Egypt", continent: "Africa" }, { code: "fr", value: "france", label: "France", continent: "Europe" }, { code: "de", value: "germany", label: "Germany", continent: "Europe" }, { code: "it", value: "italy", label: "Italy", continent: "Europe" }, { code: "jp", value: "japan", label: "Japan", continent: "Asia" }, { code: "ke", value: "kenya", label: "Kenya", continent: "Africa" }, { code: "mx", value: "mexico", label: "Mexico", continent: "North America" }, { code: "nz", value: "new-zealand", label: "New Zealand", continent: "Oceania", }, { code: "ng", value: "nigeria", label: "Nigeria", continent: "Africa" }, { code: "za", value: "south-africa", label: "South Africa", continent: "Africa", }, { code: "kr", value: "south-korea", label: "South Korea", continent: "Asia" }, { code: "gb", value: "united-kingdom", label: "United Kingdom", continent: "Europe", }, { code: "us", value: "united-states", label: "United States", continent: "North America", }, ] function SelectAutocomplete() { const { contains } = useFilter({ sensitivity: "base" }) return ( ) }