§8, §16 — Controlling the display setOptions · onViewOptionsChange · registerBinColorScheme · registerValueColorScheme · toolbar ↔ external controls stay in sync
Use ctrl.setOptions() to drive the map programmatically, and onViewOptionsChange to receive toolbar changes back into your app. The external controls in the sidebar stay in sync with the toolbar — change either one and both update. The programmatic action buttons demonstrate resetZoom() and highlightBin.

Both colour dropdowns include teal-rose, which this page registers twice before rendering — as a bin palette with registerBinColorScheme() and as a value gradient with registerValueColorScheme(). Pick it here, or open the toolbar's own palette menu (it lists bin palettes in bin modes, gradients otherwise) and see it listed there too. That is the point of registering rather than passing colours per call: a registered scheme becomes available everywhere, with no further wiring. Note this is the data palette (die colours). Theming the surrounding chrome is a separate mechanism — see the theming demo.
External controls
Custom colour scheme
registerBinColorScheme('teal-rose', { pass, fail })
registerValueColorScheme('teal-rose', { forValue })

A bin palette is two lists: pass colours for passing bins and fail colours for the rest, each handed out most-populous bin first — the library decides which bins pass (from passBins), never the bin number. forValue(t) interpolates a colour for value and stacked modes, t ∈ [0, 1]. Schemes are global, persist for the life of the page, and appear in the matching toolbar palette menu automatically.
Programmatic actions
Live state (from onViewOptionsChange)
plotMode
binColorScheme
valueColorScheme
rotation
rings
quadrants