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
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.
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.
Picking a From month hands the turn to To on its own — the chart tabs' instant swap. Nobody clicked the To tab.
The column runs current year → 2000 under the app's canonical thin scrollbar.
The grid follows the column, and nothing is greyed: no month of 2000 is in the future.
The picker closes to the hairline its tabs sit on. Both values survive; the folder keeps its shape.
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.
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.
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.