The panel viewport is active when makeContent fires, so we can measure each
tag's footprint in current native units via
grid::convertWidth(grobWidth(...), "native") and call eunoia's
place_euler_labels() again. On resize, grid invalidates the tree and
makeContent re-runs, so the placement tracks the current device
automatically.
# S3 method for EulerTags
makeContent(x)x, with its children repositioned for the current device size.
an EulerTags gTree.
Tags whose measured size is zero (or whose anchor / kind eunoia can't
compute) keep the positions they were built with — typically the setup-time
placement stored on centers$x / centers$y.