Banana 2077
README.md
game.shops.ui
The widget trees of Banana 2077's shops slice, as pure builders over the RPG state (game.rules) and a small view model owned by the Shops component:
U.shopTree(m): the vendor shop (layer 155). It has a neon-sign header, BUY / SELL tabs, a scrolling list of item rows (kind colour, price, level lock, can't-afford state, owned count), and a detail panel with stat mods and the difference against the item equipped in that slot.U.confirmTree(c): the buy/sell confirm dialog (layer 157).- Row model:
U.shopRows(vendor, tab). Helpers:U.window(scroll window),U.diff,U.effects,U.kindLine,U.money,U.KIND, andU.VISIBLE(rows shown at once).
Every onClick id it emits (shop:*) lands in Shops.component's onCallback. Trees are rebuilt only on input or a rules event, never per frame.
V's menu (inventory, character, perks, skills) is drawn by game.rpg.menu, which borrows U.effects, U.kindLine and U.money from here.