The top-bar building picker on the company picker's primitive: checkbox rows, the shared footer, several buildings in one selection.
23 Sept 2026 · branch feat/property-picker-multiselect · captured against propflow-stage · at 5823ea6a92
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
Fairhaven Residential (TEST) is picked in the rail. The building picker opens the same panel as the company picker: search, checkbox rows, and the footer with the count, Done and the all-state. Nothing ticked reads All Properties.
Asserted in the captured DOM — All Properties · Done · August Court · Brightwater Flats. The footer's Done and the all-state label are in the open panel.
Two rows ticked. The footer counts them, and nothing has navigated yet: a tick edits a draft, and Done commits once.
Asserted in the captured DOM — selected · Done · August Court · Brightwater Flats. The footer reads 'N of M selected' with two ticks.
Done commits both buildings as one selection (prop= carries both ids). The trigger now reads 2 properties.
Asserted in the captured DOM — 2 properties. The trigger names the committed count.
At Every company no company is named, so a building pick would be dropped by the selection model. The panel says what to do instead of listing rows that do nothing.
Asserted in the captured DOM — Pick a company in the top-left corner to choose buildings.. The fleet notice is in the open panel.
Two companies are picked in the rail. The panel groups buildings under a header for each company. After ticking one Fairhaven building, the second company's header and rows are still in the open panel, so buildings from both companies can be picked together. The panel's companies come from the committed selection. A tick only edits buildings within them.
Asserted in the captured DOM — Fairhaven Residential (TEST) · August Court · selected · Done. Both company headers are required by the waits after the tick (a missing header aborts the run). The footer counts the tick.
Part 2 moves the Copy link action into this footer. It still sits beside the trigger in these frames.