tailwindcss 0.0.0-insiders.fa693e5 → 0.0.0-insiders.fa9be73
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 +1 -1
- package/index.css +5 -0
- package/lib/cli/build/index.js +29 -20
- package/lib/cli/build/plugin.js +200 -139
- package/lib/cli/build/utils.js +31 -21
- package/lib/cli/build/watching.js +26 -22
- package/lib/cli/help/index.js +17 -15
- package/lib/cli/index.js +74 -82
- package/lib/cli/init/index.js +30 -13
- package/lib/cli.js +1 -5
- package/lib/corePluginList.js +6 -1
- package/lib/corePlugins.js +1980 -1888
- package/lib/css/preflight.css +15 -4
- package/lib/featureFlags.js +36 -22
- package/lib/index.js +1 -5
- package/lib/lib/cacheInvalidation.js +10 -8
- package/lib/lib/collapseAdjacentRules.js +9 -7
- package/lib/lib/collapseDuplicateDeclarations.js +11 -9
- package/lib/lib/content.js +50 -20
- package/lib/lib/defaultExtractor.js +29 -33
- package/lib/lib/detectNesting.js +13 -11
- package/lib/lib/evaluateTailwindFunctions.js +43 -39
- package/lib/lib/expandApplyAtRules.js +64 -50
- package/lib/lib/expandTailwindAtRules.js +97 -57
- package/lib/lib/findAtConfigPath.js +11 -9
- package/lib/lib/generateRules.js +127 -113
- 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 +26 -39
- package/lib/lib/offsets.js +53 -51
- package/lib/lib/partitionApplyAtRules.js +5 -3
- package/lib/lib/regex.js +26 -12
- package/lib/lib/remap-bitfield.js +3 -1
- package/lib/lib/resolveDefaultsAtRules.js +49 -45
- package/lib/lib/setupContextUtils.js +263 -228
- package/lib/lib/setupTrackingContext.js +32 -28
- package/lib/lib/sharedState.js +37 -36
- package/lib/lib/substituteScreenAtRules.js +9 -7
- package/lib/plugin.js +110 -44
- package/lib/postcss-plugins/nesting/index.js +5 -3
- package/lib/postcss-plugins/nesting/plugin.js +19 -17
- package/lib/processTailwindFeatures.js +19 -17
- package/lib/public/colors.js +269 -245
- 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 +5 -3
- package/lib/util/cloneDeep.js +4 -2
- package/lib/util/cloneNodes.js +4 -2
- package/lib/util/color.js +30 -26
- 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 +8 -6
- package/lib/util/dataTypes.js +210 -118
- package/lib/util/defaults.js +9 -7
- package/lib/util/escapeClassName.js +9 -7
- package/lib/util/escapeCommas.js +4 -2
- package/lib/util/flattenColorPalette.js +5 -3
- package/lib/util/formatVariantSelector.js +57 -137
- package/lib/util/getAllConfigs.js +11 -8
- package/lib/util/hashConfig.js +6 -4
- package/lib/util/isKeyframeRule.js +4 -2
- package/lib/util/isPlainObject.js +4 -2
- package/lib/util/isSyntacticallyValidPropertyValue.js +13 -11
- package/lib/util/log.js +31 -10
- package/lib/util/nameClass.js +16 -10
- package/lib/util/negateValue.js +11 -9
- package/lib/util/normalizeConfig.js +101 -69
- package/lib/util/normalizeScreens.js +30 -22
- package/lib/util/parseAnimationValue.js +41 -39
- package/lib/util/parseBoxShadowValue.js +24 -20
- package/lib/util/parseDependency.js +7 -5
- package/lib/util/parseGlob.js +10 -8
- package/lib/util/parseObjectStyles.js +10 -8
- package/lib/util/pluginUtils.js +54 -63
- package/lib/util/prefixSelector.js +9 -7
- package/lib/util/pseudoElements.js +209 -0
- package/lib/util/removeAlphaVariables.js +4 -2
- package/lib/util/resolveConfig.js +64 -52
- package/lib/util/resolveConfigPath.js +28 -12
- package/lib/util/responsive.js +7 -5
- package/lib/util/splitAtTopLevelOnly.js +12 -4
- package/lib/util/tap.js +3 -1
- package/lib/util/toColorValue.js +4 -2
- package/lib/util/toPath.js +5 -3
- package/lib/util/transformThemeValue.js +30 -28
- package/lib/util/validateConfig.js +31 -7
- package/lib/util/validateFormalSyntax.js +8 -6
- package/lib/util/withAlphaVariable.js +11 -7
- 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 +47 -59
- package/scripts/release-notes.js +1 -1
- package/src/cli/build/index.js +11 -7
- package/src/cli/build/plugin.js +96 -69
- package/src/cli/build/watching.js +4 -2
- package/src/cli/index.js +9 -26
- package/src/cli/init/index.js +37 -8
- package/src/cli.js +1 -5
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +141 -48
- package/src/css/preflight.css +15 -4
- package/src/featureFlags.js +7 -7
- package/src/index.js +1 -5
- package/src/lib/content.js +33 -1
- package/src/lib/defaultExtractor.js +12 -14
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +15 -1
- package/src/lib/expandTailwindAtRules.js +73 -33
- package/src/lib/generateRules.js +71 -47
- 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 +3 -3
- package/src/lib/setupContextUtils.js +64 -51
- package/src/lib/setupTrackingContext.js +6 -8
- package/src/lib/sharedState.js +10 -20
- package/src/plugin.js +86 -60
- 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 +2 -2
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +75 -16
- package/src/util/formatVariantSelector.js +14 -102
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/log.js +24 -0
- package/src/util/normalizeConfig.js +39 -11
- package/src/util/pluginUtils.js +11 -38
- package/src/util/prefixSelector.js +1 -0
- package/src/util/pseudoElements.js +167 -0
- package/src/util/resolveConfig.js +42 -24
- 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} +56 -11
- 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 +10 -12
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +34 -1
- package/types/index.d.ts +7 -3
- package/lib/cli/build/deps.js +0 -54
- package/lib/cli-peer-dependencies.js +0 -28
- package/lib/constants.js +0 -44
- package/lib/oxide/cli/build/deps.js +0 -81
- package/lib/oxide/cli/build/index.js +0 -47
- package/lib/oxide/cli/build/plugin.js +0 -364
- package/lib/oxide/cli/build/utils.js +0 -77
- package/lib/oxide/cli/build/watching.js +0 -177
- package/lib/oxide/cli/help/index.js +0 -70
- package/lib/oxide/cli/index.js +0 -220
- package/lib/oxide/cli/init/index.js +0 -35
- package/lib/oxide/cli.js +0 -5
- package/lib/oxide/postcss-plugin.js +0 -2
- package/peers/index.js +0 -79461
- package/scripts/swap-engines.js +0 -40
- package/src/cli/build/deps.js +0 -56
- package/src/cli-peer-dependencies.js +0 -15
- package/src/constants.js +0 -17
- 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 -436
- 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 -212
- package/src/oxide/cli/init/index.ts +0 -32
- package/src/oxide/cli.ts +0 -1
- package/src/oxide/postcss-plugin.ts +0 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
17
|
-
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci
|
|
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>
|
|
18
18
|
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
|
|
19
19
|
<a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
|
|
20
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,44 +5,53 @@ 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
|
|
19
|
-
let input = args[
|
|
20
|
-
let shouldWatch = args[
|
|
21
|
+
async function build(args) {
|
|
22
|
+
let input = args['--input'];
|
|
23
|
+
let shouldWatch = args['--watch'];
|
|
21
24
|
// TODO: Deprecate this in future versions
|
|
22
|
-
if (!input && args[
|
|
23
|
-
console.error(
|
|
24
|
-
input = args[
|
|
25
|
+
if (!input && args['_'][1]) {
|
|
26
|
+
console.error('[deprecation] Running tailwindcss without -i, please provide an input file.');
|
|
27
|
+
input = args['--input'] = args['_'][1];
|
|
25
28
|
}
|
|
26
|
-
if (input && input !==
|
|
27
|
-
console.error(`Specified input file ${args[
|
|
29
|
+
if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
|
|
30
|
+
console.error(`Specified input file ${args['--input']} does not exist.`);
|
|
28
31
|
process.exit(9);
|
|
29
32
|
}
|
|
30
|
-
if (args[
|
|
31
|
-
console.error(`Specified config file ${args[
|
|
33
|
+
if (args['--config'] && !_fs.default.existsSync(args['--config'] = _path.default.resolve(args['--config']))) {
|
|
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[
|
|
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
|
|
39
45
|
// You can disable this behavior with --watch=always
|
|
40
|
-
if (args[
|
|
41
|
-
process.stdin.on(
|
|
46
|
+
if (args['--watch'] !== 'always') {
|
|
47
|
+
process.stdin.on('end', ()=>process.exit(0));
|
|
42
48
|
}
|
|
43
49
|
process.stdin.resume();
|
|
44
50
|
await processor.watch();
|
|
45
51
|
} else {
|
|
46
|
-
await processor.build()
|
|
52
|
+
await processor.build().catch((e)=>{
|
|
53
|
+
console.error(e);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
});
|
|
47
56
|
}
|
|
48
57
|
}
|
package/lib/cli/build/plugin.js
CHANGED
|
@@ -5,32 +5,115 @@ 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
26
|
const _sharedState = require("../../lib/sharedState");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
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
|
+
include: _lightningcss.Features.Nesting,
|
|
100
|
+
exclude: _lightningcss.Features.LogicalProperties
|
|
101
|
+
});
|
|
102
|
+
return Object.assign(result, {
|
|
103
|
+
css: transformed.code.toString(),
|
|
104
|
+
map: result.map ? Object.assign(result.map, {
|
|
105
|
+
toString () {
|
|
106
|
+
var _transformed_map;
|
|
107
|
+
return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
|
|
108
|
+
}
|
|
109
|
+
}) : result.map
|
|
110
|
+
});
|
|
111
|
+
} catch (err) {
|
|
112
|
+
console.error('Unable to use Lightning CSS. Using raw version instead.');
|
|
113
|
+
console.error(err);
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
34
117
|
/**
|
|
35
118
|
*
|
|
36
119
|
* @param {string} [customPostCssPath ]
|
|
@@ -40,8 +123,8 @@ function _interopRequireDefault(obj) {
|
|
|
40
123
|
let file = _path.default.resolve(customPostCssPath);
|
|
41
124
|
// Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
|
|
42
125
|
// @ts-ignore
|
|
43
|
-
let { config ={}
|
|
44
|
-
if (typeof config ===
|
|
126
|
+
let { config = {} } = await (0, _lilconfig.lilconfig)('postcss').load(file);
|
|
127
|
+
if (typeof config === 'function') {
|
|
45
128
|
config = config();
|
|
46
129
|
} else {
|
|
47
130
|
config = Object.assign({}, config);
|
|
@@ -54,13 +137,13 @@ function _interopRequireDefault(obj) {
|
|
|
54
137
|
plugins: (0, _plugins.default)(config, file),
|
|
55
138
|
options: (0, _options.default)(config, file)
|
|
56
139
|
};
|
|
57
|
-
})() : await (0,
|
|
140
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
58
141
|
let configPlugins = config.plugins;
|
|
59
142
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
60
|
-
if (typeof plugin ===
|
|
143
|
+
if (typeof plugin === 'function' && plugin.name === 'tailwindcss') {
|
|
61
144
|
return true;
|
|
62
145
|
}
|
|
63
|
-
if (typeof plugin ===
|
|
146
|
+
if (typeof plugin === 'object' && plugin !== null && plugin.postcssPlugin === 'tailwindcss') {
|
|
64
147
|
return true;
|
|
65
148
|
}
|
|
66
149
|
return false;
|
|
@@ -73,48 +156,16 @@ function _interopRequireDefault(obj) {
|
|
|
73
156
|
config.options
|
|
74
157
|
];
|
|
75
158
|
}
|
|
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
159
|
let state = {
|
|
109
160
|
/** @type {any} */ context: null,
|
|
110
161
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
111
162
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
112
|
-
|
|
163
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
113
164
|
contextDependencies: new Set(),
|
|
114
165
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
115
166
|
refreshContentPaths () {
|
|
116
167
|
var _this_context;
|
|
117
|
-
this.contentPaths = (0,
|
|
168
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
118
169
|
},
|
|
119
170
|
get config () {
|
|
120
171
|
return this.context.tailwindConfig;
|
|
@@ -126,58 +177,57 @@ let state = {
|
|
|
126
177
|
};
|
|
127
178
|
},
|
|
128
179
|
loadConfig (configPath, content) {
|
|
180
|
+
var _content;
|
|
129
181
|
if (this.watcher && configPath) {
|
|
130
|
-
this.refreshConfigDependencies(
|
|
182
|
+
this.refreshConfigDependencies();
|
|
131
183
|
}
|
|
132
|
-
let config =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
184
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
185
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
186
|
+
this.configBag = {
|
|
187
|
+
config,
|
|
188
|
+
dependencies,
|
|
189
|
+
dispose () {
|
|
190
|
+
for (let file of dependencies){
|
|
191
|
+
delete require.cache[require.resolve(file)];
|
|
192
|
+
}
|
|
137
193
|
}
|
|
138
|
-
}
|
|
194
|
+
};
|
|
195
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
139
196
|
// Override content files if `--content` has been passed explicitly
|
|
140
|
-
if ((content === null ||
|
|
141
|
-
config.content.files = content;
|
|
197
|
+
if (((_content = content) === null || _content === void 0 ? void 0 : _content.length) > 0) {
|
|
198
|
+
this.configBag.config.content.files = content;
|
|
142
199
|
}
|
|
143
|
-
return config;
|
|
200
|
+
return this.configBag.config;
|
|
144
201
|
},
|
|
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
|
-
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
202
|
+
refreshConfigDependencies () {
|
|
203
|
+
var _this_configBag;
|
|
204
|
+
_sharedState.env.DEBUG && console.time('Module dependencies');
|
|
205
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
206
|
+
_sharedState.env.DEBUG && console.timeEnd('Module dependencies');
|
|
157
207
|
},
|
|
158
208
|
readContentPaths () {
|
|
159
209
|
let content = [];
|
|
160
210
|
// Resolve globs from the content config
|
|
161
211
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
162
|
-
let files =
|
|
212
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
163
213
|
for (let file of files){
|
|
164
|
-
if (
|
|
214
|
+
if ((0, _featureFlags.flagEnabled)(this.config, 'oxideParser')) {
|
|
165
215
|
content.push({
|
|
166
216
|
file,
|
|
167
217
|
extension: _path.default.extname(file).slice(1)
|
|
168
218
|
});
|
|
169
219
|
} else {
|
|
170
220
|
content.push({
|
|
171
|
-
content: _fs.default.readFileSync(_path.default.resolve(file),
|
|
221
|
+
content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
|
|
172
222
|
extension: _path.default.extname(file).slice(1)
|
|
173
223
|
});
|
|
174
224
|
}
|
|
175
225
|
}
|
|
176
226
|
// Resolve raw content in the tailwind config
|
|
177
227
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
178
|
-
return file !== null && typeof file ===
|
|
228
|
+
return file !== null && typeof file === 'object';
|
|
179
229
|
});
|
|
180
|
-
for (let { raw: htmlContent
|
|
230
|
+
for (let { raw: htmlContent, extension = 'html' } of rawContent){
|
|
181
231
|
content.push({
|
|
182
232
|
content: htmlContent,
|
|
183
233
|
extension
|
|
@@ -185,31 +235,31 @@ let state = {
|
|
|
185
235
|
}
|
|
186
236
|
return content;
|
|
187
237
|
},
|
|
188
|
-
getContext ({ createContext
|
|
238
|
+
getContext ({ createContext, cliConfigPath, root, result, content }) {
|
|
189
239
|
if (this.context) {
|
|
190
240
|
this.context.changedContent = this.changedContent.splice(0);
|
|
191
241
|
return this.context;
|
|
192
242
|
}
|
|
193
|
-
_sharedState.env.DEBUG && console.time(
|
|
194
|
-
var
|
|
195
|
-
let configPath = (
|
|
196
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
197
|
-
_sharedState.env.DEBUG && console.time(
|
|
243
|
+
_sharedState.env.DEBUG && console.time('Searching for config');
|
|
244
|
+
var _findAtConfigPath1;
|
|
245
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
246
|
+
_sharedState.env.DEBUG && console.timeEnd('Searching for config');
|
|
247
|
+
_sharedState.env.DEBUG && console.time('Loading config');
|
|
198
248
|
let config = this.loadConfig(configPath, content);
|
|
199
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
200
|
-
_sharedState.env.DEBUG && console.time(
|
|
249
|
+
_sharedState.env.DEBUG && console.timeEnd('Loading config');
|
|
250
|
+
_sharedState.env.DEBUG && console.time('Creating context');
|
|
201
251
|
this.context = createContext(config, []);
|
|
202
252
|
Object.assign(this.context, {
|
|
203
253
|
userConfigPath: configPath
|
|
204
254
|
});
|
|
205
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
206
|
-
_sharedState.env.DEBUG && console.time(
|
|
255
|
+
_sharedState.env.DEBUG && console.timeEnd('Creating context');
|
|
256
|
+
_sharedState.env.DEBUG && console.time('Resolving content paths');
|
|
207
257
|
this.refreshContentPaths();
|
|
208
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
258
|
+
_sharedState.env.DEBUG && console.timeEnd('Resolving content paths');
|
|
209
259
|
if (this.watcher) {
|
|
210
|
-
_sharedState.env.DEBUG && console.time(
|
|
260
|
+
_sharedState.env.DEBUG && console.time('Watch new files');
|
|
211
261
|
this.watcher.refreshWatchedFiles();
|
|
212
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
262
|
+
_sharedState.env.DEBUG && console.timeEnd('Watch new files');
|
|
213
263
|
}
|
|
214
264
|
for (let file of this.readContentPaths()){
|
|
215
265
|
this.context.changedContent.push(file);
|
|
@@ -219,31 +269,35 @@ let state = {
|
|
|
219
269
|
};
|
|
220
270
|
async function createProcessor(args, cliConfigPath) {
|
|
221
271
|
var _args_content;
|
|
222
|
-
let
|
|
223
|
-
let
|
|
224
|
-
let
|
|
225
|
-
let
|
|
226
|
-
let
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
272
|
+
let input = args['--input'];
|
|
273
|
+
let output = args['--output'];
|
|
274
|
+
let includePostCss = args['--postcss'];
|
|
275
|
+
let customPostCssPath = typeof args['--postcss'] === 'string' ? args['--postcss'] : undefined;
|
|
276
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
277
|
+
[],
|
|
278
|
+
[],
|
|
279
|
+
{}
|
|
280
|
+
];
|
|
281
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
282
|
+
if (args['--purge']) {
|
|
283
|
+
_log.default.warn('purge-flag-deprecated', [
|
|
284
|
+
'The `--purge` flag has been deprecated.',
|
|
285
|
+
'Please use `--content` instead.'
|
|
232
286
|
]);
|
|
233
|
-
if (!args[
|
|
234
|
-
args[
|
|
287
|
+
if (!args['--content']) {
|
|
288
|
+
args['--content'] = args['--purge'];
|
|
235
289
|
}
|
|
236
290
|
}
|
|
237
291
|
var _args_content_split;
|
|
238
|
-
let content = (_args_content_split = (_args_content = args[
|
|
292
|
+
let content = (_args_content_split = (_args_content = args['--content']) === null || _args_content === void 0 ? void 0 : _args_content.split(RegExp("(?<!{[^}]+),"))) !== null && _args_content_split !== void 0 ? _args_content_split : [];
|
|
239
293
|
let tailwindPlugin = ()=>{
|
|
240
294
|
return {
|
|
241
|
-
postcssPlugin:
|
|
242
|
-
Once (root, { result
|
|
243
|
-
_sharedState.env.DEBUG && console.time(
|
|
244
|
-
(0, _processTailwindFeatures.default)(({ createContext
|
|
295
|
+
postcssPlugin: 'tailwindcss',
|
|
296
|
+
async Once (root, { result }) {
|
|
297
|
+
_sharedState.env.DEBUG && console.time('Compiling CSS');
|
|
298
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
245
299
|
console.error();
|
|
246
|
-
console.error(
|
|
300
|
+
console.error('Rebuilding...');
|
|
247
301
|
return ()=>{
|
|
248
302
|
return state.getContext({
|
|
249
303
|
createContext,
|
|
@@ -254,7 +308,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
254
308
|
});
|
|
255
309
|
};
|
|
256
310
|
})(root, result);
|
|
257
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
311
|
+
_sharedState.env.DEBUG && console.timeEnd('Compiling CSS');
|
|
258
312
|
}
|
|
259
313
|
};
|
|
260
314
|
};
|
|
@@ -262,60 +316,62 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
262
316
|
let plugins = [
|
|
263
317
|
...beforePlugins,
|
|
264
318
|
tailwindPlugin,
|
|
265
|
-
!args[
|
|
266
|
-
...afterPlugins
|
|
267
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
268
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
319
|
+
!args['--minify'] && _utils.formatNodes,
|
|
320
|
+
...afterPlugins
|
|
269
321
|
].filter(Boolean);
|
|
270
322
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
271
|
-
let processor =
|
|
323
|
+
let processor = (0, _postcss.default)(plugins);
|
|
272
324
|
async function readInput() {
|
|
273
325
|
// Piping in data, let's drain the stdin
|
|
274
|
-
if (input ===
|
|
326
|
+
if (input === '-') {
|
|
275
327
|
return (0, _utils.drainStdin)();
|
|
276
328
|
}
|
|
277
329
|
// Input file has been provided
|
|
278
330
|
if (input) {
|
|
279
|
-
return _fs.default.promises.readFile(_path.default.resolve(input),
|
|
331
|
+
return _fs.default.promises.readFile(_path.default.resolve(input), 'utf8');
|
|
280
332
|
}
|
|
281
333
|
// No input file provided, fallback to default atrules
|
|
282
|
-
return
|
|
334
|
+
return '@tailwind base; @tailwind components; @tailwind utilities';
|
|
283
335
|
}
|
|
284
336
|
async function build() {
|
|
285
337
|
let start = process.hrtime.bigint();
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
338
|
+
let options = {
|
|
339
|
+
...postcssOptions,
|
|
340
|
+
from: input,
|
|
341
|
+
to: output
|
|
342
|
+
};
|
|
343
|
+
return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
|
|
344
|
+
...options,
|
|
345
|
+
minify: !!args['--minify']
|
|
290
346
|
})).then((result)=>{
|
|
291
347
|
if (!state.watcher) {
|
|
292
348
|
return result;
|
|
293
349
|
}
|
|
294
|
-
_sharedState.env.DEBUG && console.time(
|
|
350
|
+
_sharedState.env.DEBUG && console.time('Recording PostCSS dependencies');
|
|
295
351
|
for (let message of result.messages){
|
|
296
|
-
if (message.type ===
|
|
352
|
+
if (message.type === 'dependency') {
|
|
297
353
|
state.contextDependencies.add(message.file);
|
|
298
354
|
}
|
|
299
355
|
}
|
|
300
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
356
|
+
_sharedState.env.DEBUG && console.timeEnd('Recording PostCSS dependencies');
|
|
301
357
|
// TODO: This needs to be in a different spot
|
|
302
|
-
_sharedState.env.DEBUG && console.time(
|
|
358
|
+
_sharedState.env.DEBUG && console.time('Watch new files');
|
|
303
359
|
state.watcher.refreshWatchedFiles();
|
|
304
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
360
|
+
_sharedState.env.DEBUG && console.timeEnd('Watch new files');
|
|
305
361
|
return result;
|
|
306
362
|
}).then((result)=>{
|
|
307
363
|
if (!output) {
|
|
308
|
-
process.stdout.write(result.css);
|
|
364
|
+
process.stdout.write(license() + result.css);
|
|
309
365
|
return;
|
|
310
366
|
}
|
|
311
367
|
return Promise.all([
|
|
312
|
-
(0, _utils.outputFile)(result.opts.to, result.css),
|
|
313
|
-
result.map && (0, _utils.outputFile)(result.opts.to +
|
|
368
|
+
(0, _utils.outputFile)(result.opts.to, license() + result.css),
|
|
369
|
+
result.map && (0, _utils.outputFile)(result.opts.to + '.map', result.map.toString())
|
|
314
370
|
]);
|
|
315
371
|
}).then(()=>{
|
|
316
372
|
let end = process.hrtime.bigint();
|
|
317
373
|
console.error();
|
|
318
|
-
console.error(
|
|
374
|
+
console.error('Done in', (end - start) / BigInt(1e6) + 'ms.');
|
|
319
375
|
}).then(()=>{}, (err)=>{
|
|
320
376
|
// TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
|
|
321
377
|
// that were collected before the error occurred
|
|
@@ -326,7 +382,11 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
326
382
|
// If you fix it and then save the main CSS file so there's no error
|
|
327
383
|
// The watcher will start watching the imported CSS files and will be
|
|
328
384
|
// resilient to future errors.
|
|
329
|
-
|
|
385
|
+
if (state.watcher) {
|
|
386
|
+
console.error(err);
|
|
387
|
+
} else {
|
|
388
|
+
return Promise.reject(err);
|
|
389
|
+
}
|
|
330
390
|
});
|
|
331
391
|
}
|
|
332
392
|
/**
|
|
@@ -337,19 +397,20 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
337
397
|
extension: change.extension
|
|
338
398
|
})));
|
|
339
399
|
}
|
|
340
|
-
if (input !== undefined && input !==
|
|
400
|
+
if (input !== undefined && input !== '-') {
|
|
341
401
|
state.contextDependencies.add(_path.default.resolve(input));
|
|
342
402
|
}
|
|
343
403
|
return {
|
|
344
404
|
build,
|
|
345
405
|
watch: async ()=>{
|
|
346
|
-
state.watcher = (0,
|
|
406
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
347
407
|
state,
|
|
348
408
|
/**
|
|
349
409
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
350
410
|
*/ async rebuild (changes) {
|
|
351
411
|
let needsNewContext = changes.some((change)=>{
|
|
352
|
-
|
|
412
|
+
var _state_configBag;
|
|
413
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
353
414
|
});
|
|
354
415
|
if (needsNewContext) {
|
|
355
416
|
state.context = null;
|