← All tests

POS ⋮ more-menu — Starter clipping fix PROD

Reported from the field: the POS “more actions” (⋮) menu opened fine on get-coffee (Pro) but showed nothing on lumiere (Starter). Root cause was a CSS clipping bug, not a tier gate.

Root cause: the Starter fullscreen register top-bar (StarterLockableShell) has overflow-x-auto (added for narrow-screen horizontal scroll). CSS forces the cross-axis to clip too, so the absolutely-positioned ⋮ dropdown — which extends below the bar — was clipped to nothing. The Pro shell has no overflow-x-auto, so it was never affected. Fix: PosMoreMenu now renders its dropdown in a portal (document.body, fixed position from the trigger's rect), so no ancestor overflow can clip it. Layout/scroll unchanged; all three POS surfaces hardened. nix-cafe f6f8105.

Gate 2 (prod) — verified on lumiere Starter fullscreen register:

SSO login (Starter) → open fullscreen register → manager-override PIN unlock
click ⋮ → dropdown visible (188×200px, was clipped to 0 before)
parentElement === document.body → dropdown is portaled, escaping the clip
rendered inside the viewport · all 5 menu items present · Escape closes it
full narongix regression sweep 51/51 (no POS regression from the portal change)

The ⋮ menu now opens on Starter

POS more-menu open on Starter fullscreen register
lumiere-coffee (Starter) fullscreen register — the ⋮ dropdown now renders (portaled to <body>)

app/(authed)/pos/_components/pos-more-menu.tsx (portal) · harness test-pos-more-menu-starter-fix-prod.mjs (5/5).