Premier commit déjà bien avancé
This commit is contained in:
277
frontend/node_modules/@lezer/css/CHANGELOG.md
generated
vendored
Normal file
277
frontend/node_modules/@lezer/css/CHANGELOG.md
generated
vendored
Normal file
@ -0,0 +1,277 @@
|
||||
## 1.3.0 (2025-07-07)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Values wrapped in brackets can now contain more types of tokens.
|
||||
|
||||
Properly support hex escapes in identifiers.
|
||||
|
||||
Support variable names as callees in call expressions.
|
||||
|
||||
### New features
|
||||
|
||||
Add support for `@scope` syntax.
|
||||
|
||||
Add support for `if` notation.
|
||||
|
||||
## 1.2.1 (2025-05-15)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix parsing of `*` selectors in descendant positions.
|
||||
|
||||
## 1.2.0 (2025-05-12)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Allow @ keywords to start with a dash, since prefixed ones exist.
|
||||
|
||||
Bump the dependency on @lezer/lr to a version that supports local token groups. Also bump @lezer/generator dependency
|
||||
|
||||
### New features
|
||||
|
||||
Add support for range queries.
|
||||
|
||||
`@import` statements now support `layer` syntax.
|
||||
|
||||
Support relative versions of the `+`, `>`, and `~` selectors, which omit the left-hand selector. Allow @-keywords to start with a dash
|
||||
|
||||
## 1.1.11 (2025-03-24)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Accept trailing commas in argument lists.
|
||||
|
||||
## 1.1.10 (2025-01-24)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Emit a node for class selector dots.
|
||||
|
||||
## 1.1.9 (2024-09-10)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Allow `url()` values to be empty.
|
||||
|
||||
Don't generate a parse error when declarations don't have a value.
|
||||
|
||||
## 1.1.8 (2024-02-19)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Follow the standard, allowing digits in unit identifiers.
|
||||
|
||||
## 1.1.7 (2024-01-08)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Correctly parse properties with a space before the colon.
|
||||
|
||||
## 1.1.6 (2024-01-01)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Add support for bracketed grid line names.
|
||||
|
||||
## 1.1.5 (2023-12-28)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Tag comments and strings as isolating for the purpose of bidirectional text.
|
||||
|
||||
## 1.1.4 (2023-11-09)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix parsing of `&` selectors in descendant selectors.
|
||||
|
||||
Allow identifiers to contain backslash escapes.
|
||||
|
||||
## 1.1.3 (2023-07-03)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Comments are now parsed to end of file if no closing `*/` is found.
|
||||
|
||||
Make the package work with new TS resolution styles.
|
||||
|
||||
## 1.1.2 (2023-05-15)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Make keyframe selector parsing more flexible to support timeline ranges.
|
||||
|
||||
Allow multiple comma-separated keyframe selectors per keyframe.
|
||||
|
||||
## 1.1.1 (2022-12-02)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
The `Styles` top rule now also recognizes nested rules.
|
||||
|
||||
## 1.1.0 (2022-11-25)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Don't emit an error node when the input is empty. Export a Styles top-level rule for parsing lists of properties
|
||||
|
||||
### New features
|
||||
|
||||
The new `Styles` top-level rule can be used to parse semicolon-separated lists of properties.
|
||||
|
||||
## 1.0.1 (2022-10-10)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Add support for the `is`, `where`, `host-context`, `nth-last-of-type`, and `nth-of-type` pseudo classes.
|
||||
|
||||
Apply a consistent highlighting tag (`definitionKeyword`) to all @ keywords.
|
||||
|
||||
## 1.0.0 (2022-06-06)
|
||||
|
||||
### New features
|
||||
|
||||
First stable version.
|
||||
|
||||
## 0.16.0 (2022-04-20)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Move to 0.16 serialized parser format.
|
||||
|
||||
### New features
|
||||
|
||||
The parser now includes syntax highlighting information in its node types.
|
||||
|
||||
## 0.15.2 (2021-09-24)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Distinguish between variable names and other names.
|
||||
|
||||
Fix the name of nodes for the `selector` keyword (which by accident was `callee` before).
|
||||
|
||||
## 0.15.1 (2021-08-31)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix parsing of selector arguments to pseudo selectors.
|
||||
|
||||
## 0.15.0 (2021-08-11)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
The module's name changed from `lezer-css` to `@lezer/css`.
|
||||
|
||||
Upgrade to the 0.15.0 lezer interfaces.
|
||||
|
||||
## 0.13.1 (2020-12-04)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix versions of lezer packages depended on.
|
||||
|
||||
## 0.13.0 (2020-12-04)
|
||||
|
||||
## 0.12.0 (2020-10-23)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Adjust to changed serialized parser format.
|
||||
|
||||
## 0.11.1 (2020-09-26)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix lezer depencency versions
|
||||
|
||||
## 0.11.0 (2020-09-26)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Follow change in serialized parser format.
|
||||
|
||||
## 0.10.1 (2020-09-02)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix a conflicting pair of tokens that the generator previously didn't catch.
|
||||
|
||||
## 0.10.0 (2020-08-07)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Upgrade to 0.10 parser serialization
|
||||
|
||||
## 0.9.0 (2020-06-08)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Upgrade to 0.9 parser serialization
|
||||
|
||||
## 0.8.3 (2020-04-09)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Regenerate parser with a fix in lezer-generator so that the top node prop is properly assigned.
|
||||
|
||||
## 0.8.2 (2020-04-01)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Make the package load as an ES module on node
|
||||
|
||||
## 0.8.1 (2020-02-28)
|
||||
|
||||
### New features
|
||||
|
||||
Provide an ES module file.
|
||||
|
||||
## 0.8.0 (2020-02-03)
|
||||
|
||||
### New features
|
||||
|
||||
Follow 0.8.0 release of the library.
|
||||
|
||||
## 0.7.0 (2020-01-20)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Use the lezer 0.7.0 parser format.
|
||||
|
||||
## 0.5.2 (2020-01-15)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Regenerate with lezer-generator 0.5.2 to avoid cyclic forced reductions.
|
||||
|
||||
## 0.5.1 (2019-10-22)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix top prop missing from build output.
|
||||
|
||||
## 0.5.0 (2019-10-22)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Move from `lang` to `top` prop on document node.
|
||||
|
||||
## 0.4.0 (2019-09-10)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Adjust to 0.4.0 parse table format.
|
||||
|
||||
## 0.3.0 (2019-08-22)
|
||||
|
||||
### New features
|
||||
|
||||
Go back to node names, add props, follow changes in grammar syntax.
|
||||
|
||||
## 0.2.0 (2019-08-02)
|
||||
|
||||
### New Features
|
||||
|
||||
First documented release.
|
||||
21
frontend/node_modules/@lezer/css/LICENSE
generated
vendored
Normal file
21
frontend/node_modules/@lezer/css/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
6
frontend/node_modules/@lezer/css/README.md
generated
vendored
Normal file
6
frontend/node_modules/@lezer/css/README.md
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
# @lezer/css
|
||||
|
||||
This is a CSS grammar for the
|
||||
[lezer](https://lezer.codemirror.net/) parser system.
|
||||
|
||||
The code is licensed under an MIT license.
|
||||
148
frontend/node_modules/@lezer/css/dist/index.cjs
generated
vendored
Normal file
148
frontend/node_modules/@lezer/css/dist/index.cjs
generated
vendored
Normal file
@ -0,0 +1,148 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var lr = require('@lezer/lr');
|
||||
var highlight = require('@lezer/highlight');
|
||||
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
const descendantOp = 122,
|
||||
Unit = 1,
|
||||
identifier = 123,
|
||||
callee = 124,
|
||||
VariableName = 2,
|
||||
queryIdentifier = 125,
|
||||
queryVariableName = 3,
|
||||
QueryCallee = 4;
|
||||
|
||||
/* Hand-written tokenizers for CSS tokens that can't be
|
||||
expressed by Lezer's built-in tokenizer. */
|
||||
|
||||
const space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
|
||||
8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];
|
||||
const colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,
|
||||
hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10, asterisk = 42;
|
||||
|
||||
function isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }
|
||||
|
||||
function isDigit(ch) { return ch >= 48 && ch <= 57 }
|
||||
|
||||
function isHex(ch) { return isDigit(ch) || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70 }
|
||||
|
||||
const identifierTokens = (id, varName, callee) => (input, stack) => {
|
||||
for (let inside = false, dashes = 0, i = 0;; i++) {
|
||||
let {next} = input;
|
||||
if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {
|
||||
if (!inside && (next != dash || i > 0)) inside = true;
|
||||
if (dashes === i && next == dash) dashes++;
|
||||
input.advance();
|
||||
} else if (next == backslash && input.peek(1) != newline) {
|
||||
input.advance();
|
||||
if (isHex(input.next)) {
|
||||
do { input.advance(); } while (isHex(input.next))
|
||||
if (input.next == 32) input.advance();
|
||||
} else if (input.next > -1) {
|
||||
input.advance();
|
||||
}
|
||||
inside = true;
|
||||
} else {
|
||||
if (inside) input.acceptToken(
|
||||
dashes == 2 && stack.canShift(VariableName) ? varName : next == parenL ? callee : id
|
||||
);
|
||||
break
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const identifiers = new lr.ExternalTokenizer(
|
||||
identifierTokens(identifier, VariableName, callee)
|
||||
);
|
||||
const queryIdentifiers = new lr.ExternalTokenizer(
|
||||
identifierTokens(queryIdentifier, queryVariableName, QueryCallee)
|
||||
);
|
||||
|
||||
const descendant = new lr.ExternalTokenizer(input => {
|
||||
if (space.includes(input.peek(-1))) {
|
||||
let {next} = input;
|
||||
if (isAlpha(next) || next == underscore || next == hash || next == period ||
|
||||
next == asterisk || next == bracketL || next == colon && isAlpha(input.peek(1)) ||
|
||||
next == dash || next == ampersand)
|
||||
input.acceptToken(descendantOp);
|
||||
}
|
||||
});
|
||||
|
||||
const unitToken = new lr.ExternalTokenizer(input => {
|
||||
if (!space.includes(input.peek(-1))) {
|
||||
let {next} = input;
|
||||
if (next == percent) { input.advance(); input.acceptToken(Unit); }
|
||||
if (isAlpha(next)) {
|
||||
do { input.advance(); } while (isAlpha(input.next) || isDigit(input.next))
|
||||
input.acceptToken(Unit);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const cssHighlighting = highlight.styleTags({
|
||||
"AtKeyword import charset namespace keyframes media supports": highlight.tags.definitionKeyword,
|
||||
"from to selector": highlight.tags.keyword,
|
||||
NamespaceName: highlight.tags.namespace,
|
||||
KeyframeName: highlight.tags.labelName,
|
||||
KeyframeRangeName: highlight.tags.operatorKeyword,
|
||||
TagName: highlight.tags.tagName,
|
||||
ClassName: highlight.tags.className,
|
||||
PseudoClassName: highlight.tags.constant(highlight.tags.className),
|
||||
IdName: highlight.tags.labelName,
|
||||
"FeatureName PropertyName": highlight.tags.propertyName,
|
||||
AttributeName: highlight.tags.attributeName,
|
||||
NumberLiteral: highlight.tags.number,
|
||||
KeywordQuery: highlight.tags.keyword,
|
||||
UnaryQueryOp: highlight.tags.operatorKeyword,
|
||||
"CallTag ValueName": highlight.tags.atom,
|
||||
VariableName: highlight.tags.variableName,
|
||||
Callee: highlight.tags.operatorKeyword,
|
||||
Unit: highlight.tags.unit,
|
||||
"UniversalSelector NestingSelector": highlight.tags.definitionOperator,
|
||||
"MatchOp CompareOp": highlight.tags.compareOperator,
|
||||
"ChildOp SiblingOp, LogicOp": highlight.tags.logicOperator,
|
||||
BinOp: highlight.tags.arithmeticOperator,
|
||||
Important: highlight.tags.modifier,
|
||||
Comment: highlight.tags.blockComment,
|
||||
ColorLiteral: highlight.tags.color,
|
||||
"ParenthesizedContent StringLiteral": highlight.tags.string,
|
||||
":": highlight.tags.punctuation,
|
||||
"PseudoOp #": highlight.tags.derefOperator,
|
||||
"; ,": highlight.tags.separator,
|
||||
"( )": highlight.tags.paren,
|
||||
"[ ]": highlight.tags.squareBracket,
|
||||
"{ }": highlight.tags.brace
|
||||
});
|
||||
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
const spec_callee = {__proto__:null,lang:38, "nth-child":38, "nth-last-child":38, "nth-of-type":38, "nth-last-of-type":38, dir:38, "host-context":38, if:84, url:124, "url-prefix":124, domain:124, regexp:124};
|
||||
const spec_queryIdentifier = {__proto__:null,or:98, and:98, not:106, only:106, layer:170};
|
||||
const spec_QueryCallee = {__proto__:null,selector:112, layer:166};
|
||||
const spec_AtKeyword = {__proto__:null,"@import":162, "@media":174, "@charset":178, "@namespace":182, "@keyframes":188, "@supports":200, "@scope":204};
|
||||
const spec_identifier = {__proto__:null,to:207};
|
||||
const parser = lr.LRParser.deserialize({
|
||||
version: 14,
|
||||
states: "EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",
|
||||
stateData: "Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",
|
||||
goto: "2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",
|
||||
nodeNames: "⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",
|
||||
maxTerm: 143,
|
||||
nodeProps: [
|
||||
["isolate", -2,5,36,""],
|
||||
["openedBy", 20,"(",28,"[",31,"{"],
|
||||
["closedBy", 21,")",29,"]",32,"}"]
|
||||
],
|
||||
propSources: [cssHighlighting],
|
||||
skippedNodes: [0,5,106],
|
||||
repeatNodeCount: 15,
|
||||
tokenData: "JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",
|
||||
tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new lr.LocalTokenGroup("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~", 28, 129)],
|
||||
topRules: {"StyleSheet":[0,6],"Styles":[1,105]},
|
||||
specialized: [{term: 124, get: (value) => spec_callee[value] || -1},{term: 125, get: (value) => spec_queryIdentifier[value] || -1},{term: 4, get: (value) => spec_QueryCallee[value] || -1},{term: 25, get: (value) => spec_AtKeyword[value] || -1},{term: 123, get: (value) => spec_identifier[value] || -1}],
|
||||
tokenPrec: 1963
|
||||
});
|
||||
|
||||
exports.parser = parser;
|
||||
3
frontend/node_modules/@lezer/css/dist/index.d.cts
generated
vendored
Normal file
3
frontend/node_modules/@lezer/css/dist/index.d.cts
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
import {LRParser} from "@lezer/lr"
|
||||
|
||||
export const parser: LRParser
|
||||
3
frontend/node_modules/@lezer/css/dist/index.d.ts
generated
vendored
Normal file
3
frontend/node_modules/@lezer/css/dist/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
import {LRParser} from "@lezer/lr"
|
||||
|
||||
export const parser: LRParser
|
||||
144
frontend/node_modules/@lezer/css/dist/index.js
generated
vendored
Normal file
144
frontend/node_modules/@lezer/css/dist/index.js
generated
vendored
Normal file
@ -0,0 +1,144 @@
|
||||
import { ExternalTokenizer, LRParser, LocalTokenGroup } from '@lezer/lr';
|
||||
import { styleTags, tags } from '@lezer/highlight';
|
||||
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
const descendantOp = 122,
|
||||
Unit = 1,
|
||||
identifier = 123,
|
||||
callee = 124,
|
||||
VariableName = 2,
|
||||
queryIdentifier = 125,
|
||||
queryVariableName = 3,
|
||||
QueryCallee = 4;
|
||||
|
||||
/* Hand-written tokenizers for CSS tokens that can't be
|
||||
expressed by Lezer's built-in tokenizer. */
|
||||
|
||||
const space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
|
||||
8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];
|
||||
const colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,
|
||||
hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10, asterisk = 42;
|
||||
|
||||
function isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }
|
||||
|
||||
function isDigit(ch) { return ch >= 48 && ch <= 57 }
|
||||
|
||||
function isHex(ch) { return isDigit(ch) || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70 }
|
||||
|
||||
const identifierTokens = (id, varName, callee) => (input, stack) => {
|
||||
for (let inside = false, dashes = 0, i = 0;; i++) {
|
||||
let {next} = input;
|
||||
if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {
|
||||
if (!inside && (next != dash || i > 0)) inside = true;
|
||||
if (dashes === i && next == dash) dashes++;
|
||||
input.advance();
|
||||
} else if (next == backslash && input.peek(1) != newline) {
|
||||
input.advance();
|
||||
if (isHex(input.next)) {
|
||||
do { input.advance(); } while (isHex(input.next))
|
||||
if (input.next == 32) input.advance();
|
||||
} else if (input.next > -1) {
|
||||
input.advance();
|
||||
}
|
||||
inside = true;
|
||||
} else {
|
||||
if (inside) input.acceptToken(
|
||||
dashes == 2 && stack.canShift(VariableName) ? varName : next == parenL ? callee : id
|
||||
);
|
||||
break
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const identifiers = new ExternalTokenizer(
|
||||
identifierTokens(identifier, VariableName, callee)
|
||||
);
|
||||
const queryIdentifiers = new ExternalTokenizer(
|
||||
identifierTokens(queryIdentifier, queryVariableName, QueryCallee)
|
||||
);
|
||||
|
||||
const descendant = new ExternalTokenizer(input => {
|
||||
if (space.includes(input.peek(-1))) {
|
||||
let {next} = input;
|
||||
if (isAlpha(next) || next == underscore || next == hash || next == period ||
|
||||
next == asterisk || next == bracketL || next == colon && isAlpha(input.peek(1)) ||
|
||||
next == dash || next == ampersand)
|
||||
input.acceptToken(descendantOp);
|
||||
}
|
||||
});
|
||||
|
||||
const unitToken = new ExternalTokenizer(input => {
|
||||
if (!space.includes(input.peek(-1))) {
|
||||
let {next} = input;
|
||||
if (next == percent) { input.advance(); input.acceptToken(Unit); }
|
||||
if (isAlpha(next)) {
|
||||
do { input.advance(); } while (isAlpha(input.next) || isDigit(input.next))
|
||||
input.acceptToken(Unit);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const cssHighlighting = styleTags({
|
||||
"AtKeyword import charset namespace keyframes media supports": tags.definitionKeyword,
|
||||
"from to selector": tags.keyword,
|
||||
NamespaceName: tags.namespace,
|
||||
KeyframeName: tags.labelName,
|
||||
KeyframeRangeName: tags.operatorKeyword,
|
||||
TagName: tags.tagName,
|
||||
ClassName: tags.className,
|
||||
PseudoClassName: tags.constant(tags.className),
|
||||
IdName: tags.labelName,
|
||||
"FeatureName PropertyName": tags.propertyName,
|
||||
AttributeName: tags.attributeName,
|
||||
NumberLiteral: tags.number,
|
||||
KeywordQuery: tags.keyword,
|
||||
UnaryQueryOp: tags.operatorKeyword,
|
||||
"CallTag ValueName": tags.atom,
|
||||
VariableName: tags.variableName,
|
||||
Callee: tags.operatorKeyword,
|
||||
Unit: tags.unit,
|
||||
"UniversalSelector NestingSelector": tags.definitionOperator,
|
||||
"MatchOp CompareOp": tags.compareOperator,
|
||||
"ChildOp SiblingOp, LogicOp": tags.logicOperator,
|
||||
BinOp: tags.arithmeticOperator,
|
||||
Important: tags.modifier,
|
||||
Comment: tags.blockComment,
|
||||
ColorLiteral: tags.color,
|
||||
"ParenthesizedContent StringLiteral": tags.string,
|
||||
":": tags.punctuation,
|
||||
"PseudoOp #": tags.derefOperator,
|
||||
"; ,": tags.separator,
|
||||
"( )": tags.paren,
|
||||
"[ ]": tags.squareBracket,
|
||||
"{ }": tags.brace
|
||||
});
|
||||
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
const spec_callee = {__proto__:null,lang:38, "nth-child":38, "nth-last-child":38, "nth-of-type":38, "nth-last-of-type":38, dir:38, "host-context":38, if:84, url:124, "url-prefix":124, domain:124, regexp:124};
|
||||
const spec_queryIdentifier = {__proto__:null,or:98, and:98, not:106, only:106, layer:170};
|
||||
const spec_QueryCallee = {__proto__:null,selector:112, layer:166};
|
||||
const spec_AtKeyword = {__proto__:null,"@import":162, "@media":174, "@charset":178, "@namespace":182, "@keyframes":188, "@supports":200, "@scope":204};
|
||||
const spec_identifier = {__proto__:null,to:207};
|
||||
const parser = LRParser.deserialize({
|
||||
version: 14,
|
||||
states: "EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",
|
||||
stateData: "Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",
|
||||
goto: "2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",
|
||||
nodeNames: "⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",
|
||||
maxTerm: 143,
|
||||
nodeProps: [
|
||||
["isolate", -2,5,36,""],
|
||||
["openedBy", 20,"(",28,"[",31,"{"],
|
||||
["closedBy", 21,")",29,"]",32,"}"]
|
||||
],
|
||||
propSources: [cssHighlighting],
|
||||
skippedNodes: [0,5,106],
|
||||
repeatNodeCount: 15,
|
||||
tokenData: "JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",
|
||||
tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new LocalTokenGroup("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~", 28, 129)],
|
||||
topRules: {"StyleSheet":[0,6],"Styles":[1,105]},
|
||||
specialized: [{term: 124, get: (value) => spec_callee[value] || -1},{term: 125, get: (value) => spec_queryIdentifier[value] || -1},{term: 4, get: (value) => spec_QueryCallee[value] || -1},{term: 25, get: (value) => spec_AtKeyword[value] || -1},{term: 123, get: (value) => spec_identifier[value] || -1}],
|
||||
tokenPrec: 1963
|
||||
});
|
||||
|
||||
export { parser };
|
||||
36
frontend/node_modules/@lezer/css/package.json
generated
vendored
Normal file
36
frontend/node_modules/@lezer/css/package.json
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "@lezer/css",
|
||||
"version": "1.3.0",
|
||||
"description": "lezer-based CSS grammar",
|
||||
"main": "dist/index.cjs",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
"import": "./dist/index.js",
|
||||
"require": "./dist/index.cjs"
|
||||
},
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"author": "Marijn Haverbeke <marijn@haverbeke.berlin>",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@lezer/generator": "^1.8.0",
|
||||
"mocha": "^10.2.0",
|
||||
"rollup": "^2.52.2",
|
||||
"@rollup/plugin-node-resolve": "^9.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lezer/common": "^1.2.0",
|
||||
"@lezer/lr": "^1.3.0",
|
||||
"@lezer/highlight": "^1.0.0"
|
||||
},
|
||||
"repository": {
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/lezer-parser/css.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "lezer-generator src/css.grammar -o src/parser && rollup -c",
|
||||
"build-debug": "lezer-generator src/css.grammar --names -o src/parser && rollup -c",
|
||||
"prepare": "npm run build",
|
||||
"test": "mocha test/test-*.js"
|
||||
}
|
||||
}
|
||||
16
frontend/node_modules/@lezer/css/rollup.config.js
generated
vendored
Normal file
16
frontend/node_modules/@lezer/css/rollup.config.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
import {nodeResolve} from "@rollup/plugin-node-resolve"
|
||||
|
||||
export default {
|
||||
input: "./src/parser.js",
|
||||
output: [{
|
||||
format: "cjs",
|
||||
file: "./dist/index.cjs"
|
||||
}, {
|
||||
format: "es",
|
||||
file: "./dist/index.js"
|
||||
}],
|
||||
external(id) { return !/^[\.\/]/.test(id) },
|
||||
plugins: [
|
||||
nodeResolve()
|
||||
]
|
||||
}
|
||||
274
frontend/node_modules/@lezer/css/src/css.grammar
generated
vendored
Normal file
274
frontend/node_modules/@lezer/css/src/css.grammar
generated
vendored
Normal file
@ -0,0 +1,274 @@
|
||||
@precedence {
|
||||
attribute @left,
|
||||
structure @left,
|
||||
call,
|
||||
valueCompareOp,
|
||||
valueOp @left,
|
||||
layerName
|
||||
}
|
||||
|
||||
@skip { whitespace | Comment }
|
||||
|
||||
@top StyleSheet { item* }
|
||||
|
||||
@top Styles { blockContent }
|
||||
|
||||
item {
|
||||
RuleSet |
|
||||
ImportStatement |
|
||||
MediaStatement |
|
||||
CharsetStatement |
|
||||
NamespaceStatement |
|
||||
KeyframesStatement |
|
||||
SupportsStatement |
|
||||
ScopeStatement |
|
||||
AtRule
|
||||
}
|
||||
|
||||
RuleSet {
|
||||
selector ("," selector)* Block
|
||||
}
|
||||
|
||||
ImportStatement {
|
||||
atKw<"import">
|
||||
value
|
||||
Layer {
|
||||
queryCalleeKw<"layer"> (!layerName "(" LayerName ("." LayerName)* ")")? |
|
||||
queryKw<"layer">
|
||||
}?
|
||||
commaSep<query> ";"
|
||||
}
|
||||
|
||||
LayerName { identifier }
|
||||
|
||||
MediaStatement {
|
||||
atKw<"media"> commaSep<query> Block
|
||||
}
|
||||
|
||||
CharsetStatement {
|
||||
atKw<"charset"> value ";"
|
||||
}
|
||||
|
||||
NamespaceStatement {
|
||||
atKw<"namespace">
|
||||
NamespaceName { identifier }?
|
||||
(StringLiteral | CallLiteral) ";"
|
||||
}
|
||||
|
||||
KeyframesStatement {
|
||||
atKw<"keyframes">
|
||||
KeyframeName { identifier | StringLiteral }
|
||||
KeyframeList
|
||||
}
|
||||
|
||||
KeyframeSelector {
|
||||
KeyframeRangeName { identifier } NumberLiteral? |
|
||||
NumberLiteral
|
||||
}
|
||||
|
||||
KeyframeList {
|
||||
"{" (KeyframeSelector ("," KeyframeSelector)* Block)* "}"
|
||||
}
|
||||
|
||||
SupportsStatement {
|
||||
atKw<"supports"> query Block
|
||||
}
|
||||
|
||||
ScopeStatement {
|
||||
atKw<"scope">
|
||||
ParenthesizedSelector?
|
||||
(@extend[@name=to]<identifier, "to"> ParenthesizedSelector)?
|
||||
Block
|
||||
}
|
||||
|
||||
AtRule { AtKeyword commaSep<query> (";" | Block) }
|
||||
|
||||
Block { "{" blockContent "}" }
|
||||
|
||||
blockContent { ~item item* (Declaration (";" ~item item* Declaration?)*)? }
|
||||
|
||||
selector {
|
||||
UniversalSelector |
|
||||
TagSelector { ~item TagName { identifier ~item } } |
|
||||
NestingSelector |
|
||||
ClassSelector { selector? !attribute "." ClassName { identifier } } |
|
||||
PseudoClassSelector {
|
||||
selector? !attribute (":" | "::") (
|
||||
PseudoClassName { identifier } |
|
||||
pseudoClassWithArg ArgList<value+> |
|
||||
PseudoClassName { callee } ArgList<selector>)
|
||||
} |
|
||||
IdSelector { selector? !attribute "#" IdName { identifier } } |
|
||||
AttributeSelector { selector? !attribute "[" AttributeName { identifier } (MatchOp value)? "]" } |
|
||||
ChildSelector { selector? !structure ChildOp selector } |
|
||||
DescendantSelector { selector !structure descendantOp selector } |
|
||||
SiblingSelector { selector? !structure SiblingOp selector }
|
||||
}
|
||||
|
||||
pseudoClassWithArg {
|
||||
@specialize[@name=PseudoClassName]<callee, "lang" | "nth-child" | "nth-last-child" | "nth-of-type" | "nth-last-of-type" | "nth-of-type" | "dir" | "host-context">
|
||||
}
|
||||
|
||||
NumberLiteral {
|
||||
numberLiteralInner Unit?
|
||||
}
|
||||
|
||||
ArgList<content> { "(" commaSep<content> ")" }
|
||||
|
||||
Declaration {
|
||||
(PropertyName { identifier ~item } | VariableName)
|
||||
":" (value (","? value)*)? Important?
|
||||
}
|
||||
|
||||
query {
|
||||
KeywordQuery { queryIdentifier } |
|
||||
FeatureQuery { "(" FeatureName ":" value+ ")" } |
|
||||
BinaryQuery { query !valueOp @specialize[@name=LogicOp]<queryIdentifier, "or" | "and"> query } |
|
||||
ComparisonQuery {
|
||||
"("
|
||||
(queryValue | FeatureName) !valueCompareOp CompareOp (queryValue | FeatureName)
|
||||
(!valueCompareOp CompareOp (queryValue | FeatureName))?
|
||||
")"
|
||||
} |
|
||||
UnaryQuery { @specialize[@name=UnaryQueryOp]<queryIdentifier, "not" | "only"> query } |
|
||||
ParenthesizedQuery { "(" query ")" } |
|
||||
SelectorQuery { queryCalleeKw<"selector"> ParenthesizedSelector } |
|
||||
CallQuery { QueryCallee ArgList<FeatureName ":" value+ | query> }
|
||||
}
|
||||
|
||||
ParenthesizedSelector { "(" selector ")" }
|
||||
|
||||
FeatureName { queryIdentifier }
|
||||
|
||||
value {
|
||||
VariableName |
|
||||
ValueName { identifier } |
|
||||
ParenthesizedValue { "(" token* ")" } |
|
||||
BracketedValue { "[" token* "]" } |
|
||||
BracedValue { "{" token* "}" } |
|
||||
ColorLiteral |
|
||||
NumberLiteral |
|
||||
StringLiteral |
|
||||
BinaryExpression { value !valueOp BinOp value } |
|
||||
CallExpression |
|
||||
IfExpression |
|
||||
CallLiteral
|
||||
}
|
||||
|
||||
token {
|
||||
value |
|
||||
AtKeyword |
|
||||
"#" | ";" | "." | ":"
|
||||
}
|
||||
|
||||
queryValue {
|
||||
queryVariableName |
|
||||
ColorLiteral |
|
||||
NumberLiteral |
|
||||
StringLiteral
|
||||
}
|
||||
|
||||
IfExpression {
|
||||
@specialize[@name=if]<callee, "if"> ArgList {
|
||||
"(" (IfBranch ";")* IfBranch ";"? ")"
|
||||
}
|
||||
}
|
||||
|
||||
IfBranch { query ":" value }
|
||||
|
||||
CallLiteral {
|
||||
@specialize[@name=CallTag]<callee, "url" | "url-prefix" | "domain" | "regexp">
|
||||
"(" (ParenthesizedContent | StringLiteral)? ")"
|
||||
}
|
||||
|
||||
CallExpression {
|
||||
(Callee { callee } | VariableName) !call ArgList<value+>
|
||||
}
|
||||
|
||||
@skip {} {
|
||||
Comment[isolate] { "/*" (commentContent | commentLineBreak)* commentEnd }
|
||||
}
|
||||
|
||||
@local tokens {
|
||||
commentEnd { "*/" | @eof }
|
||||
commentLineBreak { "\n" }
|
||||
@else commentContent
|
||||
}
|
||||
|
||||
commaSep<value> { "" | value ("," value?)* }
|
||||
|
||||
queryKw<name> { @specialize[@name={name}]<queryIdentifier, name> }
|
||||
queryCalleeKw<name> { @specialize[@name={name}]<QueryCallee, name> }
|
||||
|
||||
atKw<name> { @specialize[@name={name}]<AtKeyword, "@" name> }
|
||||
|
||||
@external tokens descendant from "./tokens" {
|
||||
descendantOp
|
||||
}
|
||||
|
||||
@external tokens unitToken from "./tokens" {
|
||||
Unit
|
||||
}
|
||||
|
||||
@external tokens identifiers from "./tokens" {
|
||||
identifier,
|
||||
callee,
|
||||
VariableName
|
||||
}
|
||||
|
||||
@external tokens queryIdentifiers from "./tokens" {
|
||||
@conflict { identifier, VariableName, callee }
|
||||
queryIdentifier,
|
||||
queryVariableName[@name=VariableName],
|
||||
QueryCallee
|
||||
}
|
||||
|
||||
@tokens {
|
||||
UniversalSelector { "*" }
|
||||
|
||||
NestingSelector { "&" }
|
||||
|
||||
AtKeyword { "@" "-"? @asciiLetter (@asciiLetter | @digit | "-")* }
|
||||
|
||||
MatchOp { $[~^|*$]? "=" }
|
||||
|
||||
ChildOp { ">" ">"? }
|
||||
|
||||
CompareOp { $[<>] "="? | "=" }
|
||||
|
||||
SiblingOp { "~" | "+" }
|
||||
|
||||
BinOp { $[+\-*/] }
|
||||
|
||||
Important { "!important" }
|
||||
|
||||
whitespace { @whitespace+ }
|
||||
|
||||
hexDigit { @digit | $[a-fA-F] }
|
||||
|
||||
ParenthesizedContent { !['")] ![)]+ }
|
||||
|
||||
@precedence { whitespace, ParenthesizedContent, "/*" }
|
||||
|
||||
ColorLiteral {
|
||||
"#" hexDigit hexDigit hexDigit (hexDigit (hexDigit hexDigit (hexDigit hexDigit)?)?)?
|
||||
}
|
||||
|
||||
numberLiteralInner { ("+" | "-")? (@digit+ ("." @digit*)? | "." @digit+) (("e" | "E") ("+" | "-")? @digit+)? }
|
||||
|
||||
@precedence { numberLiteralInner, BinOp, SiblingOp }
|
||||
|
||||
@precedence { numberLiteralInner, "." }
|
||||
|
||||
StringLiteral[isolate] { "\"" (!["\n\\] | "\\" _)* "\"" | "'" (!['\n\\] | "\\" _)* "'" }
|
||||
|
||||
"#" "."
|
||||
|
||||
":" "::" ";" ","
|
||||
|
||||
"(" ")" "[" "]" "{" "}"
|
||||
}
|
||||
|
||||
@external propSource cssHighlighting from "./highlight"
|
||||
|
||||
@detectDelim
|
||||
36
frontend/node_modules/@lezer/css/src/highlight.js
generated
vendored
Normal file
36
frontend/node_modules/@lezer/css/src/highlight.js
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
import {styleTags, tags as t} from "@lezer/highlight"
|
||||
|
||||
export const cssHighlighting = styleTags({
|
||||
"AtKeyword import charset namespace keyframes media supports": t.definitionKeyword,
|
||||
"from to selector": t.keyword,
|
||||
NamespaceName: t.namespace,
|
||||
KeyframeName: t.labelName,
|
||||
KeyframeRangeName: t.operatorKeyword,
|
||||
TagName: t.tagName,
|
||||
ClassName: t.className,
|
||||
PseudoClassName: t.constant(t.className),
|
||||
IdName: t.labelName,
|
||||
"FeatureName PropertyName": t.propertyName,
|
||||
AttributeName: t.attributeName,
|
||||
NumberLiteral: t.number,
|
||||
KeywordQuery: t.keyword,
|
||||
UnaryQueryOp: t.operatorKeyword,
|
||||
"CallTag ValueName": t.atom,
|
||||
VariableName: t.variableName,
|
||||
Callee: t.operatorKeyword,
|
||||
Unit: t.unit,
|
||||
"UniversalSelector NestingSelector": t.definitionOperator,
|
||||
"MatchOp CompareOp": t.compareOperator,
|
||||
"ChildOp SiblingOp, LogicOp": t.logicOperator,
|
||||
BinOp: t.arithmeticOperator,
|
||||
Important: t.modifier,
|
||||
Comment: t.blockComment,
|
||||
ColorLiteral: t.color,
|
||||
"ParenthesizedContent StringLiteral": t.string,
|
||||
":": t.punctuation,
|
||||
"PseudoOp #": t.derefOperator,
|
||||
"; ,": t.separator,
|
||||
"( )": t.paren,
|
||||
"[ ]": t.squareBracket,
|
||||
"{ }": t.brace
|
||||
})
|
||||
30
frontend/node_modules/@lezer/css/src/parser.js
generated
vendored
Normal file
30
frontend/node_modules/@lezer/css/src/parser.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
import {LRParser, LocalTokenGroup} from "@lezer/lr"
|
||||
import {descendant, unitToken, identifiers, queryIdentifiers} from "./tokens"
|
||||
import {cssHighlighting} from "./highlight"
|
||||
const spec_callee = {__proto__:null,lang:38, "nth-child":38, "nth-last-child":38, "nth-of-type":38, "nth-last-of-type":38, dir:38, "host-context":38, if:84, url:124, "url-prefix":124, domain:124, regexp:124}
|
||||
const spec_queryIdentifier = {__proto__:null,or:98, and:98, not:106, only:106, layer:170}
|
||||
const spec_QueryCallee = {__proto__:null,selector:112, layer:166}
|
||||
const spec_AtKeyword = {__proto__:null,"@import":162, "@media":174, "@charset":178, "@namespace":182, "@keyframes":188, "@supports":200, "@scope":204}
|
||||
const spec_identifier = {__proto__:null,to:207}
|
||||
export const parser = LRParser.deserialize({
|
||||
version: 14,
|
||||
states: "EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",
|
||||
stateData: "Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",
|
||||
goto: "2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",
|
||||
nodeNames: "⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",
|
||||
maxTerm: 143,
|
||||
nodeProps: [
|
||||
["isolate", -2,5,36,""],
|
||||
["openedBy", 20,"(",28,"[",31,"{"],
|
||||
["closedBy", 21,")",29,"]",32,"}"]
|
||||
],
|
||||
propSources: [cssHighlighting],
|
||||
skippedNodes: [0,5,106],
|
||||
repeatNodeCount: 15,
|
||||
tokenData: "JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",
|
||||
tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new LocalTokenGroup("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~", 28, 129)],
|
||||
topRules: {"StyleSheet":[0,6],"Styles":[1,105]},
|
||||
specialized: [{term: 124, get: (value) => spec_callee[value] || -1},{term: 125, get: (value) => spec_queryIdentifier[value] || -1},{term: 4, get: (value) => spec_QueryCallee[value] || -1},{term: 25, get: (value) => spec_AtKeyword[value] || -1},{term: 123, get: (value) => spec_identifier[value] || -1}],
|
||||
tokenPrec: 1963
|
||||
})
|
||||
61
frontend/node_modules/@lezer/css/src/parser.terms.js
generated
vendored
Normal file
61
frontend/node_modules/@lezer/css/src/parser.terms.js
generated
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
export const
|
||||
descendantOp = 122,
|
||||
Unit = 1,
|
||||
identifier = 123,
|
||||
callee = 124,
|
||||
VariableName = 2,
|
||||
queryIdentifier = 125,
|
||||
queryVariableName = 3,
|
||||
QueryCallee = 4,
|
||||
Comment = 5,
|
||||
StyleSheet = 6,
|
||||
RuleSet = 7,
|
||||
UniversalSelector = 8,
|
||||
NestingSelector = 11,
|
||||
PseudoClassName = 19,
|
||||
AtKeyword = 25,
|
||||
ColorLiteral = 34,
|
||||
NumberLiteral = 35,
|
||||
StringLiteral = 36,
|
||||
BinOp = 38,
|
||||
CallExpression = 39,
|
||||
IfExpression = 41,
|
||||
_if = 42,
|
||||
IfBranch = 44,
|
||||
FeatureName = 47,
|
||||
LogicOp = 49,
|
||||
CompareOp = 51,
|
||||
UnaryQueryOp = 53,
|
||||
selector = 56,
|
||||
ParenthesizedSelector = 57,
|
||||
CallLiteral = 61,
|
||||
CallTag = 62,
|
||||
ParenthesizedContent = 63,
|
||||
MatchOp = 70,
|
||||
ChildOp = 72,
|
||||
SiblingOp = 75,
|
||||
Block = 76,
|
||||
Declaration = 77,
|
||||
Important = 79,
|
||||
ImportStatement = 80,
|
||||
_import = 81,
|
||||
layer = 85,
|
||||
LayerName = 84,
|
||||
MediaStatement = 86,
|
||||
media = 87,
|
||||
CharsetStatement = 88,
|
||||
charset = 89,
|
||||
NamespaceStatement = 90,
|
||||
namespace = 91,
|
||||
KeyframesStatement = 93,
|
||||
keyframes = 94,
|
||||
KeyframeList = 96,
|
||||
KeyframeSelector = 97,
|
||||
SupportsStatement = 99,
|
||||
supports = 100,
|
||||
ScopeStatement = 101,
|
||||
scope = 102,
|
||||
to = 103,
|
||||
AtRule = 104,
|
||||
Styles = 105
|
||||
73
frontend/node_modules/@lezer/css/src/tokens.js
generated
vendored
Normal file
73
frontend/node_modules/@lezer/css/src/tokens.js
generated
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
/* Hand-written tokenizers for CSS tokens that can't be
|
||||
expressed by Lezer's built-in tokenizer. */
|
||||
|
||||
import {ExternalTokenizer} from "@lezer/lr"
|
||||
import {
|
||||
identifier, callee, VariableName,
|
||||
queryIdentifier, queryVariableName, QueryCallee,
|
||||
descendantOp, Unit
|
||||
} from "./parser.terms.js"
|
||||
|
||||
const space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
|
||||
8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288]
|
||||
const colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,
|
||||
hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10, asterisk = 42
|
||||
|
||||
function isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }
|
||||
|
||||
function isDigit(ch) { return ch >= 48 && ch <= 57 }
|
||||
|
||||
function isHex(ch) { return isDigit(ch) || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70 }
|
||||
|
||||
const identifierTokens = (id, varName, callee) => (input, stack) => {
|
||||
for (let inside = false, dashes = 0, i = 0;; i++) {
|
||||
let {next} = input
|
||||
if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {
|
||||
if (!inside && (next != dash || i > 0)) inside = true
|
||||
if (dashes === i && next == dash) dashes++
|
||||
input.advance()
|
||||
} else if (next == backslash && input.peek(1) != newline) {
|
||||
input.advance()
|
||||
if (isHex(input.next)) {
|
||||
do { input.advance() } while (isHex(input.next))
|
||||
if (input.next == 32) input.advance()
|
||||
} else if (input.next > -1) {
|
||||
input.advance()
|
||||
}
|
||||
inside = true
|
||||
} else {
|
||||
if (inside) input.acceptToken(
|
||||
dashes == 2 && stack.canShift(VariableName) ? varName : next == parenL ? callee : id
|
||||
)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const identifiers = new ExternalTokenizer(
|
||||
identifierTokens(identifier, VariableName, callee)
|
||||
)
|
||||
export const queryIdentifiers = new ExternalTokenizer(
|
||||
identifierTokens(queryIdentifier, queryVariableName, QueryCallee)
|
||||
)
|
||||
|
||||
export const descendant = new ExternalTokenizer(input => {
|
||||
if (space.includes(input.peek(-1))) {
|
||||
let {next} = input
|
||||
if (isAlpha(next) || next == underscore || next == hash || next == period ||
|
||||
next == asterisk || next == bracketL || next == colon && isAlpha(input.peek(1)) ||
|
||||
next == dash || next == ampersand)
|
||||
input.acceptToken(descendantOp)
|
||||
}
|
||||
})
|
||||
|
||||
export const unitToken = new ExternalTokenizer(input => {
|
||||
if (!space.includes(input.peek(-1))) {
|
||||
let {next} = input
|
||||
if (next == percent) { input.advance(); input.acceptToken(Unit) }
|
||||
if (isAlpha(next)) {
|
||||
do { input.advance() } while (isAlpha(input.next) || isDigit(input.next))
|
||||
input.acceptToken(Unit)
|
||||
}
|
||||
}
|
||||
})
|
||||
204
frontend/node_modules/@lezer/css/test/declarations.txt
generated
vendored
Normal file
204
frontend/node_modules/@lezer/css/test/declarations.txt
generated
vendored
Normal file
@ -0,0 +1,204 @@
|
||||
# Function calls
|
||||
|
||||
a {
|
||||
color: rgba(0, 255, 0, 0.5);
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(NumberLiteral,NumberLiteral,NumberLiteral,NumberLiteral))))))
|
||||
|
||||
# Calls where each argument has multiple values
|
||||
|
||||
div {
|
||||
background: repeating-linear-gradient(red, orange 50px);
|
||||
clip-path: polygon(50% 0%, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0% 50%, 40% 40%)
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(ValueName,ValueName,NumberLiteral(Unit)))),
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(
|
||||
NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),
|
||||
NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),
|
||||
NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),
|
||||
NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit)))))))
|
||||
|
||||
# Color literals
|
||||
|
||||
a {
|
||||
b: #fafd04;
|
||||
c: #fafd0401;
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,ColorLiteral),
|
||||
Declaration(PropertyName,ColorLiteral))))
|
||||
|
||||
# Numbers
|
||||
|
||||
a {
|
||||
b: 0.5%;
|
||||
c: 5em;
|
||||
margin: 10E3px;
|
||||
margin: -456.8px;
|
||||
margin: -0.0px;
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,NumberLiteral(Unit)),
|
||||
Declaration(PropertyName,NumberLiteral(Unit)),
|
||||
Declaration(PropertyName,NumberLiteral(Unit)),
|
||||
Declaration(PropertyName,NumberLiteral(Unit)),
|
||||
Declaration(PropertyName,NumberLiteral(Unit)))))
|
||||
|
||||
# Binary arithmetic operators
|
||||
|
||||
a {
|
||||
width: calc(100% - 80px);
|
||||
aspect-ratio: 1/2;
|
||||
font-size: calc(10px + (56 - 10) * ((100vw - 320px) / (1920 - 320)));
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(BinaryExpression(NumberLiteral(Unit),BinOp,NumberLiteral(Unit))))),
|
||||
Declaration(PropertyName,BinaryExpression(NumberLiteral,BinOp,NumberLiteral)),
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(
|
||||
BinaryExpression(BinaryExpression(NumberLiteral(Unit),BinOp,ParenthesizedValue(
|
||||
BinaryExpression(NumberLiteral,BinOp,NumberLiteral))),BinOp,ParenthesizedValue(
|
||||
BinaryExpression(ParenthesizedValue(BinaryExpression(NumberLiteral(Unit),BinOp,NumberLiteral(Unit))),BinOp,
|
||||
ParenthesizedValue(BinaryExpression(NumberLiteral,BinOp,NumberLiteral)))))))))))
|
||||
|
||||
# Strings
|
||||
|
||||
a {
|
||||
b: '';
|
||||
c: '\'hi\'';
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(Declaration(PropertyName,StringLiteral),Declaration(PropertyName,StringLiteral))))
|
||||
|
||||
# URLs
|
||||
|
||||
a {
|
||||
b: url(http://something-else?foo=bar);
|
||||
c: url();
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,CallLiteral(CallTag,ParenthesizedContent)),
|
||||
Declaration(PropertyName,CallLiteral(CallTag)))))
|
||||
|
||||
# Important declarations
|
||||
|
||||
a {
|
||||
b: c !important;
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(Declaration(PropertyName,ValueName,Important))))
|
||||
|
||||
# Comments right after numbers
|
||||
|
||||
a {
|
||||
shape-outside: circle(20em/*=*/at 50% 50%);
|
||||
shape-outside: inset(1em, 1em, 1em, 1em);
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(NumberLiteral(Unit),Comment,ValueName,NumberLiteral(Unit),NumberLiteral(Unit)))),
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit),NumberLiteral(Unit)))))))
|
||||
|
||||
# Unfinished rule
|
||||
|
||||
a { foo: 2
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(Declaration(PropertyName,NumberLiteral),⚠)))
|
||||
|
||||
# Variable names
|
||||
|
||||
foo {
|
||||
--my-variable: white;
|
||||
color: var(--my-variable);
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(VariableName,ValueName),
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(VariableName))))))
|
||||
|
||||
# Trailing comma
|
||||
|
||||
div { color: var(--c,) }
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(VariableName))))))
|
||||
|
||||
# Space before colon
|
||||
|
||||
div {
|
||||
color : red;
|
||||
.x :active {
|
||||
color : blue;
|
||||
}
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,ValueName),
|
||||
RuleSet(DescendantSelector(ClassSelector(ClassName),PseudoClassSelector(PseudoClassName)),Block(
|
||||
Declaration(PropertyName,ValueName))))))
|
||||
|
||||
# Empty value
|
||||
|
||||
p {
|
||||
--var-name: ;
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(Declaration(VariableName))))
|
||||
|
||||
# Bracketed values
|
||||
|
||||
div {
|
||||
--myvar: [ some: value; ]
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(VariableName,BracketedValue("[", ValueName, ":", ValueName, ";", "]")))))
|
||||
|
||||
# Call to variables
|
||||
|
||||
.foo {
|
||||
box-shadow: --shadow(blue);
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(ClassSelector(ClassName),Block(
|
||||
Declaration(PropertyName,CallExpression(VariableName,ArgList(ValueName))))))
|
||||
150
frontend/node_modules/@lezer/css/test/selector.txt
generated
vendored
Normal file
150
frontend/node_modules/@lezer/css/test/selector.txt
generated
vendored
Normal file
@ -0,0 +1,150 @@
|
||||
# Universal selectors
|
||||
|
||||
* {}
|
||||
div * {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(UniversalSelector,Block),
|
||||
RuleSet(DescendantSelector(TagSelector(TagName),UniversalSelector),Block))
|
||||
|
||||
# Type selectors
|
||||
|
||||
div, span {}
|
||||
h1, h2, h3, h4 {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(TagSelector(TagName),TagSelector(TagName),Block),
|
||||
RuleSet(TagSelector(TagName),TagSelector(TagName),TagSelector(TagName),TagSelector(TagName),Block))
|
||||
|
||||
# Class selectors
|
||||
|
||||
.class-a {}
|
||||
div.class-b, .class-c.class-d {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(ClassSelector(ClassName),Block),
|
||||
RuleSet(ClassSelector(TagSelector(TagName),ClassName),ClassSelector(ClassSelector(ClassName),ClassName),Block))
|
||||
|
||||
# Id selectors
|
||||
|
||||
#some-id, a#another-id {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(IdSelector(IdName),IdSelector(TagSelector(TagName),IdName),Block))
|
||||
|
||||
# Attribute selectors
|
||||
|
||||
[a] {}
|
||||
[b=c] {}
|
||||
[d~=e] {}
|
||||
a[b] {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(AttributeSelector(AttributeName),Block),
|
||||
RuleSet(AttributeSelector(AttributeName,MatchOp,ValueName),Block),
|
||||
RuleSet(AttributeSelector(AttributeName,MatchOp,ValueName),Block),
|
||||
RuleSet(AttributeSelector(TagSelector(TagName),AttributeName),Block))
|
||||
|
||||
# Pseudo-class selectors
|
||||
|
||||
a:hover {}
|
||||
:nth-child(2) {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(PseudoClassSelector(TagSelector(TagName),":",PseudoClassName),Block),
|
||||
RuleSet(PseudoClassSelector(":",PseudoClassName,ArgList(NumberLiteral)),Block))
|
||||
|
||||
# Pseudo-element selectors
|
||||
|
||||
a::first-line {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(PseudoClassSelector(TagSelector(TagName),"::",PseudoClassName),Block))
|
||||
|
||||
# Child selectors
|
||||
|
||||
a > b {}
|
||||
c > d > e {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(ChildSelector(TagSelector(TagName),ChildOp,TagSelector(TagName)),Block),
|
||||
RuleSet(ChildSelector(ChildSelector(TagSelector(TagName),ChildOp,TagSelector(TagName)),ChildOp,TagSelector(TagName)),Block))
|
||||
|
||||
# Descendant selectors
|
||||
|
||||
a b {}
|
||||
c d e {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(DescendantSelector(TagSelector(TagName),TagSelector(TagName)),Block),
|
||||
RuleSet(DescendantSelector(DescendantSelector(TagSelector(TagName),TagSelector(TagName)),TagSelector(TagName)),Block))
|
||||
|
||||
# Nesting selectors
|
||||
|
||||
a {
|
||||
&.b {}
|
||||
& c {}
|
||||
c & {}
|
||||
& > d {}
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
RuleSet(ClassSelector(NestingSelector,ClassName),Block),
|
||||
RuleSet(DescendantSelector(NestingSelector,TagSelector(TagName)),Block),
|
||||
RuleSet(DescendantSelector(TagSelector(TagName), NestingSelector),Block),
|
||||
RuleSet(ChildSelector(NestingSelector,ChildOp,TagSelector(TagName)),Block))))
|
||||
|
||||
# Relative selectors
|
||||
|
||||
a {
|
||||
p {}
|
||||
> f {}
|
||||
+ g {}
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
RuleSet(TagSelector(TagName),Block),
|
||||
RuleSet(ChildSelector(ChildOp,TagSelector(TagName)),Block),
|
||||
RuleSet(SiblingSelector(SiblingOp,TagSelector(TagName)),Block))))
|
||||
|
||||
# Sibling selectors
|
||||
|
||||
a.b ~ c.d {}
|
||||
.e.f + .g.h {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(SiblingSelector(ClassSelector(TagSelector(TagName),ClassName),SiblingOp,ClassSelector(TagSelector(TagName),ClassName)),Block),
|
||||
RuleSet(SiblingSelector(ClassSelector(ClassSelector(ClassName),ClassName),SiblingOp,ClassSelector(ClassSelector(ClassName),ClassName)),Block))
|
||||
|
||||
# The :not selector
|
||||
|
||||
a:not(:hover) {}
|
||||
.b:not(c > .d) {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
RuleSet(PseudoClassSelector(TagSelector(TagName),":",PseudoClassName,ArgList(PseudoClassSelector(":",PseudoClassName))),Block),
|
||||
RuleSet(PseudoClassSelector(ClassSelector(ClassName),":",PseudoClassName,ArgList(ChildSelector(TagSelector(TagName),ChildOp,ClassSelector(ClassName)))),Block))
|
||||
214
frontend/node_modules/@lezer/css/test/statements.txt
generated
vendored
Normal file
214
frontend/node_modules/@lezer/css/test/statements.txt
generated
vendored
Normal file
@ -0,0 +1,214 @@
|
||||
# Empty stylesheets
|
||||
|
||||
/* Just a comment */
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(Comment)
|
||||
|
||||
# Import statements
|
||||
|
||||
@import url("fineprint.css") print;
|
||||
@import url("bluish.css") speech;
|
||||
@import 'custom.css';
|
||||
@import url("chrome://communicator/skin/");
|
||||
@import "common.css" screen;
|
||||
@import "reset.css" layer(framework.component);
|
||||
@import "components.css" layer screen;
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
ImportStatement(import,CallLiteral(CallTag,StringLiteral),KeywordQuery),
|
||||
ImportStatement(import,CallLiteral(CallTag,StringLiteral),KeywordQuery),
|
||||
ImportStatement(import,StringLiteral),
|
||||
ImportStatement(import,CallLiteral(CallTag,StringLiteral)),
|
||||
ImportStatement(import,StringLiteral,KeywordQuery),
|
||||
ImportStatement(import,StringLiteral,Layer(layer,LayerName,LayerName)),
|
||||
ImportStatement(import,StringLiteral,Layer(layer),KeywordQuery))
|
||||
|
||||
# Namespace statements
|
||||
|
||||
/* Default namespace */
|
||||
@namespace url(XML-namespace-URL);
|
||||
@namespace "XML-namespace-URL";
|
||||
@namespace url(http://www.w3.org/1999/xhtml);
|
||||
@namespace svg url(http://www.w3.org/2000/svg);
|
||||
|
||||
/* Prefixed namespace */
|
||||
@namespace prefix url(XML-namespace-URL);
|
||||
@namespace prefix "XML-namespace-URL";
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
Comment,
|
||||
NamespaceStatement(namespace,CallLiteral(CallTag,ParenthesizedContent)),
|
||||
NamespaceStatement(namespace,StringLiteral),
|
||||
NamespaceStatement(namespace,CallLiteral(CallTag,ParenthesizedContent)),
|
||||
NamespaceStatement(namespace,NamespaceName,CallLiteral(CallTag,ParenthesizedContent)),
|
||||
Comment,
|
||||
NamespaceStatement(namespace,NamespaceName,CallLiteral(CallTag,ParenthesizedContent)),
|
||||
NamespaceStatement(namespace,NamespaceName,StringLiteral))
|
||||
|
||||
# Keyframes statements
|
||||
|
||||
@keyframes important1 {
|
||||
from { margin-top: 50px; }
|
||||
50%, 60% { margin-top: 150px !important; } /* ignored */
|
||||
to { margin-top: 100px; }
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(KeyframesStatement(keyframes,KeyframeName,KeyframeList(
|
||||
KeyframeSelector(KeyframeRangeName),Block(Declaration(PropertyName,NumberLiteral(Unit))),
|
||||
KeyframeSelector(NumberLiteral(Unit)),KeyframeSelector(NumberLiteral(Unit)),Block(
|
||||
Declaration(PropertyName,NumberLiteral(Unit),Important)),
|
||||
Comment,
|
||||
KeyframeSelector(KeyframeRangeName),Block(Declaration(PropertyName,NumberLiteral(Unit))))))
|
||||
|
||||
# Keyframes statements with range
|
||||
|
||||
@keyframes anim-1 {
|
||||
entry 0% { margin-top: 50px; }
|
||||
entry 100% { margin-top: 50px; }
|
||||
exit 0% { margin-top: 50px; }
|
||||
exit 100% { margin-top: 50px; }
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(KeyframesStatement(keyframes,KeyframeName,KeyframeList(
|
||||
KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),Block(Declaration(PropertyName,NumberLiteral(Unit))),
|
||||
KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),Block(Declaration(PropertyName,NumberLiteral(Unit))),
|
||||
KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),Block(Declaration(PropertyName,NumberLiteral(Unit))),
|
||||
KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),Block(Declaration(PropertyName,NumberLiteral(Unit))))))
|
||||
|
||||
# Keyframes statements with range and multiple keyframe selectors
|
||||
|
||||
@keyframes fade-in-out-animation {
|
||||
entry 0%, exit 100% { opacity: 0 }
|
||||
entry 100%, exit 0% { opacity: 1 }
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(KeyframesStatement(keyframes,KeyframeName,KeyframeList(
|
||||
KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),Block(
|
||||
Declaration(PropertyName,NumberLiteral)),
|
||||
KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),KeyframeSelector(KeyframeRangeName,NumberLiteral(Unit)),Block(
|
||||
Declaration(PropertyName,NumberLiteral)))))
|
||||
|
||||
# Media statements
|
||||
|
||||
@media screen and (min-width: 30em) and (orientation: landscape) {}
|
||||
@media (min-height: 680px), screen and (orientation: portrait) {}
|
||||
@media not all and (monochrome) {}
|
||||
@media only screen {}
|
||||
@media (10em <= width < 30em) {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
MediaStatement(media,BinaryQuery(BinaryQuery(KeywordQuery,LogicOp,FeatureQuery(FeatureName,NumberLiteral(Unit))),LogicOp,
|
||||
FeatureQuery(FeatureName,ValueName)),Block),
|
||||
MediaStatement(media,FeatureQuery(FeatureName,NumberLiteral(Unit)),BinaryQuery(KeywordQuery,LogicOp,FeatureQuery(FeatureName,ValueName)),Block),
|
||||
MediaStatement(media,UnaryQuery(UnaryQueryOp,BinaryQuery(KeywordQuery,LogicOp,ParenthesizedQuery(KeywordQuery))),Block),
|
||||
MediaStatement(media,UnaryQuery(UnaryQueryOp,KeywordQuery),Block),
|
||||
MediaStatement(media,ComparisonQuery(NumberLiteral(Unit),CompareOp,FeatureName,CompareOp,NumberLiteral(Unit)),Block))
|
||||
|
||||
# Supports statements
|
||||
|
||||
@supports (animation-name: test) {
|
||||
div { animation-name: test; }
|
||||
}
|
||||
@supports (transform-style: preserve) or (-moz-transform-style: preserve) {}
|
||||
@supports not ((text-align-last: justify) or (-moz-text-align-last: justify)) {}
|
||||
@supports not selector(:matches(a, b)) {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
SupportsStatement(supports,FeatureQuery(FeatureName,ValueName),Block(RuleSet(TagSelector(TagName),Block(Declaration(PropertyName,ValueName))))),
|
||||
SupportsStatement(supports,BinaryQuery(FeatureQuery(FeatureName,ValueName),LogicOp,FeatureQuery(FeatureName,ValueName)),Block),
|
||||
SupportsStatement(supports,UnaryQuery(UnaryQueryOp,ParenthesizedQuery(
|
||||
BinaryQuery(FeatureQuery(FeatureName,ValueName),LogicOp,FeatureQuery(FeatureName,ValueName)))),Block),
|
||||
SupportsStatement(supports,UnaryQuery(UnaryQueryOp,SelectorQuery(selector,ParenthesizedSelector(PseudoClassSelector(PseudoClassName,ArgList(TagSelector(TagName),TagSelector(TagName)))))),Block))
|
||||
|
||||
# Charset statements
|
||||
|
||||
@charset "utf-8";
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(CharsetStatement(charset,StringLiteral))
|
||||
|
||||
# Other at-statements
|
||||
|
||||
@font-face {
|
||||
font-family: "Open Sans";
|
||||
src: url("/a") format("woff2"), url("/b/c") format("woff");
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(AtRule(AtKeyword,Block(
|
||||
Declaration(PropertyName,StringLiteral),
|
||||
Declaration(PropertyName,CallLiteral(CallTag,StringLiteral),CallExpression(Callee,ArgList(StringLiteral)),
|
||||
CallLiteral(CallTag,StringLiteral),CallExpression(Callee,ArgList(StringLiteral))))))
|
||||
|
||||
# Unterminated Comment
|
||||
|
||||
p {}
|
||||
/*
|
||||
div {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block),Comment)
|
||||
|
||||
# Escaped identifiers
|
||||
|
||||
#foo\ bar {
|
||||
--weird\\var: 5px;
|
||||
width: var(--weird\\var);
|
||||
c\6f lor: b\6c ue;
|
||||
}
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(IdSelector(IdName),Block(
|
||||
Declaration(VariableName,NumberLiteral(Unit)),
|
||||
Declaration(PropertyName,CallExpression(Callee,ArgList(VariableName))),
|
||||
Declaration(PropertyName, ValueName))))
|
||||
|
||||
# Scope
|
||||
|
||||
@scope { .x {} }
|
||||
@scope (div) {}
|
||||
@scope (.a) to (.b) {}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(
|
||||
ScopeStatement(scope,Block(RuleSet(ClassSelector(ClassName),Block))),
|
||||
ScopeStatement(scope,ParenthesizedSelector(TagSelector(TagName)),Block),
|
||||
ScopeStatement(scope,ParenthesizedSelector(ClassSelector(ClassName)),to,ParenthesizedSelector(ClassSelector(ClassName)),Block))
|
||||
|
||||
# If Expressions
|
||||
|
||||
p {
|
||||
background-color: if(
|
||||
style(--color: white): black;
|
||||
supports(foo: bar): red;
|
||||
else: pink
|
||||
);
|
||||
}
|
||||
|
||||
==>
|
||||
|
||||
StyleSheet(RuleSet(TagSelector(TagName),Block(
|
||||
Declaration(PropertyName,IfExpression(if,ArgList(
|
||||
IfBranch(CallQuery(QueryCallee,ArgList(FeatureName,ValueName)),ValueName),
|
||||
IfBranch(CallQuery(QueryCallee,ArgList(FeatureName,ValueName)),ValueName),
|
||||
IfBranch(KeywordQuery,ValueName)))))))
|
||||
16
frontend/node_modules/@lezer/css/test/test-css.js
generated
vendored
Normal file
16
frontend/node_modules/@lezer/css/test/test-css.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
import {parser} from "../dist/index.js"
|
||||
import {fileTests} from "@lezer/generator/dist/test"
|
||||
|
||||
import * as fs from "fs"
|
||||
import * as path from "path"
|
||||
import {fileURLToPath} from "url"
|
||||
let caseDir = path.dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
for (let file of fs.readdirSync(caseDir)) {
|
||||
if (!/\.txt$/.test(file)) continue
|
||||
let name = /^[^\.]*/.exec(file)[0]
|
||||
describe(name, () => {
|
||||
for (let {name, run} of fileTests(fs.readFileSync(path.join(caseDir, file), "utf8"), file))
|
||||
it(name, () => run(parser))
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user