tailwindcss 3.4.1 → 4.0.0-alpha.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/README.md +5 -6
- package/dist/lib.d.mts +324 -0
- package/dist/lib.d.ts +324 -0
- package/dist/lib.js +11 -0
- package/dist/lib.mjs +11 -0
- package/index.css +5 -0
- package/package.json +29 -107
- package/preflight.css +355 -0
- package/theme.css +465 -0
- package/CHANGELOG.md +0 -2571
- package/base.css +0 -1
- package/colors.d.ts +0 -3
- package/colors.js +0 -2
- package/components.css +0 -1
- package/defaultConfig.d.ts +0 -3
- package/defaultConfig.js +0 -2
- package/defaultTheme.d.ts +0 -4
- package/defaultTheme.js +0 -2
- package/lib/cli/build/deps.js +0 -62
- package/lib/cli/build/index.js +0 -54
- package/lib/cli/build/plugin.js +0 -378
- package/lib/cli/build/utils.js +0 -88
- package/lib/cli/build/watching.js +0 -182
- package/lib/cli/help/index.js +0 -73
- package/lib/cli/index.js +0 -230
- package/lib/cli/init/index.js +0 -63
- package/lib/cli-peer-dependencies.js +0 -36
- package/lib/cli.js +0 -7
- package/lib/corePluginList.js +0 -190
- package/lib/corePlugins.js +0 -4282
- package/lib/css/LICENSE +0 -25
- package/lib/css/preflight.css +0 -385
- package/lib/featureFlags.js +0 -83
- package/lib/index.js +0 -2
- package/lib/lib/cacheInvalidation.js +0 -92
- package/lib/lib/collapseAdjacentRules.js +0 -61
- package/lib/lib/collapseDuplicateDeclarations.js +0 -85
- package/lib/lib/content.js +0 -181
- package/lib/lib/defaultExtractor.js +0 -251
- package/lib/lib/detectNesting.js +0 -45
- package/lib/lib/evaluateTailwindFunctions.js +0 -238
- package/lib/lib/expandApplyAtRules.js +0 -540
- package/lib/lib/expandTailwindAtRules.js +0 -291
- package/lib/lib/findAtConfigPath.js +0 -46
- package/lib/lib/generateRules.js +0 -904
- package/lib/lib/getModuleDependencies.js +0 -99
- package/lib/lib/load-config.js +0 -53
- package/lib/lib/normalizeTailwindDirectives.js +0 -89
- package/lib/lib/offsets.js +0 -306
- package/lib/lib/partitionApplyAtRules.js +0 -58
- package/lib/lib/regex.js +0 -74
- package/lib/lib/remap-bitfield.js +0 -89
- package/lib/lib/resolveDefaultsAtRules.js +0 -165
- package/lib/lib/setupContextUtils.js +0 -1294
- package/lib/lib/setupTrackingContext.js +0 -166
- package/lib/lib/sharedState.js +0 -87
- package/lib/lib/substituteScreenAtRules.js +0 -31
- package/lib/oxide/cli/build/deps.js +0 -89
- package/lib/oxide/cli/build/index.js +0 -53
- package/lib/oxide/cli/build/plugin.js +0 -375
- package/lib/oxide/cli/build/utils.js +0 -87
- package/lib/oxide/cli/build/watching.js +0 -179
- package/lib/oxide/cli/help/index.js +0 -72
- package/lib/oxide/cli/index.js +0 -214
- package/lib/oxide/cli/init/index.js +0 -52
- package/lib/oxide/cli.js +0 -5
- package/lib/oxide/postcss-plugin.js +0 -2
- package/lib/plugin.js +0 -98
- package/lib/postcss-plugins/nesting/README.md +0 -42
- package/lib/postcss-plugins/nesting/index.js +0 -21
- package/lib/postcss-plugins/nesting/plugin.js +0 -89
- package/lib/processTailwindFeatures.js +0 -64
- package/lib/public/colors.js +0 -355
- package/lib/public/create-plugin.js +0 -17
- package/lib/public/default-config.js +0 -18
- package/lib/public/default-theme.js +0 -18
- package/lib/public/load-config.js +0 -12
- package/lib/public/resolve-config.js +0 -24
- package/lib/util/applyImportantSelector.js +0 -36
- package/lib/util/bigSign.js +0 -13
- package/lib/util/buildMediaQuery.js +0 -27
- package/lib/util/cloneDeep.js +0 -22
- package/lib/util/cloneNodes.js +0 -54
- package/lib/util/color.js +0 -116
- package/lib/util/colorNames.js +0 -752
- package/lib/util/configurePlugins.js +0 -23
- package/lib/util/createPlugin.js +0 -32
- package/lib/util/createUtilityPlugin.js +0 -53
- package/lib/util/dataTypes.js +0 -415
- package/lib/util/defaults.js +0 -27
- package/lib/util/escapeClassName.js +0 -24
- package/lib/util/escapeCommas.js +0 -13
- package/lib/util/flattenColorPalette.js +0 -18
- package/lib/util/formatVariantSelector.js +0 -270
- package/lib/util/getAllConfigs.js +0 -50
- package/lib/util/hashConfig.js +0 -21
- package/lib/util/isKeyframeRule.js +0 -13
- package/lib/util/isPlainObject.js +0 -17
- package/lib/util/isSyntacticallyValidPropertyValue.js +0 -74
- package/lib/util/log.js +0 -61
- package/lib/util/nameClass.js +0 -49
- package/lib/util/negateValue.js +0 -36
- package/lib/util/normalizeConfig.js +0 -282
- package/lib/util/normalizeScreens.js +0 -178
- package/lib/util/parseAnimationValue.js +0 -93
- package/lib/util/parseBoxShadowValue.js +0 -88
- package/lib/util/parseDependency.js +0 -47
- package/lib/util/parseGlob.js +0 -36
- package/lib/util/parseObjectStyles.js +0 -36
- package/lib/util/pluginUtils.js +0 -289
- package/lib/util/prefixSelector.js +0 -39
- package/lib/util/pseudoElements.js +0 -212
- package/lib/util/removeAlphaVariables.js +0 -31
- package/lib/util/resolveConfig.js +0 -256
- package/lib/util/resolveConfigPath.js +0 -70
- package/lib/util/responsive.js +0 -24
- package/lib/util/splitAtTopLevelOnly.js +0 -51
- package/lib/util/tap.js +0 -14
- package/lib/util/toColorValue.js +0 -13
- package/lib/util/toPath.js +0 -32
- package/lib/util/transformThemeValue.js +0 -73
- package/lib/util/validateConfig.js +0 -37
- package/lib/util/validateFormalSyntax.js +0 -26
- package/lib/util/withAlphaVariable.js +0 -79
- package/lib/value-parser/LICENSE +0 -22
- package/lib/value-parser/README.md +0 -3
- package/lib/value-parser/index.d.js +0 -2
- package/lib/value-parser/index.js +0 -22
- package/lib/value-parser/parse.js +0 -259
- package/lib/value-parser/stringify.js +0 -38
- package/lib/value-parser/unit.js +0 -86
- package/lib/value-parser/walk.js +0 -16
- package/loadConfig.d.ts +0 -4
- package/loadConfig.js +0 -2
- package/nesting/index.d.ts +0 -4
- package/nesting/index.js +0 -2
- package/peers/index.js +0 -96624
- package/plugin.d.ts +0 -11
- package/plugin.js +0 -2
- package/prettier.config.js +0 -19
- package/resolveConfig.d.ts +0 -31
- package/resolveConfig.js +0 -2
- package/screens.css +0 -1
- package/scripts/create-plugin-list.js +0 -10
- package/scripts/generate-types.js +0 -104
- package/scripts/release-channel.js +0 -18
- package/scripts/release-notes.js +0 -21
- package/scripts/swap-engines.js +0 -40
- package/scripts/type-utils.js +0 -27
- package/src/cli/build/deps.js +0 -56
- package/src/cli/build/index.js +0 -49
- package/src/cli/build/plugin.js +0 -444
- package/src/cli/build/utils.js +0 -76
- package/src/cli/build/watching.js +0 -229
- package/src/cli/help/index.js +0 -70
- package/src/cli/index.js +0 -216
- package/src/cli/init/index.js +0 -79
- package/src/cli-peer-dependencies.js +0 -15
- package/src/cli.js +0 -7
- package/src/corePluginList.js +0 -1
- package/src/corePlugins.js +0 -2943
- package/src/css/LICENSE +0 -25
- package/src/css/preflight.css +0 -385
- package/src/featureFlags.js +0 -66
- package/src/index.js +0 -1
- package/src/lib/cacheInvalidation.js +0 -52
- package/src/lib/collapseAdjacentRules.js +0 -58
- package/src/lib/collapseDuplicateDeclarations.js +0 -93
- package/src/lib/content.js +0 -208
- package/src/lib/defaultExtractor.js +0 -230
- package/src/lib/detectNesting.js +0 -47
- package/src/lib/evaluateTailwindFunctions.js +0 -272
- package/src/lib/expandApplyAtRules.js +0 -620
- package/src/lib/expandTailwindAtRules.js +0 -300
- package/src/lib/findAtConfigPath.js +0 -48
- package/src/lib/generateRules.js +0 -951
- package/src/lib/getModuleDependencies.js +0 -79
- package/src/lib/load-config.ts +0 -39
- package/src/lib/normalizeTailwindDirectives.js +0 -84
- package/src/lib/offsets.js +0 -373
- package/src/lib/partitionApplyAtRules.js +0 -52
- package/src/lib/regex.js +0 -74
- package/src/lib/remap-bitfield.js +0 -82
- package/src/lib/resolveDefaultsAtRules.js +0 -163
- package/src/lib/setupContextUtils.js +0 -1366
- package/src/lib/setupTrackingContext.js +0 -169
- package/src/lib/sharedState.js +0 -61
- package/src/lib/substituteScreenAtRules.js +0 -19
- package/src/oxide/cli/build/deps.ts +0 -91
- package/src/oxide/cli/build/index.ts +0 -47
- package/src/oxide/cli/build/plugin.ts +0 -442
- package/src/oxide/cli/build/utils.ts +0 -74
- package/src/oxide/cli/build/watching.ts +0 -225
- package/src/oxide/cli/help/index.ts +0 -69
- package/src/oxide/cli/index.ts +0 -204
- package/src/oxide/cli/init/index.ts +0 -59
- package/src/oxide/cli.ts +0 -1
- package/src/oxide/postcss-plugin.ts +0 -1
- package/src/plugin.js +0 -107
- package/src/postcss-plugins/nesting/README.md +0 -42
- package/src/postcss-plugins/nesting/index.js +0 -13
- package/src/postcss-plugins/nesting/plugin.js +0 -80
- package/src/processTailwindFeatures.js +0 -59
- package/src/public/colors.js +0 -322
- package/src/public/create-plugin.js +0 -2
- package/src/public/default-config.js +0 -4
- package/src/public/default-theme.js +0 -4
- package/src/public/load-config.js +0 -2
- package/src/public/resolve-config.js +0 -7
- package/src/util/applyImportantSelector.js +0 -27
- package/src/util/bigSign.js +0 -3
- package/src/util/buildMediaQuery.js +0 -22
- package/src/util/cloneDeep.js +0 -11
- package/src/util/cloneNodes.js +0 -49
- package/src/util/color.js +0 -88
- package/src/util/colorNames.js +0 -150
- package/src/util/configurePlugins.js +0 -23
- package/src/util/createPlugin.js +0 -27
- package/src/util/createUtilityPlugin.js +0 -37
- package/src/util/dataTypes.js +0 -406
- package/src/util/defaults.js +0 -17
- package/src/util/escapeClassName.js +0 -8
- package/src/util/escapeCommas.js +0 -3
- package/src/util/flattenColorPalette.js +0 -13
- package/src/util/formatVariantSelector.js +0 -324
- package/src/util/getAllConfigs.js +0 -38
- package/src/util/hashConfig.js +0 -5
- package/src/util/isKeyframeRule.js +0 -3
- package/src/util/isPlainObject.js +0 -8
- package/src/util/isSyntacticallyValidPropertyValue.js +0 -61
- package/src/util/log.js +0 -29
- package/src/util/nameClass.js +0 -30
- package/src/util/negateValue.js +0 -24
- package/src/util/normalizeConfig.js +0 -301
- package/src/util/normalizeScreens.js +0 -140
- package/src/util/parseAnimationValue.js +0 -68
- package/src/util/parseBoxShadowValue.js +0 -72
- package/src/util/parseDependency.js +0 -44
- package/src/util/parseGlob.js +0 -24
- package/src/util/parseObjectStyles.js +0 -19
- package/src/util/pluginUtils.js +0 -307
- package/src/util/prefixSelector.js +0 -33
- package/src/util/pseudoElements.js +0 -171
- package/src/util/removeAlphaVariables.js +0 -24
- package/src/util/resolveConfig.js +0 -277
- package/src/util/resolveConfigPath.js +0 -66
- package/src/util/responsive.js +0 -10
- package/src/util/splitAtTopLevelOnly.js +0 -52
- package/src/util/tap.js +0 -4
- package/src/util/toColorValue.js +0 -3
- package/src/util/toPath.js +0 -26
- package/src/util/transformThemeValue.js +0 -62
- package/src/util/validateConfig.js +0 -26
- package/src/util/validateFormalSyntax.js +0 -34
- package/src/util/withAlphaVariable.js +0 -49
- package/src/value-parser/LICENSE +0 -22
- package/src/value-parser/README.md +0 -3
- package/src/value-parser/index.d.ts +0 -177
- package/src/value-parser/index.js +0 -28
- package/src/value-parser/parse.js +0 -303
- package/src/value-parser/stringify.js +0 -41
- package/src/value-parser/unit.js +0 -118
- package/src/value-parser/walk.js +0 -18
- package/stubs/.gitignore +0 -1
- package/stubs/.prettierrc.json +0 -6
- package/stubs/config.full.js +0 -1062
- package/stubs/config.simple.js +0 -7
- package/stubs/postcss.config.cjs +0 -6
- package/stubs/postcss.config.js +0 -6
- package/stubs/tailwind.config.cjs +0 -2
- package/stubs/tailwind.config.js +0 -2
- package/stubs/tailwind.config.ts +0 -3
- package/tailwind.css +0 -5
- package/types/config.d.ts +0 -376
- package/types/generated/.gitkeep +0 -0
- package/types/generated/colors.d.ts +0 -298
- package/types/generated/corePluginList.d.ts +0 -1
- package/types/generated/default-theme.d.ts +0 -397
- package/types/index.d.ts +0 -11
- package/variants.css +0 -1
package/lib/value-parser/LICENSE
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
Copyright (c) Bogdan Chadkin <trysound@yandex.ru>
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person
|
4
|
-
obtaining a copy of this software and associated documentation
|
5
|
-
files (the "Software"), to deal in the Software without
|
6
|
-
restriction, including without limitation the rights to use,
|
7
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
copies of the Software, and to permit persons to whom the
|
9
|
-
Software is furnished to do so, subject to the following
|
10
|
-
conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be
|
13
|
-
included in all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
-
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
-
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,22 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var parse = require("./parse");
|
3
|
-
var walk = require("./walk");
|
4
|
-
var stringify = require("./stringify");
|
5
|
-
function ValueParser(value) {
|
6
|
-
if (this instanceof ValueParser) {
|
7
|
-
this.nodes = parse(value);
|
8
|
-
return this;
|
9
|
-
}
|
10
|
-
return new ValueParser(value);
|
11
|
-
}
|
12
|
-
ValueParser.prototype.toString = function() {
|
13
|
-
return Array.isArray(this.nodes) ? stringify(this.nodes) : "";
|
14
|
-
};
|
15
|
-
ValueParser.prototype.walk = function(cb, bubble) {
|
16
|
-
walk(this.nodes, cb, bubble);
|
17
|
-
return this;
|
18
|
-
};
|
19
|
-
ValueParser.unit = require("./unit");
|
20
|
-
ValueParser.walk = walk;
|
21
|
-
ValueParser.stringify = stringify;
|
22
|
-
module.exports = ValueParser;
|
@@ -1,259 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var openParentheses = "(".charCodeAt(0);
|
3
|
-
var closeParentheses = ")".charCodeAt(0);
|
4
|
-
var singleQuote = "'".charCodeAt(0);
|
5
|
-
var doubleQuote = '"'.charCodeAt(0);
|
6
|
-
var backslash = "\\".charCodeAt(0);
|
7
|
-
var slash = "/".charCodeAt(0);
|
8
|
-
var comma = ",".charCodeAt(0);
|
9
|
-
var colon = ":".charCodeAt(0);
|
10
|
-
var star = "*".charCodeAt(0);
|
11
|
-
var uLower = "u".charCodeAt(0);
|
12
|
-
var uUpper = "U".charCodeAt(0);
|
13
|
-
var plus = "+".charCodeAt(0);
|
14
|
-
var isUnicodeRange = /^[a-f0-9?-]+$/i;
|
15
|
-
module.exports = function(input) {
|
16
|
-
var tokens = [];
|
17
|
-
var value = input;
|
18
|
-
var next, quote, prev, token, escape, escapePos, whitespacePos, parenthesesOpenPos;
|
19
|
-
var pos = 0;
|
20
|
-
var code = value.charCodeAt(pos);
|
21
|
-
var max = value.length;
|
22
|
-
var stack = [
|
23
|
-
{
|
24
|
-
nodes: tokens
|
25
|
-
}
|
26
|
-
];
|
27
|
-
var balanced = 0;
|
28
|
-
var parent;
|
29
|
-
var name = "";
|
30
|
-
var before = "";
|
31
|
-
var after = "";
|
32
|
-
while(pos < max){
|
33
|
-
// Whitespaces
|
34
|
-
if (code <= 32) {
|
35
|
-
next = pos;
|
36
|
-
do {
|
37
|
-
next += 1;
|
38
|
-
code = value.charCodeAt(next);
|
39
|
-
}while (code <= 32);
|
40
|
-
token = value.slice(pos, next);
|
41
|
-
prev = tokens[tokens.length - 1];
|
42
|
-
if (code === closeParentheses && balanced) {
|
43
|
-
after = token;
|
44
|
-
} else if (prev && prev.type === "div") {
|
45
|
-
prev.after = token;
|
46
|
-
prev.sourceEndIndex += token.length;
|
47
|
-
} else if (code === comma || code === colon || code === slash && value.charCodeAt(next + 1) !== star && (!parent || parent && parent.type === "function" && false)) {
|
48
|
-
before = token;
|
49
|
-
} else {
|
50
|
-
tokens.push({
|
51
|
-
type: "space",
|
52
|
-
sourceIndex: pos,
|
53
|
-
sourceEndIndex: next,
|
54
|
-
value: token
|
55
|
-
});
|
56
|
-
}
|
57
|
-
pos = next;
|
58
|
-
// Quotes
|
59
|
-
} else if (code === singleQuote || code === doubleQuote) {
|
60
|
-
next = pos;
|
61
|
-
quote = code === singleQuote ? "'" : '"';
|
62
|
-
token = {
|
63
|
-
type: "string",
|
64
|
-
sourceIndex: pos,
|
65
|
-
quote: quote
|
66
|
-
};
|
67
|
-
do {
|
68
|
-
escape = false;
|
69
|
-
next = value.indexOf(quote, next + 1);
|
70
|
-
if (~next) {
|
71
|
-
escapePos = next;
|
72
|
-
while(value.charCodeAt(escapePos - 1) === backslash){
|
73
|
-
escapePos -= 1;
|
74
|
-
escape = !escape;
|
75
|
-
}
|
76
|
-
} else {
|
77
|
-
value += quote;
|
78
|
-
next = value.length - 1;
|
79
|
-
token.unclosed = true;
|
80
|
-
}
|
81
|
-
}while (escape);
|
82
|
-
token.value = value.slice(pos + 1, next);
|
83
|
-
token.sourceEndIndex = token.unclosed ? next : next + 1;
|
84
|
-
tokens.push(token);
|
85
|
-
pos = next + 1;
|
86
|
-
code = value.charCodeAt(pos);
|
87
|
-
// Comments
|
88
|
-
} else if (code === slash && value.charCodeAt(pos + 1) === star) {
|
89
|
-
next = value.indexOf("*/", pos);
|
90
|
-
token = {
|
91
|
-
type: "comment",
|
92
|
-
sourceIndex: pos,
|
93
|
-
sourceEndIndex: next + 2
|
94
|
-
};
|
95
|
-
if (next === -1) {
|
96
|
-
token.unclosed = true;
|
97
|
-
next = value.length;
|
98
|
-
token.sourceEndIndex = next;
|
99
|
-
}
|
100
|
-
token.value = value.slice(pos + 2, next);
|
101
|
-
tokens.push(token);
|
102
|
-
pos = next + 2;
|
103
|
-
code = value.charCodeAt(pos);
|
104
|
-
// Operation within calc
|
105
|
-
} else if ((code === slash || code === star) && parent && parent.type === "function" && true) {
|
106
|
-
token = value[pos];
|
107
|
-
tokens.push({
|
108
|
-
type: "word",
|
109
|
-
sourceIndex: pos - before.length,
|
110
|
-
sourceEndIndex: pos + token.length,
|
111
|
-
value: token
|
112
|
-
});
|
113
|
-
pos += 1;
|
114
|
-
code = value.charCodeAt(pos);
|
115
|
-
// Dividers
|
116
|
-
} else if (code === slash || code === comma || code === colon) {
|
117
|
-
token = value[pos];
|
118
|
-
tokens.push({
|
119
|
-
type: "div",
|
120
|
-
sourceIndex: pos - before.length,
|
121
|
-
sourceEndIndex: pos + token.length,
|
122
|
-
value: token,
|
123
|
-
before: before,
|
124
|
-
after: ""
|
125
|
-
});
|
126
|
-
before = "";
|
127
|
-
pos += 1;
|
128
|
-
code = value.charCodeAt(pos);
|
129
|
-
// Open parentheses
|
130
|
-
} else if (openParentheses === code) {
|
131
|
-
// Whitespaces after open parentheses
|
132
|
-
next = pos;
|
133
|
-
do {
|
134
|
-
next += 1;
|
135
|
-
code = value.charCodeAt(next);
|
136
|
-
}while (code <= 32);
|
137
|
-
parenthesesOpenPos = pos;
|
138
|
-
token = {
|
139
|
-
type: "function",
|
140
|
-
sourceIndex: pos - name.length,
|
141
|
-
value: name,
|
142
|
-
before: value.slice(parenthesesOpenPos + 1, next)
|
143
|
-
};
|
144
|
-
pos = next;
|
145
|
-
if (name === "url" && code !== singleQuote && code !== doubleQuote) {
|
146
|
-
next -= 1;
|
147
|
-
do {
|
148
|
-
escape = false;
|
149
|
-
next = value.indexOf(")", next + 1);
|
150
|
-
if (~next) {
|
151
|
-
escapePos = next;
|
152
|
-
while(value.charCodeAt(escapePos - 1) === backslash){
|
153
|
-
escapePos -= 1;
|
154
|
-
escape = !escape;
|
155
|
-
}
|
156
|
-
} else {
|
157
|
-
value += ")";
|
158
|
-
next = value.length - 1;
|
159
|
-
token.unclosed = true;
|
160
|
-
}
|
161
|
-
}while (escape);
|
162
|
-
// Whitespaces before closed
|
163
|
-
whitespacePos = next;
|
164
|
-
do {
|
165
|
-
whitespacePos -= 1;
|
166
|
-
code = value.charCodeAt(whitespacePos);
|
167
|
-
}while (code <= 32);
|
168
|
-
if (parenthesesOpenPos < whitespacePos) {
|
169
|
-
if (pos !== whitespacePos + 1) {
|
170
|
-
token.nodes = [
|
171
|
-
{
|
172
|
-
type: "word",
|
173
|
-
sourceIndex: pos,
|
174
|
-
sourceEndIndex: whitespacePos + 1,
|
175
|
-
value: value.slice(pos, whitespacePos + 1)
|
176
|
-
}
|
177
|
-
];
|
178
|
-
} else {
|
179
|
-
token.nodes = [];
|
180
|
-
}
|
181
|
-
if (token.unclosed && whitespacePos + 1 !== next) {
|
182
|
-
token.after = "";
|
183
|
-
token.nodes.push({
|
184
|
-
type: "space",
|
185
|
-
sourceIndex: whitespacePos + 1,
|
186
|
-
sourceEndIndex: next,
|
187
|
-
value: value.slice(whitespacePos + 1, next)
|
188
|
-
});
|
189
|
-
} else {
|
190
|
-
token.after = value.slice(whitespacePos + 1, next);
|
191
|
-
token.sourceEndIndex = next;
|
192
|
-
}
|
193
|
-
} else {
|
194
|
-
token.after = "";
|
195
|
-
token.nodes = [];
|
196
|
-
}
|
197
|
-
pos = next + 1;
|
198
|
-
token.sourceEndIndex = token.unclosed ? next : pos;
|
199
|
-
code = value.charCodeAt(pos);
|
200
|
-
tokens.push(token);
|
201
|
-
} else {
|
202
|
-
balanced += 1;
|
203
|
-
token.after = "";
|
204
|
-
token.sourceEndIndex = pos + 1;
|
205
|
-
tokens.push(token);
|
206
|
-
stack.push(token);
|
207
|
-
tokens = token.nodes = [];
|
208
|
-
parent = token;
|
209
|
-
}
|
210
|
-
name = "";
|
211
|
-
// Close parentheses
|
212
|
-
} else if (closeParentheses === code && balanced) {
|
213
|
-
pos += 1;
|
214
|
-
code = value.charCodeAt(pos);
|
215
|
-
parent.after = after;
|
216
|
-
parent.sourceEndIndex += after.length;
|
217
|
-
after = "";
|
218
|
-
balanced -= 1;
|
219
|
-
stack[stack.length - 1].sourceEndIndex = pos;
|
220
|
-
stack.pop();
|
221
|
-
parent = stack[balanced];
|
222
|
-
tokens = parent.nodes;
|
223
|
-
// Words
|
224
|
-
} else {
|
225
|
-
next = pos;
|
226
|
-
do {
|
227
|
-
if (code === backslash) {
|
228
|
-
next += 1;
|
229
|
-
}
|
230
|
-
next += 1;
|
231
|
-
code = value.charCodeAt(next);
|
232
|
-
}while (next < max && !(code <= 32 || code === singleQuote || code === doubleQuote || code === comma || code === colon || code === slash || code === openParentheses || code === star && parent && parent.type === "function" && true || code === slash && parent.type === "function" && true || code === closeParentheses && balanced));
|
233
|
-
token = value.slice(pos, next);
|
234
|
-
if (openParentheses === code) {
|
235
|
-
name = token;
|
236
|
-
} else if ((uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && plus === token.charCodeAt(1) && isUnicodeRange.test(token.slice(2))) {
|
237
|
-
tokens.push({
|
238
|
-
type: "unicode-range",
|
239
|
-
sourceIndex: pos,
|
240
|
-
sourceEndIndex: next,
|
241
|
-
value: token
|
242
|
-
});
|
243
|
-
} else {
|
244
|
-
tokens.push({
|
245
|
-
type: "word",
|
246
|
-
sourceIndex: pos,
|
247
|
-
sourceEndIndex: next,
|
248
|
-
value: token
|
249
|
-
});
|
250
|
-
}
|
251
|
-
pos = next;
|
252
|
-
}
|
253
|
-
}
|
254
|
-
for(pos = stack.length - 1; pos; pos -= 1){
|
255
|
-
stack[pos].unclosed = true;
|
256
|
-
stack[pos].sourceEndIndex = value.length;
|
257
|
-
}
|
258
|
-
return stack[0].nodes;
|
259
|
-
};
|
@@ -1,38 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
function stringifyNode(node, custom) {
|
3
|
-
var type = node.type;
|
4
|
-
var value = node.value;
|
5
|
-
var buf;
|
6
|
-
var customResult;
|
7
|
-
if (custom && (customResult = custom(node)) !== undefined) {
|
8
|
-
return customResult;
|
9
|
-
} else if (type === "word" || type === "space") {
|
10
|
-
return value;
|
11
|
-
} else if (type === "string") {
|
12
|
-
buf = node.quote || "";
|
13
|
-
return buf + value + (node.unclosed ? "" : buf);
|
14
|
-
} else if (type === "comment") {
|
15
|
-
return "/*" + value + (node.unclosed ? "" : "*/");
|
16
|
-
} else if (type === "div") {
|
17
|
-
return (node.before || "") + value + (node.after || "");
|
18
|
-
} else if (Array.isArray(node.nodes)) {
|
19
|
-
buf = stringify(node.nodes, custom);
|
20
|
-
if (type !== "function") {
|
21
|
-
return buf;
|
22
|
-
}
|
23
|
-
return value + "(" + (node.before || "") + buf + (node.after || "") + (node.unclosed ? "" : ")");
|
24
|
-
}
|
25
|
-
return value;
|
26
|
-
}
|
27
|
-
function stringify(nodes, custom) {
|
28
|
-
var result, i;
|
29
|
-
if (Array.isArray(nodes)) {
|
30
|
-
result = "";
|
31
|
-
for(i = nodes.length - 1; ~i; i -= 1){
|
32
|
-
result = stringifyNode(nodes[i], custom) + result;
|
33
|
-
}
|
34
|
-
return result;
|
35
|
-
}
|
36
|
-
return stringifyNode(nodes, custom);
|
37
|
-
}
|
38
|
-
module.exports = stringify;
|
package/lib/value-parser/unit.js
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var minus = "-".charCodeAt(0);
|
3
|
-
var plus = "+".charCodeAt(0);
|
4
|
-
var dot = ".".charCodeAt(0);
|
5
|
-
var exp = "e".charCodeAt(0);
|
6
|
-
var EXP = "E".charCodeAt(0);
|
7
|
-
// Check if three code points would start a number
|
8
|
-
// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number
|
9
|
-
function likeNumber(value) {
|
10
|
-
var code = value.charCodeAt(0);
|
11
|
-
var nextCode;
|
12
|
-
if (code === plus || code === minus) {
|
13
|
-
nextCode = value.charCodeAt(1);
|
14
|
-
if (nextCode >= 48 && nextCode <= 57) {
|
15
|
-
return true;
|
16
|
-
}
|
17
|
-
var nextNextCode = value.charCodeAt(2);
|
18
|
-
if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {
|
19
|
-
return true;
|
20
|
-
}
|
21
|
-
return false;
|
22
|
-
}
|
23
|
-
if (code === dot) {
|
24
|
-
nextCode = value.charCodeAt(1);
|
25
|
-
if (nextCode >= 48 && nextCode <= 57) {
|
26
|
-
return true;
|
27
|
-
}
|
28
|
-
return false;
|
29
|
-
}
|
30
|
-
if (code >= 48 && code <= 57) {
|
31
|
-
return true;
|
32
|
-
}
|
33
|
-
return false;
|
34
|
-
}
|
35
|
-
// Consume a number
|
36
|
-
// https://www.w3.org/TR/css-syntax-3/#consume-number
|
37
|
-
module.exports = function(value) {
|
38
|
-
var pos = 0;
|
39
|
-
var length = value.length;
|
40
|
-
var code;
|
41
|
-
var nextCode;
|
42
|
-
var nextNextCode;
|
43
|
-
if (length === 0 || !likeNumber(value)) {
|
44
|
-
return false;
|
45
|
-
}
|
46
|
-
code = value.charCodeAt(pos);
|
47
|
-
if (code === plus || code === minus) {
|
48
|
-
pos++;
|
49
|
-
}
|
50
|
-
while(pos < length){
|
51
|
-
code = value.charCodeAt(pos);
|
52
|
-
if (code < 48 || code > 57) {
|
53
|
-
break;
|
54
|
-
}
|
55
|
-
pos += 1;
|
56
|
-
}
|
57
|
-
code = value.charCodeAt(pos);
|
58
|
-
nextCode = value.charCodeAt(pos + 1);
|
59
|
-
if (code === dot && nextCode >= 48 && nextCode <= 57) {
|
60
|
-
pos += 2;
|
61
|
-
while(pos < length){
|
62
|
-
code = value.charCodeAt(pos);
|
63
|
-
if (code < 48 || code > 57) {
|
64
|
-
break;
|
65
|
-
}
|
66
|
-
pos += 1;
|
67
|
-
}
|
68
|
-
}
|
69
|
-
code = value.charCodeAt(pos);
|
70
|
-
nextCode = value.charCodeAt(pos + 1);
|
71
|
-
nextNextCode = value.charCodeAt(pos + 2);
|
72
|
-
if ((code === exp || code === EXP) && (nextCode >= 48 && nextCode <= 57 || (nextCode === plus || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57)) {
|
73
|
-
pos += nextCode === plus || nextCode === minus ? 3 : 2;
|
74
|
-
while(pos < length){
|
75
|
-
code = value.charCodeAt(pos);
|
76
|
-
if (code < 48 || code > 57) {
|
77
|
-
break;
|
78
|
-
}
|
79
|
-
pos += 1;
|
80
|
-
}
|
81
|
-
}
|
82
|
-
return {
|
83
|
-
number: value.slice(0, pos),
|
84
|
-
unit: value.slice(pos)
|
85
|
-
};
|
86
|
-
};
|
package/lib/value-parser/walk.js
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
module.exports = function walk(nodes, cb, bubble) {
|
3
|
-
var i, max, node, result;
|
4
|
-
for(i = 0, max = nodes.length; i < max; i += 1){
|
5
|
-
node = nodes[i];
|
6
|
-
if (!bubble) {
|
7
|
-
result = cb(node, i, nodes);
|
8
|
-
}
|
9
|
-
if (result !== false && node.type === "function" && Array.isArray(node.nodes)) {
|
10
|
-
walk(node.nodes, cb, bubble);
|
11
|
-
}
|
12
|
-
if (bubble) {
|
13
|
-
cb(node, i, nodes);
|
14
|
-
}
|
15
|
-
}
|
16
|
-
};
|
package/loadConfig.d.ts
DELETED
package/loadConfig.js
DELETED
package/nesting/index.d.ts
DELETED
package/nesting/index.js
DELETED