Preview 1 / 5 — Searchable campaign list

First step of the booking wizard. Today this is plain `cmdk`. Pick whichever feels right; library trade-offs listed under each.

Wizard step 0 — Pick a campaign Realistic Rodeo Leads campaign names below All four are searchable + keyboard-navigable
Reminder for context: This list is what an agent sees when clicking Book Appointment on a Campaign Calls row whose order can't be auto-resolved. It's also the first step when booking from anywhere else. Today's plain list is what you said feels weak.

A   Current lib   cmdk Command, polished

Same library you have today (`cmdk`) with proper density, group headers, item subtitles, and a real loading skeleton. No new deps. This is the "polish what's there" path.

Pros
  • Zero deps
  • Smallest diff
  • Already used elsewhere
Cons
  • Still "vanilla" feel
  • Manual polish for every detail
Acme Solar
Acme Corp — Solar 2026 Q2
Acme Solar · APPOINTMENTS
128 of 300 left
Acme Corp — Solar Refi Spring
Acme Solar · APPOINTMENTS
42 left
Pacific Coast
Pacific Coast — Residential Solar
Pacific Coast · APPOINTMENTS
213 left

B   Current lib   shadcn Combobox preset

Same `cmdk` engine, but wrapped in shadcn's Combobox preset (closed trigger button → opens popover with cmdk inside). Feels more like a proper form field. Still zero new deps — shadcn primitives already in your codebase.

Pros
  • Looks like form input
  • Closed state saves vertical space
  • Zero new deps
Cons
  • Extra click to open
  • Slightly more state plumbing
Acme Corp — Solar 2026 Q2 · Acme Solar
Acme Corp — Solar 2026 Q2
Acme Solar · 128 left
Bright Future — Roofing California
Bright Future · 64 left
Sunset Ridge HOA — Inspection Drive
Sunset Ridge HOA · 7 left
Pacific Coast — Window Replacement
Pacific Coast · 213 left

C   + New dep   react-select

Heavyweight, polished, customizable. Best-in-class for forms with rich item content, async loading, multi-select, and grouping. Adds ~25 KB gzipped. Look-and-feel matches Salesforce/Airtable-style enterprise UIs out of the box.

Pros
  • Enterprise polish
  • Async + virtualized
  • Mature a11y
Cons
  • +25 KB gzipped
  • Heavier theming
  • Different style language than rest of app
Acme Corp — Solar 2026 Q2 ✕
Acme Corp — Solar 2026 Q2 128 left
Acme Corp — Solar Refi Spring 42 left
Bright Future — Roofing California 64 left
Pacific Coast — Window Replacement 213 left
Sunset Ridge HOA — Inspection Drive 7 left
Texas Foundation — Concrete Lifting 19 left

D   Current lib   Linear-style command palette

Same `cmdk` engine but Linear/Raycast feel: dark, dense, sticky group headers, keyboard hints in the footer, ⌘K-style aesthetic. Fits the "agent power-user tool" persona. Still no new deps.

Pros
  • Power-user feel
  • Visible kbd hints
  • Fast scanning
Cons
  • Dark UI breaks app's light theme
  • Heavier custom CSS
↑↓
Acme Solar — 2 active
Acme Corp — Solar 2026 Q2
APPOINTMENTS · started Apr 12
128 / 300
Acme Corp — Solar Refi Spring
APPOINTMENTS · started Mar 28
42 / 100
Bright Future — 1 active
Bright Future — Roofing California
APPOINTMENTS · started Apr 1
64 / 200
Pacific Coast — 2 active
Pacific Coast — Window Replacement
APPOINTMENTS · started Mar 15
213 / 500