Files
airship/packages
Nayan 3f39fdbe58 feat(overlay): wheel through nested documents, and prove the math in a browser
The last seam of #17. scrollTargetAt walked up from the outer document's
hit — which over a nested same-origin iframe is the <iframe> element, so
a wheel over a story scrolled the manager's panes, or nothing. The walk
now follows the point down through same-origin iframes first (the same
step the surface resolver takes, same depth cap), then walks up from the
deepest hit, crossing each boundary at its iframe so a scrollable pane
holding the nested document still answers; the document fallback asks
each level, deepest first. Cross-origin and torn-down frames keep the
existing let-the-canvas-have-it catch.

The new browser-tier story is what actually guards the coordinate
composition — the only tier with real layout. It nests an iframe behind
a deliberate sidebar/toolbar inset with a real border (clientLeft), and
asserts the resolver descends to the nested document, the hit under the
cursor is the target, of(node) ascends to the same surface, and the
composed screen rect matches the browser's own rects — at 1x and at
0.5x, because an offset applied after the scale is invisible at 1x.
2026-08-16 13:05:37 +05:30
..