From 7e26169d171ac8a9085d141e2fb0a8ea7c3f2fca Mon Sep 17 00:00:00 2001 From: Almaz Date: Thu, 29 Aug 2019 21:57:02 +0200 Subject: [PATCH] Fixed css selectors specificity --- src/compiler/compile/css/Selector.ts | 14 +++++++++++--- .../samples/attribute-selector-bind/expected.css | 2 +- .../attribute-selector-only-name/expected.css | 2 +- .../attribute-selector-unquoted/expected.css | 2 +- test/css/samples/basic/expected.css | 2 +- test/css/samples/css-vars/expected.css | 2 +- .../directive-special-character/expected.css | 2 +- test/css/samples/empty-rule-dev/expected.css | 2 +- test/css/samples/global-keyframes/expected.css | 2 +- .../samples/keyframes-autoprefixed/expected.css | 2 +- test/css/samples/keyframes-from-to/expected.css | 2 +- test/css/samples/keyframes/expected.css | 2 +- test/css/samples/local-inside-global/expected.css | 2 +- test/css/samples/media-query-word/expected.css | 2 +- test/css/samples/media-query/expected.css | 2 +- test/css/samples/nested/expected.css | 2 +- test/css/samples/not-selector/expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../expected.css | 2 +- .../samples/omit-scoping-attribute-id/expected.css | 2 +- .../samples/omit-scoping-attribute/expected.css | 2 +- test/css/samples/pseudo-element/expected.css | 2 +- test/css/samples/spread/expected.css | 2 +- test/css/samples/supports-query/expected.css | 2 +- test/css/samples/universal-selector/expected.css | 2 +- .../expected.css | 2 +- test/css/samples/unknown-at-rule/expected.css | 2 +- .../samples/unused-selector-leading/expected.css | 2 +- .../samples/unused-selector-ternary/expected.css | 2 +- test/css/samples/unused-selector/expected.css | 2 +- .../collapses-text-around-comments/expected.js | 4 ++-- test/js/samples/css-media-query/expected.js | 4 ++-- .../samples/styles-nested/_expected.css | 4 ++-- .../samples/styles/_expected.css | 2 +- 48 files changed, 61 insertions(+), 53 deletions(-) diff --git a/src/compiler/compile/css/Selector.ts b/src/compiler/compile/css/Selector.ts index 95eeaaf8cd..283236cea5 100644 --- a/src/compiler/compile/css/Selector.ts +++ b/src/compiler/compile/css/Selector.ts @@ -57,21 +57,29 @@ export default class Selector { } transform(code: MagicString, attr: string) { + const should_double_up_attr = this.blocks.filter(block => block.should_encapsulate).length === 1; + function encapsulate_block(block: Block) { let i = block.selectors.length; + let encapsulationAttr = attr; + + if (should_double_up_attr) { + encapsulationAttr = attr + attr; + } + while (i--) { const selector = block.selectors[i]; if (selector.type === 'PseudoElementSelector' || selector.type === 'PseudoClassSelector') { if (selector.name !== 'root') { - if (i === 0) code.prependRight(selector.start, attr); + if (i === 0) code.prependRight(selector.start, encapsulationAttr); } continue; } if (selector.type === 'TypeSelector' && selector.name === '*') { - code.overwrite(selector.start, selector.end, attr); + code.overwrite(selector.start, selector.end, encapsulationAttr); } else { - code.appendLeft(selector.end, attr); + code.appendLeft(selector.end, encapsulationAttr); } break; diff --git a/test/css/samples/attribute-selector-bind/expected.css b/test/css/samples/attribute-selector-bind/expected.css index 20543c5c8e..9dc2fcc42f 100644 --- a/test/css/samples/attribute-selector-bind/expected.css +++ b/test/css/samples/attribute-selector-bind/expected.css @@ -1 +1 @@ -details[open].svelte-xyz{color:red} \ No newline at end of file +details[open].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/attribute-selector-only-name/expected.css b/test/css/samples/attribute-selector-only-name/expected.css index e2bbf5b48c..3ff721d491 100644 --- a/test/css/samples/attribute-selector-only-name/expected.css +++ b/test/css/samples/attribute-selector-only-name/expected.css @@ -1 +1 @@ -[foo].svelte-xyz{color:red}[baz].svelte-xyz{color:blue} \ No newline at end of file +[foo].svelte-xyz.svelte-xyz{color:red}[baz].svelte-xyz.svelte-xyz{color:blue} \ No newline at end of file diff --git a/test/css/samples/attribute-selector-unquoted/expected.css b/test/css/samples/attribute-selector-unquoted/expected.css index 9f8f88a352..7199e49c00 100644 --- a/test/css/samples/attribute-selector-unquoted/expected.css +++ b/test/css/samples/attribute-selector-unquoted/expected.css @@ -1 +1 @@ -[foo=bar].svelte-xyz{color:red} \ No newline at end of file +[foo=bar].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/basic/expected.css b/test/css/samples/basic/expected.css index d466e8df96..1a8bdff7c6 100644 --- a/test/css/samples/basic/expected.css +++ b/test/css/samples/basic/expected.css @@ -1 +1 @@ -div.svelte-xyz{color:red} \ No newline at end of file +div.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/css-vars/expected.css b/test/css/samples/css-vars/expected.css index c2bd56375b..2c3986541b 100644 --- a/test/css/samples/css-vars/expected.css +++ b/test/css/samples/css-vars/expected.css @@ -1 +1 @@ -:root{--root-test:20}div.svelte-xyz{--test:10} \ No newline at end of file +:root{--root-test:20}div.svelte-xyz.svelte-xyz{--test:10} \ No newline at end of file diff --git a/test/css/samples/directive-special-character/expected.css b/test/css/samples/directive-special-character/expected.css index 8b25d59d2e..730df36d91 100644 --- a/test/css/samples/directive-special-character/expected.css +++ b/test/css/samples/directive-special-character/expected.css @@ -1 +1 @@ -.foo\:bar.svelte-xyz{color:red} \ No newline at end of file +.foo\:bar.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/empty-rule-dev/expected.css b/test/css/samples/empty-rule-dev/expected.css index 4013e47e5d..cb3cea0c0d 100644 --- a/test/css/samples/empty-rule-dev/expected.css +++ b/test/css/samples/empty-rule-dev/expected.css @@ -1 +1 @@ -.foo.svelte-xyz{} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz{} \ No newline at end of file diff --git a/test/css/samples/global-keyframes/expected.css b/test/css/samples/global-keyframes/expected.css index 8e716d136d..3b70bae786 100644 --- a/test/css/samples/global-keyframes/expected.css +++ b/test/css/samples/global-keyframes/expected.css @@ -1 +1 @@ -@keyframes why{0%{color:red}100%{color:blue}}.animated.svelte-xyz{animation:why 2s}.also-animated.svelte-xyz{animation:not-defined-here 2s} \ No newline at end of file +@keyframes why{0%{color:red}100%{color:blue}}.animated.svelte-xyz.svelte-xyz{animation:why 2s}.also-animated.svelte-xyz.svelte-xyz{animation:not-defined-here 2s} \ No newline at end of file diff --git a/test/css/samples/keyframes-autoprefixed/expected.css b/test/css/samples/keyframes-autoprefixed/expected.css index d9866778a9..b1273fead8 100644 --- a/test/css/samples/keyframes-autoprefixed/expected.css +++ b/test/css/samples/keyframes-autoprefixed/expected.css @@ -1 +1 @@ -@keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}@-webkit-keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}@-moz-keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}@-o-keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}.animated.svelte-xyz{-webkit-animation:svelte-xyz-why 2s;animation:svelte-xyz-why 2s}.also-animated.svelte-xyz{-webkit-animation:not-defined-here 2s;animation:not-defined-here 2s} \ No newline at end of file +@keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}@-webkit-keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}@-moz-keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}@-o-keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}.animated.svelte-xyz.svelte-xyz{-webkit-animation:svelte-xyz-why 2s;animation:svelte-xyz-why 2s}.also-animated.svelte-xyz.svelte-xyz{-webkit-animation:not-defined-here 2s;animation:not-defined-here 2s} \ No newline at end of file diff --git a/test/css/samples/keyframes-from-to/expected.css b/test/css/samples/keyframes-from-to/expected.css index c8ee60194c..76693ed358 100644 --- a/test/css/samples/keyframes-from-to/expected.css +++ b/test/css/samples/keyframes-from-to/expected.css @@ -1 +1 @@ -@keyframes svelte-xyz-why{from{color:red}to{color:blue}}.animated.svelte-xyz{animation:svelte-xyz-why 2s} \ No newline at end of file +@keyframes svelte-xyz-why{from{color:red}to{color:blue}}.animated.svelte-xyz.svelte-xyz{animation:svelte-xyz-why 2s} \ No newline at end of file diff --git a/test/css/samples/keyframes/expected.css b/test/css/samples/keyframes/expected.css index a6a1176dae..218aa25223 100644 --- a/test/css/samples/keyframes/expected.css +++ b/test/css/samples/keyframes/expected.css @@ -1 +1 @@ -@keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}.animated.svelte-xyz{animation:svelte-xyz-why 2s}.also-animated.svelte-xyz{animation:not-defined-here 2s} \ No newline at end of file +@keyframes svelte-xyz-why{0%{color:red}100%{color:blue}}.animated.svelte-xyz.svelte-xyz{animation:svelte-xyz-why 2s}.also-animated.svelte-xyz.svelte-xyz{animation:not-defined-here 2s} \ No newline at end of file diff --git a/test/css/samples/local-inside-global/expected.css b/test/css/samples/local-inside-global/expected.css index 40af67afba..f960d4c782 100644 --- a/test/css/samples/local-inside-global/expected.css +++ b/test/css/samples/local-inside-global/expected.css @@ -1 +1 @@ -div .foo.svelte-xyz{color:red}div>.foo.svelte-xyz{font-weight:bold} \ No newline at end of file +div .foo.svelte-xyz.svelte-xyz{color:red}div>.foo.svelte-xyz.svelte-xyz{font-weight:bold} \ No newline at end of file diff --git a/test/css/samples/media-query-word/expected.css b/test/css/samples/media-query-word/expected.css index d2a288ed72..e3ec204b82 100644 --- a/test/css/samples/media-query-word/expected.css +++ b/test/css/samples/media-query-word/expected.css @@ -1 +1 @@ -@media only screen and (min-width: 400px){div.svelte-xyz{color:red}} \ No newline at end of file +@media only screen and (min-width: 400px){div.svelte-xyz.svelte-xyz{color:red}} \ No newline at end of file diff --git a/test/css/samples/media-query/expected.css b/test/css/samples/media-query/expected.css index 8ea74bf3b1..d08f53153d 100644 --- a/test/css/samples/media-query/expected.css +++ b/test/css/samples/media-query/expected.css @@ -1 +1 @@ -@media(min-width: 400px){.large-screen.svelte-xyz{display:block}} \ No newline at end of file +@media(min-width: 400px){.large-screen.svelte-xyz.svelte-xyz{display:block}} \ No newline at end of file diff --git a/test/css/samples/nested/expected.css b/test/css/samples/nested/expected.css index 87ca7335f6..afdb2c5c8f 100644 --- a/test/css/samples/nested/expected.css +++ b/test/css/samples/nested/expected.css @@ -1 +1 @@ -.foo.svelte-xyz{color:red}.bar.svelte-xyz{font-style:italic} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz{color:red}.bar.svelte-xyz.svelte-xyz{font-style:italic} \ No newline at end of file diff --git a/test/css/samples/not-selector/expected.css b/test/css/samples/not-selector/expected.css index 83a819a9e0..dbc6edd5f6 100644 --- a/test/css/samples/not-selector/expected.css +++ b/test/css/samples/not-selector/expected.css @@ -1 +1 @@ -.svelte-xyz:not(.foo){color:red} \ No newline at end of file +.svelte-xyz.svelte-xyz:not(.foo){color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-contains/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-contains/expected.css index 4d1d8d14ff..48488b2292 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-contains/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-contains/expected.css @@ -1 +1 @@ -[data-foo*='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo*='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-equals-case-insensitive/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-equals-case-insensitive/expected.css index 80b6feebca..2c36999901 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-equals-case-insensitive/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-equals-case-insensitive/expected.css @@ -1 +1 @@ -[data-foo='bar' i].svelte-xyz{color:red} \ No newline at end of file +[data-foo='bar' i].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-equals-dynamic/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-equals-dynamic/expected.css index fd8a9a15ee..cb0b85b62f 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-equals-dynamic/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-equals-dynamic/expected.css @@ -1 +1 @@ -[data-foo='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-equals/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-equals/expected.css index fd8a9a15ee..cb0b85b62f 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-equals/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-equals/expected.css @@ -1 +1 @@ -[data-foo='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-pipe-equals/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-pipe-equals/expected.css index 95f6faeb02..6c00808dfb 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-pipe-equals/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-pipe-equals/expected.css @@ -1 +1 @@ -[data-foo|='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo|='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-prefix/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-prefix/expected.css index 3a30f1f017..d2279d908d 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-prefix/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-prefix/expected.css @@ -1 +1 @@ -[data-foo^='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo^='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-suffix/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-suffix/expected.css index de8d18cc3b..aa540ce5db 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-suffix/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-suffix/expected.css @@ -1 +1 @@ -[data-foo$='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo$='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector-word-equals/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector-word-equals/expected.css index fabcbade4d..12bd34a49b 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector-word-equals/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector-word-equals/expected.css @@ -1 +1 @@ -[data-foo~='bar'].svelte-xyz{color:red} \ No newline at end of file +[data-foo~='bar'].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-attribute-selector/expected.css b/test/css/samples/omit-scoping-attribute-attribute-selector/expected.css index ddb620207d..be9e02b82c 100644 --- a/test/css/samples/omit-scoping-attribute-attribute-selector/expected.css +++ b/test/css/samples/omit-scoping-attribute-attribute-selector/expected.css @@ -1 +1 @@ -[autoplay].svelte-xyz{color:red} \ No newline at end of file +[autoplay].svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-class-dynamic/expected.css b/test/css/samples/omit-scoping-attribute-class-dynamic/expected.css index 431f704106..1235588b88 100644 --- a/test/css/samples/omit-scoping-attribute-class-dynamic/expected.css +++ b/test/css/samples/omit-scoping-attribute-class-dynamic/expected.css @@ -1 +1 @@ -.foo.svelte-xyz{color:red} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-class-static/expected.css b/test/css/samples/omit-scoping-attribute-class-static/expected.css index 431f704106..1235588b88 100644 --- a/test/css/samples/omit-scoping-attribute-class-static/expected.css +++ b/test/css/samples/omit-scoping-attribute-class-static/expected.css @@ -1 +1 @@ -.foo.svelte-xyz{color:red} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-descendant-global-inner-class/expected.css b/test/css/samples/omit-scoping-attribute-descendant-global-inner-class/expected.css index f3653403a5..55857f37bd 100644 --- a/test/css/samples/omit-scoping-attribute-descendant-global-inner-class/expected.css +++ b/test/css/samples/omit-scoping-attribute-descendant-global-inner-class/expected.css @@ -1 +1 @@ -.foo.svelte-xyz .bar{color:red} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz .bar{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-descendant-global-inner-multiple/expected.css b/test/css/samples/omit-scoping-attribute-descendant-global-inner-multiple/expected.css index 74e641549f..7a240f6b0e 100644 --- a/test/css/samples/omit-scoping-attribute-descendant-global-inner-multiple/expected.css +++ b/test/css/samples/omit-scoping-attribute-descendant-global-inner-multiple/expected.css @@ -1 +1 @@ -div.svelte-xyz>p>em{color:red} \ No newline at end of file +div.svelte-xyz.svelte-xyz>p>em{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-descendant-global-inner/expected.css b/test/css/samples/omit-scoping-attribute-descendant-global-inner/expected.css index 338c90ab19..8afb336fbd 100644 --- a/test/css/samples/omit-scoping-attribute-descendant-global-inner/expected.css +++ b/test/css/samples/omit-scoping-attribute-descendant-global-inner/expected.css @@ -1 +1 @@ -div.svelte-xyz>p{color:red} \ No newline at end of file +div.svelte-xyz.svelte-xyz>p{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-descendant-global-outer-multiple/expected.css b/test/css/samples/omit-scoping-attribute-descendant-global-outer-multiple/expected.css index 5d1af4c251..e9664c9840 100644 --- a/test/css/samples/omit-scoping-attribute-descendant-global-outer-multiple/expected.css +++ b/test/css/samples/omit-scoping-attribute-descendant-global-outer-multiple/expected.css @@ -1 +1 @@ -div>section>p.svelte-xyz{color:red} \ No newline at end of file +div>section>p.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-descendant-global-outer/expected.css b/test/css/samples/omit-scoping-attribute-descendant-global-outer/expected.css index 3666ce8f7f..43eeac51f3 100644 --- a/test/css/samples/omit-scoping-attribute-descendant-global-outer/expected.css +++ b/test/css/samples/omit-scoping-attribute-descendant-global-outer/expected.css @@ -1 +1 @@ -div>p.svelte-xyz{color:red} \ No newline at end of file +div>p.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute-id/expected.css b/test/css/samples/omit-scoping-attribute-id/expected.css index 0e9e9f8b29..64760db71b 100644 --- a/test/css/samples/omit-scoping-attribute-id/expected.css +++ b/test/css/samples/omit-scoping-attribute-id/expected.css @@ -1 +1 @@ -#foo.svelte-xyz{color:red} \ No newline at end of file +#foo.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/omit-scoping-attribute/expected.css b/test/css/samples/omit-scoping-attribute/expected.css index 5d8d69ac33..571e07eaf4 100644 --- a/test/css/samples/omit-scoping-attribute/expected.css +++ b/test/css/samples/omit-scoping-attribute/expected.css @@ -1 +1 @@ -p.svelte-xyz{color:red} \ No newline at end of file +p.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/pseudo-element/expected.css b/test/css/samples/pseudo-element/expected.css index bb380d4041..d48d1dcb26 100644 --- a/test/css/samples/pseudo-element/expected.css +++ b/test/css/samples/pseudo-element/expected.css @@ -1 +1 @@ -span.svelte-xyz::after{content:'i am a pseudo-element'}span.svelte-xyz:first-child{color:red}span.svelte-xyz:last-child::after{color:blue} \ No newline at end of file +span.svelte-xyz.svelte-xyz::after{content:'i am a pseudo-element'}span.svelte-xyz.svelte-xyz:first-child{color:red}span.svelte-xyz.svelte-xyz:last-child::after{color:blue} \ No newline at end of file diff --git a/test/css/samples/spread/expected.css b/test/css/samples/spread/expected.css index dc433318e8..5a38e3716c 100644 --- a/test/css/samples/spread/expected.css +++ b/test/css/samples/spread/expected.css @@ -1 +1 @@ -.foo.svelte-xyz{color:red;font-size:2em;font-family:'Comic Sans MS'} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz{color:red;font-size:2em;font-family:'Comic Sans MS'} \ No newline at end of file diff --git a/test/css/samples/supports-query/expected.css b/test/css/samples/supports-query/expected.css index 3fdef34d6e..c28067a7af 100644 --- a/test/css/samples/supports-query/expected.css +++ b/test/css/samples/supports-query/expected.css @@ -1 +1 @@ -@supports (display: grid){.maybe-grid.svelte-xyz{display:grid}} \ No newline at end of file +@supports (display: grid){.maybe-grid.svelte-xyz.svelte-xyz{display:grid}} \ No newline at end of file diff --git a/test/css/samples/universal-selector/expected.css b/test/css/samples/universal-selector/expected.css index 3eda95e446..76460629eb 100644 --- a/test/css/samples/universal-selector/expected.css +++ b/test/css/samples/universal-selector/expected.css @@ -1 +1 @@ -.svelte-xyz{color:red} \ No newline at end of file +.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/unknown-at-rule-with-following-rules/expected.css b/test/css/samples/unknown-at-rule-with-following-rules/expected.css index 31c3bf9c6f..025966cf9c 100644 --- a/test/css/samples/unknown-at-rule-with-following-rules/expected.css +++ b/test/css/samples/unknown-at-rule-with-following-rules/expected.css @@ -1 +1 @@ -div.svelte-xyz{@apply --funky-div;} \ No newline at end of file +div.svelte-xyz.svelte-xyz{@apply --funky-div;} \ No newline at end of file diff --git a/test/css/samples/unknown-at-rule/expected.css b/test/css/samples/unknown-at-rule/expected.css index 31c3bf9c6f..025966cf9c 100644 --- a/test/css/samples/unknown-at-rule/expected.css +++ b/test/css/samples/unknown-at-rule/expected.css @@ -1 +1 @@ -div.svelte-xyz{@apply --funky-div;} \ No newline at end of file +div.svelte-xyz.svelte-xyz{@apply --funky-div;} \ No newline at end of file diff --git a/test/css/samples/unused-selector-leading/expected.css b/test/css/samples/unused-selector-leading/expected.css index ff57dc09b9..02dfae359d 100644 --- a/test/css/samples/unused-selector-leading/expected.css +++ b/test/css/samples/unused-selector-leading/expected.css @@ -1 +1 @@ -.bar.svelte-xyz{color:red} \ No newline at end of file +.bar.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/unused-selector-ternary/expected.css b/test/css/samples/unused-selector-ternary/expected.css index 16fbddce58..6c46e9a3c3 100644 --- a/test/css/samples/unused-selector-ternary/expected.css +++ b/test/css/samples/unused-selector-ternary/expected.css @@ -1 +1 @@ -.active.svelte-xyz{color:red}.inactive.svelte-xyz{color:blue} \ No newline at end of file +.active.svelte-xyz.svelte-xyz{color:red}.inactive.svelte-xyz.svelte-xyz{color:blue} \ No newline at end of file diff --git a/test/css/samples/unused-selector/expected.css b/test/css/samples/unused-selector/expected.css index 431f704106..1235588b88 100644 --- a/test/css/samples/unused-selector/expected.css +++ b/test/css/samples/unused-selector/expected.css @@ -1 +1 @@ -.foo.svelte-xyz{color:red} \ No newline at end of file +.foo.svelte-xyz.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/js/samples/collapses-text-around-comments/expected.js b/test/js/samples/collapses-text-around-comments/expected.js index 9a34f69b07..3c9240e9ea 100644 --- a/test/js/samples/collapses-text-around-comments/expected.js +++ b/test/js/samples/collapses-text-around-comments/expected.js @@ -15,7 +15,7 @@ import { function add_css() { var style = element("style"); style.id = "svelte-1a7i8ec-style"; - style.textContent = "p.svelte-1a7i8ec{color:red}"; + style.textContent = "p.svelte-1a7i8ec.svelte-1a7i8ec{color:red}"; append(document.head, style); } @@ -62,4 +62,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/css-media-query/expected.js b/test/js/samples/css-media-query/expected.js index 8690f5a34e..d5a7eb65c2 100644 --- a/test/js/samples/css-media-query/expected.js +++ b/test/js/samples/css-media-query/expected.js @@ -13,7 +13,7 @@ import { function add_css() { var style = element("style"); style.id = "svelte-1slhpfn-style"; - style.textContent = "@media(min-width: 1px){div.svelte-1slhpfn{color:red}}"; + style.textContent = "@media(min-width: 1px){div.svelte-1slhpfn.svelte-1slhpfn{color:red}}"; append(document.head, style); } @@ -45,4 +45,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/server-side-rendering/samples/styles-nested/_expected.css b/test/server-side-rendering/samples/styles-nested/_expected.css index 775ae8a91c..61ba741dbc 100644 --- a/test/server-side-rendering/samples/styles-nested/_expected.css +++ b/test/server-side-rendering/samples/styles-nested/_expected.css @@ -1,2 +1,2 @@ -div.svelte-bzh57p{color:red} -div.svelte-4yw8vx{color:green} \ No newline at end of file +div.svelte-bzh57p.svelte-bzh57p{color:red} +div.svelte-4yw8vx.svelte-4yw8vx{color:green} \ No newline at end of file diff --git a/test/server-side-rendering/samples/styles/_expected.css b/test/server-side-rendering/samples/styles/_expected.css index 2025c64f84..15e5c35b89 100644 --- a/test/server-side-rendering/samples/styles/_expected.css +++ b/test/server-side-rendering/samples/styles/_expected.css @@ -1 +1 @@ -div.svelte-bzh57p{color:red} \ No newline at end of file +div.svelte-bzh57p.svelte-bzh57p{color:red} \ No newline at end of file