PR 14185 — Turn on your buildings

Buildings on/off S7 part 1: #14185. The new onboarding step /onboarding/buildings is the customer BuildingsTable, and saving goes through the settings PATCH.

How these were captured

Captured from the branch's own dev server (Playwright, 1280×900 and 390×844, light and dark). GET/PATCH /api/settings/buildings were answered by a synthetic 8-building fixture (invented names, no stage or production data). Two reasons: the evidence tool's smoke login is staff, which the wizard sends to the dashboard; and a brand-new company's pre-live portfolio, all Off, does not exist on stage to photograph. The PATCH handler in the fixture flips the row, so the two-on shots are the real table after two real switch presses round-tripped through the page's save path.

Round 1 — as a new customer lands (all Off)

Light. Heading, the count line "0 of 8 buildings are on", every building Off. "Looks unused" shows on the DO NOT USE and QuickBooks rows but does not pre-decide anything: those rows start Off like the rest.
Light. Heading, the count line "0 of 8 buildings are on", every building Off. "Looks unused" shows on the DO NOT USE and QuickBooks rows but does not pre-decide anything: those rows start Off like the rest.
Dark. The same state, dark tokens throughout.
Dark. The same state, dark tokens throughout.

Round 1 — after turning two on

Light. Two switches pressed. The count reads "2 of 8" and Status goes to On.
Light. Two switches pressed. The count reads "2 of 8" and Status goes to On.
Dark. The same state.
Dark. The same state.
Critique, round 1

(1) The page's own layout matches the review and sync steps: same type scale, header, footer and back arrow. (2) Status on the customer variant names the plan's modules ("On · Leasing, Renewals, Maintenance"). That is the shared S4 component's customer rendering and it is read-only, so it is not changed here. (3) The table's auto layout moves the In Propflow column when a long status appears. That also comes from the shared component, noted for S4. (4) No fabricated numbers: units and the count come from the rows.

Round 2 — phone width

390px light, after one press. The table scrolls sideways inside its own frame (shared DataTable behaviour), and the page itself does not scroll sideways.
390px light, after one press. The table scrolls sideways inside its own frame (shared DataTable behaviour), and the page itself does not scroll sideways.
390px dark, first paint. Building names come first; the switch is one swipe to the right.
390px dark, first paint. Building names come first; the switch is one swipe to the right.
Critique, round 2

The page has no horizontal overflow, and Continue stays reachable in the footer. The one weakness at phone width is that the switch column starts off-screen. That comes from the shared table's phone layout (S4), not from this step, and it applies equally to the settings page. It is flagged for that component rather than forked here.

PropFlow Docs