@unocss/preset-uno 0.13.0 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-CKV32YDT.mjs +106 -0
- package/dist/{chunk-64RIF3V4.js → chunk-HD4ZLDCQ.js} +11 -104
- package/dist/{chunk-IFOGL3S7.mjs → chunk-SVHXUA5V.mjs} +8 -101
- package/dist/chunk-VQNLS43G.js +106 -0
- package/dist/{chunk-GBKIE2NK.js → chunk-VYMMTQ2N.js} +226 -184
- package/dist/{chunk-RDUXYWRV.mjs → chunk-XF2Z5UCK.mjs} +245 -203
- package/dist/index.js +7 -6
- package/dist/index.mjs +3 -2
- package/dist/rules.d.ts +3 -1
- package/dist/rules.js +7 -2
- package/dist/rules.mjs +6 -1
- package/dist/variants.d.ts +2 -1
- package/dist/variants.js +6 -2
- package/dist/variants.mjs +8 -4
- package/package.json +2 -2
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// src/variants/pseudo.ts
|
|
2
|
+
import { toArray } from "@unocss/core";
|
|
3
|
+
var CONTROL_BYPASS_PSEUDO = "$$no-pseudo";
|
|
4
|
+
var PseudoClasses = Object.fromEntries([
|
|
5
|
+
"active",
|
|
6
|
+
"checked",
|
|
7
|
+
"default",
|
|
8
|
+
"empty",
|
|
9
|
+
"enabled",
|
|
10
|
+
"disabled",
|
|
11
|
+
"first-of-type",
|
|
12
|
+
["first", "first-child"],
|
|
13
|
+
"focus-visible",
|
|
14
|
+
"focus-within",
|
|
15
|
+
"focus",
|
|
16
|
+
"hover",
|
|
17
|
+
"indeterminate",
|
|
18
|
+
"invalid",
|
|
19
|
+
"last-of-type",
|
|
20
|
+
["last", "last-child"],
|
|
21
|
+
"link",
|
|
22
|
+
"only-child",
|
|
23
|
+
"only-of-type",
|
|
24
|
+
"optional",
|
|
25
|
+
"placeholder-shown",
|
|
26
|
+
"read-only",
|
|
27
|
+
"read-write",
|
|
28
|
+
"required",
|
|
29
|
+
"root",
|
|
30
|
+
"target",
|
|
31
|
+
"valid",
|
|
32
|
+
"visited",
|
|
33
|
+
["even-of-type", "nth-of-type(even)"],
|
|
34
|
+
["even", "nth-child(even)"],
|
|
35
|
+
["odd-of-type", "nth-of-type(odd)"],
|
|
36
|
+
["odd", "nth-child(odd)"]
|
|
37
|
+
].map(toArray));
|
|
38
|
+
var PseudoElements = [
|
|
39
|
+
"before",
|
|
40
|
+
"after",
|
|
41
|
+
"first-letter",
|
|
42
|
+
"first-line",
|
|
43
|
+
"selection"
|
|
44
|
+
];
|
|
45
|
+
var PseudoElementsRE = new RegExp(`^(${PseudoElements.join("|")})[:-]`);
|
|
46
|
+
var PseudoClassesStr = Object.keys(PseudoClasses).join("|");
|
|
47
|
+
var PseudoClassesRE = new RegExp(`^(${PseudoClassesStr})[:-]`);
|
|
48
|
+
var PseudoClassesNotRE = new RegExp(`^not-(${PseudoClassesStr})[:-]`);
|
|
49
|
+
var PseudoClassesGroupRE = new RegExp(`^group-(${PseudoClassesStr})[:-]`);
|
|
50
|
+
var PseudoClassesPeerRE = new RegExp(`^peer-(${PseudoClassesStr})[:-]`);
|
|
51
|
+
var variantPseudoElements = (input) => {
|
|
52
|
+
const match = input.match(PseudoElementsRE);
|
|
53
|
+
if (match) {
|
|
54
|
+
return {
|
|
55
|
+
matcher: input.slice(match[1].length + 1),
|
|
56
|
+
selector: (s, body) => shouldAdd(body) && `${s}::${match[1]}`
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function shouldAdd(entires) {
|
|
61
|
+
return !entires.find((i) => i[0] === CONTROL_BYPASS_PSEUDO) || void 0;
|
|
62
|
+
}
|
|
63
|
+
var variantPseudoClasses = {
|
|
64
|
+
match: (input) => {
|
|
65
|
+
let match = input.match(PseudoClassesRE);
|
|
66
|
+
if (match) {
|
|
67
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
68
|
+
return {
|
|
69
|
+
matcher: input.slice(match[1].length + 1),
|
|
70
|
+
selector: (s, body) => shouldAdd(body) && `${s}:${pseudo}`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
match = input.match(PseudoClassesNotRE);
|
|
74
|
+
if (match) {
|
|
75
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
76
|
+
return {
|
|
77
|
+
matcher: input.slice(match[1].length + 5),
|
|
78
|
+
selector: (s, body) => shouldAdd(body) && `${s}:not(:${pseudo})`
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
match = input.match(PseudoClassesGroupRE);
|
|
82
|
+
if (match) {
|
|
83
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
84
|
+
return {
|
|
85
|
+
matcher: input.slice(match[1].length + 7),
|
|
86
|
+
selector: (s, body) => shouldAdd(body) && s.includes(".group:") ? s.replace(/\.group:/, `.group:${pseudo}:`) : `.group:${pseudo} ${s}`
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
match = input.match(PseudoClassesPeerRE);
|
|
90
|
+
if (match) {
|
|
91
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
92
|
+
return {
|
|
93
|
+
matcher: input.slice(match[1].length + 6),
|
|
94
|
+
selector: (s, body) => shouldAdd(body) && s.includes(".peer:") ? s.replace(/\.peer:/, `.peer:${pseudo}:`) : `.peer:${pseudo} ~ ${s}`
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
multiPass: true
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export {
|
|
102
|
+
CONTROL_BYPASS_PSEUDO,
|
|
103
|
+
PseudoClasses,
|
|
104
|
+
variantPseudoElements,
|
|
105
|
+
variantPseudoClasses
|
|
106
|
+
};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
var _chunkVQNLS43Gjs = require('./chunk-VQNLS43G.js');
|
|
5
|
+
|
|
6
|
+
|
|
3
7
|
var _chunkLPZDYB4Jjs = require('./chunk-LPZDYB4J.js');
|
|
4
8
|
|
|
5
9
|
// src/variants/breakpoints.ts
|
|
@@ -90,8 +94,10 @@ var variantNegative = {
|
|
|
90
94
|
matcher: matcher.slice(1),
|
|
91
95
|
body: (body) => {
|
|
92
96
|
body.forEach((v) => {
|
|
93
|
-
var _a;
|
|
94
|
-
v[
|
|
97
|
+
var _a, _b;
|
|
98
|
+
if (v[0].startsWith("--un-scale") || ((_a = v[1]) == null ? void 0 : _a.toString()) === "0")
|
|
99
|
+
return;
|
|
100
|
+
v[1] = (_b = v[1]) == null ? void 0 : _b.toString().replace(/[0-9.]+(?:[a-z]+|%)?/, (i) => `-${i}`);
|
|
95
101
|
});
|
|
96
102
|
return body;
|
|
97
103
|
}
|
|
@@ -110,102 +116,6 @@ var variantSpace = (matcher) => {
|
|
|
110
116
|
}
|
|
111
117
|
};
|
|
112
118
|
|
|
113
|
-
// src/variants/pseudo.ts
|
|
114
|
-
var _core = require('@unocss/core');
|
|
115
|
-
var PseudoClasses = Object.fromEntries([
|
|
116
|
-
"active",
|
|
117
|
-
"checked",
|
|
118
|
-
"default",
|
|
119
|
-
"empty",
|
|
120
|
-
"enabled",
|
|
121
|
-
"disabled",
|
|
122
|
-
"first-of-type",
|
|
123
|
-
["first", "first-child"],
|
|
124
|
-
"focus-visible",
|
|
125
|
-
"focus-within",
|
|
126
|
-
"focus",
|
|
127
|
-
"hover",
|
|
128
|
-
"indeterminate",
|
|
129
|
-
"invalid",
|
|
130
|
-
"last-of-type",
|
|
131
|
-
["last", "last-child"],
|
|
132
|
-
"link",
|
|
133
|
-
"only-child",
|
|
134
|
-
"only-of-type",
|
|
135
|
-
"optional",
|
|
136
|
-
"placeholder-shown",
|
|
137
|
-
"read-only",
|
|
138
|
-
"read-write",
|
|
139
|
-
"required",
|
|
140
|
-
"root",
|
|
141
|
-
"target",
|
|
142
|
-
"valid",
|
|
143
|
-
"visited",
|
|
144
|
-
["even-of-type", "nth-of-type(even)"],
|
|
145
|
-
["even", "nth-child(even)"],
|
|
146
|
-
["odd-of-type", "nth-of-type(odd)"],
|
|
147
|
-
["odd", "nth-child(odd)"]
|
|
148
|
-
].map(_core.toArray));
|
|
149
|
-
var PseudoElements = [
|
|
150
|
-
"before",
|
|
151
|
-
"after",
|
|
152
|
-
"first-letter",
|
|
153
|
-
"first-line",
|
|
154
|
-
"selection"
|
|
155
|
-
];
|
|
156
|
-
var PseudoElementsRE = new RegExp(`^(${PseudoElements.join("|")})[:-]`);
|
|
157
|
-
var PseudoClassesStr = Object.keys(PseudoClasses).join("|");
|
|
158
|
-
var PseudoClassesRE = new RegExp(`^(${PseudoClassesStr})[:-]`);
|
|
159
|
-
var PseudoClassesNotRE = new RegExp(`^not-(${PseudoClassesStr})[:-]`);
|
|
160
|
-
var PseudoClassesGroupRE = new RegExp(`^group-(${PseudoClassesStr})[:-]`);
|
|
161
|
-
var PseudoClassesPeerRE = new RegExp(`^peer-(${PseudoClassesStr})[:-]`);
|
|
162
|
-
var variantPseudoElements = (input) => {
|
|
163
|
-
const match = input.match(PseudoElementsRE);
|
|
164
|
-
if (match) {
|
|
165
|
-
return {
|
|
166
|
-
matcher: input.slice(match[1].length + 1),
|
|
167
|
-
selector: (input2) => `${input2}::${match[1]}`
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
var variantPseudoClasses = {
|
|
172
|
-
match: (input) => {
|
|
173
|
-
let match = input.match(PseudoClassesRE);
|
|
174
|
-
if (match) {
|
|
175
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
176
|
-
return {
|
|
177
|
-
matcher: input.slice(match[1].length + 1),
|
|
178
|
-
selector: (input2) => `${input2}:${pseudo}`
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
match = input.match(PseudoClassesNotRE);
|
|
182
|
-
if (match) {
|
|
183
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
184
|
-
return {
|
|
185
|
-
matcher: input.slice(match[1].length + 5),
|
|
186
|
-
selector: (input2) => `${input2}:not(:${pseudo})`
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
match = input.match(PseudoClassesGroupRE);
|
|
190
|
-
if (match) {
|
|
191
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
192
|
-
return {
|
|
193
|
-
matcher: input.slice(match[1].length + 7),
|
|
194
|
-
selector: (s) => s.includes(".group:") ? s.replace(/\.group:/, `.group:${pseudo}:`) : `.group:${pseudo} ${s}`
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
match = input.match(PseudoClassesPeerRE);
|
|
198
|
-
if (match) {
|
|
199
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
200
|
-
return {
|
|
201
|
-
matcher: input.slice(match[1].length + 6),
|
|
202
|
-
selector: (s) => s.includes(".peer:") ? s.replace(/\.peer:/, `.peer:${pseudo}:`) : `.peer:${pseudo} ~ ${s}`
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
multiPass: true
|
|
207
|
-
};
|
|
208
|
-
|
|
209
119
|
// src/variants/default.ts
|
|
210
120
|
var variants = [
|
|
211
121
|
variantSpace,
|
|
@@ -213,8 +123,8 @@ var variants = [
|
|
|
213
123
|
variantImportant,
|
|
214
124
|
variantBreakpoints,
|
|
215
125
|
...variantChildren,
|
|
216
|
-
variantPseudoClasses,
|
|
217
|
-
variantPseudoElements
|
|
126
|
+
_chunkVQNLS43Gjs.variantPseudoClasses,
|
|
127
|
+
_chunkVQNLS43Gjs.variantPseudoElements
|
|
218
128
|
];
|
|
219
129
|
|
|
220
130
|
|
|
@@ -226,7 +136,4 @@ var variants = [
|
|
|
226
136
|
|
|
227
137
|
|
|
228
138
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
exports.variantBreakpoints = variantBreakpoints; exports.variantChildren = variantChildren; exports.variantColorsClass = variantColorsClass; exports.variantColorsMedia = variantColorsMedia; exports.variantImportant = variantImportant; exports.variantNegative = variantNegative; exports.variantSpace = variantSpace; exports.PseudoClasses = PseudoClasses; exports.variantPseudoElements = variantPseudoElements; exports.variantPseudoClasses = variantPseudoClasses; exports.variants = variants;
|
|
139
|
+
exports.variantBreakpoints = variantBreakpoints; exports.variantChildren = variantChildren; exports.variantColorsClass = variantColorsClass; exports.variantColorsMedia = variantColorsMedia; exports.variantImportant = variantImportant; exports.variantNegative = variantNegative; exports.variantSpace = variantSpace; exports.variants = variants;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
variantPseudoClasses,
|
|
3
|
+
variantPseudoElements
|
|
4
|
+
} from "./chunk-CKV32YDT.mjs";
|
|
1
5
|
import {
|
|
2
6
|
variantMatcher
|
|
3
7
|
} from "./chunk-O7YRGPXQ.mjs";
|
|
@@ -90,8 +94,10 @@ var variantNegative = {
|
|
|
90
94
|
matcher: matcher.slice(1),
|
|
91
95
|
body: (body) => {
|
|
92
96
|
body.forEach((v) => {
|
|
93
|
-
var _a;
|
|
94
|
-
v[
|
|
97
|
+
var _a, _b;
|
|
98
|
+
if (v[0].startsWith("--un-scale") || ((_a = v[1]) == null ? void 0 : _a.toString()) === "0")
|
|
99
|
+
return;
|
|
100
|
+
v[1] = (_b = v[1]) == null ? void 0 : _b.toString().replace(/[0-9.]+(?:[a-z]+|%)?/, (i) => `-${i}`);
|
|
95
101
|
});
|
|
96
102
|
return body;
|
|
97
103
|
}
|
|
@@ -110,102 +116,6 @@ var variantSpace = (matcher) => {
|
|
|
110
116
|
}
|
|
111
117
|
};
|
|
112
118
|
|
|
113
|
-
// src/variants/pseudo.ts
|
|
114
|
-
import { toArray } from "@unocss/core";
|
|
115
|
-
var PseudoClasses = Object.fromEntries([
|
|
116
|
-
"active",
|
|
117
|
-
"checked",
|
|
118
|
-
"default",
|
|
119
|
-
"empty",
|
|
120
|
-
"enabled",
|
|
121
|
-
"disabled",
|
|
122
|
-
"first-of-type",
|
|
123
|
-
["first", "first-child"],
|
|
124
|
-
"focus-visible",
|
|
125
|
-
"focus-within",
|
|
126
|
-
"focus",
|
|
127
|
-
"hover",
|
|
128
|
-
"indeterminate",
|
|
129
|
-
"invalid",
|
|
130
|
-
"last-of-type",
|
|
131
|
-
["last", "last-child"],
|
|
132
|
-
"link",
|
|
133
|
-
"only-child",
|
|
134
|
-
"only-of-type",
|
|
135
|
-
"optional",
|
|
136
|
-
"placeholder-shown",
|
|
137
|
-
"read-only",
|
|
138
|
-
"read-write",
|
|
139
|
-
"required",
|
|
140
|
-
"root",
|
|
141
|
-
"target",
|
|
142
|
-
"valid",
|
|
143
|
-
"visited",
|
|
144
|
-
["even-of-type", "nth-of-type(even)"],
|
|
145
|
-
["even", "nth-child(even)"],
|
|
146
|
-
["odd-of-type", "nth-of-type(odd)"],
|
|
147
|
-
["odd", "nth-child(odd)"]
|
|
148
|
-
].map(toArray));
|
|
149
|
-
var PseudoElements = [
|
|
150
|
-
"before",
|
|
151
|
-
"after",
|
|
152
|
-
"first-letter",
|
|
153
|
-
"first-line",
|
|
154
|
-
"selection"
|
|
155
|
-
];
|
|
156
|
-
var PseudoElementsRE = new RegExp(`^(${PseudoElements.join("|")})[:-]`);
|
|
157
|
-
var PseudoClassesStr = Object.keys(PseudoClasses).join("|");
|
|
158
|
-
var PseudoClassesRE = new RegExp(`^(${PseudoClassesStr})[:-]`);
|
|
159
|
-
var PseudoClassesNotRE = new RegExp(`^not-(${PseudoClassesStr})[:-]`);
|
|
160
|
-
var PseudoClassesGroupRE = new RegExp(`^group-(${PseudoClassesStr})[:-]`);
|
|
161
|
-
var PseudoClassesPeerRE = new RegExp(`^peer-(${PseudoClassesStr})[:-]`);
|
|
162
|
-
var variantPseudoElements = (input) => {
|
|
163
|
-
const match = input.match(PseudoElementsRE);
|
|
164
|
-
if (match) {
|
|
165
|
-
return {
|
|
166
|
-
matcher: input.slice(match[1].length + 1),
|
|
167
|
-
selector: (input2) => `${input2}::${match[1]}`
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
var variantPseudoClasses = {
|
|
172
|
-
match: (input) => {
|
|
173
|
-
let match = input.match(PseudoClassesRE);
|
|
174
|
-
if (match) {
|
|
175
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
176
|
-
return {
|
|
177
|
-
matcher: input.slice(match[1].length + 1),
|
|
178
|
-
selector: (input2) => `${input2}:${pseudo}`
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
match = input.match(PseudoClassesNotRE);
|
|
182
|
-
if (match) {
|
|
183
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
184
|
-
return {
|
|
185
|
-
matcher: input.slice(match[1].length + 5),
|
|
186
|
-
selector: (input2) => `${input2}:not(:${pseudo})`
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
match = input.match(PseudoClassesGroupRE);
|
|
190
|
-
if (match) {
|
|
191
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
192
|
-
return {
|
|
193
|
-
matcher: input.slice(match[1].length + 7),
|
|
194
|
-
selector: (s) => s.includes(".group:") ? s.replace(/\.group:/, `.group:${pseudo}:`) : `.group:${pseudo} ${s}`
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
match = input.match(PseudoClassesPeerRE);
|
|
198
|
-
if (match) {
|
|
199
|
-
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
200
|
-
return {
|
|
201
|
-
matcher: input.slice(match[1].length + 6),
|
|
202
|
-
selector: (s) => s.includes(".peer:") ? s.replace(/\.peer:/, `.peer:${pseudo}:`) : `.peer:${pseudo} ~ ${s}`
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
multiPass: true
|
|
207
|
-
};
|
|
208
|
-
|
|
209
119
|
// src/variants/default.ts
|
|
210
120
|
var variants = [
|
|
211
121
|
variantSpace,
|
|
@@ -225,8 +135,5 @@ export {
|
|
|
225
135
|
variantImportant,
|
|
226
136
|
variantNegative,
|
|
227
137
|
variantSpace,
|
|
228
|
-
PseudoClasses,
|
|
229
|
-
variantPseudoElements,
|
|
230
|
-
variantPseudoClasses,
|
|
231
138
|
variants
|
|
232
139
|
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/variants/pseudo.ts
|
|
2
|
+
var _core = require('@unocss/core');
|
|
3
|
+
var CONTROL_BYPASS_PSEUDO = "$$no-pseudo";
|
|
4
|
+
var PseudoClasses = Object.fromEntries([
|
|
5
|
+
"active",
|
|
6
|
+
"checked",
|
|
7
|
+
"default",
|
|
8
|
+
"empty",
|
|
9
|
+
"enabled",
|
|
10
|
+
"disabled",
|
|
11
|
+
"first-of-type",
|
|
12
|
+
["first", "first-child"],
|
|
13
|
+
"focus-visible",
|
|
14
|
+
"focus-within",
|
|
15
|
+
"focus",
|
|
16
|
+
"hover",
|
|
17
|
+
"indeterminate",
|
|
18
|
+
"invalid",
|
|
19
|
+
"last-of-type",
|
|
20
|
+
["last", "last-child"],
|
|
21
|
+
"link",
|
|
22
|
+
"only-child",
|
|
23
|
+
"only-of-type",
|
|
24
|
+
"optional",
|
|
25
|
+
"placeholder-shown",
|
|
26
|
+
"read-only",
|
|
27
|
+
"read-write",
|
|
28
|
+
"required",
|
|
29
|
+
"root",
|
|
30
|
+
"target",
|
|
31
|
+
"valid",
|
|
32
|
+
"visited",
|
|
33
|
+
["even-of-type", "nth-of-type(even)"],
|
|
34
|
+
["even", "nth-child(even)"],
|
|
35
|
+
["odd-of-type", "nth-of-type(odd)"],
|
|
36
|
+
["odd", "nth-child(odd)"]
|
|
37
|
+
].map(_core.toArray));
|
|
38
|
+
var PseudoElements = [
|
|
39
|
+
"before",
|
|
40
|
+
"after",
|
|
41
|
+
"first-letter",
|
|
42
|
+
"first-line",
|
|
43
|
+
"selection"
|
|
44
|
+
];
|
|
45
|
+
var PseudoElementsRE = new RegExp(`^(${PseudoElements.join("|")})[:-]`);
|
|
46
|
+
var PseudoClassesStr = Object.keys(PseudoClasses).join("|");
|
|
47
|
+
var PseudoClassesRE = new RegExp(`^(${PseudoClassesStr})[:-]`);
|
|
48
|
+
var PseudoClassesNotRE = new RegExp(`^not-(${PseudoClassesStr})[:-]`);
|
|
49
|
+
var PseudoClassesGroupRE = new RegExp(`^group-(${PseudoClassesStr})[:-]`);
|
|
50
|
+
var PseudoClassesPeerRE = new RegExp(`^peer-(${PseudoClassesStr})[:-]`);
|
|
51
|
+
var variantPseudoElements = (input) => {
|
|
52
|
+
const match = input.match(PseudoElementsRE);
|
|
53
|
+
if (match) {
|
|
54
|
+
return {
|
|
55
|
+
matcher: input.slice(match[1].length + 1),
|
|
56
|
+
selector: (s, body) => shouldAdd(body) && `${s}::${match[1]}`
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function shouldAdd(entires) {
|
|
61
|
+
return !entires.find((i) => i[0] === CONTROL_BYPASS_PSEUDO) || void 0;
|
|
62
|
+
}
|
|
63
|
+
var variantPseudoClasses = {
|
|
64
|
+
match: (input) => {
|
|
65
|
+
let match = input.match(PseudoClassesRE);
|
|
66
|
+
if (match) {
|
|
67
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
68
|
+
return {
|
|
69
|
+
matcher: input.slice(match[1].length + 1),
|
|
70
|
+
selector: (s, body) => shouldAdd(body) && `${s}:${pseudo}`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
match = input.match(PseudoClassesNotRE);
|
|
74
|
+
if (match) {
|
|
75
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
76
|
+
return {
|
|
77
|
+
matcher: input.slice(match[1].length + 5),
|
|
78
|
+
selector: (s, body) => shouldAdd(body) && `${s}:not(:${pseudo})`
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
match = input.match(PseudoClassesGroupRE);
|
|
82
|
+
if (match) {
|
|
83
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
84
|
+
return {
|
|
85
|
+
matcher: input.slice(match[1].length + 7),
|
|
86
|
+
selector: (s, body) => shouldAdd(body) && s.includes(".group:") ? s.replace(/\.group:/, `.group:${pseudo}:`) : `.group:${pseudo} ${s}`
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
match = input.match(PseudoClassesPeerRE);
|
|
90
|
+
if (match) {
|
|
91
|
+
const pseudo = PseudoClasses[match[1]] || match[1];
|
|
92
|
+
return {
|
|
93
|
+
matcher: input.slice(match[1].length + 6),
|
|
94
|
+
selector: (s, body) => shouldAdd(body) && s.includes(".peer:") ? s.replace(/\.peer:/, `.peer:${pseudo}:`) : `.peer:${pseudo} ~ ${s}`
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
multiPass: true
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
exports.CONTROL_BYPASS_PSEUDO = CONTROL_BYPASS_PSEUDO; exports.PseudoClasses = PseudoClasses; exports.variantPseudoElements = variantPseudoElements; exports.variantPseudoClasses = variantPseudoClasses;
|