tailwindcss 0.0.0-insiders.ea139f2 → 0.0.0-insiders.ea4e1cd
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/LICENSE +1 -2
- package/README.md +15 -7
- package/colors.d.ts +3 -0
- package/colors.js +2 -1
- package/defaultConfig.d.ts +3 -0
- package/defaultConfig.js +2 -1
- package/defaultTheme.d.ts +4 -0
- package/defaultTheme.js +2 -1
- package/lib/cli/build/deps.js +62 -0
- package/lib/cli/build/index.js +54 -0
- package/lib/cli/build/plugin.js +378 -0
- package/lib/cli/build/utils.js +88 -0
- package/lib/cli/build/watching.js +182 -0
- package/lib/cli/help/index.js +73 -0
- package/lib/cli/index.js +230 -0
- package/lib/cli/init/index.js +63 -0
- package/lib/cli-peer-dependencies.js +28 -7
- package/lib/cli.js +4 -703
- package/lib/corePluginList.js +12 -3
- package/lib/corePlugins.js +2373 -1863
- package/lib/css/preflight.css +10 -8
- package/lib/featureFlags.js +49 -26
- package/lib/index.js +1 -31
- package/lib/lib/cacheInvalidation.js +92 -0
- package/lib/lib/collapseAdjacentRules.js +30 -10
- package/lib/lib/collapseDuplicateDeclarations.js +60 -4
- package/lib/lib/content.js +181 -0
- package/lib/lib/defaultExtractor.js +243 -0
- package/lib/lib/detectNesting.js +21 -10
- package/lib/lib/evaluateTailwindFunctions.js +115 -50
- package/lib/lib/expandApplyAtRules.js +467 -161
- package/lib/lib/expandTailwindAtRules.js +160 -133
- package/lib/lib/findAtConfigPath.js +46 -0
- package/lib/lib/generateRules.js +553 -200
- package/lib/lib/getModuleDependencies.js +88 -37
- package/lib/lib/load-config.js +42 -0
- package/lib/lib/normalizeTailwindDirectives.js +46 -33
- package/lib/lib/offsets.js +306 -0
- package/lib/lib/partitionApplyAtRules.js +58 -0
- package/lib/lib/regex.js +74 -0
- package/lib/lib/remap-bitfield.js +89 -0
- package/lib/lib/resolveDefaultsAtRules.js +98 -58
- package/lib/lib/setupContextUtils.js +773 -321
- package/lib/lib/setupTrackingContext.js +70 -75
- package/lib/lib/sharedState.js +78 -10
- package/lib/lib/substituteScreenAtRules.js +14 -10
- package/lib/oxide/cli/build/deps.js +89 -0
- package/lib/oxide/cli/build/index.js +53 -0
- package/lib/oxide/cli/build/plugin.js +375 -0
- package/lib/oxide/cli/build/utils.js +87 -0
- package/lib/oxide/cli/build/watching.js +179 -0
- package/lib/oxide/cli/help/index.js +72 -0
- package/lib/oxide/cli/index.js +214 -0
- package/lib/oxide/cli/init/index.js +52 -0
- package/lib/oxide/cli.js +5 -0
- package/lib/oxide/postcss-plugin.js +2 -0
- package/lib/plugin.js +98 -0
- package/{nesting → lib/postcss-plugins/nesting}/README.md +2 -2
- package/lib/postcss-plugins/nesting/index.js +21 -0
- package/lib/postcss-plugins/nesting/plugin.js +89 -0
- package/lib/processTailwindFeatures.js +39 -26
- package/lib/public/colors.js +272 -246
- package/lib/public/create-plugin.js +9 -5
- package/lib/public/default-config.js +10 -6
- package/lib/public/default-theme.js +10 -6
- package/lib/public/load-config.js +12 -0
- package/lib/public/resolve-config.js +11 -6
- package/lib/util/applyImportantSelector.js +36 -0
- package/lib/util/bigSign.js +6 -1
- package/lib/util/buildMediaQuery.js +13 -6
- package/lib/util/cloneDeep.js +9 -6
- package/lib/util/cloneNodes.js +23 -3
- package/lib/util/color.js +70 -38
- package/lib/util/colorNames.js +752 -0
- package/lib/util/configurePlugins.js +7 -2
- package/lib/util/createPlugin.js +8 -6
- package/lib/util/createUtilityPlugin.js +16 -16
- package/lib/util/dataTypes.js +173 -108
- package/lib/util/defaults.js +14 -3
- package/lib/util/escapeClassName.js +13 -8
- package/lib/util/escapeCommas.js +7 -2
- package/lib/util/flattenColorPalette.js +11 -12
- package/lib/util/formatVariantSelector.js +228 -151
- package/lib/util/getAllConfigs.js +33 -12
- package/lib/util/hashConfig.js +9 -4
- package/lib/util/isKeyframeRule.js +7 -2
- package/lib/util/isPlainObject.js +7 -2
- package/lib/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +25 -15
- package/lib/util/log.js +27 -13
- package/lib/util/nameClass.js +27 -10
- package/lib/util/negateValue.js +25 -8
- package/lib/util/normalizeConfig.js +139 -65
- package/lib/util/normalizeScreens.js +131 -11
- package/lib/util/parseAnimationValue.js +44 -40
- package/lib/util/parseBoxShadowValue.js +34 -23
- package/lib/util/parseDependency.js +39 -55
- package/lib/util/parseGlob.js +36 -0
- package/lib/util/parseObjectStyles.js +15 -10
- package/lib/util/pluginUtils.js +159 -69
- package/lib/util/prefixSelector.js +30 -12
- package/lib/util/pseudoElements.js +229 -0
- package/lib/util/removeAlphaVariables.js +31 -0
- package/lib/util/resolveConfig.js +97 -75
- package/lib/util/resolveConfigPath.js +30 -12
- package/lib/util/responsive.js +11 -6
- package/lib/util/splitAtTopLevelOnly.js +51 -0
- package/lib/util/tap.js +6 -1
- package/lib/util/toColorValue.js +7 -3
- package/lib/util/toPath.js +26 -3
- package/lib/util/transformThemeValue.js +40 -30
- package/lib/util/validateConfig.js +37 -0
- package/lib/util/validateFormalSyntax.js +26 -0
- package/lib/util/withAlphaVariable.js +27 -15
- package/loadConfig.d.ts +4 -0
- package/loadConfig.js +2 -0
- package/nesting/index.js +2 -12
- package/package.json +66 -57
- package/peers/index.js +75964 -55560
- package/plugin.d.ts +11 -0
- package/plugin.js +2 -1
- package/resolveConfig.d.ts +12 -0
- package/resolveConfig.js +2 -1
- package/scripts/generate-types.js +105 -0
- package/scripts/release-channel.js +18 -0
- package/scripts/release-notes.js +21 -0
- package/scripts/swap-engines.js +40 -0
- package/scripts/type-utils.js +27 -0
- package/src/cli/build/deps.js +56 -0
- package/src/cli/build/index.js +49 -0
- package/src/cli/build/plugin.js +444 -0
- package/src/cli/build/utils.js +76 -0
- package/src/cli/build/watching.js +229 -0
- package/src/cli/help/index.js +70 -0
- package/src/cli/index.js +216 -0
- package/src/cli/init/index.js +79 -0
- package/src/cli-peer-dependencies.js +7 -1
- package/src/cli.js +4 -765
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +786 -306
- package/src/css/preflight.css +10 -8
- package/src/featureFlags.js +21 -5
- package/src/index.js +1 -34
- package/src/lib/cacheInvalidation.js +52 -0
- package/src/lib/collapseAdjacentRules.js +21 -2
- package/src/lib/collapseDuplicateDeclarations.js +66 -1
- package/src/lib/content.js +208 -0
- package/src/lib/defaultExtractor.js +217 -0
- package/src/lib/detectNesting.js +9 -1
- package/src/lib/evaluateTailwindFunctions.js +79 -8
- package/src/lib/expandApplyAtRules.js +515 -153
- package/src/lib/expandTailwindAtRules.js +115 -86
- package/src/lib/findAtConfigPath.js +48 -0
- package/src/lib/generateRules.js +545 -147
- package/src/lib/getModuleDependencies.js +70 -30
- package/src/lib/load-config.ts +31 -0
- package/src/lib/normalizeTailwindDirectives.js +7 -1
- package/src/lib/offsets.js +373 -0
- package/src/lib/partitionApplyAtRules.js +52 -0
- package/src/lib/regex.js +74 -0
- package/src/lib/remap-bitfield.js +82 -0
- package/src/lib/resolveDefaultsAtRules.js +59 -17
- package/src/lib/setupContextUtils.js +701 -175
- package/src/lib/setupTrackingContext.js +51 -62
- package/src/lib/sharedState.js +58 -7
- package/src/oxide/cli/build/deps.ts +91 -0
- package/src/oxide/cli/build/index.ts +47 -0
- package/src/oxide/cli/build/plugin.ts +442 -0
- package/src/oxide/cli/build/utils.ts +74 -0
- package/src/oxide/cli/build/watching.ts +225 -0
- package/src/oxide/cli/help/index.ts +69 -0
- package/src/oxide/cli/index.ts +204 -0
- package/src/oxide/cli/init/index.ts +59 -0
- package/src/oxide/cli.ts +1 -0
- package/src/oxide/postcss-plugin.ts +1 -0
- package/src/plugin.js +107 -0
- package/src/postcss-plugins/nesting/README.md +42 -0
- package/src/postcss-plugins/nesting/index.js +13 -0
- package/src/postcss-plugins/nesting/plugin.js +80 -0
- package/src/processTailwindFeatures.js +12 -2
- package/src/public/colors.js +22 -0
- package/src/public/default-config.js +1 -1
- package/src/public/default-theme.js +2 -2
- package/src/public/load-config.js +2 -0
- package/src/util/applyImportantSelector.js +27 -0
- package/src/util/buildMediaQuery.js +5 -3
- package/src/util/cloneNodes.js +19 -2
- package/src/util/color.js +44 -12
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +51 -16
- package/src/util/defaults.js +6 -0
- package/src/util/formatVariantSelector.js +264 -144
- package/src/util/getAllConfigs.js +21 -2
- package/src/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +1 -1
- package/src/util/log.js +11 -7
- package/src/util/nameClass.js +4 -0
- package/src/util/negateValue.js +11 -3
- package/src/util/normalizeConfig.js +57 -5
- package/src/util/normalizeScreens.js +105 -7
- package/src/util/parseBoxShadowValue.js +4 -3
- package/src/util/parseDependency.js +37 -42
- package/src/util/parseGlob.js +24 -0
- package/src/util/pluginUtils.js +123 -24
- package/src/util/prefixSelector.js +30 -10
- package/src/util/pseudoElements.js +170 -0
- package/src/util/removeAlphaVariables.js +24 -0
- package/src/util/resolveConfig.js +74 -26
- package/src/util/resolveConfigPath.js +12 -1
- package/src/util/splitAtTopLevelOnly.js +52 -0
- package/src/util/toPath.js +23 -1
- package/src/util/transformThemeValue.js +13 -3
- package/src/util/validateConfig.js +26 -0
- package/src/util/validateFormalSyntax.js +34 -0
- package/src/util/withAlphaVariable.js +1 -1
- package/stubs/.gitignore +1 -0
- package/stubs/.prettierrc.json +6 -0
- package/stubs/{defaultConfig.stub.js → config.full.js} +206 -166
- package/stubs/postcss.config.js +6 -0
- package/stubs/tailwind.config.cjs +2 -0
- package/stubs/tailwind.config.js +2 -0
- package/stubs/tailwind.config.ts +3 -0
- package/types/config.d.ts +368 -0
- package/types/generated/.gitkeep +0 -0
- package/types/generated/colors.d.ts +298 -0
- package/types/generated/corePluginList.d.ts +1 -0
- package/types/generated/default-theme.d.ts +371 -0
- package/types/index.d.ts +7 -0
- package/CHANGELOG.md +0 -1843
- package/lib/constants.js +0 -37
- package/lib/lib/setupWatchingContext.js +0 -288
- package/nesting/plugin.js +0 -41
- package/scripts/install-integrations.js +0 -27
- package/scripts/rebuildFixtures.js +0 -68
- package/src/constants.js +0 -17
- package/src/lib/setupWatchingContext.js +0 -311
- /package/stubs/{simpleConfig.stub.js → config.simple.js} +0 -0
- /package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -0
package/lib/util/log.js
CHANGED
|
@@ -2,25 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
dim: function() {
|
|
13
|
+
return dim;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _picocolors = /*#__PURE__*/ _interop_require_default(require("picocolors"));
|
|
20
|
+
function _interop_require_default(obj) {
|
|
8
21
|
return obj && obj.__esModule ? obj : {
|
|
9
22
|
default: obj
|
|
10
23
|
};
|
|
11
24
|
}
|
|
12
25
|
let alreadyShown = new Set();
|
|
13
|
-
function log(
|
|
14
|
-
if (process.env.JEST_WORKER_ID
|
|
26
|
+
function log(type, messages, key) {
|
|
27
|
+
if (typeof process !== "undefined" && process.env.JEST_WORKER_ID) return;
|
|
15
28
|
if (key && alreadyShown.has(key)) return;
|
|
16
29
|
if (key) alreadyShown.add(key);
|
|
17
|
-
console.warn(
|
|
18
|
-
messages.forEach((message)=>console.warn(
|
|
19
|
-
|
|
30
|
+
console.warn("");
|
|
31
|
+
messages.forEach((message)=>console.warn(type, "-", message));
|
|
32
|
+
}
|
|
33
|
+
function dim(input) {
|
|
34
|
+
return _picocolors.default.dim(input);
|
|
20
35
|
}
|
|
21
|
-
|
|
36
|
+
const _default = {
|
|
22
37
|
info (key, messages) {
|
|
23
|
-
log(
|
|
38
|
+
log(_picocolors.default.bold(_picocolors.default.cyan("info")), ...Array.isArray(key) ? [
|
|
24
39
|
key
|
|
25
40
|
] : [
|
|
26
41
|
messages,
|
|
@@ -28,7 +43,7 @@ var _default = {
|
|
|
28
43
|
]);
|
|
29
44
|
},
|
|
30
45
|
warn (key, messages) {
|
|
31
|
-
log(
|
|
46
|
+
log(_picocolors.default.bold(_picocolors.default.yellow("warn")), ...Array.isArray(key) ? [
|
|
32
47
|
key
|
|
33
48
|
] : [
|
|
34
49
|
messages,
|
|
@@ -36,7 +51,7 @@ var _default = {
|
|
|
36
51
|
]);
|
|
37
52
|
},
|
|
38
53
|
risk (key, messages) {
|
|
39
|
-
log(
|
|
54
|
+
log(_picocolors.default.bold(_picocolors.default.magenta("risk")), ...Array.isArray(key) ? [
|
|
40
55
|
key
|
|
41
56
|
] : [
|
|
42
57
|
messages,
|
|
@@ -44,4 +59,3 @@ var _default = {
|
|
|
44
59
|
]);
|
|
45
60
|
}
|
|
46
61
|
};
|
|
47
|
-
exports.default = _default;
|
package/lib/util/nameClass.js
CHANGED
|
@@ -2,31 +2,48 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
asClass: function() {
|
|
13
|
+
return asClass;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return nameClass;
|
|
17
|
+
},
|
|
18
|
+
formatClass: function() {
|
|
19
|
+
return formatClass;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _escapeClassName = /*#__PURE__*/ _interop_require_default(require("./escapeClassName"));
|
|
23
|
+
const _escapeCommas = /*#__PURE__*/ _interop_require_default(require("./escapeCommas"));
|
|
24
|
+
function _interop_require_default(obj) {
|
|
11
25
|
return obj && obj.__esModule ? obj : {
|
|
12
26
|
default: obj
|
|
13
27
|
};
|
|
14
28
|
}
|
|
15
29
|
function asClass(name) {
|
|
16
|
-
return (0, _escapeCommas
|
|
30
|
+
return (0, _escapeCommas.default)(`.${(0, _escapeClassName.default)(name)}`);
|
|
17
31
|
}
|
|
18
32
|
function nameClass(classPrefix, key) {
|
|
19
33
|
return asClass(formatClass(classPrefix, key));
|
|
20
34
|
}
|
|
21
35
|
function formatClass(classPrefix, key) {
|
|
22
|
-
if (key ===
|
|
36
|
+
if (key === "DEFAULT") {
|
|
23
37
|
return classPrefix;
|
|
24
38
|
}
|
|
25
|
-
if (key ===
|
|
39
|
+
if (key === "-" || key === "-DEFAULT") {
|
|
26
40
|
return `-${classPrefix}`;
|
|
27
41
|
}
|
|
28
|
-
if (key.startsWith(
|
|
42
|
+
if (key.startsWith("-")) {
|
|
29
43
|
return `-${classPrefix}${key}`;
|
|
30
44
|
}
|
|
45
|
+
if (key.startsWith("/")) {
|
|
46
|
+
return `${classPrefix}${key}`;
|
|
47
|
+
}
|
|
31
48
|
return `${classPrefix}-${key}`;
|
|
32
49
|
}
|
package/lib/util/negateValue.js
CHANGED
|
@@ -2,18 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
exports
|
|
6
|
-
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return negateValue;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function negateValue(value) {
|
|
7
12
|
value = `${value}`;
|
|
8
|
-
if (value ===
|
|
9
|
-
return
|
|
13
|
+
if (value === "0") {
|
|
14
|
+
return "0";
|
|
10
15
|
}
|
|
11
16
|
// Flip sign of numbers
|
|
12
17
|
if (/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(value)) {
|
|
13
|
-
return value.replace(/^[+-]?/, (sign)=>sign ===
|
|
14
|
-
);
|
|
18
|
+
return value.replace(/^[+-]?/, (sign)=>sign === "-" ? "" : "-");
|
|
15
19
|
}
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
// What functions we support negating numeric values for
|
|
21
|
+
// var() isn't inherently a numeric function but we support it anyway
|
|
22
|
+
// The trigonometric functions are omitted because you'll need to use calc(…) with them _anyway_
|
|
23
|
+
// to produce generally useful results and that will be covered already
|
|
24
|
+
let numericFunctions = [
|
|
25
|
+
"var",
|
|
26
|
+
"calc",
|
|
27
|
+
"min",
|
|
28
|
+
"max",
|
|
29
|
+
"clamp"
|
|
30
|
+
];
|
|
31
|
+
for (const fn of numericFunctions){
|
|
32
|
+
if (value.includes(`${fn}(`)) {
|
|
33
|
+
return `calc(${value} * -1)`;
|
|
34
|
+
}
|
|
18
35
|
}
|
|
19
36
|
}
|
|
@@ -2,12 +2,52 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
exports
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
Object.defineProperty(exports, "normalizeConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return normalizeConfig;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _featureFlags = require("../featureFlags");
|
|
12
|
+
const _log = /*#__PURE__*/ _interop_require_wildcard(require("./log"));
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
14
|
+
if (typeof WeakMap !== "function") return null;
|
|
15
|
+
var cacheBabelInterop = new WeakMap();
|
|
16
|
+
var cacheNodeInterop = new WeakMap();
|
|
17
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
18
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
19
|
+
})(nodeInterop);
|
|
20
|
+
}
|
|
21
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
22
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
26
|
+
return {
|
|
27
|
+
default: obj
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
31
|
+
if (cache && cache.has(obj)) {
|
|
32
|
+
return cache.get(obj);
|
|
33
|
+
}
|
|
34
|
+
var newObj = {};
|
|
35
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
36
|
+
for(var key in obj){
|
|
37
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
38
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
39
|
+
if (desc && (desc.get || desc.set)) {
|
|
40
|
+
Object.defineProperty(newObj, key, desc);
|
|
41
|
+
} else {
|
|
42
|
+
newObj[key] = obj[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
newObj.default = obj;
|
|
47
|
+
if (cache) {
|
|
48
|
+
cache.set(obj, newObj);
|
|
49
|
+
}
|
|
50
|
+
return newObj;
|
|
11
51
|
}
|
|
12
52
|
function normalizeConfig(config) {
|
|
13
53
|
// Quick structure validation
|
|
@@ -34,45 +74,45 @@ function normalizeConfig(config) {
|
|
|
34
74
|
return false;
|
|
35
75
|
}
|
|
36
76
|
// `config.content` should be an object or an array
|
|
37
|
-
if (!Array.isArray(config.content) && !(typeof config.content ===
|
|
77
|
+
if (!Array.isArray(config.content) && !(typeof config.content === "object" && config.content !== null)) {
|
|
38
78
|
return false;
|
|
39
79
|
}
|
|
40
80
|
// When `config.content` is an array, it should consist of FilePaths or RawFiles
|
|
41
81
|
if (Array.isArray(config.content)) {
|
|
42
82
|
return config.content.every((path)=>{
|
|
43
83
|
// `path` can be a string
|
|
44
|
-
if (typeof path ===
|
|
84
|
+
if (typeof path === "string") return true;
|
|
45
85
|
// `path` can be an object { raw: string, extension?: string }
|
|
46
86
|
// `raw` must be a string
|
|
47
|
-
if (typeof (path === null || path === void 0 ? void 0 : path.raw) !==
|
|
87
|
+
if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== "string") return false;
|
|
48
88
|
// `extension` (if provided) should also be a string
|
|
49
|
-
if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !==
|
|
89
|
+
if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== "string") {
|
|
50
90
|
return false;
|
|
51
91
|
}
|
|
52
92
|
return true;
|
|
53
93
|
});
|
|
54
94
|
}
|
|
55
95
|
// When `config.content` is an object
|
|
56
|
-
if (typeof config.content ===
|
|
57
|
-
// Only `files`, `extract
|
|
96
|
+
if (typeof config.content === "object" && config.content !== null) {
|
|
97
|
+
// Only `files`, `relative`, `extract`, and `transform` can exist in `config.content`
|
|
58
98
|
if (Object.keys(config.content).some((key)=>![
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
99
|
+
"files",
|
|
100
|
+
"relative",
|
|
101
|
+
"extract",
|
|
102
|
+
"transform"
|
|
103
|
+
].includes(key))) {
|
|
64
104
|
return false;
|
|
65
105
|
}
|
|
66
106
|
// `config.content.files` should exist of FilePaths or RawFiles
|
|
67
107
|
if (Array.isArray(config.content.files)) {
|
|
68
108
|
if (!config.content.files.every((path)=>{
|
|
69
109
|
// `path` can be a string
|
|
70
|
-
if (typeof path ===
|
|
110
|
+
if (typeof path === "string") return true;
|
|
71
111
|
// `path` can be an object { raw: string, extension?: string }
|
|
72
112
|
// `raw` must be a string
|
|
73
|
-
if (typeof (path === null || path === void 0 ? void 0 : path.raw) !==
|
|
113
|
+
if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== "string") return false;
|
|
74
114
|
// `extension` (if provided) should also be a string
|
|
75
|
-
if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !==
|
|
115
|
+
if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== "string") {
|
|
76
116
|
return false;
|
|
77
117
|
}
|
|
78
118
|
return true;
|
|
@@ -80,23 +120,27 @@ function normalizeConfig(config) {
|
|
|
80
120
|
return false;
|
|
81
121
|
}
|
|
82
122
|
// `config.content.extract` is optional, and can be a Function or a Record<String, Function>
|
|
83
|
-
if (typeof config.content.extract ===
|
|
123
|
+
if (typeof config.content.extract === "object") {
|
|
84
124
|
for (let value of Object.values(config.content.extract)){
|
|
85
|
-
if (typeof value !==
|
|
125
|
+
if (typeof value !== "function") {
|
|
86
126
|
return false;
|
|
87
127
|
}
|
|
88
128
|
}
|
|
89
|
-
} else if (!(config.content.extract === undefined || typeof config.content.extract ===
|
|
129
|
+
} else if (!(config.content.extract === undefined || typeof config.content.extract === "function")) {
|
|
90
130
|
return false;
|
|
91
131
|
}
|
|
92
132
|
// `config.content.transform` is optional, and can be a Function or a Record<String, Function>
|
|
93
|
-
if (typeof config.content.transform ===
|
|
133
|
+
if (typeof config.content.transform === "object") {
|
|
94
134
|
for (let value of Object.values(config.content.transform)){
|
|
95
|
-
if (typeof value !==
|
|
135
|
+
if (typeof value !== "function") {
|
|
96
136
|
return false;
|
|
97
137
|
}
|
|
98
138
|
}
|
|
99
|
-
} else if (!(config.content.transform === undefined || typeof config.content.transform ===
|
|
139
|
+
} else if (!(config.content.transform === undefined || typeof config.content.transform === "function")) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
// `config.content.relative` is optional and can be a boolean
|
|
143
|
+
if (typeof config.content.relative !== "boolean" && typeof config.content.relative !== "undefined") {
|
|
100
144
|
return false;
|
|
101
145
|
}
|
|
102
146
|
}
|
|
@@ -105,34 +149,57 @@ function normalizeConfig(config) {
|
|
|
105
149
|
return false;
|
|
106
150
|
})();
|
|
107
151
|
if (!valid) {
|
|
108
|
-
_log.default.warn(
|
|
109
|
-
|
|
110
|
-
|
|
152
|
+
_log.default.warn("purge-deprecation", [
|
|
153
|
+
"The `purge`/`content` options have changed in Tailwind CSS v3.0.",
|
|
154
|
+
"Update your configuration file to eliminate this warning.",
|
|
155
|
+
"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"
|
|
111
156
|
]);
|
|
112
157
|
}
|
|
113
158
|
// Normalize the `safelist`
|
|
114
159
|
config.safelist = (()=>{
|
|
115
|
-
var
|
|
160
|
+
var _purge_options;
|
|
116
161
|
let { content , purge , safelist } = config;
|
|
117
162
|
if (Array.isArray(safelist)) return safelist;
|
|
118
163
|
if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;
|
|
119
164
|
if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;
|
|
120
|
-
if (Array.isArray(purge === null || purge === void 0 ? void 0 : (
|
|
165
|
+
if (Array.isArray(purge === null || purge === void 0 ? void 0 : (_purge_options = purge.options) === null || _purge_options === void 0 ? void 0 : _purge_options.safelist)) return purge.options.safelist;
|
|
166
|
+
return [];
|
|
167
|
+
})();
|
|
168
|
+
// Normalize the `blocklist`
|
|
169
|
+
config.blocklist = (()=>{
|
|
170
|
+
let { blocklist } = config;
|
|
171
|
+
if (Array.isArray(blocklist)) {
|
|
172
|
+
if (blocklist.every((item)=>typeof item === "string")) {
|
|
173
|
+
return blocklist;
|
|
174
|
+
}
|
|
175
|
+
_log.default.warn("blocklist-invalid", [
|
|
176
|
+
"The `blocklist` option must be an array of strings.",
|
|
177
|
+
"https://tailwindcss.com/docs/content-configuration#discarding-classes"
|
|
178
|
+
]);
|
|
179
|
+
}
|
|
121
180
|
return [];
|
|
122
181
|
})();
|
|
123
182
|
// Normalize prefix option
|
|
124
|
-
if (typeof config.prefix ===
|
|
125
|
-
_log.default.warn(
|
|
126
|
-
|
|
127
|
-
|
|
183
|
+
if (typeof config.prefix === "function") {
|
|
184
|
+
_log.default.warn("prefix-function", [
|
|
185
|
+
"As of Tailwind CSS v3.0, `prefix` cannot be a function.",
|
|
186
|
+
"Update `prefix` in your configuration to be a string to eliminate this warning.",
|
|
187
|
+
"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"
|
|
128
188
|
]);
|
|
129
|
-
config.prefix =
|
|
189
|
+
config.prefix = "";
|
|
130
190
|
} else {
|
|
131
|
-
var
|
|
132
|
-
config.prefix = (
|
|
191
|
+
var _config_prefix;
|
|
192
|
+
config.prefix = (_config_prefix = config.prefix) !== null && _config_prefix !== void 0 ? _config_prefix : "";
|
|
133
193
|
}
|
|
134
194
|
// Normalize the `content`
|
|
135
195
|
config.content = {
|
|
196
|
+
relative: (()=>{
|
|
197
|
+
let { content } = config;
|
|
198
|
+
if (content === null || content === void 0 ? void 0 : content.relative) {
|
|
199
|
+
return content.relative;
|
|
200
|
+
}
|
|
201
|
+
return (0, _featureFlags.flagEnabled)(config, "relativeContentPathsByDefault");
|
|
202
|
+
})(),
|
|
136
203
|
files: (()=>{
|
|
137
204
|
let { content , purge } = config;
|
|
138
205
|
if (Array.isArray(purge)) return purge;
|
|
@@ -144,24 +211,22 @@ function normalizeConfig(config) {
|
|
|
144
211
|
})(),
|
|
145
212
|
extract: (()=>{
|
|
146
213
|
let extract = (()=>{
|
|
147
|
-
var
|
|
148
|
-
if ((
|
|
149
|
-
if ((
|
|
150
|
-
if ((
|
|
151
|
-
if ((
|
|
152
|
-
if ((
|
|
153
|
-
if ((
|
|
154
|
-
return {
|
|
155
|
-
};
|
|
214
|
+
var _config_purge, _config_content, _config_purge1, _config_purge_extract, _config_content1, _config_content_extract, _config_purge2, _config_purge_options, _config_content2, _config_content_options;
|
|
215
|
+
if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.extract) return config.purge.extract;
|
|
216
|
+
if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.extract) return config.content.extract;
|
|
217
|
+
if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_extract = _config_purge1.extract) === null || _config_purge_extract === void 0 ? void 0 : _config_purge_extract.DEFAULT) return config.purge.extract.DEFAULT;
|
|
218
|
+
if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_extract = _config_content1.extract) === null || _config_content_extract === void 0 ? void 0 : _config_content_extract.DEFAULT) return config.content.extract.DEFAULT;
|
|
219
|
+
if ((_config_purge2 = config.purge) === null || _config_purge2 === void 0 ? void 0 : (_config_purge_options = _config_purge2.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.extractors) return config.purge.options.extractors;
|
|
220
|
+
if ((_config_content2 = config.content) === null || _config_content2 === void 0 ? void 0 : (_config_content_options = _config_content2.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.extractors) return config.content.options.extractors;
|
|
221
|
+
return {};
|
|
156
222
|
})();
|
|
157
|
-
let extractors = {
|
|
158
|
-
};
|
|
223
|
+
let extractors = {};
|
|
159
224
|
let defaultExtractor = (()=>{
|
|
160
|
-
var
|
|
161
|
-
if ((
|
|
225
|
+
var _config_purge, _config_purge_options, _config_content, _config_content_options;
|
|
226
|
+
if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : (_config_purge_options = _config_purge.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.defaultExtractor) {
|
|
162
227
|
return config.purge.options.defaultExtractor;
|
|
163
228
|
}
|
|
164
|
-
if ((
|
|
229
|
+
if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : (_config_content_options = _config_content.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.defaultExtractor) {
|
|
165
230
|
return config.content.options.defaultExtractor;
|
|
166
231
|
}
|
|
167
232
|
return undefined;
|
|
@@ -170,7 +235,7 @@ function normalizeConfig(config) {
|
|
|
170
235
|
extractors.DEFAULT = defaultExtractor;
|
|
171
236
|
}
|
|
172
237
|
// Functions
|
|
173
|
-
if (typeof extract ===
|
|
238
|
+
if (typeof extract === "function") {
|
|
174
239
|
extractors.DEFAULT = extract;
|
|
175
240
|
} else if (Array.isArray(extract)) {
|
|
176
241
|
for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){
|
|
@@ -178,31 +243,40 @@ function normalizeConfig(config) {
|
|
|
178
243
|
extractors[extension] = extractor;
|
|
179
244
|
}
|
|
180
245
|
}
|
|
181
|
-
} else if (typeof extract ===
|
|
246
|
+
} else if (typeof extract === "object" && extract !== null) {
|
|
182
247
|
Object.assign(extractors, extract);
|
|
183
248
|
}
|
|
184
249
|
return extractors;
|
|
185
250
|
})(),
|
|
186
251
|
transform: (()=>{
|
|
187
252
|
let transform = (()=>{
|
|
188
|
-
var
|
|
189
|
-
if ((
|
|
190
|
-
if ((
|
|
191
|
-
if ((
|
|
192
|
-
if ((
|
|
193
|
-
return {
|
|
194
|
-
};
|
|
253
|
+
var _config_purge, _config_content, _config_purge1, _config_purge_transform, _config_content1, _config_content_transform;
|
|
254
|
+
if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.transform) return config.purge.transform;
|
|
255
|
+
if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.transform) return config.content.transform;
|
|
256
|
+
if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_transform = _config_purge1.transform) === null || _config_purge_transform === void 0 ? void 0 : _config_purge_transform.DEFAULT) return config.purge.transform.DEFAULT;
|
|
257
|
+
if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_transform = _config_content1.transform) === null || _config_content_transform === void 0 ? void 0 : _config_content_transform.DEFAULT) return config.content.transform.DEFAULT;
|
|
258
|
+
return {};
|
|
195
259
|
})();
|
|
196
|
-
let transformers = {
|
|
197
|
-
|
|
198
|
-
if (typeof transform === 'function') {
|
|
260
|
+
let transformers = {};
|
|
261
|
+
if (typeof transform === "function") {
|
|
199
262
|
transformers.DEFAULT = transform;
|
|
200
263
|
}
|
|
201
|
-
if (typeof transform ===
|
|
264
|
+
if (typeof transform === "object" && transform !== null) {
|
|
202
265
|
Object.assign(transformers, transform);
|
|
203
266
|
}
|
|
204
267
|
return transformers;
|
|
205
268
|
})()
|
|
206
269
|
};
|
|
270
|
+
// Validate globs to prevent bogus globs.
|
|
271
|
+
// E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`
|
|
272
|
+
for (let file of config.content.files){
|
|
273
|
+
if (typeof file === "string" && /{([^,]*?)}/g.test(file)) {
|
|
274
|
+
_log.default.warn("invalid-glob-braces", [
|
|
275
|
+
`The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,
|
|
276
|
+
`Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, "$1"))} to silence this warning.`
|
|
277
|
+
]);
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
207
281
|
return config;
|
|
208
282
|
}
|