From 6614bd70bd5f64cd0fcc52be5203c2ed54db158f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Jun 2024 16:01:50 +0000 Subject: [PATCH 1/2] Update to upstream @floating-ui/utils@0.2.3 --- upstream.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upstream.toml b/upstream.toml index 955e787..337806f 100644 --- a/upstream.toml +++ b/upstream.toml @@ -1,5 +1,5 @@ [releases] core = "1.6.2" dom = "1.6.5" -utils = "0.2.2" +utils = "0.2.3" vue = "1.0.6" From 66be027f3b0e543950ada4a3139a027cd2a8136c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABlle=20Huisman?= Date: Wed, 26 Jun 2024 08:25:39 +0200 Subject: [PATCH 2/2] Fix detecting top layer elements --- packages/utils/src/dom.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/utils/src/dom.rs b/packages/utils/src/dom.rs index e577068..12c09de 100644 --- a/packages/utils/src/dom.rs +++ b/packages/utils/src/dom.rs @@ -156,6 +156,12 @@ pub fn is_table_element(element: &Element) -> bool { ["table", "td", "th"].into_iter().any(|s| node_name == s) } +pub fn is_top_layer(element: &Element) -> bool { + [":popover-open", ":modal"] + .into_iter() + .any(|selector| element.matches(selector).unwrap_or(false)) +} + const WILL_CHANGE_VALUES: [&str; 3] = ["transform", "perspective", "filter"]; const CONTAIN_VALUES: [&str; 4] = ["paint", "layout", "strict", "content"]; @@ -197,6 +203,10 @@ pub fn get_containing_block(element: &Element) -> Option { while !is_last_traversable_node(¤t_node) { if let Ok(element) = current_node.dyn_into::() { + if is_top_layer(&element) { + return None; + } + if is_containing_block(&element) { return Some(element); }