File tree 1 file changed +8
-5
lines changed
packages/style-value-parser/src/at-queries-from-tokens
1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -281,9 +281,9 @@ export class MediaQuery {
281
281
this . queries = queries ;
282
282
}
283
283
toString ( ) : string {
284
- return `@media ${ this . #toString( this . queries ) } ` ;
284
+ return `@media ${ this . #toString( this . queries , true ) } ` ;
285
285
}
286
- #toString( queries : MediaQueryRule ) : string {
286
+ #toString( queries : MediaQueryRule , isTopLevel : boolean = false ) : string {
287
287
switch ( queries . type ) {
288
288
case 'media-keyword' :
289
289
return queries . not ? `not ${ queries . key } ` : queries . key ;
@@ -299,11 +299,15 @@ export class MediaQuery {
299
299
return `(${ queries . key } : ${ valueStr } )` ;
300
300
}
301
301
case 'not' :
302
- return `(not ${ this . #toString( queries . rule ) } )` ;
302
+ return queries . rule && ( queries . rule . type == 'and' || queries . rule . type == 'or' )
303
+ ? `(not (${ this . #toString( queries . rule ) } ))`
304
+ : `(not ${ this . #toString( queries . rule ) } )` ;
303
305
case 'and' :
304
306
return queries . rules . map ( ( rule ) => this . #toString( rule ) ) . join ( ' and ' ) ;
305
307
case 'or' :
306
- return queries . rules . map ( ( rule ) => this . #toString( rule ) ) . join ( ' or ' ) ;
308
+ return isTopLevel
309
+ ? queries . rules . map ( ( rule ) => this . #toString( rule ) ) . join ( ', ' )
310
+ : queries . rules . map ( ( rule ) => this . #toString( rule ) ) . join ( ' or ' ) ;
307
311
default :
308
312
return '' ;
309
313
}
@@ -378,6 +382,5 @@ export class MediaQuery {
378
382
) ,
379
383
) ;
380
384
381
- // return recursiveParser.or(leadingNotParser);
382
385
}
383
386
}
You can’t perform that action at this time.
0 commit comments