# With Icons

> Options with leading icons.

A shadcn/ui block from the [@flx](https://ui.flexnative.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/flx/select-04).

- Page, with a live preview: https://shadcn.exchange/r/flx/select-04
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/flx/select-04-light-a654b6959d9b93c3.png
- Registry item: https://ui.flexnative.com/r/select-04.json
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://ui.flexnative.com/r/select-04.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- npm packages: `lucide-react`
- Registry items: `select`

## Files

### `registry/patterns/select/select-04.tsx`

```tsx
import {
  Select,
  SelectContent,
  SelectGroup,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from '@/components/ui/select'
import {
  CircleIcon,
  TriangleAlertIcon,
  CheckCircleIcon,
  XCircleIcon,
  ClockIcon,
} from 'lucide-react'

const items = [
  {
    value: 'none',
    label: 'None',
    icon: CircleIcon,
  },

  {
    value: 'low',
    label: 'Low',
    icon: ClockIcon,
  },
  {
    value: 'medium',
    label: 'Medium',
    icon: TriangleAlertIcon,
  },
  {
    value: 'high',
    label: 'High',
    icon: XCircleIcon,
  },
  {
    value: 'done',
    label: 'Done',
    icon: CheckCircleIcon,
  },
]

export function Select04() {
  return (
    <Select defaultValue="done">
      <SelectTrigger className="w-full max-w-56">
        <SelectValue placeholder="Select a priority" />
      </SelectTrigger>
      <SelectContent>
        <SelectGroup>
          {items.map((item) => (
            <SelectItem key={item.value} value={item.value}>
              <item.icon className="size-3.5" />
              <span>{item.label}</span>
            </SelectItem>
          ))}
        </SelectGroup>
      </SelectContent>
    </Select>
  )
}
```
