The menu wears the GRID's theme, not the app's: it is part of the cell it drops from, so the grid float carries the grid surface and the grid's own mode (a dark menu over a dark grid in a light app).
The items are asked of resolveItems when the menu opens, for this cell — a relative source gives
each row its own list. A choice goes to onChoose, or by default is entered through the editable
(commitListPick), never written to the cell directly.
A cell picker — a menu through the shared float stack (so it gets the portal, stacking, light-dismiss and Escape every other popup in the app has), positioned by the grid on the cell it is for (
renderGridFloatPanel), so it moves with the cell as the grid scrolls, as the cell's button does.