Month-range picker — C3-2 adopt, rendered evidence

The custom-range surface of MonthRangePicker, rebuilt as the C3-2 folder. One component, so the dashboard chart toolbar and /leasing change together.

Captured from a local dev server in the PR's own worktree (no Vercel preview build), against the arsenal preview at /admin/dev/components — the same component both mount points render · spec: round 3

Before — the old surface (origin/main)

A year header with a chevron stepper. Which endpoint the next click sets is nowhere on screen, and 2000 is twenty-six chevron clicks away.

Before — the old surface (origin/main) — light
Light
Before — the old surface (origin/main) — dark
Dark

After — From open

The fields ARE the tabs. From is open and fused into the panel with the RowSwitcherTabs silhouette; both tabs carry their live values; the year column replaces the stepper.

After — From open — light
Light
After — From open — dark
Dark

After — auto-advanced to To

Picking a From month hands the turn to To on its own — the chart tabs' instant swap. Nobody clicked the To tab.

After — auto-advanced to To — light
Light
After — auto-advanced to To — dark
Dark

After — the year column scrolled to 2000

The column runs current year → 2000 under the app's canonical thin scrollbar.

After — the year column scrolled to 2000 — light
Light
After — the year column scrolled to 2000 — dark
Dark

After — 2000 selected in one click

The grid follows the column, and nothing is greyed: no month of 2000 is in the future.

After — 2000 selected in one click — light
Light
After — 2000 selected in one click — dark
Dark

After — tap the open tab to collapse

The picker closes to the hairline its tabs sit on. Both values survive; the folder keeps its shape.

After — tap the open tab to collapse — light
Light
After — tap the open tab to collapse — dark
Dark

In situ — the folder on a real product surface

The prospects list's window control, opened to "Specific months…". Same component, no arsenal harness: the tabs, the year column and the panel sit at the popover's natural width inside the page.

Prospects list with the folder open
Prospects list · light

In situ — /leasing is deliberately unchanged

The leasing hub passes allowCustom={false}: its numbers are recounted server-side by PeriodKey, so there is no from/to contract an arbitrary month span could be sent as. It offers quick ranges only — no "Specific months…", no folder. That is preserved, not overlooked.

Leasing hub quick ranges only
/leasing · light

What is NOT changed here. The "Specific months…" expander above the folder stays: C3-2's "no separate trigger fields" is about the From/To fields the other round-3 variants put beside the panel, not about that expander, which carries the round-2 hierarchy decision ("people aren't gonna click months — focus on the quick options"). The commit contract is also untouched — every pick is draft-only, and the popover's Apply is still the only thing that commits.

The silhouette is the real one. The tabs render RowSwitcherTabs' single-path SVG, extracted to ui/chrome/FolderTab so both hosts draw one shape rather than two that agree today. RowSwitcherTabs renders identically after the move.

PropFlow Docs