tailwindcss 0.0.0-insiders.b2f132e → 0.0.0-insiders.b33c302
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 +181 -126
- 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 +65 -64
- package/lib/cli/init/index.js +22 -20
- package/lib/cli.js +1 -5
- package/lib/corePluginList.js +4 -1
- package/lib/corePlugins.js +1962 -1895
- package/lib/css/preflight.css +15 -4
- package/lib/featureFlags.js +36 -29
- 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 +15 -28
- package/lib/lib/detectNesting.js +13 -11
- package/lib/lib/evaluateTailwindFunctions.js +43 -39
- package/lib/lib/expandApplyAtRules.js +56 -49
- package/lib/lib/expandTailwindAtRules.js +98 -55
- package/lib/lib/findAtConfigPath.js +11 -9
- package/lib/lib/generateRules.js +97 -96
- package/lib/lib/getModuleDependencies.js +35 -32
- package/lib/lib/handleImportAtRules.js +50 -0
- package/lib/lib/load-config.js +16 -10
- 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 +227 -202
- package/lib/lib/setupTrackingContext.js +31 -27
- package/lib/lib/sharedState.js +37 -36
- package/lib/lib/substituteScreenAtRules.js +9 -7
- package/lib/plugin.js +109 -43
- 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 +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 +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 +50 -126
- 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 +100 -81
- 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 +49 -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 +25 -19
- 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/package.json +46 -59
- package/scripts/release-notes.js +1 -1
- package/src/cli/build/index.js +4 -0
- package/src/cli/build/plugin.js +73 -48
- package/src/cli/index.js +1 -0
- package/src/cli.js +1 -5
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +114 -29
- package/src/css/preflight.css +15 -4
- package/src/featureFlags.js +7 -14
- package/src/index.js +1 -5
- package/src/lib/content.js +33 -1
- package/src/lib/defaultExtractor.js +2 -12
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +6 -0
- package/src/lib/expandTailwindAtRules.js +70 -34
- package/src/lib/generateRules.js +22 -29
- package/src/lib/getModuleDependencies.js +2 -1
- package/src/lib/handleImportAtRules.js +34 -0
- package/src/lib/load-config.ts +9 -5
- package/src/lib/normalizeTailwindDirectives.js +0 -27
- package/src/lib/offsets.js +3 -3
- package/src/lib/setupContextUtils.js +24 -20
- 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/public/colors.js +22 -0
- package/src/util/applyImportantSelector.js +20 -12
- 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 +6 -101
- package/src/util/log.js +24 -0
- package/src/util/normalizeConfig.js +37 -27
- package/src/util/pluginUtils.js +1 -9
- package/src/util/prefixSelector.js +1 -0
- package/src/util/pseudoElements.js +167 -0
- 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 +43 -8
- 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 +8 -12
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +32 -1
- 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,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
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
|
+
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
|
+
}
|
|
35
120
|
/**
|
|
36
121
|
*
|
|
37
122
|
* @param {string} [customPostCssPath ]
|
|
@@ -41,8 +126,8 @@ function _interopRequireDefault(obj) {
|
|
|
41
126
|
let file = _path.default.resolve(customPostCssPath);
|
|
42
127
|
// Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
|
|
43
128
|
// @ts-ignore
|
|
44
|
-
let { config ={}
|
|
45
|
-
if (typeof config ===
|
|
129
|
+
let { config = {} } = await (0, _lilconfig.lilconfig)('postcss').load(file);
|
|
130
|
+
if (typeof config === 'function') {
|
|
46
131
|
config = config();
|
|
47
132
|
} else {
|
|
48
133
|
config = Object.assign({}, config);
|
|
@@ -55,13 +140,13 @@ function _interopRequireDefault(obj) {
|
|
|
55
140
|
plugins: (0, _plugins.default)(config, file),
|
|
56
141
|
options: (0, _options.default)(config, file)
|
|
57
142
|
};
|
|
58
|
-
})() : await (0,
|
|
143
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
59
144
|
let configPlugins = config.plugins;
|
|
60
145
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
61
|
-
if (typeof plugin ===
|
|
146
|
+
if (typeof plugin === 'function' && plugin.name === 'tailwindcss') {
|
|
62
147
|
return true;
|
|
63
148
|
}
|
|
64
|
-
if (typeof plugin ===
|
|
149
|
+
if (typeof plugin === 'object' && plugin !== null && plugin.postcssPlugin === 'tailwindcss') {
|
|
65
150
|
return true;
|
|
66
151
|
}
|
|
67
152
|
return false;
|
|
@@ -74,48 +159,16 @@ function _interopRequireDefault(obj) {
|
|
|
74
159
|
config.options
|
|
75
160
|
];
|
|
76
161
|
}
|
|
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
162
|
let state = {
|
|
110
163
|
/** @type {any} */ context: null,
|
|
111
164
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
112
165
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
113
|
-
/** @type {
|
|
166
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
114
167
|
contextDependencies: new Set(),
|
|
115
168
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
116
169
|
refreshContentPaths () {
|
|
117
170
|
var _this_context;
|
|
118
|
-
this.contentPaths = (0,
|
|
171
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
119
172
|
},
|
|
120
173
|
get config () {
|
|
121
174
|
return this.context.tailwindConfig;
|
|
@@ -127,10 +180,11 @@ let state = {
|
|
|
127
180
|
};
|
|
128
181
|
},
|
|
129
182
|
loadConfig (configPath, content) {
|
|
183
|
+
var _content;
|
|
130
184
|
if (this.watcher && configPath) {
|
|
131
185
|
this.refreshConfigDependencies();
|
|
132
186
|
}
|
|
133
|
-
let config = (0,
|
|
187
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
134
188
|
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
135
189
|
this.configBag = {
|
|
136
190
|
config,
|
|
@@ -141,47 +195,42 @@ let state = {
|
|
|
141
195
|
}
|
|
142
196
|
}
|
|
143
197
|
};
|
|
144
|
-
|
|
145
|
-
this.configBag.config = (0, _resolveConfigJs.default)(this.configBag.config, {
|
|
146
|
-
content: {
|
|
147
|
-
files: []
|
|
148
|
-
}
|
|
149
|
-
});
|
|
198
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
150
199
|
// Override content files if `--content` has been passed explicitly
|
|
151
|
-
if ((content === null ||
|
|
200
|
+
if (((_content = content) === null || _content === void 0 ? void 0 : _content.length) > 0) {
|
|
152
201
|
this.configBag.config.content.files = content;
|
|
153
202
|
}
|
|
154
203
|
return this.configBag.config;
|
|
155
204
|
},
|
|
156
205
|
refreshConfigDependencies () {
|
|
157
206
|
var _this_configBag;
|
|
158
|
-
_sharedState.env.DEBUG && console.time(
|
|
207
|
+
_sharedState.env.DEBUG && console.time('Module dependencies');
|
|
159
208
|
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
160
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
209
|
+
_sharedState.env.DEBUG && console.timeEnd('Module dependencies');
|
|
161
210
|
},
|
|
162
211
|
readContentPaths () {
|
|
163
212
|
let content = [];
|
|
164
213
|
// Resolve globs from the content config
|
|
165
214
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
166
|
-
let files =
|
|
215
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
167
216
|
for (let file of files){
|
|
168
|
-
if (
|
|
217
|
+
if ((0, _featureFlags.flagEnabled)(this.config, 'oxideParser')) {
|
|
169
218
|
content.push({
|
|
170
219
|
file,
|
|
171
220
|
extension: _path.default.extname(file).slice(1)
|
|
172
221
|
});
|
|
173
222
|
} else {
|
|
174
223
|
content.push({
|
|
175
|
-
content: _fs.default.readFileSync(_path.default.resolve(file),
|
|
224
|
+
content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
|
|
176
225
|
extension: _path.default.extname(file).slice(1)
|
|
177
226
|
});
|
|
178
227
|
}
|
|
179
228
|
}
|
|
180
229
|
// Resolve raw content in the tailwind config
|
|
181
230
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
182
|
-
return file !== null && typeof file ===
|
|
231
|
+
return file !== null && typeof file === 'object';
|
|
183
232
|
});
|
|
184
|
-
for (let { raw: htmlContent
|
|
233
|
+
for (let { raw: htmlContent, extension = 'html' } of rawContent){
|
|
185
234
|
content.push({
|
|
186
235
|
content: htmlContent,
|
|
187
236
|
extension
|
|
@@ -189,31 +238,31 @@ let state = {
|
|
|
189
238
|
}
|
|
190
239
|
return content;
|
|
191
240
|
},
|
|
192
|
-
getContext ({ createContext
|
|
241
|
+
getContext ({ createContext, cliConfigPath, root, result, content }) {
|
|
193
242
|
if (this.context) {
|
|
194
243
|
this.context.changedContent = this.changedContent.splice(0);
|
|
195
244
|
return this.context;
|
|
196
245
|
}
|
|
197
|
-
_sharedState.env.DEBUG && console.time(
|
|
198
|
-
var
|
|
199
|
-
let configPath = (
|
|
200
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
201
|
-
_sharedState.env.DEBUG && console.time(
|
|
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');
|
|
202
251
|
let config = this.loadConfig(configPath, content);
|
|
203
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
204
|
-
_sharedState.env.DEBUG && console.time(
|
|
252
|
+
_sharedState.env.DEBUG && console.timeEnd('Loading config');
|
|
253
|
+
_sharedState.env.DEBUG && console.time('Creating context');
|
|
205
254
|
this.context = createContext(config, []);
|
|
206
255
|
Object.assign(this.context, {
|
|
207
256
|
userConfigPath: configPath
|
|
208
257
|
});
|
|
209
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
210
|
-
_sharedState.env.DEBUG && console.time(
|
|
258
|
+
_sharedState.env.DEBUG && console.timeEnd('Creating context');
|
|
259
|
+
_sharedState.env.DEBUG && console.time('Resolving content paths');
|
|
211
260
|
this.refreshContentPaths();
|
|
212
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
261
|
+
_sharedState.env.DEBUG && console.timeEnd('Resolving content paths');
|
|
213
262
|
if (this.watcher) {
|
|
214
|
-
_sharedState.env.DEBUG && console.time(
|
|
263
|
+
_sharedState.env.DEBUG && console.time('Watch new files');
|
|
215
264
|
this.watcher.refreshWatchedFiles();
|
|
216
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
265
|
+
_sharedState.env.DEBUG && console.timeEnd('Watch new files');
|
|
217
266
|
}
|
|
218
267
|
for (let file of this.readContentPaths()){
|
|
219
268
|
this.context.changedContent.push(file);
|
|
@@ -223,31 +272,35 @@ let state = {
|
|
|
223
272
|
};
|
|
224
273
|
async function createProcessor(args, cliConfigPath) {
|
|
225
274
|
var _args_content;
|
|
226
|
-
let
|
|
227
|
-
let
|
|
228
|
-
let
|
|
229
|
-
let
|
|
230
|
-
let
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
275
|
+
let input = args['--input'];
|
|
276
|
+
let output = args['--output'];
|
|
277
|
+
let includePostCss = args['--postcss'];
|
|
278
|
+
let customPostCssPath = typeof args['--postcss'] === 'string' ? args['--postcss'] : undefined;
|
|
279
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
280
|
+
[],
|
|
281
|
+
[],
|
|
282
|
+
{}
|
|
283
|
+
];
|
|
284
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
285
|
+
if (args['--purge']) {
|
|
286
|
+
_log.default.warn('purge-flag-deprecated', [
|
|
287
|
+
'The `--purge` flag has been deprecated.',
|
|
288
|
+
'Please use `--content` instead.'
|
|
236
289
|
]);
|
|
237
|
-
if (!args[
|
|
238
|
-
args[
|
|
290
|
+
if (!args['--content']) {
|
|
291
|
+
args['--content'] = args['--purge'];
|
|
239
292
|
}
|
|
240
293
|
}
|
|
241
294
|
var _args_content_split;
|
|
242
|
-
let content = (_args_content_split = (_args_content = args[
|
|
295
|
+
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
296
|
let tailwindPlugin = ()=>{
|
|
244
297
|
return {
|
|
245
|
-
postcssPlugin:
|
|
246
|
-
Once (root, { result
|
|
247
|
-
_sharedState.env.DEBUG && console.time(
|
|
248
|
-
(0, _processTailwindFeatures.default)(({ createContext
|
|
298
|
+
postcssPlugin: 'tailwindcss',
|
|
299
|
+
async Once (root, { result }) {
|
|
300
|
+
_sharedState.env.DEBUG && console.time('Compiling CSS');
|
|
301
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
249
302
|
console.error();
|
|
250
|
-
console.error(
|
|
303
|
+
console.error('Rebuilding...');
|
|
251
304
|
return ()=>{
|
|
252
305
|
return state.getContext({
|
|
253
306
|
createContext,
|
|
@@ -258,7 +311,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
258
311
|
});
|
|
259
312
|
};
|
|
260
313
|
})(root, result);
|
|
261
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
314
|
+
_sharedState.env.DEBUG && console.timeEnd('Compiling CSS');
|
|
262
315
|
}
|
|
263
316
|
};
|
|
264
317
|
};
|
|
@@ -266,60 +319,62 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
266
319
|
let plugins = [
|
|
267
320
|
...beforePlugins,
|
|
268
321
|
tailwindPlugin,
|
|
269
|
-
!args[
|
|
270
|
-
...afterPlugins
|
|
271
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
272
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
322
|
+
!args['--minify'] && _utils.formatNodes,
|
|
323
|
+
...afterPlugins
|
|
273
324
|
].filter(Boolean);
|
|
274
325
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
275
|
-
let processor =
|
|
326
|
+
let processor = (0, _postcss.default)(plugins);
|
|
276
327
|
async function readInput() {
|
|
277
328
|
// Piping in data, let's drain the stdin
|
|
278
|
-
if (input ===
|
|
329
|
+
if (input === '-') {
|
|
279
330
|
return (0, _utils.drainStdin)();
|
|
280
331
|
}
|
|
281
332
|
// Input file has been provided
|
|
282
333
|
if (input) {
|
|
283
|
-
return _fs.default.promises.readFile(_path.default.resolve(input),
|
|
334
|
+
return _fs.default.promises.readFile(_path.default.resolve(input), 'utf8');
|
|
284
335
|
}
|
|
285
336
|
// No input file provided, fallback to default atrules
|
|
286
|
-
return
|
|
337
|
+
return '@tailwind base; @tailwind components; @tailwind utilities';
|
|
287
338
|
}
|
|
288
339
|
async function build() {
|
|
289
340
|
let start = process.hrtime.bigint();
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
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']
|
|
294
349
|
})).then((result)=>{
|
|
295
350
|
if (!state.watcher) {
|
|
296
351
|
return result;
|
|
297
352
|
}
|
|
298
|
-
_sharedState.env.DEBUG && console.time(
|
|
353
|
+
_sharedState.env.DEBUG && console.time('Recording PostCSS dependencies');
|
|
299
354
|
for (let message of result.messages){
|
|
300
|
-
if (message.type ===
|
|
355
|
+
if (message.type === 'dependency') {
|
|
301
356
|
state.contextDependencies.add(message.file);
|
|
302
357
|
}
|
|
303
358
|
}
|
|
304
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
359
|
+
_sharedState.env.DEBUG && console.timeEnd('Recording PostCSS dependencies');
|
|
305
360
|
// TODO: This needs to be in a different spot
|
|
306
|
-
_sharedState.env.DEBUG && console.time(
|
|
361
|
+
_sharedState.env.DEBUG && console.time('Watch new files');
|
|
307
362
|
state.watcher.refreshWatchedFiles();
|
|
308
|
-
_sharedState.env.DEBUG && console.timeEnd(
|
|
363
|
+
_sharedState.env.DEBUG && console.timeEnd('Watch new files');
|
|
309
364
|
return result;
|
|
310
365
|
}).then((result)=>{
|
|
311
366
|
if (!output) {
|
|
312
|
-
process.stdout.write(result.css);
|
|
367
|
+
process.stdout.write(license() + result.css);
|
|
313
368
|
return;
|
|
314
369
|
}
|
|
315
370
|
return Promise.all([
|
|
316
|
-
(0, _utils.outputFile)(result.opts.to, result.css),
|
|
317
|
-
result.map && (0, _utils.outputFile)(result.opts.to +
|
|
371
|
+
(0, _utils.outputFile)(result.opts.to, license() + result.css),
|
|
372
|
+
result.map && (0, _utils.outputFile)(result.opts.to + '.map', result.map.toString())
|
|
318
373
|
]);
|
|
319
374
|
}).then(()=>{
|
|
320
375
|
let end = process.hrtime.bigint();
|
|
321
376
|
console.error();
|
|
322
|
-
console.error(
|
|
377
|
+
console.error('Done in', (end - start) / BigInt(1e6) + 'ms.');
|
|
323
378
|
}).then(()=>{}, (err)=>{
|
|
324
379
|
// TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
|
|
325
380
|
// that were collected before the error occurred
|
|
@@ -345,13 +400,13 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
345
400
|
extension: change.extension
|
|
346
401
|
})));
|
|
347
402
|
}
|
|
348
|
-
if (input !== undefined && input !==
|
|
403
|
+
if (input !== undefined && input !== '-') {
|
|
349
404
|
state.contextDependencies.add(_path.default.resolve(input));
|
|
350
405
|
}
|
|
351
406
|
return {
|
|
352
407
|
build,
|
|
353
408
|
watch: async ()=>{
|
|
354
|
-
state.watcher = (0,
|
|
409
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
355
410
|
state,
|
|
356
411
|
/**
|
|
357
412
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|