export function getScrollParent(el) { let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; while (el) { if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el; el = el.parentElement; } return document.scrollingElement; } export function getScrollParents(el, stopAt) { const elements = []; if (stopAt && el && !stopAt.contains(el)) return elements; while (el) { if (hasScrollbar(el)) elements.push(el); if (el === stopAt) break; el = el.parentElement; } return elements; } export function hasScrollbar(el) { if (!el || el.nodeType !== Node.ELEMENT_NODE) return false; const style = window.getComputedStyle(el); return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight; } function isPotentiallyScrollable(el) { if (!el || el.nodeType !== Node.ELEMENT_NODE) return false; const style = window.getComputedStyle(el); return ['scroll', 'auto'].includes(style.overflowY); } //# sourceMappingURL=getScrollParent.mjs.map