[fix] applying :global for > combinator (#6563)

pull/6577/head
Tan Li Hau 3 years ago committed by GitHub
parent 69e3c0fe7f
commit ee769101fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -227,7 +227,8 @@ function apply_selector(blocks: Block[], node: Element, to_encapsulate: Array<{
return false;
} else if (block.combinator.name === '>') {
if (apply_selector(blocks, get_element_parent(node), to_encapsulate)) {
const has_global_parent = blocks.every(block => block.global);
if (has_global_parent || apply_selector(blocks, get_element_parent(node), to_encapsulate)) {
to_encapsulate.push({ node, block });
return true;
}

@ -0,0 +1,27 @@
export default {
warnings: [
{
code: 'css-unused-selector',
end: {
character: 111,
column: 21,
line: 8
},
frame: `
6: color: red;
7: }
8: a:global(.foo) > div {
^
9: color: red;
10: }
`,
message: 'Unused CSS selector "a:global(.foo) > div"',
pos: 91,
start: {
character: 91,
column: 1,
line: 8
}
}
]
};

@ -0,0 +1 @@
div>div.svelte-xyz.svelte-xyz{color:red}div.svelte-xyz.foo>div.svelte-xyz{color:red}

@ -0,0 +1,3 @@
<div class="svelte-xyz">
<div class="svelte-xyz"></div>
</div>

@ -0,0 +1,15 @@
<style>
:global(div) > div {
color: red;
}
div:global(.foo) > div {
color: red;
}
a:global(.foo) > div {
color: red;
}
</style>
<div>
<div />
</div>

@ -0,0 +1,3 @@
<div class="svelte-xyz">
<div class="svelte-xyz"></div>
</div>

@ -0,0 +1,9 @@
<style>
:global(a) > :global(b) > div {
color: red;
}
</style>
<div>
<div />
</div>

@ -0,0 +1,3 @@
<div class="svelte-xyz">
<div class="svelte-xyz"></div>
</div>
Loading…
Cancel
Save