RailOverlay — the flyout + panel-popover lifecycle for the control rail.
Only one overlay is open at a time. This owns opening/closing, positioning,
outside-click/routed dismissal, focus return, and chip active-state; the
ControlRail owns the buttons and, via the injected callbacks, the
button active-state refresh (which reads RailOverlay.activeItem).
Two overlay flavours share this machinery:
flyout: a horizontal row of icon toggle chips (View options).
popover: a vertical panel hosting rich controls built lazily by the
item's popover.build(host) (Navigation / Settings / Performance).
RailOverlay — the flyout + panel-popover lifecycle for the control rail.
Only one overlay is open at a time. This owns opening/closing, positioning, outside-click/routed dismissal, focus return, and chip active-state; the ControlRail owns the buttons and, via the injected callbacks, the button active-state refresh (which reads RailOverlay.activeItem).
Two overlay flavours share this machinery:
popover.build(host)(Navigation / Settings / Performance).