tailwindcss 0.0.0-insiders.fb796cd → 0.0.0-insiders.fb85c8f
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 +24 -19
- package/lib/cli/build/plugin.js +178 -125
- package/lib/cli/build/utils.js +31 -21
- package/lib/cli/build/watching.js +22 -20
- package/lib/cli/help/index.js +17 -15
- package/lib/cli/index.js +63 -62
- package/lib/cli/init/index.js +22 -20
- package/lib/cli.js +1 -5
- package/lib/corePluginList.js +7 -2
- package/lib/corePlugins.js +2006 -1900
- package/lib/css/preflight.css +24 -7
- package/lib/featureFlags.js +32 -26
- package/lib/index.js +1 -5
- package/lib/lib/cacheInvalidation.js +13 -9
- package/lib/lib/collapseAdjacentRules.js +12 -8
- package/lib/lib/collapseDuplicateDeclarations.js +11 -9
- package/lib/lib/content.js +50 -20
- package/lib/lib/defaultExtractor.js +49 -37
- package/lib/lib/detectNesting.js +13 -11
- package/lib/lib/evaluateTailwindFunctions.js +42 -38
- package/lib/lib/expandApplyAtRules.js +62 -49
- package/lib/lib/expandTailwindAtRules.js +102 -58
- package/lib/lib/findAtConfigPath.js +11 -9
- package/lib/lib/generateRules.js +124 -104
- package/lib/lib/getModuleDependencies.js +33 -31
- package/lib/lib/handleImportAtRules.js +50 -0
- package/lib/lib/load-config.js +29 -12
- 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 +237 -213
- package/lib/lib/setupTrackingContext.js +30 -27
- package/lib/lib/sharedState.js +37 -36
- package/lib/lib/substituteScreenAtRules.js +9 -7
- package/lib/plugin.js +112 -44
- package/lib/postcss-plugins/nesting/index.js +5 -3
- package/lib/postcss-plugins/nesting/plugin.js +18 -16
- package/lib/processTailwindFeatures.js +19 -17
- package/lib/public/colors.js +269 -267
- 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 +5 -3
- package/lib/public/resolve-config.js +6 -4
- package/lib/util/applyImportantSelector.js +27 -13
- 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 +36 -14
- 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 +262 -121
- package/lib/util/defaults.js +6 -4
- package/lib/util/escapeClassName.js +7 -5
- package/lib/util/escapeCommas.js +4 -2
- package/lib/util/flattenColorPalette.js +5 -3
- package/lib/util/formatVariantSelector.js +54 -125
- package/lib/util/getAllConfigs.js +9 -7
- package/lib/util/hashConfig.js +6 -4
- package/lib/util/isKeyframeRule.js +4 -2
- package/lib/util/isPlainObject.js +5 -3
- 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 +91 -75
- 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 +62 -39
- 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 +60 -51
- package/lib/util/resolveConfigPath.js +15 -11
- package/lib/util/responsive.js +7 -5
- package/lib/util/splitAtTopLevelOnly.js +6 -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/nesting/index.d.ts +4 -0
- package/package.json +47 -59
- package/resolveConfig.d.ts +22 -3
- package/scripts/generate-types.js +1 -2
- package/scripts/release-notes.js +1 -1
- package/src/cli/build/index.js +4 -0
- package/src/cli/build/plugin.js +74 -52
- package/src/cli/build/watching.js +1 -1
- package/src/cli/index.js +1 -0
- package/src/cli.js +1 -5
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +128 -28
- package/src/css/preflight.css +24 -7
- package/src/featureFlags.js +7 -14
- package/src/index.js +1 -5
- package/src/lib/content.js +33 -1
- package/src/lib/defaultExtractor.js +30 -17
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +13 -0
- package/src/lib/expandTailwindAtRules.js +76 -33
- package/src/lib/generateRules.js +42 -33
- package/src/lib/handleImportAtRules.js +34 -0
- package/src/lib/load-config.ts +17 -5
- package/src/lib/normalizeTailwindDirectives.js +0 -27
- package/src/lib/offsets.js +3 -3
- package/src/lib/setupContextUtils.js +58 -50
- package/src/lib/setupTrackingContext.js +2 -4
- package/src/lib/sharedState.js +10 -20
- package/src/plugin.js +86 -60
- package/src/processTailwindFeatures.js +3 -2
- package/src/util/applyImportantSelector.js +20 -12
- package/src/util/cloneNodes.js +35 -14
- package/src/util/color.js +2 -2
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +135 -24
- package/src/util/formatVariantSelector.js +13 -101
- package/src/util/isPlainObject.js +1 -1
- package/src/util/log.js +24 -0
- package/src/util/normalizeConfig.js +37 -27
- package/src/util/pluginUtils.js +17 -9
- package/src/util/prefixSelector.js +1 -0
- package/src/util/pseudoElements.js +167 -0
- package/src/util/resolveConfig.js +42 -24
- 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/config.full.js +110 -15
- package/stubs/config.simple.js +1 -1
- package/stubs/postcss.config.cjs +0 -1
- package/stubs/postcss.config.js +0 -1
- package/types/config.d.ts +14 -15
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +59 -9
- 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/oxide/cli/build/deps.js +0 -81
- package/lib/oxide/cli/build/index.js +0 -51
- package/lib/oxide/cli/build/plugin.js +0 -373
- 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 -214
- package/lib/oxide/cli/init/index.js +0 -50
- 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/oxide/cli/build/deps.ts +0 -91
- package/src/oxide/cli/build/index.ts +0 -47
- package/src/oxide/cli/build/plugin.ts +0 -442
- package/src/oxide/cli/build/utils.ts +0 -74
- package/src/oxide/cli/build/watching.ts +0 -225
- package/src/oxide/cli/help/index.ts +0 -69
- package/src/oxide/cli/index.ts +0 -204
- package/src/oxide/cli/init/index.ts +0 -59
- package/src/oxide/cli.ts +0 -1
- package/src/oxide/postcss-plugin.ts +0 -1
package/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,41 +5,46 @@ 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
|
-
const
|
|
14
|
-
function
|
|
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) {
|
|
15
17
|
return obj && obj.__esModule ? obj : {
|
|
16
18
|
default: obj
|
|
17
19
|
};
|
|
18
20
|
}
|
|
19
21
|
async function build(args) {
|
|
20
|
-
let input = args[
|
|
21
|
-
let shouldWatch = args[
|
|
22
|
+
let input = args['--input'];
|
|
23
|
+
let shouldWatch = args['--watch'];
|
|
22
24
|
// TODO: Deprecate this in future versions
|
|
23
|
-
if (!input && args[
|
|
24
|
-
console.error(
|
|
25
|
-
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];
|
|
26
28
|
}
|
|
27
|
-
if (input && input !==
|
|
28
|
-
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.`);
|
|
29
31
|
process.exit(9);
|
|
30
32
|
}
|
|
31
|
-
if (args[
|
|
32
|
-
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.`);
|
|
33
35
|
process.exit(9);
|
|
34
36
|
}
|
|
37
|
+
if (args['--no-autoprefixer']) {
|
|
38
|
+
console.error('[deprecation] The --no-autoprefixer flag is deprecated and has no effect.');
|
|
39
|
+
}
|
|
35
40
|
// TODO: Reference the @config path here if exists
|
|
36
|
-
let configPath = args[
|
|
37
|
-
let processor = await (0,
|
|
41
|
+
let configPath = args['--config'] ? args['--config'] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
|
|
42
|
+
let processor = await (0, _plugin.createProcessor)(args, configPath);
|
|
38
43
|
if (shouldWatch) {
|
|
39
44
|
// Abort the watcher if stdin is closed to avoid zombie processes
|
|
40
45
|
// You can disable this behavior with --watch=always
|
|
41
|
-
if (args[
|
|
42
|
-
process.stdin.on(
|
|
46
|
+
if (args['--watch'] !== 'always') {
|
|
47
|
+
process.stdin.on('end', ()=>process.exit(0));
|
|
43
48
|
}
|
|
44
49
|
process.stdin.resume();
|
|
45
50
|
await processor.watch();
|
package/lib/cli/build/plugin.js
CHANGED
|
@@ -5,33 +5,117 @@ 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 _log = /*#__PURE__*/
|
|
28
|
-
const
|
|
29
|
-
const _getModuleDependencies = /*#__PURE__*/
|
|
30
|
-
|
|
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) {
|
|
31
39
|
return obj && obj.__esModule ? obj : {
|
|
32
40
|
default: obj
|
|
33
41
|
};
|
|
34
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
|
+
__proto__: null
|
|
66
|
+
};
|
|
67
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
68
|
+
for(var key in obj){
|
|
69
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
70
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
71
|
+
if (desc && (desc.get || desc.set)) {
|
|
72
|
+
Object.defineProperty(newObj, key, desc);
|
|
73
|
+
} else {
|
|
74
|
+
newObj[key] = obj[key];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
newObj.default = obj;
|
|
79
|
+
if (cache) {
|
|
80
|
+
cache.set(obj, newObj);
|
|
81
|
+
}
|
|
82
|
+
return newObj;
|
|
83
|
+
}
|
|
84
|
+
function license() {
|
|
85
|
+
return `/* ! tailwindcss v${_packagejson.default.version} | MIT License | https://tailwindcss.com */\n`;
|
|
86
|
+
}
|
|
87
|
+
async function lightningcss(result, { map = true, minify = true } = {}) {
|
|
88
|
+
try {
|
|
89
|
+
var _browserslist_findConfig;
|
|
90
|
+
var _result_opts_from;
|
|
91
|
+
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;
|
|
92
|
+
let defaultBrowsersListConfig = _packagejson.default.browserslist;
|
|
93
|
+
let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
|
|
94
|
+
let transformed = _lightningcss.default.transform({
|
|
95
|
+
filename: result.opts.from || 'input.css',
|
|
96
|
+
code: Buffer.from(result.css, 'utf-8'),
|
|
97
|
+
minify,
|
|
98
|
+
sourceMap: result.map === undefined ? map : !!result.map,
|
|
99
|
+
inputSourceMap: result.map ? result.map.toString() : undefined,
|
|
100
|
+
targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(browsersListConfig)),
|
|
101
|
+
include: _lightningcss.Features.Nesting,
|
|
102
|
+
exclude: _lightningcss.Features.LogicalProperties
|
|
103
|
+
});
|
|
104
|
+
return Object.assign(result, {
|
|
105
|
+
css: transformed.code.toString(),
|
|
106
|
+
map: result.map ? Object.assign(result.map, {
|
|
107
|
+
toString () {
|
|
108
|
+
var _transformed_map;
|
|
109
|
+
return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
|
|
110
|
+
}
|
|
111
|
+
}) : result.map
|
|
112
|
+
});
|
|
113
|
+
} catch (err) {
|
|
114
|
+
console.error('Unable to use Lightning CSS. Using raw version instead.');
|
|
115
|
+
console.error(err);
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
35
119
|
/**
|
|
36
120
|
*
|
|
37
121
|
* @param {string} [customPostCssPath ]
|
|
@@ -41,8 +125,8 @@ function _interopRequireDefault(obj) {
|
|
|
41
125
|
let file = _path.default.resolve(customPostCssPath);
|
|
42
126
|
// Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
|
|
43
127
|
// @ts-ignore
|
|
44
|
-
let { config ={}
|
|
45
|
-
if (typeof config ===
|
|
128
|
+
let { config = {} } = await (0, _lilconfig.lilconfig)('postcss').load(file);
|
|
129
|
+
if (typeof config === 'function') {
|
|
46
130
|
config = config();
|
|
47
131
|
} else {
|
|
48
132
|
config = Object.assign({}, config);
|
|
@@ -55,13 +139,13 @@ function _interopRequireDefault(obj) {
|
|
|
55
139
|
plugins: (0, _plugins.default)(config, file),
|
|
56
140
|
options: (0, _options.default)(config, file)
|
|
57
141
|
};
|
|
58
|
-
})() : await (0,
|
|
142
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
59
143
|
let configPlugins = config.plugins;
|
|
60
144
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
61
|
-
if (typeof plugin ===
|
|
145
|
+
if (typeof plugin === 'function' && plugin.name === 'tailwindcss') {
|
|
62
146
|
return true;
|
|
63
147
|
}
|
|
64
|
-
if (typeof plugin ===
|
|
148
|
+
if (typeof plugin === 'object' && plugin !== null && plugin.postcssPlugin === 'tailwindcss') {
|
|
65
149
|
return true;
|
|
66
150
|
}
|
|
67
151
|
return false;
|
|
@@ -74,48 +158,16 @@ function _interopRequireDefault(obj) {
|
|
|
74
158
|
config.options
|
|
75
159
|
];
|
|
76
160
|
}
|
|
77
|
-
function loadBuiltinPostcssPlugins() {
|
|
78
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
79
|
-
let IMPORT_COMMENT = "__TAILWIND_RESTORE_IMPORT__: ";
|
|
80
|
-
return [
|
|
81
|
-
[
|
|
82
|
-
(root)=>{
|
|
83
|
-
root.walkAtRules("import", (rule)=>{
|
|
84
|
-
if (rule.params.slice(1).startsWith("tailwindcss/")) {
|
|
85
|
-
rule.after(postcss.comment({
|
|
86
|
-
text: IMPORT_COMMENT + rule.params
|
|
87
|
-
}));
|
|
88
|
-
rule.remove();
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
(0, _deps.loadPostcssImport)(),
|
|
93
|
-
(root)=>{
|
|
94
|
-
root.walkComments((rule)=>{
|
|
95
|
-
if (rule.text.startsWith(IMPORT_COMMENT)) {
|
|
96
|
-
rule.after(postcss.atRule({
|
|
97
|
-
name: "import",
|
|
98
|
-
params: rule.text.replace(IMPORT_COMMENT, "")
|
|
99
|
-
}));
|
|
100
|
-
rule.remove();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
],
|
|
105
|
-
[],
|
|
106
|
-
{}
|
|
107
|
-
];
|
|
108
|
-
}
|
|
109
161
|
let state = {
|
|
110
162
|
/** @type {any} */ context: null,
|
|
111
163
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
112
164
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
113
|
-
/** @type {
|
|
165
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
114
166
|
contextDependencies: new Set(),
|
|
115
167
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
116
168
|
refreshContentPaths () {
|
|
117
169
|
var _this_context;
|
|
118
|
-
this.contentPaths = (0,
|
|
170
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
119
171
|
},
|
|
120
172
|
get config () {
|
|
121
173
|
return this.context.tailwindConfig;
|
|
@@ -130,7 +182,7 @@ let state = {
|
|
|
130
182
|
if (this.watcher && configPath) {
|
|
131
183
|
this.refreshConfigDependencies();
|
|
132
184
|
}
|
|
133
|
-
let config = (0,
|
|
185
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
134
186
|
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
135
187
|
this.configBag = {
|
|
136
188
|
config,
|
|
@@ -141,12 +193,7 @@ let state = {
|
|
|
141
193
|
}
|
|
142
194
|
}
|
|
143
195
|
};
|
|
144
|
-
|
|
145
|
-
this.configBag.config = (0, _resolveConfigJs.default)(this.configBag.config, {
|
|
146
|
-
content: {
|
|
147
|
-
files: []
|
|
148
|
-
}
|
|
149
|
-
});
|
|
196
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
150
197
|
// Override content files if `--content` has been passed explicitly
|
|
151
198
|
if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
|
|
152
199
|
this.configBag.config.content.files = content;
|
|
@@ -155,33 +202,33 @@ let state = {
|
|
|
155
202
|
},
|
|
156
203
|
refreshConfigDependencies () {
|
|
157
204
|
var _this_configBag;
|
|
158
|
-
_sharedState.env.DEBUG && console.time(
|
|
205
|
+
_sharedState.env.DEBUG && console.time('Module dependencies');
|
|
159
206
|
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
160
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
207
|
+
_sharedState.env.DEBUG && console.timeEnd('Module dependencies');
|
|
161
208
|
},
|
|
162
209
|
readContentPaths () {
|
|
163
210
|
let content = [];
|
|
164
211
|
// Resolve globs from the content config
|
|
165
212
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
166
|
-
let files =
|
|
213
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
167
214
|
for (let file of files){
|
|
168
|
-
if (
|
|
215
|
+
if ((0, _featureFlags.flagEnabled)(this.config, 'oxideParser')) {
|
|
169
216
|
content.push({
|
|
170
217
|
file,
|
|
171
218
|
extension: _path.default.extname(file).slice(1)
|
|
172
219
|
});
|
|
173
220
|
} else {
|
|
174
221
|
content.push({
|
|
175
|
-
content: _fs.default.readFileSync(_path.default.resolve(file),
|
|
222
|
+
content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
|
|
176
223
|
extension: _path.default.extname(file).slice(1)
|
|
177
224
|
});
|
|
178
225
|
}
|
|
179
226
|
}
|
|
180
227
|
// Resolve raw content in the tailwind config
|
|
181
228
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
182
|
-
return file !== null && typeof file ===
|
|
229
|
+
return file !== null && typeof file === 'object';
|
|
183
230
|
});
|
|
184
|
-
for (let { raw: htmlContent
|
|
231
|
+
for (let { raw: htmlContent, extension = 'html' } of rawContent){
|
|
185
232
|
content.push({
|
|
186
233
|
content: htmlContent,
|
|
187
234
|
extension
|
|
@@ -189,31 +236,31 @@ let state = {
|
|
|
189
236
|
}
|
|
190
237
|
return content;
|
|
191
238
|
},
|
|
192
|
-
getContext ({ createContext
|
|
239
|
+
getContext ({ createContext, cliConfigPath, root, result, content }) {
|
|
240
|
+
_sharedState.env.DEBUG && console.time('Searching for config');
|
|
241
|
+
var _findAtConfigPath1;
|
|
242
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
243
|
+
_sharedState.env.DEBUG && console.timeEnd('Searching for config');
|
|
193
244
|
if (this.context) {
|
|
194
245
|
this.context.changedContent = this.changedContent.splice(0);
|
|
195
246
|
return this.context;
|
|
196
247
|
}
|
|
197
|
-
_sharedState.env.DEBUG && console.time(
|
|
198
|
-
var _findAtConfigPath;
|
|
199
|
-
let configPath = (_findAtConfigPath = (0, _findAtConfigPathJs.findAtConfigPath)(root, result)) !== null && _findAtConfigPath !== void 0 ? _findAtConfigPath : cliConfigPath;
|
|
200
|
-
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
201
|
-
_sharedState.env.DEBUG && console.time("Loading config");
|
|
248
|
+
_sharedState.env.DEBUG && console.time('Loading config');
|
|
202
249
|
let config = this.loadConfig(configPath, content);
|
|
203
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
204
|
-
_sharedState.env.DEBUG && console.time(
|
|
250
|
+
_sharedState.env.DEBUG && console.timeEnd('Loading config');
|
|
251
|
+
_sharedState.env.DEBUG && console.time('Creating context');
|
|
205
252
|
this.context = createContext(config, []);
|
|
206
253
|
Object.assign(this.context, {
|
|
207
254
|
userConfigPath: configPath
|
|
208
255
|
});
|
|
209
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
210
|
-
_sharedState.env.DEBUG && console.time(
|
|
256
|
+
_sharedState.env.DEBUG && console.timeEnd('Creating context');
|
|
257
|
+
_sharedState.env.DEBUG && console.time('Resolving content paths');
|
|
211
258
|
this.refreshContentPaths();
|
|
212
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
259
|
+
_sharedState.env.DEBUG && console.timeEnd('Resolving content paths');
|
|
213
260
|
if (this.watcher) {
|
|
214
|
-
_sharedState.env.DEBUG && console.time(
|
|
261
|
+
_sharedState.env.DEBUG && console.time('Watch new files');
|
|
215
262
|
this.watcher.refreshWatchedFiles();
|
|
216
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
263
|
+
_sharedState.env.DEBUG && console.timeEnd('Watch new files');
|
|
217
264
|
}
|
|
218
265
|
for (let file of this.readContentPaths()){
|
|
219
266
|
this.context.changedContent.push(file);
|
|
@@ -223,31 +270,35 @@ let state = {
|
|
|
223
270
|
};
|
|
224
271
|
async function createProcessor(args, cliConfigPath) {
|
|
225
272
|
var _args_content;
|
|
226
|
-
let
|
|
227
|
-
let
|
|
228
|
-
let
|
|
229
|
-
let
|
|
230
|
-
let
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
273
|
+
let input = args['--input'];
|
|
274
|
+
let output = args['--output'];
|
|
275
|
+
let includePostCss = args['--postcss'];
|
|
276
|
+
let customPostCssPath = typeof args['--postcss'] === 'string' ? args['--postcss'] : undefined;
|
|
277
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
278
|
+
[],
|
|
279
|
+
[],
|
|
280
|
+
{}
|
|
281
|
+
];
|
|
282
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
283
|
+
if (args['--purge']) {
|
|
284
|
+
_log.default.warn('purge-flag-deprecated', [
|
|
285
|
+
'The `--purge` flag has been deprecated.',
|
|
286
|
+
'Please use `--content` instead.'
|
|
236
287
|
]);
|
|
237
|
-
if (!args[
|
|
238
|
-
args[
|
|
288
|
+
if (!args['--content']) {
|
|
289
|
+
args['--content'] = args['--purge'];
|
|
239
290
|
}
|
|
240
291
|
}
|
|
241
292
|
var _args_content_split;
|
|
242
|
-
let content = (_args_content_split = (_args_content = args[
|
|
293
|
+
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 : [];
|
|
243
294
|
let tailwindPlugin = ()=>{
|
|
244
295
|
return {
|
|
245
|
-
postcssPlugin:
|
|
246
|
-
Once (root, { result
|
|
247
|
-
_sharedState.env.DEBUG && console.time(
|
|
248
|
-
(0, _processTailwindFeatures.default)(({ createContext
|
|
296
|
+
postcssPlugin: 'tailwindcss',
|
|
297
|
+
async Once (root, { result }) {
|
|
298
|
+
_sharedState.env.DEBUG && console.time('Compiling CSS');
|
|
299
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
249
300
|
console.error();
|
|
250
|
-
console.error(
|
|
301
|
+
console.error('Rebuilding...');
|
|
251
302
|
return ()=>{
|
|
252
303
|
return state.getContext({
|
|
253
304
|
createContext,
|
|
@@ -258,7 +309,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
258
309
|
});
|
|
259
310
|
};
|
|
260
311
|
})(root, result);
|
|
261
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
312
|
+
_sharedState.env.DEBUG && console.timeEnd('Compiling CSS');
|
|
262
313
|
}
|
|
263
314
|
};
|
|
264
315
|
};
|
|
@@ -266,60 +317,62 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
266
317
|
let plugins = [
|
|
267
318
|
...beforePlugins,
|
|
268
319
|
tailwindPlugin,
|
|
269
|
-
!args[
|
|
270
|
-
...afterPlugins
|
|
271
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
272
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
320
|
+
!args['--minify'] && _utils.formatNodes,
|
|
321
|
+
...afterPlugins
|
|
273
322
|
].filter(Boolean);
|
|
274
323
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
275
|
-
let processor =
|
|
324
|
+
let processor = (0, _postcss.default)(plugins);
|
|
276
325
|
async function readInput() {
|
|
277
326
|
// Piping in data, let's drain the stdin
|
|
278
|
-
if (input ===
|
|
327
|
+
if (input === '-') {
|
|
279
328
|
return (0, _utils.drainStdin)();
|
|
280
329
|
}
|
|
281
330
|
// Input file has been provided
|
|
282
331
|
if (input) {
|
|
283
|
-
return _fs.default.promises.readFile(_path.default.resolve(input),
|
|
332
|
+
return _fs.default.promises.readFile(_path.default.resolve(input), 'utf8');
|
|
284
333
|
}
|
|
285
334
|
// No input file provided, fallback to default atrules
|
|
286
|
-
return
|
|
335
|
+
return '@tailwind base; @tailwind components; @tailwind utilities';
|
|
287
336
|
}
|
|
288
337
|
async function build() {
|
|
289
338
|
let start = process.hrtime.bigint();
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
339
|
+
let options = {
|
|
340
|
+
...postcssOptions,
|
|
341
|
+
from: input,
|
|
342
|
+
to: output
|
|
343
|
+
};
|
|
344
|
+
return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
|
|
345
|
+
...options,
|
|
346
|
+
minify: !!args['--minify']
|
|
294
347
|
})).then((result)=>{
|
|
295
348
|
if (!state.watcher) {
|
|
296
349
|
return result;
|
|
297
350
|
}
|
|
298
|
-
_sharedState.env.DEBUG && console.time(
|
|
351
|
+
_sharedState.env.DEBUG && console.time('Recording PostCSS dependencies');
|
|
299
352
|
for (let message of result.messages){
|
|
300
|
-
if (message.type ===
|
|
353
|
+
if (message.type === 'dependency') {
|
|
301
354
|
state.contextDependencies.add(message.file);
|
|
302
355
|
}
|
|
303
356
|
}
|
|
304
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
357
|
+
_sharedState.env.DEBUG && console.timeEnd('Recording PostCSS dependencies');
|
|
305
358
|
// TODO: This needs to be in a different spot
|
|
306
|
-
_sharedState.env.DEBUG && console.time(
|
|
359
|
+
_sharedState.env.DEBUG && console.time('Watch new files');
|
|
307
360
|
state.watcher.refreshWatchedFiles();
|
|
308
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
361
|
+
_sharedState.env.DEBUG && console.timeEnd('Watch new files');
|
|
309
362
|
return result;
|
|
310
363
|
}).then((result)=>{
|
|
311
364
|
if (!output) {
|
|
312
|
-
process.stdout.write(result.css);
|
|
365
|
+
process.stdout.write(license() + result.css);
|
|
313
366
|
return;
|
|
314
367
|
}
|
|
315
368
|
return Promise.all([
|
|
316
|
-
(0, _utils.outputFile)(result.opts.to, result.css),
|
|
317
|
-
result.map && (0, _utils.outputFile)(result.opts.to +
|
|
369
|
+
(0, _utils.outputFile)(result.opts.to, license() + result.css),
|
|
370
|
+
result.map && (0, _utils.outputFile)(result.opts.to + '.map', result.map.toString())
|
|
318
371
|
]);
|
|
319
372
|
}).then(()=>{
|
|
320
373
|
let end = process.hrtime.bigint();
|
|
321
374
|
console.error();
|
|
322
|
-
console.error(
|
|
375
|
+
console.error('Done in', (end - start) / BigInt(1e6) + 'ms.');
|
|
323
376
|
}).then(()=>{}, (err)=>{
|
|
324
377
|
// TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
|
|
325
378
|
// that were collected before the error occurred
|
|
@@ -345,13 +398,13 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
345
398
|
extension: change.extension
|
|
346
399
|
})));
|
|
347
400
|
}
|
|
348
|
-
if (input !== undefined && input !==
|
|
401
|
+
if (input !== undefined && input !== '-') {
|
|
349
402
|
state.contextDependencies.add(_path.default.resolve(input));
|
|
350
403
|
}
|
|
351
404
|
return {
|
|
352
405
|
build,
|
|
353
406
|
watch: async ()=>{
|
|
354
|
-
state.watcher = (0,
|
|
407
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
355
408
|
state,
|
|
356
409
|
/**
|
|
357
410
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|