diff --git a/.prettierignore b/.prettierignore index 0a50cea65..8020fa591 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,4 +2,5 @@ node_modules packages/react-resizable-panels/dist packages/react-resizable-panels-website/.cache -packages/react-resizable-panels-website/dist \ No newline at end of file +packages/react-resizable-panels-website/dist +packages/react-resizable-panels/src/vendor/stacking-order.ts \ No newline at end of file diff --git a/packages/react-resizable-panels/src/vendor/stacking-order.ts b/packages/react-resizable-panels/src/vendor/stacking-order.ts index f3dd29106..ec51aad80 100644 --- a/packages/react-resizable-panels/src/vendor/stacking-order.ts +++ b/packages/react-resizable-panels/src/vendor/stacking-order.ts @@ -1,5 +1,6 @@ // Forked from NPM stacking-order@2.0.0 // Background at https://github.com/Rich-Harris/stacking-order/issues/3 +// Background at https://github.com/Rich-Harris/stacking-order/issues/6 import { assert } from ".."; @@ -61,7 +62,8 @@ const props = /** @param {HTMLElement} node */ function is_flex_item(node: HTMLElement) { - const display = getComputedStyle(get_parent(node)).display; + // @ts-ignore + const display = getComputedStyle(get_parent(node) ?? node).display; return display === "flex" || display === "inline-flex"; } @@ -115,11 +117,12 @@ function get_z_index(node: HTMLElement | null) { } /** @param {HTMLElement} node */ -function get_ancestors(node: HTMLElement) { +function get_ancestors(node: HTMLElement | null) { const ancestors = []; while (node) { ancestors.push(node); + // @ts-ignore node = get_parent(node); } @@ -128,6 +131,9 @@ function get_ancestors(node: HTMLElement) { /** @param {HTMLElement} node */ function get_parent(node: HTMLElement) { - // @ts-ignore - return node.parentNode?.host || node.parentNode; + const { parentNode } = node; + if (parentNode && parentNode instanceof ShadowRoot) { + return parentNode.host + } + return parentNode; }