web/svfe: the scroll edge bands live in the repo app's own stacking context, so its drawer, scrim and menus paint over them
Signed-off-by: dawn <dawn@tangled.org>
63 unmodified lines6465666768686970717273122 unmodified linesExpand all19619719819920019920120220320420520620718 unmodified lines63 unmodified lines
export const scrollChrome = (root: HTMLElement) => { const layer = document.createElement("div"); layer.className = "y-sc-layer"; // inside the root, so the root's drawer, scrim and menus stack over the bands document.body.appendChild(layer); root.appendChild(layer); root.classList.add("y-sc");
const parts = new Map<Element, Parts>(); let drag: { el: Element; y: number; top: number; k: number } | null = null;122 unmodified linesExpand all addEventListener("scroll", onScroll, { capture: true, passive: true }); addEventListener("resize", later); addEventListener("mousemove", onMove); addEventListener("mouseup", onUp); // the layer's own class flips (a thumb flashing) aren't changes to the page const observer = new MutationObserver(later); const observer = new MutationObserver((records) => { if (records.some((record) => !layer.contains(record.target))) later(); }); observer.observe(root, { childList: true, subtree: true, attributes: true,18 unmodified lines