tailwindcss 0.0.0-oxide-insiders.d6121f0 → 0.0.0-oxide-insiders.9bbdd9b
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/lib/lib/generateRules.js
CHANGED
|
@@ -235,18 +235,21 @@ function applyVariant(variant, matches, context) {
|
|
|
235
235
|
}
|
|
236
236
|
// Register arbitrary variants
|
|
237
237
|
if (isArbitraryValue(variant) && !context.variantMap.has(variant)) {
|
|
238
|
+
let sort = context.offsets.recordVariant(variant);
|
|
238
239
|
let selector = (0, _dataTypes.normalize)(variant.slice(1, -1));
|
|
239
|
-
|
|
240
|
+
let selectors = (0, _splitAtTopLevelOnlyJs.splitAtTopLevelOnly)(selector, ",");
|
|
241
|
+
// We do not support multiple selectors for arbitrary variants
|
|
242
|
+
if (selectors.length > 1) {
|
|
240
243
|
return [];
|
|
241
244
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
sort,
|
|
247
|
-
|
|
248
|
-
]
|
|
249
|
-
|
|
245
|
+
if (!selectors.every(_setupContextUtils.isValidVariantFormatString)) {
|
|
246
|
+
return [];
|
|
247
|
+
}
|
|
248
|
+
let records = selectors.map((sel, idx)=>[
|
|
249
|
+
context.offsets.applyParallelOffset(sort, idx),
|
|
250
|
+
(0, _setupContextUtils.parseVariant)(sel.trim())
|
|
251
|
+
]);
|
|
252
|
+
context.variantMap.set(variant, records);
|
|
250
253
|
}
|
|
251
254
|
if (context.variantMap.has(variant)) {
|
|
252
255
|
let isArbitraryVariant = isArbitraryValue(variant);
|
|
@@ -24,14 +24,20 @@ function splitAtTopLevelOnly(input, separator) {
|
|
|
24
24
|
let stack = [];
|
|
25
25
|
let parts = [];
|
|
26
26
|
let lastPos = 0;
|
|
27
|
+
let isEscaped = false;
|
|
27
28
|
for(let idx = 0; idx < input.length; idx++){
|
|
28
29
|
let char = input[idx];
|
|
29
|
-
if (stack.length === 0 && char === separator[0]) {
|
|
30
|
+
if (stack.length === 0 && char === separator[0] && !isEscaped) {
|
|
30
31
|
if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {
|
|
31
32
|
parts.push(input.slice(lastPos, idx));
|
|
32
33
|
lastPos = idx + separator.length;
|
|
33
34
|
}
|
|
34
35
|
}
|
|
36
|
+
if (isEscaped) {
|
|
37
|
+
isEscaped = false;
|
|
38
|
+
} else if (char === "\\") {
|
|
39
|
+
isEscaped = true;
|
|
40
|
+
}
|
|
35
41
|
if (char === "(" || char === "[" || char === "{") {
|
|
36
42
|
stack.push(char);
|
|
37
43
|
} else if (char === ")" && stack[stack.length - 1] === "(" || char === "]" && stack[stack.length - 1] === "[" || char === "}" && stack[stack.length - 1] === "{") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwindcss",
|
|
3
|
-
"version": "0.0.0-oxide-insiders.
|
|
3
|
+
"version": "0.0.0-oxide-insiders.9bbdd9b",
|
|
4
4
|
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"postcss": "^8.0.9"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@tailwindcss/oxide": "0.0.0-oxide-insiders.
|
|
73
|
+
"@tailwindcss/oxide": "0.0.0-oxide-insiders.9bbdd9b",
|
|
74
74
|
"arg": "^5.0.2",
|
|
75
75
|
"browserslist": "^4.21.5",
|
|
76
76
|
"chokidar": "^3.5.3",
|
package/src/lib/generateRules.js
CHANGED
|
@@ -205,17 +205,26 @@ function applyVariant(variant, matches, context) {
|
|
|
205
205
|
|
|
206
206
|
// Register arbitrary variants
|
|
207
207
|
if (isArbitraryValue(variant) && !context.variantMap.has(variant)) {
|
|
208
|
+
let sort = context.offsets.recordVariant(variant)
|
|
209
|
+
|
|
208
210
|
let selector = normalize(variant.slice(1, -1))
|
|
211
|
+
let selectors = splitAtTopLevelOnly(selector, ',')
|
|
209
212
|
|
|
210
|
-
|
|
213
|
+
// We do not support multiple selectors for arbitrary variants
|
|
214
|
+
if (selectors.length > 1) {
|
|
211
215
|
return []
|
|
212
216
|
}
|
|
213
217
|
|
|
214
|
-
|
|
218
|
+
if (!selectors.every(isValidVariantFormatString)) {
|
|
219
|
+
return []
|
|
220
|
+
}
|
|
215
221
|
|
|
216
|
-
let
|
|
222
|
+
let records = selectors.map((sel, idx) => [
|
|
223
|
+
context.offsets.applyParallelOffset(sort, idx),
|
|
224
|
+
parseVariant(sel.trim()),
|
|
225
|
+
])
|
|
217
226
|
|
|
218
|
-
context.variantMap.set(variant,
|
|
227
|
+
context.variantMap.set(variant, records)
|
|
219
228
|
}
|
|
220
229
|
|
|
221
230
|
if (context.variantMap.has(variant)) {
|
|
@@ -17,17 +17,24 @@ export function splitAtTopLevelOnly(input, separator) {
|
|
|
17
17
|
let stack = []
|
|
18
18
|
let parts = []
|
|
19
19
|
let lastPos = 0
|
|
20
|
+
let isEscaped = false
|
|
20
21
|
|
|
21
22
|
for (let idx = 0; idx < input.length; idx++) {
|
|
22
23
|
let char = input[idx]
|
|
23
24
|
|
|
24
|
-
if (stack.length === 0 && char === separator[0]) {
|
|
25
|
+
if (stack.length === 0 && char === separator[0] && !isEscaped) {
|
|
25
26
|
if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {
|
|
26
27
|
parts.push(input.slice(lastPos, idx))
|
|
27
28
|
lastPos = idx + separator.length
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
if (isEscaped) {
|
|
33
|
+
isEscaped = false
|
|
34
|
+
} else if (char === '\\') {
|
|
35
|
+
isEscaped = true
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
if (char === '(' || char === '[' || char === '{') {
|
|
32
39
|
stack.push(char)
|
|
33
40
|
} else if (
|