Stage 7 — Unified Filter Builder

Rendered in your Nexus design system (Inter · slate-900 nav · your Button/Badge/Checkbox styles). v1 replaces today's split — the always-on left-rail plus the separate “Advanced filter” drawer — with one builder.

Sample filter (same in each):  licensed in CA or TX · License category = Life · (email contains "agency" OR has a phone)12,431 agents.
Direction A — Tree + quick-add · shown in full app context (recommended)

Agents

12,431 agents Apply Filters ✕ Clear All ⬇ Save segment Segments
Filters
State ▾License ▾ Status ▾Source ▾+ more
Match ALL ▾
State (licensed)is one ofCA, TX
License categoryisLife
Match ANY ▾OR
Emailcontainsagency
NOTPhoneis empty
+ Add condition+ Group
12,431 agents match
Agents licensed in CA or TX, category Life, where email contains “agency” or phone is present.
First NameLast NamePhoneStateLicense
MariaAlvarez(305) 555-0142CALife
JamesBell(214) 555-0190TXLife
AishaKhan(415) 555-0177CALife
DevonPierce(512) 555-0123TXLife
Showing 1–50 of 12,431
Compare the filter panel — A vs B vs C (same app, same filter)
A

Tree + quick-add

Rec
Filters
State ▾License ▾Status ▾
Match ALL ▾
StateinCA, TX
License cat.isLife
ANY ▾OR
Emailcontainsagency
NOTPhoneempty
+ condition+ group
12,431
CA/TX · Life · email “agency” or has phone

Fast common case + one model. Slightly denser panel.

B

Pure tree

Filters
Match ALL ▾
StateinCA, TX
License cat.isLife
+ Add condition
lic|
License
License category
License type
Provenance
NPNn/a · 528k
License #n/a · 628k
12,431
Every filter via searchable field picker

One model, field search scales. “State = CA” costs more clicks.

C

Simple / Advanced

Filters
SimpleAdvanced
Licensed state
California
Texas
License category
Life
Email
contains “agency”
Status
Active only
12,431
Advanced tab → full tree, same filter

Familiar default. Re-introduces a soft “two surfaces” split.

Faithful to your design tokens (Inter, primary hsl(221 83% 53%), slate-900 nav, your real Button/Badge/Checkbox/Select styles & the drawer pattern). Wireframe-level layout, not pixel-final. The live count + plain-language preview + source-aware “n/a · count” reflect shipped Stage 3/4. Tell me A, B, or C (and tweaks) in the terminal.