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