, click-through carousel over a described gallery.
//
// The widget tier's browser half, and it is smaller than it was. The server no
// longer renders a carousel and no longer renders its chrome either: it renders
// an ordered set of pictures that says one of them is showing, and quasi-webview
// derives prev/position/next from that fact alone. So this file stopped
// injecting buttons and stopped building a dot strip. What is left is the one
// thing a description cannot carry: which frame the reader has moved to since
// the page arrived.
//
// NOTHING HERE KNOWS WHAT A CAROUSEL IS. The hook is `data-showing`, not
// `data-widget="carousel"`, and that is deliberate: a script that matched on the
// widget's name would have to be written again for the next assembly showing one
// child at a time. This binds every one of them, including ones that do not
// exist yet.
//
// PROGRESSIVE ENHANCEMENT. The controls are on the page but makeover keeps
// `.showing` hidden until `data-ready` is set, so a reader with no script is
// never offered a button that does nothing. `no-js.css`, loaded from a
//