diff --git a/crates/swc_css_parser/tests/fixture/at-rule/media/input.css b/crates/swc_css_parser/tests/fixture/at-rule/media/input.css index 12cadeddcf00..ec634b55321b 100644 --- a/crates/swc_css_parser/tests/fixture/at-rule/media/input.css +++ b/crates/swc_css_parser/tests/fixture/at-rule/media/input.css @@ -149,3 +149,9 @@ @media screen and func(100px) {} @media(min-width:calc(10px + 10px)) {} @media (width > calc(220px + 100px)) {} + +@m\65 dia { + .color { + color: red; + } +} diff --git a/crates/swc_css_parser/tests/fixture/at-rule/media/output.json b/crates/swc_css_parser/tests/fixture/at-rule/media/output.json index 49aac26b5c3c..15d3f2dd49a1 100644 --- a/crates/swc_css_parser/tests/fixture/at-rule/media/output.json +++ b/crates/swc_css_parser/tests/fixture/at-rule/media/output.json @@ -2,7 +2,7 @@ "type": "Stylesheet", "span": { "start": 1, - "end": 4769, + "end": 4823, "ctxt": 0 }, "rules": [ @@ -16648,6 +16648,152 @@ }, "value": [] } + }, + { + "type": "AtRule", + "span": { + "start": 4770, + "end": 4822, + "ctxt": 0 + }, + "name": { + "type": "Ident", + "span": { + "start": 4771, + "end": 4779, + "ctxt": 0 + }, + "value": "media", + "raw": "m\\65 dia" + }, + "prelude": null, + "block": { + "type": "SimpleBlock", + "span": { + "start": 4780, + "end": 4822, + "ctxt": 0 + }, + "name": { + "type": "PreservedToken", + "span": { + "start": 4780, + "end": 4781, + "ctxt": 0 + }, + "token": "LBrace" + }, + "value": [ + { + "type": "QualifiedRule", + "span": { + "start": 4786, + "end": 4820, + "ctxt": 0 + }, + "prelude": { + "type": "SelectorList", + "span": { + "start": 4786, + "end": 4792, + "ctxt": 0 + }, + "children": [ + { + "type": "ComplexSelector", + "span": { + "start": 4786, + "end": 4792, + "ctxt": 0 + }, + "children": [ + { + "type": "CompoundSelector", + "span": { + "start": 4786, + "end": 4792, + "ctxt": 0 + }, + "nestingSelector": null, + "typeSelector": null, + "subclassSelectors": [ + { + "type": "ClassSelector", + "span": { + "start": 4786, + "end": 4792, + "ctxt": 0 + }, + "text": { + "type": "Ident", + "span": { + "start": 4787, + "end": 4792, + "ctxt": 0 + }, + "value": "color", + "raw": "color" + } + } + ] + } + ] + } + ] + }, + "block": { + "type": "SimpleBlock", + "span": { + "start": 4793, + "end": 4820, + "ctxt": 0 + }, + "name": { + "type": "PreservedToken", + "span": { + "start": 4793, + "end": 4794, + "ctxt": 0 + }, + "token": "LBrace" + }, + "value": [ + { + "type": "Declaration", + "span": { + "start": 4803, + "end": 4813, + "ctxt": 0 + }, + "name": { + "type": "Ident", + "span": { + "start": 4803, + "end": 4808, + "ctxt": 0 + }, + "value": "color", + "raw": "color" + }, + "value": [ + { + "type": "Ident", + "span": { + "start": 4810, + "end": 4813, + "ctxt": 0 + }, + "value": "red", + "raw": "red" + } + ], + "important": null + } + ] + } + } + ] + } } ] } diff --git a/crates/swc_css_parser/tests/fixture/at-rule/media/span.swc-stderr b/crates/swc_css_parser/tests/fixture/at-rule/media/span.swc-stderr index 347c32c28f4f..0daf868c2c8d 100644 --- a/crates/swc_css_parser/tests/fixture/at-rule/media/span.swc-stderr +++ b/crates/swc_css_parser/tests/fixture/at-rule/media/span.swc-stderr @@ -151,7 +151,13 @@ 148 | | @media func(100px) {} 149 | | @media screen and func(100px) {} 150 | | @media(min-width:calc(10px + 10px)) {} - 151 | `-> @media (width > calc(220px + 100px)) {} + 151 | | @media (width > calc(220px + 100px)) {} + 152 | | + 153 | | @m\65 dia { + 154 | | .color { + 155 | | color: red; + 156 | | } + 157 | `-> } `---- x Rule @@ -23168,3 +23174,188 @@ 151 | @media (width > calc(220px + 100px)) {} : ^ `---- + + x Rule + ,-[$DIR/tests/fixture/at-rule/media/input.css:152:1] + 152 | + 153 | ,-> @m\65 dia { + 154 | | .color { + 155 | | color: red; + 156 | | } + 157 | `-> } + `---- + + x AtRule + ,-[$DIR/tests/fixture/at-rule/media/input.css:152:1] + 152 | + 153 | ,-> @m\65 dia { + 154 | | .color { + 155 | | color: red; + 156 | | } + 157 | `-> } + `---- + + x AtRuleName + ,-[$DIR/tests/fixture/at-rule/media/input.css:152:1] + 152 | + 153 | @m\65 dia { + : ^^^^^^^^ + 154 | .color { + `---- + + x Ident + ,-[$DIR/tests/fixture/at-rule/media/input.css:152:1] + 152 | + 153 | @m\65 dia { + : ^^^^^^^^ + 154 | .color { + `---- + + x SimpleBlock + ,-[$DIR/tests/fixture/at-rule/media/input.css:152:1] + 152 | + 153 | ,-> @m\65 dia { + 154 | | .color { + 155 | | color: red; + 156 | | } + 157 | `-> } + `---- + + x LBrace + ,-[$DIR/tests/fixture/at-rule/media/input.css:152:1] + 152 | + 153 | @m\65 dia { + : ^ + 154 | .color { + `---- + + x ComponentValue + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | ,-> .color { + 155 | | color: red; + 156 | `-> } + 157 | } + `---- + + x QualifiedRule + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | ,-> .color { + 155 | | color: red; + 156 | `-> } + 157 | } + `---- + + x SelectorList + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^^^^^^ + 155 | color: red; + `---- + + x ComplexSelector + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^^^^^^ + 155 | color: red; + `---- + + x CompoundSelector + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^^^^^^ + 155 | color: red; + `---- + + x SubclassSelector + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^^^^^^ + 155 | color: red; + `---- + + x ClassSelector + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^^^^^^ + 155 | color: red; + `---- + + x Ident + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^^^^^ + 155 | color: red; + `---- + + x SimpleBlock + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | ,-> .color { + 155 | | color: red; + 156 | `-> } + 157 | } + `---- + + x LBrace + ,-[$DIR/tests/fixture/at-rule/media/input.css:153:1] + 153 | @m\65 dia { + 154 | .color { + : ^ + 155 | color: red; + `---- + + x ComponentValue + ,-[$DIR/tests/fixture/at-rule/media/input.css:154:1] + 154 | .color { + 155 | color: red; + : ^^^^^^^^^^ + 156 | } + `---- + + x Declaration + ,-[$DIR/tests/fixture/at-rule/media/input.css:154:1] + 154 | .color { + 155 | color: red; + : ^^^^^^^^^^ + 156 | } + `---- + + x DeclarationName + ,-[$DIR/tests/fixture/at-rule/media/input.css:154:1] + 154 | .color { + 155 | color: red; + : ^^^^^ + 156 | } + `---- + + x Ident + ,-[$DIR/tests/fixture/at-rule/media/input.css:154:1] + 154 | .color { + 155 | color: red; + : ^^^^^ + 156 | } + `---- + + x ComponentValue + ,-[$DIR/tests/fixture/at-rule/media/input.css:154:1] + 154 | .color { + 155 | color: red; + : ^^^ + 156 | } + `---- + + x Ident + ,-[$DIR/tests/fixture/at-rule/media/input.css:154:1] + 154 | .color { + 155 | color: red; + : ^^^ + 156 | } + `----