blob: aa550ded9a526ef4b1a2a4f71239722aeda545ab (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import { Ident } from '../../tokenizer/index.js';
// https://drafts.csswg.org/css-contain-3/#container-rule
// The keywords `none`, `and`, `not`, and `or` are excluded from the <custom-ident> above.
const nonContainerNameKeywords = new Set(['none', 'and', 'not', 'or']);
export default {
parse: {
prelude() {
const children = this.createList();
if (this.tokenType === Ident) {
const name = this.substring(this.tokenStart, this.tokenEnd);
if (!nonContainerNameKeywords.has(name.toLowerCase())) {
children.push(this.Identifier());
}
}
children.push(this.Condition('container'));
return children;
},
block(nested = false) {
return this.Block(nested);
}
}
};
|