<!-- source-hash: 174def33d719cb0d6dbefdba06240030 -->
A dropdown component for assigning users to tickets, supporting two visual variants: a compact avatar-based popover and a default inline editable display.

## Key Components

### Interfaces
- **`TicketAssigneeOption`** — Shape for assignee list items (`value`, `label`, `imageUrl?`)
- **`AssigneeDropdownProps`** — Component props including `currentAssignee`, `options`, `onAssign` callback, and `variant`

### Exports
- **`AssigneeDropdown`** — Main entry component that delegates to `CompactAssigneeDropdown` or `DefaultAssigneeDropdown` based on the `variant` prop

### Internal Components
- **`CompactAssigneeDropdown`** — Renders a circular avatar button (or `UserPlusIcon` when unassigned) that opens a searchable Radix UI popover list; selecting the current assignee deselects them
- **`DefaultAssigneeDropdown`** — Inline display showing the assignee's avatar and name with a pencil edit icon; clicking switches to an `Autocomplete` input for searching and reassigning

## Usage Example

```typescript
import { AssigneeDropdown } from './assignee-dropdown'

const users = [
  { value: 'u1', label: 'Alice Johnson', imageUrl: '/avatars/alice.png' },
  { value: 'u2', label: 'Bob Smith' },
]

// Default variant (inline editable)
<AssigneeDropdown
  currentAssignee={{ id: 'u1', name: 'Alice Johnson', avatarSrc: '/avatars/alice.png' }}
  options={users}
  onAssign={(userId) => console.log('Assigned to:', userId)}
/>

// Compact variant (avatar popover)
<AssigneeDropdown
  options={users}
  onAssign={(userId) => console.log('Assigned to:', userId)}
  variant="compact"
/>
```

**Behavior notes:**
- `onAssign` receives `null` when the current assignee is deselected (compact variant toggle)
- Search resets automatically when the compact popover closes
- The `isLoading` prop shows a loading state inside the options list