Compare picker stage — shown when sessions exist but fewer than two
are selected. Two-column grid: a left card carries a searchable
session list with a checkbox per row + a footer with Clear /
Compare actions; the right column carries an explainer card +
a live preview of picked sessions.
Selection is local state (a Set). When the user hits Compare, the
picker hands the ids list up via onPick so the parent can update
the URL's ?ids= param + flip the page into the overlay view.
The selection caps at max (4 by default); rows past the cap render
disabled. A 1-picked state surfaces an inline warn hint above the
Compare button.
Compare picker stage — shown when sessions exist but fewer than two are selected. Two-column grid: a left card carries a searchable session list with a checkbox per row + a footer with Clear / Compare actions; the right column carries an explainer card + a live preview of picked sessions.
Selection is local state (a Set). When the user hits Compare, the picker hands the ids list up via
onPickso the parent can update the URL's?ids=param + flip the page into the overlay view.The selection caps at
max(4 by default); rows past the cap render disabled. A 1-picked state surfaces an inline warn hint above the Compare button.