tailwindcss 0.0.0-insiders.b67f52c → 0.0.0-insiders.b6b3f85
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 +7 -6
- package/index.css +5 -0
- package/lib/cli/build/index.js +23 -10
- package/lib/cli/build/plugin.js +217 -121
- package/lib/cli/build/utils.js +18 -8
- package/lib/cli/build/watching.js +92 -23
- package/lib/cli/help/index.js +8 -6
- package/lib/cli/index.js +223 -10
- package/lib/cli/init/index.js +29 -12
- package/lib/cli.js +1 -227
- package/lib/corePluginList.js +8 -1
- package/lib/corePlugins.js +529 -233
- package/lib/css/preflight.css +11 -1
- package/lib/featureFlags.js +31 -17
- package/lib/index.js +1 -47
- package/lib/lib/cacheInvalidation.js +7 -5
- package/lib/lib/collapseAdjacentRules.js +5 -3
- package/lib/lib/collapseDuplicateDeclarations.js +12 -10
- package/lib/lib/content.js +65 -25
- package/lib/lib/defaultExtractor.js +15 -8
- package/lib/lib/detectNesting.js +10 -2
- package/lib/lib/evaluateTailwindFunctions.js +26 -22
- package/lib/lib/expandApplyAtRules.js +72 -45
- package/lib/lib/expandTailwindAtRules.js +92 -24
- package/lib/lib/findAtConfigPath.js +13 -11
- package/lib/lib/generateRules.js +179 -109
- package/lib/lib/getModuleDependencies.js +85 -37
- package/lib/lib/handleImportAtRules.js +50 -0
- package/lib/lib/load-config.js +42 -0
- package/lib/lib/normalizeTailwindDirectives.js +5 -18
- package/lib/lib/offsets.js +93 -4
- package/lib/lib/partitionApplyAtRules.js +3 -1
- package/lib/lib/regex.js +21 -7
- package/lib/lib/remap-bitfield.js +89 -0
- package/lib/lib/resolveDefaultsAtRules.js +29 -25
- package/lib/lib/setupContextUtils.js +255 -164
- package/lib/lib/setupTrackingContext.js +52 -27
- package/lib/lib/sharedState.js +29 -8
- package/lib/lib/substituteScreenAtRules.js +7 -5
- package/lib/plugin.js +164 -0
- package/lib/postcss-plugins/nesting/index.js +4 -2
- package/lib/postcss-plugins/nesting/plugin.js +10 -8
- package/lib/processTailwindFeatures.js +17 -15
- package/lib/public/colors.js +50 -26
- package/lib/public/create-plugin.js +5 -3
- package/lib/public/default-config.js +6 -4
- package/lib/public/default-theme.js +6 -4
- package/lib/public/load-config.js +12 -0
- package/lib/public/resolve-config.js +6 -4
- package/lib/util/applyImportantSelector.js +36 -0
- package/lib/util/bigSign.js +3 -1
- package/lib/util/buildMediaQuery.js +3 -1
- package/lib/util/cloneDeep.js +3 -1
- package/lib/util/cloneNodes.js +5 -3
- package/lib/util/color.js +32 -14
- package/lib/util/colorNames.js +752 -0
- package/lib/util/configurePlugins.js +3 -1
- package/lib/util/createPlugin.js +3 -1
- package/lib/util/createUtilityPlugin.js +9 -7
- package/lib/util/dataTypes.js +88 -23
- package/lib/util/defaults.js +9 -7
- package/lib/util/escapeClassName.js +10 -8
- package/lib/util/escapeCommas.js +3 -1
- package/lib/util/flattenColorPalette.js +3 -1
- package/lib/util/formatVariantSelector.js +141 -162
- package/lib/util/getAllConfigs.js +10 -7
- package/lib/util/hashConfig.js +6 -4
- package/lib/util/isKeyframeRule.js +3 -1
- package/lib/util/isPlainObject.js +3 -1
- package/lib/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +4 -2
- package/lib/util/log.js +25 -4
- package/lib/util/nameClass.js +12 -6
- package/lib/util/negateValue.js +4 -2
- package/lib/util/normalizeConfig.js +95 -49
- package/lib/util/normalizeScreens.js +15 -7
- package/lib/util/parseAnimationValue.js +3 -1
- package/lib/util/parseBoxShadowValue.js +6 -2
- package/lib/util/parseDependency.js +3 -1
- package/lib/util/parseGlob.js +6 -4
- package/lib/util/parseObjectStyles.js +9 -7
- package/lib/util/pluginUtils.js +83 -73
- package/lib/util/prefixSelector.js +27 -11
- package/lib/util/pseudoElements.js +209 -0
- package/lib/util/removeAlphaVariables.js +3 -1
- package/lib/util/resolveConfig.js +27 -26
- package/lib/util/resolveConfigPath.js +26 -10
- package/lib/util/responsive.js +6 -4
- package/lib/util/splitAtTopLevelOnly.js +10 -2
- package/lib/util/tap.js +3 -1
- package/lib/util/toColorValue.js +3 -1
- package/lib/util/toPath.js +3 -1
- package/lib/util/transformThemeValue.js +6 -4
- package/lib/util/validateConfig.js +27 -3
- package/lib/util/validateFormalSyntax.js +3 -1
- package/lib/util/withAlphaVariable.js +7 -3
- package/lib/value-parser/LICENSE +22 -0
- package/lib/value-parser/README.md +3 -0
- package/lib/value-parser/index.d.js +2 -0
- package/lib/value-parser/index.js +22 -0
- package/lib/value-parser/parse.js +259 -0
- package/lib/value-parser/stringify.js +38 -0
- package/lib/value-parser/unit.js +86 -0
- package/lib/value-parser/walk.js +16 -0
- package/loadConfig.d.ts +4 -0
- package/loadConfig.js +2 -0
- package/package.json +50 -51
- package/resolveConfig.d.ts +11 -2
- package/scripts/release-channel.js +18 -0
- package/scripts/release-notes.js +21 -0
- package/src/cli/build/index.js +17 -9
- package/src/cli/build/plugin.js +149 -77
- package/src/cli/build/watching.js +108 -13
- package/src/cli/index.js +217 -3
- package/src/cli/init/index.js +37 -8
- package/src/cli.js +1 -221
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +260 -55
- package/src/css/preflight.css +11 -1
- package/src/featureFlags.js +7 -3
- package/src/index.js +1 -47
- package/src/lib/content.js +52 -17
- package/src/lib/defaultExtractor.js +9 -3
- package/src/lib/detectNesting.js +9 -1
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +43 -16
- package/src/lib/expandTailwindAtRules.js +78 -13
- package/src/lib/findAtConfigPath.js +4 -6
- package/src/lib/generateRules.js +141 -53
- package/src/lib/getModuleDependencies.js +70 -30
- package/src/lib/handleImportAtRules.js +34 -0
- package/src/lib/load-config.ts +31 -0
- package/src/lib/normalizeTailwindDirectives.js +0 -27
- package/src/lib/offsets.js +105 -2
- package/src/lib/remap-bitfield.js +82 -0
- package/src/lib/setupContextUtils.js +154 -80
- package/src/lib/setupTrackingContext.js +37 -14
- package/src/lib/sharedState.js +13 -4
- package/src/plugin.js +133 -0
- package/src/processTailwindFeatures.js +3 -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/color.js +18 -3
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +49 -9
- package/src/util/formatVariantSelector.js +162 -165
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +1 -1
- package/src/util/log.js +24 -0
- package/src/util/negateValue.js +1 -1
- package/src/util/normalizeConfig.js +57 -11
- package/src/util/pluginUtils.js +49 -42
- package/src/util/prefixSelector.js +29 -10
- package/src/util/pseudoElements.js +167 -0
- package/src/util/resolveConfig.js +3 -9
- package/src/util/resolveConfigPath.js +12 -1
- package/src/util/splitAtTopLevelOnly.js +8 -1
- package/src/util/validateConfig.js +23 -0
- package/src/value-parser/LICENSE +22 -0
- package/src/value-parser/README.md +3 -0
- package/src/value-parser/index.d.ts +177 -0
- package/src/value-parser/index.js +28 -0
- package/src/value-parser/parse.js +303 -0
- package/src/value-parser/stringify.js +41 -0
- package/src/value-parser/unit.js +118 -0
- package/src/value-parser/walk.js +18 -0
- package/stubs/.gitignore +1 -0
- package/stubs/.prettierrc.json +6 -0
- package/stubs/{defaultConfig.stub.js → config.full.js} +197 -164
- package/stubs/{simpleConfig.stub.js → config.simple.js} +1 -2
- package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -1
- package/stubs/postcss.config.js +5 -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 +18 -10
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +110 -80
- package/CHANGELOG.md +0 -2282
- package/lib/cli/build/deps.js +0 -54
- package/lib/cli/shared.js +0 -12
- package/lib/cli-peer-dependencies.js +0 -28
- package/lib/constants.js +0 -44
- package/peers/index.js +0 -79457
- package/scripts/calculate-tag-name.js +0 -8
- package/scripts/install-integrations.js +0 -27
- package/scripts/rebuildFixtures.js +0 -68
- package/src/cli/build/deps.js +0 -56
- package/src/cli/shared.js +0 -5
- package/src/cli-peer-dependencies.js +0 -15
- package/src/constants.js +0 -17
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://tailwindcss.com
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
<a href="https://tailwindcss.com" target="_blank">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-dark.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg">
|
|
6
|
+
<img alt="Tailwind CSS" src="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg" width="350" height="70" style="max-width: 100%;">
|
|
7
|
+
</picture>
|
|
7
8
|
</a>
|
|
8
9
|
</p>
|
|
9
10
|
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
<p align="center">
|
|
16
|
-
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/workflow/status/tailwindlabs/tailwindcss/
|
|
17
|
+
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=master" alt="Build Status"></a>
|
|
17
18
|
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
|
|
18
19
|
<a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
|
|
19
20
|
<a href="https://github.com/tailwindcss/tailwindcss/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
|
package/index.css
ADDED
package/lib/cli/build/index.js
CHANGED
|
@@ -5,17 +5,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "build", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return build;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const _fs = /*#__PURE__*/
|
|
11
|
-
const _path = /*#__PURE__*/
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
13
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
+
const _resolveConfigPath = require("../../util/resolveConfigPath.js");
|
|
15
|
+
const _plugin = require("./plugin.js");
|
|
16
|
+
function _interop_require_default(obj) {
|
|
14
17
|
return obj && obj.__esModule ? obj : {
|
|
15
18
|
default: obj
|
|
16
19
|
};
|
|
17
20
|
}
|
|
18
|
-
async function build(args
|
|
21
|
+
async function build(args) {
|
|
19
22
|
let input = args["--input"];
|
|
20
23
|
let shouldWatch = args["--watch"];
|
|
21
24
|
// TODO: Deprecate this in future versions
|
|
@@ -31,14 +34,24 @@ async function build(args, configs) {
|
|
|
31
34
|
console.error(`Specified config file ${args["--config"]} does not exist.`);
|
|
32
35
|
process.exit(9);
|
|
33
36
|
}
|
|
37
|
+
if (args["--no-autoprefixer"]) {
|
|
38
|
+
console.error("[deprecation] The --no-autoprefixer flag is deprecated and has no effect.");
|
|
39
|
+
}
|
|
34
40
|
// TODO: Reference the @config path here if exists
|
|
35
|
-
let configPath = args["--config"] ? args["--config"] : (
|
|
36
|
-
let processor = await (0,
|
|
41
|
+
let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
|
|
42
|
+
let processor = await (0, _plugin.createProcessor)(args, configPath);
|
|
37
43
|
if (shouldWatch) {
|
|
38
|
-
|
|
44
|
+
// Abort the watcher if stdin is closed to avoid zombie processes
|
|
45
|
+
// You can disable this behavior with --watch=always
|
|
46
|
+
if (args["--watch"] !== "always") {
|
|
47
|
+
process.stdin.on("end", ()=>process.exit(0));
|
|
48
|
+
}
|
|
39
49
|
process.stdin.resume();
|
|
40
50
|
await processor.watch();
|
|
41
51
|
} else {
|
|
42
|
-
await processor.build()
|
|
52
|
+
await processor.build().catch((e)=>{
|
|
53
|
+
console.error(e);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
});
|
|
43
56
|
}
|
|
44
57
|
}
|
package/lib/cli/build/plugin.js
CHANGED
|
@@ -5,32 +5,118 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "createProcessor", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return createProcessor;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
12
|
+
const _packagejson = /*#__PURE__*/ _interop_require_default(require("../../../package.json"));
|
|
13
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
15
|
+
const _postcss = /*#__PURE__*/ _interop_require_default(require("postcss"));
|
|
16
|
+
const _postcssloadconfig = /*#__PURE__*/ _interop_require_default(require("postcss-load-config"));
|
|
17
|
+
const _browserslist = /*#__PURE__*/ _interop_require_default(require("browserslist"));
|
|
18
|
+
const _lightningcss = /*#__PURE__*/ _interop_require_wildcard(require("lightningcss"));
|
|
13
19
|
const _lilconfig = require("lilconfig");
|
|
14
|
-
const _plugins = /*#__PURE__*/
|
|
20
|
+
const _plugins = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/plugins" // Little bit scary, looking at private/internal API
|
|
15
21
|
));
|
|
16
|
-
const _options = /*#__PURE__*/
|
|
22
|
+
const _options = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/options" // Little bit scary, looking at private/internal API
|
|
17
23
|
));
|
|
18
|
-
const _processTailwindFeatures = /*#__PURE__*/
|
|
19
|
-
const _deps = require("./deps");
|
|
24
|
+
const _processTailwindFeatures = /*#__PURE__*/ _interop_require_default(require("../../processTailwindFeatures"));
|
|
20
25
|
const _utils = require("./utils");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
26
|
+
const _sharedState = require("../../lib/sharedState");
|
|
27
|
+
const _resolveConfig = /*#__PURE__*/ _interop_require_default(require("../../../resolveConfig.js"));
|
|
28
|
+
const _content = require("../../lib/content.js");
|
|
29
|
+
const _watching = require("./watching.js");
|
|
30
|
+
const _fastglob = /*#__PURE__*/ _interop_require_default(require("fast-glob"));
|
|
31
|
+
const _findAtConfigPath = require("../../lib/findAtConfigPath.js");
|
|
32
|
+
const _log = /*#__PURE__*/ _interop_require_default(require("../../util/log"));
|
|
33
|
+
const _loadconfig = require("../../lib/load-config");
|
|
34
|
+
const _getModuleDependencies = /*#__PURE__*/ _interop_require_default(require("../../lib/getModuleDependencies"));
|
|
35
|
+
const _validateConfig = require("../../util/validateConfig");
|
|
36
|
+
const _handleImportAtRules = require("../../lib/handleImportAtRules");
|
|
37
|
+
const _featureFlags = require("../../featureFlags");
|
|
38
|
+
function _interop_require_default(obj) {
|
|
30
39
|
return obj && obj.__esModule ? obj : {
|
|
31
40
|
default: obj
|
|
32
41
|
};
|
|
33
42
|
}
|
|
43
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
44
|
+
if (typeof WeakMap !== "function") return null;
|
|
45
|
+
var cacheBabelInterop = new WeakMap();
|
|
46
|
+
var cacheNodeInterop = new WeakMap();
|
|
47
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
48
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
49
|
+
})(nodeInterop);
|
|
50
|
+
}
|
|
51
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
52
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
53
|
+
return obj;
|
|
54
|
+
}
|
|
55
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
56
|
+
return {
|
|
57
|
+
default: obj
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
61
|
+
if (cache && cache.has(obj)) {
|
|
62
|
+
return cache.get(obj);
|
|
63
|
+
}
|
|
64
|
+
var newObj = {};
|
|
65
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
66
|
+
for(var key in obj){
|
|
67
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
68
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
69
|
+
if (desc && (desc.get || desc.set)) {
|
|
70
|
+
Object.defineProperty(newObj, key, desc);
|
|
71
|
+
} else {
|
|
72
|
+
newObj[key] = obj[key];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
newObj.default = obj;
|
|
77
|
+
if (cache) {
|
|
78
|
+
cache.set(obj, newObj);
|
|
79
|
+
}
|
|
80
|
+
return newObj;
|
|
81
|
+
}
|
|
82
|
+
function license() {
|
|
83
|
+
return `/* ! tailwindcss v${_packagejson.default.version} | MIT License | https://tailwindcss.com */\n`;
|
|
84
|
+
}
|
|
85
|
+
async function lightningcss(result, { map = true, minify = true } = {}) {
|
|
86
|
+
try {
|
|
87
|
+
var _browserslist_findConfig;
|
|
88
|
+
var _result_opts_from;
|
|
89
|
+
let resolvedBrowsersListConfig = (_browserslist_findConfig = _browserslist.default.findConfig((_result_opts_from = result.opts.from) !== null && _result_opts_from !== void 0 ? _result_opts_from : process.cwd())) === null || _browserslist_findConfig === void 0 ? void 0 : _browserslist_findConfig.defaults;
|
|
90
|
+
let defaultBrowsersListConfig = _packagejson.default.browserslist;
|
|
91
|
+
let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
|
|
92
|
+
let transformed = _lightningcss.default.transform({
|
|
93
|
+
filename: result.opts.from || "input.css",
|
|
94
|
+
code: Buffer.from(result.css, "utf-8"),
|
|
95
|
+
minify,
|
|
96
|
+
sourceMap: result.map === undefined ? map : !!result.map,
|
|
97
|
+
inputSourceMap: result.map ? result.map.toString() : undefined,
|
|
98
|
+
targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(browsersListConfig)),
|
|
99
|
+
drafts: {
|
|
100
|
+
nesting: true
|
|
101
|
+
},
|
|
102
|
+
include: _lightningcss.Features.Nesting,
|
|
103
|
+
exclude: _lightningcss.Features.LogicalProperties
|
|
104
|
+
});
|
|
105
|
+
return Object.assign(result, {
|
|
106
|
+
css: transformed.code.toString("utf8"),
|
|
107
|
+
map: result.map ? Object.assign(result.map, {
|
|
108
|
+
toString () {
|
|
109
|
+
var _transformed_map;
|
|
110
|
+
return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
|
|
111
|
+
}
|
|
112
|
+
}) : result.map
|
|
113
|
+
});
|
|
114
|
+
} catch (err) {
|
|
115
|
+
console.error("Unable to use Lightning CSS. Using raw version instead.");
|
|
116
|
+
console.error(err);
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
34
120
|
/**
|
|
35
121
|
*
|
|
36
122
|
* @param {string} [customPostCssPath ]
|
|
@@ -40,7 +126,7 @@ function _interopRequireDefault(obj) {
|
|
|
40
126
|
let file = _path.default.resolve(customPostCssPath);
|
|
41
127
|
// Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
|
|
42
128
|
// @ts-ignore
|
|
43
|
-
let { config ={}
|
|
129
|
+
let { config = {} } = await (0, _lilconfig.lilconfig)("postcss").load(file);
|
|
44
130
|
if (typeof config === "function") {
|
|
45
131
|
config = config();
|
|
46
132
|
} else {
|
|
@@ -54,7 +140,7 @@ function _interopRequireDefault(obj) {
|
|
|
54
140
|
plugins: (0, _plugins.default)(config, file),
|
|
55
141
|
options: (0, _options.default)(config, file)
|
|
56
142
|
};
|
|
57
|
-
})() : await (0,
|
|
143
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
58
144
|
let configPlugins = config.plugins;
|
|
59
145
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
60
146
|
if (typeof plugin === "function" && plugin.name === "tailwindcss") {
|
|
@@ -73,48 +159,16 @@ function _interopRequireDefault(obj) {
|
|
|
73
159
|
config.options
|
|
74
160
|
];
|
|
75
161
|
}
|
|
76
|
-
function loadBuiltinPostcssPlugins() {
|
|
77
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
78
|
-
let IMPORT_COMMENT = "__TAILWIND_RESTORE_IMPORT__: ";
|
|
79
|
-
return [
|
|
80
|
-
[
|
|
81
|
-
(root)=>{
|
|
82
|
-
root.walkAtRules("import", (rule)=>{
|
|
83
|
-
if (rule.params.slice(1).startsWith("tailwindcss/")) {
|
|
84
|
-
rule.after(postcss.comment({
|
|
85
|
-
text: IMPORT_COMMENT + rule.params
|
|
86
|
-
}));
|
|
87
|
-
rule.remove();
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
(0, _deps.loadPostcssImport)(),
|
|
92
|
-
(root)=>{
|
|
93
|
-
root.walkComments((rule)=>{
|
|
94
|
-
if (rule.text.startsWith(IMPORT_COMMENT)) {
|
|
95
|
-
rule.after(postcss.atRule({
|
|
96
|
-
name: "import",
|
|
97
|
-
params: rule.text.replace(IMPORT_COMMENT, "")
|
|
98
|
-
}));
|
|
99
|
-
rule.remove();
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
],
|
|
104
|
-
[],
|
|
105
|
-
{}
|
|
106
|
-
];
|
|
107
|
-
}
|
|
108
162
|
let state = {
|
|
109
163
|
/** @type {any} */ context: null,
|
|
110
164
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
111
165
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
112
|
-
|
|
166
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
113
167
|
contextDependencies: new Set(),
|
|
114
168
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
115
169
|
refreshContentPaths () {
|
|
116
|
-
var
|
|
117
|
-
this.contentPaths = (0,
|
|
170
|
+
var _this_context;
|
|
171
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
118
172
|
},
|
|
119
173
|
get config () {
|
|
120
174
|
return this.context.tailwindConfig;
|
|
@@ -126,100 +180,108 @@ let state = {
|
|
|
126
180
|
};
|
|
127
181
|
},
|
|
128
182
|
loadConfig (configPath, content) {
|
|
183
|
+
var _content;
|
|
129
184
|
if (this.watcher && configPath) {
|
|
130
|
-
this.refreshConfigDependencies(
|
|
185
|
+
this.refreshConfigDependencies();
|
|
131
186
|
}
|
|
132
|
-
let config =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
187
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
188
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
189
|
+
this.configBag = {
|
|
190
|
+
config,
|
|
191
|
+
dependencies,
|
|
192
|
+
dispose () {
|
|
193
|
+
for (let file of dependencies){
|
|
194
|
+
delete require.cache[require.resolve(file)];
|
|
195
|
+
}
|
|
137
196
|
}
|
|
138
|
-
}
|
|
197
|
+
};
|
|
198
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
139
199
|
// Override content files if `--content` has been passed explicitly
|
|
140
|
-
if ((content === null ||
|
|
141
|
-
config.content.files = content;
|
|
200
|
+
if (((_content = content) === null || _content === void 0 ? void 0 : _content.length) > 0) {
|
|
201
|
+
this.configBag.config.content.files = content;
|
|
142
202
|
}
|
|
143
|
-
return config;
|
|
203
|
+
return this.configBag.config;
|
|
144
204
|
},
|
|
145
|
-
refreshConfigDependencies (
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (configPath) {
|
|
151
|
-
let deps = (0, _getModuleDependenciesJs.default)(configPath).map(({ file })=>file);
|
|
152
|
-
for (let dependency of deps){
|
|
153
|
-
this.configDependencies.add(dependency);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
_shared.env.DEBUG && console.timeEnd("Module dependencies");
|
|
205
|
+
refreshConfigDependencies () {
|
|
206
|
+
var _this_configBag;
|
|
207
|
+
_sharedState.env.DEBUG && console.time("Module dependencies");
|
|
208
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
209
|
+
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
157
210
|
},
|
|
158
211
|
readContentPaths () {
|
|
159
212
|
let content = [];
|
|
160
213
|
// Resolve globs from the content config
|
|
161
214
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
162
|
-
let files =
|
|
215
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
163
216
|
for (let file of files){
|
|
164
|
-
|
|
165
|
-
content
|
|
166
|
-
|
|
167
|
-
|
|
217
|
+
if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
|
|
218
|
+
content.push({
|
|
219
|
+
file,
|
|
220
|
+
extension: _path.default.extname(file).slice(1)
|
|
221
|
+
});
|
|
222
|
+
} else {
|
|
223
|
+
content.push({
|
|
224
|
+
content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
|
|
225
|
+
extension: _path.default.extname(file).slice(1)
|
|
226
|
+
});
|
|
227
|
+
}
|
|
168
228
|
}
|
|
169
229
|
// Resolve raw content in the tailwind config
|
|
170
230
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
171
231
|
return file !== null && typeof file === "object";
|
|
172
232
|
});
|
|
173
|
-
for (let { raw:
|
|
174
|
-
|
|
175
|
-
content:
|
|
233
|
+
for (let { raw: htmlContent, extension = "html" } of rawContent){
|
|
234
|
+
content.push({
|
|
235
|
+
content: htmlContent,
|
|
176
236
|
extension
|
|
177
237
|
});
|
|
178
238
|
}
|
|
179
239
|
return content;
|
|
180
240
|
},
|
|
181
|
-
getContext ({ createContext
|
|
241
|
+
getContext ({ createContext, cliConfigPath, root, result, content }) {
|
|
182
242
|
if (this.context) {
|
|
183
243
|
this.context.changedContent = this.changedContent.splice(0);
|
|
184
244
|
return this.context;
|
|
185
245
|
}
|
|
186
|
-
|
|
187
|
-
var
|
|
188
|
-
let configPath = (
|
|
189
|
-
|
|
190
|
-
|
|
246
|
+
_sharedState.env.DEBUG && console.time("Searching for config");
|
|
247
|
+
var _findAtConfigPath1;
|
|
248
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
249
|
+
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
250
|
+
_sharedState.env.DEBUG && console.time("Loading config");
|
|
191
251
|
let config = this.loadConfig(configPath, content);
|
|
192
|
-
|
|
193
|
-
|
|
252
|
+
_sharedState.env.DEBUG && console.timeEnd("Loading config");
|
|
253
|
+
_sharedState.env.DEBUG && console.time("Creating context");
|
|
194
254
|
this.context = createContext(config, []);
|
|
195
255
|
Object.assign(this.context, {
|
|
196
256
|
userConfigPath: configPath
|
|
197
257
|
});
|
|
198
|
-
|
|
199
|
-
|
|
258
|
+
_sharedState.env.DEBUG && console.timeEnd("Creating context");
|
|
259
|
+
_sharedState.env.DEBUG && console.time("Resolving content paths");
|
|
200
260
|
this.refreshContentPaths();
|
|
201
|
-
|
|
261
|
+
_sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
|
|
202
262
|
if (this.watcher) {
|
|
203
|
-
|
|
263
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
204
264
|
this.watcher.refreshWatchedFiles();
|
|
205
|
-
|
|
265
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
206
266
|
}
|
|
207
|
-
_shared.env.DEBUG && console.time("Reading content files");
|
|
208
267
|
for (let file of this.readContentPaths()){
|
|
209
268
|
this.context.changedContent.push(file);
|
|
210
269
|
}
|
|
211
|
-
_shared.env.DEBUG && console.timeEnd("Reading content files");
|
|
212
270
|
return this.context;
|
|
213
271
|
}
|
|
214
272
|
};
|
|
215
273
|
async function createProcessor(args, cliConfigPath) {
|
|
216
|
-
var
|
|
217
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
274
|
+
var _args_content;
|
|
218
275
|
let input = args["--input"];
|
|
219
276
|
let output = args["--output"];
|
|
220
277
|
let includePostCss = args["--postcss"];
|
|
221
278
|
let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
|
|
222
|
-
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) :
|
|
279
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
280
|
+
[],
|
|
281
|
+
[],
|
|
282
|
+
{}
|
|
283
|
+
];
|
|
284
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
223
285
|
if (args["--purge"]) {
|
|
224
286
|
_log.default.warn("purge-flag-deprecated", [
|
|
225
287
|
"The `--purge` flag has been deprecated.",
|
|
@@ -229,14 +291,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
229
291
|
args["--content"] = args["--purge"];
|
|
230
292
|
}
|
|
231
293
|
}
|
|
232
|
-
var
|
|
233
|
-
let content = (
|
|
294
|
+
var _args_content_split;
|
|
295
|
+
let content = (_args_content_split = (_args_content = args["--content"]) === null || _args_content === void 0 ? void 0 : _args_content.split(/(?<!{[^}]+),/)) !== null && _args_content_split !== void 0 ? _args_content_split : [];
|
|
234
296
|
let tailwindPlugin = ()=>{
|
|
235
297
|
return {
|
|
236
298
|
postcssPlugin: "tailwindcss",
|
|
237
|
-
Once (root, { result
|
|
238
|
-
|
|
239
|
-
(0, _processTailwindFeatures.default)(({ createContext
|
|
299
|
+
async Once (root, { result }) {
|
|
300
|
+
_sharedState.env.DEBUG && console.time("Compiling CSS");
|
|
301
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
240
302
|
console.error();
|
|
241
303
|
console.error("Rebuilding...");
|
|
242
304
|
return ()=>{
|
|
@@ -249,7 +311,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
249
311
|
});
|
|
250
312
|
};
|
|
251
313
|
})(root, result);
|
|
252
|
-
|
|
314
|
+
_sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
|
|
253
315
|
}
|
|
254
316
|
};
|
|
255
317
|
};
|
|
@@ -258,12 +320,10 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
258
320
|
...beforePlugins,
|
|
259
321
|
tailwindPlugin,
|
|
260
322
|
!args["--minify"] && _utils.formatNodes,
|
|
261
|
-
...afterPlugins
|
|
262
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
263
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
323
|
+
...afterPlugins
|
|
264
324
|
].filter(Boolean);
|
|
265
325
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
266
|
-
let processor =
|
|
326
|
+
let processor = (0, _postcss.default)(plugins);
|
|
267
327
|
async function readInput() {
|
|
268
328
|
// Piping in data, let's drain the stdin
|
|
269
329
|
if (input === "-") {
|
|
@@ -278,23 +338,58 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
278
338
|
}
|
|
279
339
|
async function build() {
|
|
280
340
|
let start = process.hrtime.bigint();
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
341
|
+
let options = {
|
|
342
|
+
...postcssOptions,
|
|
343
|
+
from: input,
|
|
344
|
+
to: output
|
|
345
|
+
};
|
|
346
|
+
return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
|
|
347
|
+
...options,
|
|
348
|
+
minify: !!args["--minify"]
|
|
285
349
|
})).then((result)=>{
|
|
350
|
+
if (!state.watcher) {
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
_sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
|
|
354
|
+
for (let message of result.messages){
|
|
355
|
+
if (message.type === "dependency") {
|
|
356
|
+
state.contextDependencies.add(message.file);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
_sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
|
|
360
|
+
// TODO: This needs to be in a different spot
|
|
361
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
362
|
+
state.watcher.refreshWatchedFiles();
|
|
363
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
364
|
+
return result;
|
|
365
|
+
}).then((result)=>{
|
|
286
366
|
if (!output) {
|
|
287
|
-
process.stdout.write(result.css);
|
|
367
|
+
process.stdout.write(license() + result.css);
|
|
288
368
|
return;
|
|
289
369
|
}
|
|
290
370
|
return Promise.all([
|
|
291
|
-
(0, _utils.outputFile)(
|
|
292
|
-
result.map && (0, _utils.outputFile)(
|
|
371
|
+
(0, _utils.outputFile)(result.opts.to, license() + result.css),
|
|
372
|
+
result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
|
|
293
373
|
]);
|
|
294
374
|
}).then(()=>{
|
|
295
375
|
let end = process.hrtime.bigint();
|
|
296
376
|
console.error();
|
|
297
377
|
console.error("Done in", (end - start) / BigInt(1e6) + "ms.");
|
|
378
|
+
}).then(()=>{}, (err)=>{
|
|
379
|
+
// TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
|
|
380
|
+
// that were collected before the error occurred
|
|
381
|
+
// The result is not stored on the error so we have to store it externally
|
|
382
|
+
// and pull the messages off of it here somehow
|
|
383
|
+
// This results in a less than ideal DX because the watcher will not pick up
|
|
384
|
+
// changes to imported CSS if one of them caused an error during the initial build
|
|
385
|
+
// If you fix it and then save the main CSS file so there's no error
|
|
386
|
+
// The watcher will start watching the imported CSS files and will be
|
|
387
|
+
// resilient to future errors.
|
|
388
|
+
if (state.watcher) {
|
|
389
|
+
console.error(err);
|
|
390
|
+
} else {
|
|
391
|
+
return Promise.reject(err);
|
|
392
|
+
}
|
|
298
393
|
});
|
|
299
394
|
}
|
|
300
395
|
/**
|
|
@@ -311,13 +406,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
311
406
|
return {
|
|
312
407
|
build,
|
|
313
408
|
watch: async ()=>{
|
|
314
|
-
state.watcher = (0,
|
|
409
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
315
410
|
state,
|
|
316
411
|
/**
|
|
317
412
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
318
413
|
*/ async rebuild (changes) {
|
|
319
414
|
let needsNewContext = changes.some((change)=>{
|
|
320
|
-
|
|
415
|
+
var _state_configBag;
|
|
416
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
321
417
|
});
|
|
322
418
|
if (needsNewContext) {
|
|
323
419
|
state.context = null;
|
package/lib/cli/build/utils.js
CHANGED
|
@@ -10,15 +10,25 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
indentRecursive: ()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
indentRecursive: function() {
|
|
14
|
+
return indentRecursive;
|
|
15
|
+
},
|
|
16
|
+
formatNodes: function() {
|
|
17
|
+
return formatNodes;
|
|
18
|
+
},
|
|
19
|
+
readFileWithRetries: function() {
|
|
20
|
+
return readFileWithRetries;
|
|
21
|
+
},
|
|
22
|
+
drainStdin: function() {
|
|
23
|
+
return drainStdin;
|
|
24
|
+
},
|
|
25
|
+
outputFile: function() {
|
|
26
|
+
return outputFile;
|
|
27
|
+
}
|
|
18
28
|
});
|
|
19
|
-
const _fs = /*#__PURE__*/
|
|
20
|
-
const _path = /*#__PURE__*/
|
|
21
|
-
function
|
|
29
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
30
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
31
|
+
function _interop_require_default(obj) {
|
|
22
32
|
return obj && obj.__esModule ? obj : {
|
|
23
33
|
default: obj
|
|
24
34
|
};
|