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`.
The colour-scheme dropdown includes teal-rose, a custom palette this page registers with `registerColorScheme()` before rendering — pick it here, or open the toolbar's own palette picker 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
Mode
Colour scheme
Rotation
Ring boundaries
Quadrant boundaries
Die labels
Custom colour scheme
`registerColorScheme('teal-rose', { forBin, forValue })`
`forBin(bin)` returns a CSS colour for categorical bin modes. `forValue(t)` interpolates a colour for continuous value modes, t ∈ [0, 1]. Schemes are global, persist for the life of the page, and appear in every toolbar palette picker automatically.
Programmatic actions
Live state (from onViewOptionsChange)

plotMode | —
colorScheme | —
rotation | —
rings | —
quadrants | —