tailwindcss 0.0.0-insiders.26cab53 → 0.0.0-insiders.2702cfc
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 +10 -10
- package/lib/cli/build/deps.js +17 -9
- package/lib/cli/build/index.js +20 -10
- package/lib/cli/build/plugin.js +125 -69
- package/lib/cli/build/utils.js +18 -8
- package/lib/cli/build/watching.js +92 -23
- package/lib/cli/help/index.js +6 -4
- package/lib/cli/index.js +222 -10
- package/lib/cli/init/index.js +29 -12
- package/lib/cli-peer-dependencies.js +12 -4
- package/lib/cli.js +1 -227
- package/lib/corePluginList.js +12 -2
- package/lib/corePlugins.js +808 -151
- package/lib/css/preflight.css +30 -9
- package/lib/featureFlags.js +27 -18
- package/lib/index.js +1 -47
- package/lib/lib/cacheInvalidation.js +7 -5
- package/lib/lib/collapseAdjacentRules.js +5 -3
- package/lib/lib/collapseDuplicateDeclarations.js +12 -10
- package/lib/lib/content.js +106 -21
- package/lib/lib/defaultExtractor.js +82 -40
- package/lib/lib/evaluateTailwindFunctions.js +25 -21
- package/lib/lib/expandApplyAtRules.js +93 -47
- package/lib/lib/expandTailwindAtRules.js +56 -24
- package/lib/lib/findAtConfigPath.js +13 -11
- package/lib/lib/generateRules.js +312 -139
- package/lib/lib/getModuleDependencies.js +85 -37
- package/lib/lib/load-config.js +61 -0
- package/lib/lib/normalizeTailwindDirectives.js +6 -4
- package/lib/lib/offsets.js +151 -7
- package/lib/lib/partitionApplyAtRules.js +3 -1
- package/lib/lib/regex.js +22 -8
- package/lib/lib/remap-bitfield.js +89 -0
- package/lib/lib/resolveDefaultsAtRules.js +42 -38
- package/lib/lib/setupContextUtils.js +500 -189
- package/lib/lib/setupTrackingContext.js +50 -26
- package/lib/lib/sharedState.js +29 -8
- package/lib/lib/substituteScreenAtRules.js +5 -3
- package/lib/plugin.js +48 -0
- package/lib/postcss-plugins/nesting/index.js +3 -1
- package/lib/postcss-plugins/nesting/plugin.js +10 -8
- package/lib/processTailwindFeatures.js +15 -15
- package/lib/public/colors.js +50 -26
- package/lib/public/create-plugin.js +5 -3
- package/lib/public/default-config.js +6 -4
- package/lib/public/default-theme.js +6 -4
- package/lib/public/load-config.js +12 -0
- package/lib/public/resolve-config.js +6 -4
- package/lib/util/applyImportantSelector.js +38 -0
- package/lib/util/bigSign.js +3 -1
- package/lib/util/buildMediaQuery.js +9 -4
- package/lib/util/cloneDeep.js +3 -1
- package/lib/util/cloneNodes.js +36 -14
- package/lib/util/color.js +31 -13
- package/lib/util/colorNames.js +752 -0
- package/lib/util/configurePlugins.js +4 -2
- package/lib/util/createPlugin.js +3 -1
- package/lib/util/createUtilityPlugin.js +7 -5
- package/lib/util/dataTypes.js +240 -35
- package/lib/util/defaults.js +9 -7
- package/lib/util/escapeClassName.js +10 -8
- package/lib/util/escapeCommas.js +3 -1
- package/lib/util/flattenColorPalette.js +3 -1
- package/lib/util/formatVariantSelector.js +147 -162
- package/lib/util/getAllConfigs.js +8 -6
- package/lib/util/hashConfig.js +6 -4
- package/lib/util/isKeyframeRule.js +3 -1
- package/lib/util/isPlainObject.js +4 -2
- package/lib/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +5 -3
- package/lib/util/log.js +8 -4
- package/lib/util/nameClass.js +15 -6
- package/lib/util/negateValue.js +4 -2
- package/lib/util/normalizeConfig.js +45 -31
- package/lib/util/normalizeScreens.js +108 -3
- package/lib/util/parseAnimationValue.js +5 -3
- package/lib/util/parseBoxShadowValue.js +6 -2
- package/lib/util/parseDependency.js +6 -4
- package/lib/util/parseGlob.js +7 -6
- package/lib/util/parseObjectStyles.js +10 -8
- package/lib/util/pluginUtils.js +137 -43
- package/lib/util/prefixSelector.js +27 -11
- package/lib/util/pseudoElements.js +212 -0
- package/lib/util/removeAlphaVariables.js +5 -1
- package/lib/util/resolveConfig.js +22 -25
- package/lib/util/resolveConfigPath.js +28 -10
- package/lib/util/responsive.js +6 -4
- package/lib/util/splitAtTopLevelOnly.js +6 -2
- package/lib/util/tap.js +3 -1
- package/lib/util/toColorValue.js +3 -1
- package/lib/util/toPath.js +3 -1
- package/lib/util/transformThemeValue.js +7 -5
- package/lib/util/validateConfig.js +17 -4
- package/lib/util/validateFormalSyntax.js +26 -0
- package/lib/util/withAlphaVariable.js +8 -4
- 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 +49 -44
- package/peers/index.js +71553 -53118
- package/plugin.d.ts +3 -3
- package/resolveConfig.d.ts +30 -2
- package/scripts/generate-types.js +1 -2
- package/scripts/release-channel.js +18 -0
- package/scripts/release-notes.js +21 -0
- package/src/cli/build/index.js +13 -9
- package/src/cli/build/plugin.js +109 -40
- package/src/cli/build/watching.js +109 -14
- package/src/cli/index.js +216 -3
- package/src/cli/init/index.js +37 -8
- package/src/cli.js +1 -221
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +620 -76
- package/src/css/preflight.css +30 -9
- package/src/featureFlags.js +4 -5
- package/src/index.js +1 -47
- package/src/lib/content.js +108 -12
- package/src/lib/defaultExtractor.js +67 -20
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +67 -16
- package/src/lib/expandTailwindAtRules.js +37 -9
- package/src/lib/findAtConfigPath.js +4 -6
- package/src/lib/generateRules.js +330 -110
- package/src/lib/getModuleDependencies.js +70 -30
- package/src/lib/load-config.ts +55 -0
- package/src/lib/offsets.js +177 -5
- package/src/lib/remap-bitfield.js +82 -0
- package/src/lib/resolveDefaultsAtRules.js +16 -14
- package/src/lib/setupContextUtils.js +453 -110
- package/src/lib/setupTrackingContext.js +37 -14
- package/src/lib/sharedState.js +13 -4
- package/src/plugin.js +47 -0
- package/src/processTailwindFeatures.js +3 -5
- 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 +26 -0
- package/src/util/buildMediaQuery.js +5 -3
- package/src/util/cloneNodes.js +35 -14
- package/src/util/color.js +19 -4
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +213 -23
- package/src/util/formatVariantSelector.js +170 -165
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/isPlainObject.js +1 -1
- package/src/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +1 -1
- package/src/util/nameClass.js +4 -0
- package/src/util/negateValue.js +1 -1
- package/src/util/normalizeConfig.js +21 -4
- package/src/util/normalizeScreens.js +99 -4
- package/src/util/parseAnimationValue.js +1 -1
- package/src/util/parseGlob.js +1 -2
- package/src/util/pluginUtils.js +127 -24
- package/src/util/prefixSelector.js +29 -10
- package/src/util/pseudoElements.js +171 -0
- package/src/util/removeAlphaVariables.js +2 -0
- package/src/util/resolveConfig.js +3 -9
- package/src/util/resolveConfigPath.js +14 -1
- package/src/util/splitAtTopLevelOnly.js +4 -1
- package/src/util/validateConfig.js +13 -0
- package/src/util/validateFormalSyntax.js +34 -0
- package/src/util/withAlphaVariable.js +2 -2
- 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} +282 -180
- package/stubs/{simpleConfig.stub.js → config.simple.js} +0 -1
- package/stubs/postcss.config.js +6 -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 +63 -24
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +152 -86
- package/types/index.d.ts +7 -3
- package/CHANGELOG.md +0 -2263
- package/lib/cli/shared.js +0 -12
- package/lib/constants.js +0 -44
- package/lib/lib/detectNesting.js +0 -37
- package/scripts/install-integrations.js +0 -27
- package/scripts/rebuildFixtures.js +0 -68
- package/src/cli/shared.js +0 -5
- package/src/constants.js +0 -17
- package/src/lib/detectNesting.js +0 -39
- /package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -0
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://tailwindcss.com
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
<a href="https://tailwindcss.com" target="_blank">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-dark.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg">
|
|
6
|
+
<img alt="Tailwind CSS" src="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg" width="350" height="70" style="max-width: 100%;">
|
|
7
|
+
</picture>
|
|
7
8
|
</a>
|
|
8
9
|
</p>
|
|
9
10
|
|
|
@@ -11,15 +12,14 @@
|
|
|
11
12
|
A utility-first CSS framework for rapidly building custom user interfaces.
|
|
12
13
|
</p>
|
|
13
14
|
|
|
14
|
-
|
|
15
15
|
<p align="center">
|
|
16
|
-
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/workflow/status/tailwindlabs/tailwindcss/
|
|
16
|
+
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=main" alt="Build Status"></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
|
|
18
18
|
<a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
|
|
19
|
-
<a href="https://github.com/tailwindcss/tailwindcss/blob/
|
|
19
|
+
<a href="https://github.com/tailwindcss/tailwindcss/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
---
|
|
23
23
|
|
|
24
24
|
## Documentation
|
|
25
25
|
|
|
@@ -37,4 +37,4 @@ For casual chit-chat with others using the framework:
|
|
|
37
37
|
|
|
38
38
|
## Contributing
|
|
39
39
|
|
|
40
|
-
If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/
|
|
40
|
+
If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/main/.github/CONTRIBUTING.md) **before submitting a pull request**.
|
package/lib/cli/build/deps.js
CHANGED
|
@@ -10,25 +10,33 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
loadPostcss: ()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
loadPostcss: function() {
|
|
14
|
+
return loadPostcss;
|
|
15
|
+
},
|
|
16
|
+
loadPostcssImport: function() {
|
|
17
|
+
return loadPostcssImport;
|
|
18
|
+
},
|
|
19
|
+
loadCssNano: function() {
|
|
20
|
+
return loadCssNano;
|
|
21
|
+
},
|
|
22
|
+
loadAutoprefixer: function() {
|
|
23
|
+
return loadAutoprefixer;
|
|
24
|
+
}
|
|
17
25
|
});
|
|
18
|
-
const
|
|
26
|
+
const _index = require("../../../peers/index.js");
|
|
19
27
|
function loadPostcss() {
|
|
20
28
|
// Try to load a local `postcss` version first
|
|
21
29
|
try {
|
|
22
30
|
return require("postcss");
|
|
23
31
|
} catch {}
|
|
24
|
-
return (0,
|
|
32
|
+
return (0, _index.lazyPostcss)();
|
|
25
33
|
}
|
|
26
34
|
function loadPostcssImport() {
|
|
27
35
|
// Try to load a local `postcss-import` version first
|
|
28
36
|
try {
|
|
29
37
|
return require("postcss-import");
|
|
30
38
|
} catch {}
|
|
31
|
-
return (0,
|
|
39
|
+
return (0, _index.lazyPostcssImport)();
|
|
32
40
|
}
|
|
33
41
|
function loadCssNano() {
|
|
34
42
|
let options = {
|
|
@@ -43,12 +51,12 @@ function loadCssNano() {
|
|
|
43
51
|
try {
|
|
44
52
|
return require("cssnano");
|
|
45
53
|
} catch {}
|
|
46
|
-
return (0,
|
|
54
|
+
return (0, _index.lazyCssnano)()(options);
|
|
47
55
|
}
|
|
48
56
|
function loadAutoprefixer() {
|
|
49
57
|
// Try to load a local `autoprefixer` version first
|
|
50
58
|
try {
|
|
51
59
|
return require("autoprefixer");
|
|
52
60
|
} catch {}
|
|
53
|
-
return (0,
|
|
61
|
+
return (0, _index.lazyAutoprefixer)();
|
|
54
62
|
}
|
package/lib/cli/build/index.js
CHANGED
|
@@ -5,17 +5,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "build", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return build;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const _fs = /*#__PURE__*/
|
|
11
|
-
const _path = /*#__PURE__*/
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
13
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
+
const _resolveConfigPath = require("../../util/resolveConfigPath.js");
|
|
15
|
+
const _plugin = require("./plugin.js");
|
|
16
|
+
function _interop_require_default(obj) {
|
|
14
17
|
return obj && obj.__esModule ? obj : {
|
|
15
18
|
default: obj
|
|
16
19
|
};
|
|
17
20
|
}
|
|
18
|
-
async function build(args
|
|
21
|
+
async function build(args) {
|
|
19
22
|
let input = args["--input"];
|
|
20
23
|
let shouldWatch = args["--watch"];
|
|
21
24
|
// TODO: Deprecate this in future versions
|
|
@@ -32,13 +35,20 @@ async function build(args, configs) {
|
|
|
32
35
|
process.exit(9);
|
|
33
36
|
}
|
|
34
37
|
// TODO: Reference the @config path here if exists
|
|
35
|
-
let configPath = args["--config"] ? args["--config"] : (
|
|
36
|
-
let processor = await (0,
|
|
38
|
+
let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
|
|
39
|
+
let processor = await (0, _plugin.createProcessor)(args, configPath);
|
|
37
40
|
if (shouldWatch) {
|
|
38
|
-
|
|
41
|
+
// Abort the watcher if stdin is closed to avoid zombie processes
|
|
42
|
+
// You can disable this behavior with --watch=always
|
|
43
|
+
if (args["--watch"] !== "always") {
|
|
44
|
+
process.stdin.on("end", ()=>process.exit(0));
|
|
45
|
+
}
|
|
39
46
|
process.stdin.resume();
|
|
40
47
|
await processor.watch();
|
|
41
48
|
} else {
|
|
42
|
-
await processor.build()
|
|
49
|
+
await processor.build().catch((e)=>{
|
|
50
|
+
console.error(e);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
43
53
|
}
|
|
44
54
|
}
|
package/lib/cli/build/plugin.js
CHANGED
|
@@ -5,27 +5,31 @@ 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 _path = /*#__PURE__*/
|
|
11
|
-
const _fs = /*#__PURE__*/
|
|
12
|
-
const
|
|
12
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
14
|
+
const _postcssloadconfig = /*#__PURE__*/ _interop_require_default(require("postcss-load-config"));
|
|
13
15
|
const _lilconfig = require("lilconfig");
|
|
14
|
-
const _plugins = /*#__PURE__*/
|
|
16
|
+
const _plugins = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/plugins" // Little bit scary, looking at private/internal API
|
|
15
17
|
));
|
|
16
|
-
const _options = /*#__PURE__*/
|
|
18
|
+
const _options = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/options" // Little bit scary, looking at private/internal API
|
|
17
19
|
));
|
|
18
|
-
const _processTailwindFeatures = /*#__PURE__*/
|
|
20
|
+
const _processTailwindFeatures = /*#__PURE__*/ _interop_require_default(require("../../processTailwindFeatures"));
|
|
19
21
|
const _deps = require("./deps");
|
|
20
22
|
const _utils = require("./utils");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
23
|
+
const _sharedState = require("../../lib/sharedState");
|
|
24
|
+
const _resolveConfig = /*#__PURE__*/ _interop_require_default(require("../../../resolveConfig.js"));
|
|
25
|
+
const _content = require("../../lib/content.js");
|
|
26
|
+
const _watching = require("./watching.js");
|
|
27
|
+
const _fastglob = /*#__PURE__*/ _interop_require_default(require("fast-glob"));
|
|
28
|
+
const _findAtConfigPath = require("../../lib/findAtConfigPath.js");
|
|
29
|
+
const _log = /*#__PURE__*/ _interop_require_default(require("../../util/log"));
|
|
30
|
+
const _loadconfig = require("../../lib/load-config");
|
|
31
|
+
const _getModuleDependencies = /*#__PURE__*/ _interop_require_default(require("../../lib/getModuleDependencies"));
|
|
32
|
+
function _interop_require_default(obj) {
|
|
29
33
|
return obj && obj.__esModule ? obj : {
|
|
30
34
|
default: obj
|
|
31
35
|
};
|
|
@@ -53,7 +57,7 @@ function _interopRequireDefault(obj) {
|
|
|
53
57
|
plugins: (0, _plugins.default)(config, file),
|
|
54
58
|
options: (0, _options.default)(config, file)
|
|
55
59
|
};
|
|
56
|
-
})() : await (0,
|
|
60
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
57
61
|
let configPlugins = config.plugins;
|
|
58
62
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
59
63
|
if (typeof plugin === "function" && plugin.name === "tailwindcss") {
|
|
@@ -98,22 +102,22 @@ function loadBuiltinPostcssPlugins() {
|
|
|
98
102
|
rule.remove();
|
|
99
103
|
}
|
|
100
104
|
});
|
|
101
|
-
}
|
|
105
|
+
}
|
|
102
106
|
],
|
|
103
107
|
[],
|
|
104
|
-
{}
|
|
108
|
+
{}
|
|
105
109
|
];
|
|
106
110
|
}
|
|
107
111
|
let state = {
|
|
108
112
|
/** @type {any} */ context: null,
|
|
109
113
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
110
114
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
111
|
-
|
|
115
|
+
/** @type {ReturnType<typeof load> | null} */ configBag: null,
|
|
112
116
|
contextDependencies: new Set(),
|
|
113
117
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
114
118
|
refreshContentPaths () {
|
|
115
|
-
var
|
|
116
|
-
this.contentPaths = (0,
|
|
119
|
+
var _this_context;
|
|
120
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
117
121
|
},
|
|
118
122
|
get config () {
|
|
119
123
|
return this.context.tailwindConfig;
|
|
@@ -124,38 +128,47 @@ let state = {
|
|
|
124
128
|
dynamic: this.contentPaths.filter((contentPath)=>contentPath.glob !== undefined).map((contentPath)=>contentPath.pattern)
|
|
125
129
|
};
|
|
126
130
|
},
|
|
127
|
-
loadConfig (configPath) {
|
|
131
|
+
loadConfig (configPath, content) {
|
|
128
132
|
if (this.watcher && configPath) {
|
|
129
|
-
this.refreshConfigDependencies(
|
|
133
|
+
this.refreshConfigDependencies();
|
|
130
134
|
}
|
|
131
|
-
let config =
|
|
135
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
136
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
137
|
+
this.configBag = {
|
|
138
|
+
config,
|
|
139
|
+
dependencies,
|
|
140
|
+
dispose () {
|
|
141
|
+
for (let file of dependencies){
|
|
142
|
+
delete require.cache[require.resolve(file)];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
132
146
|
// @ts-ignore
|
|
133
|
-
config = (0,
|
|
147
|
+
this.configBag.config = (0, _resolveConfig.default)(this.configBag.config, {
|
|
134
148
|
content: {
|
|
135
149
|
files: []
|
|
136
150
|
}
|
|
137
151
|
});
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
_shared.env.DEBUG && console.time("Module dependencies");
|
|
142
|
-
for (let file of this.configDependencies){
|
|
143
|
-
delete require.cache[require.resolve(file)];
|
|
144
|
-
}
|
|
145
|
-
if (configPath) {
|
|
146
|
-
let deps = (0, _getModuleDependenciesJs.default)(configPath).map(({ file })=>file);
|
|
147
|
-
for (let dependency of deps){
|
|
148
|
-
this.configDependencies.add(dependency);
|
|
149
|
-
}
|
|
152
|
+
// Override content files if `--content` has been passed explicitly
|
|
153
|
+
if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
|
|
154
|
+
this.configBag.config.content.files = content;
|
|
150
155
|
}
|
|
151
|
-
|
|
156
|
+
return this.configBag.config;
|
|
157
|
+
},
|
|
158
|
+
refreshConfigDependencies () {
|
|
159
|
+
var _this_configBag;
|
|
160
|
+
_sharedState.env.DEBUG && console.time("Module dependencies");
|
|
161
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
162
|
+
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
152
163
|
},
|
|
153
164
|
readContentPaths () {
|
|
154
165
|
let content = [];
|
|
155
166
|
// Resolve globs from the content config
|
|
156
167
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
157
|
-
let files =
|
|
168
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
169
|
+
let checkBroadPattern = (0, _content.createBroadPatternCheck)(this.contentPatterns.all);
|
|
158
170
|
for (let file of files){
|
|
171
|
+
checkBroadPattern(file);
|
|
159
172
|
content.push({
|
|
160
173
|
content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
|
|
161
174
|
extension: _path.default.extname(file).slice(1)
|
|
@@ -165,61 +178,71 @@ let state = {
|
|
|
165
178
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
166
179
|
return file !== null && typeof file === "object";
|
|
167
180
|
});
|
|
168
|
-
for (let { raw:
|
|
169
|
-
|
|
170
|
-
content:
|
|
181
|
+
for (let { raw: htmlContent , extension ="html" } of rawContent){
|
|
182
|
+
content.push({
|
|
183
|
+
content: htmlContent,
|
|
171
184
|
extension
|
|
172
185
|
});
|
|
173
186
|
}
|
|
174
187
|
return content;
|
|
175
188
|
},
|
|
176
|
-
getContext ({ createContext , cliConfigPath , root , result }) {
|
|
189
|
+
getContext ({ createContext , cliConfigPath , root , result , content }) {
|
|
190
|
+
_sharedState.env.DEBUG && console.time("Searching for config");
|
|
191
|
+
var _findAtConfigPath1;
|
|
192
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
193
|
+
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
177
194
|
if (this.context) {
|
|
178
195
|
this.context.changedContent = this.changedContent.splice(0);
|
|
179
196
|
return this.context;
|
|
180
197
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
_shared.env.DEBUG && console.time("Loading config");
|
|
186
|
-
let config = this.loadConfig(configPath);
|
|
187
|
-
_shared.env.DEBUG && console.timeEnd("Loading config");
|
|
188
|
-
_shared.env.DEBUG && console.time("Creating context");
|
|
198
|
+
_sharedState.env.DEBUG && console.time("Loading config");
|
|
199
|
+
let config = this.loadConfig(configPath, content);
|
|
200
|
+
_sharedState.env.DEBUG && console.timeEnd("Loading config");
|
|
201
|
+
_sharedState.env.DEBUG && console.time("Creating context");
|
|
189
202
|
this.context = createContext(config, []);
|
|
190
203
|
Object.assign(this.context, {
|
|
191
204
|
userConfigPath: configPath
|
|
192
205
|
});
|
|
193
|
-
|
|
194
|
-
|
|
206
|
+
_sharedState.env.DEBUG && console.timeEnd("Creating context");
|
|
207
|
+
_sharedState.env.DEBUG && console.time("Resolving content paths");
|
|
195
208
|
this.refreshContentPaths();
|
|
196
|
-
|
|
209
|
+
_sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
|
|
197
210
|
if (this.watcher) {
|
|
198
|
-
|
|
211
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
199
212
|
this.watcher.refreshWatchedFiles();
|
|
200
|
-
|
|
213
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
201
214
|
}
|
|
202
|
-
_shared.env.DEBUG && console.time("Reading content files");
|
|
203
215
|
for (let file of this.readContentPaths()){
|
|
204
216
|
this.context.changedContent.push(file);
|
|
205
217
|
}
|
|
206
|
-
_shared.env.DEBUG && console.timeEnd("Reading content files");
|
|
207
218
|
return this.context;
|
|
208
219
|
}
|
|
209
220
|
};
|
|
210
221
|
async function createProcessor(args, cliConfigPath) {
|
|
222
|
+
var _args_content;
|
|
211
223
|
let postcss = (0, _deps.loadPostcss)();
|
|
212
224
|
let input = args["--input"];
|
|
213
225
|
let output = args["--output"];
|
|
214
226
|
let includePostCss = args["--postcss"];
|
|
215
227
|
let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
|
|
216
228
|
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : loadBuiltinPostcssPlugins();
|
|
229
|
+
if (args["--purge"]) {
|
|
230
|
+
_log.default.warn("purge-flag-deprecated", [
|
|
231
|
+
"The `--purge` flag has been deprecated.",
|
|
232
|
+
"Please use `--content` instead."
|
|
233
|
+
]);
|
|
234
|
+
if (!args["--content"]) {
|
|
235
|
+
args["--content"] = args["--purge"];
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
var _args_content_split;
|
|
239
|
+
let content = (_args_content_split = (_args_content = args["--content"]) === null || _args_content === void 0 ? void 0 : _args_content.split(/(?<!{[^}]+),/)) !== null && _args_content_split !== void 0 ? _args_content_split : [];
|
|
217
240
|
let tailwindPlugin = ()=>{
|
|
218
241
|
return {
|
|
219
242
|
postcssPlugin: "tailwindcss",
|
|
220
|
-
Once (root, { result }) {
|
|
221
|
-
|
|
222
|
-
(0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
243
|
+
async Once (root, { result }) {
|
|
244
|
+
_sharedState.env.DEBUG && console.time("Compiling CSS");
|
|
245
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
223
246
|
console.error();
|
|
224
247
|
console.error("Rebuilding...");
|
|
225
248
|
return ()=>{
|
|
@@ -227,11 +250,12 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
227
250
|
createContext,
|
|
228
251
|
cliConfigPath,
|
|
229
252
|
root,
|
|
230
|
-
result
|
|
253
|
+
result,
|
|
254
|
+
content
|
|
231
255
|
});
|
|
232
256
|
};
|
|
233
257
|
})(root, result);
|
|
234
|
-
|
|
258
|
+
_sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
|
|
235
259
|
}
|
|
236
260
|
};
|
|
237
261
|
};
|
|
@@ -242,7 +266,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
242
266
|
!args["--minify"] && _utils.formatNodes,
|
|
243
267
|
...afterPlugins,
|
|
244
268
|
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
245
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
269
|
+
args["--minify"] && (0, _deps.loadCssNano)()
|
|
246
270
|
].filter(Boolean);
|
|
247
271
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
248
272
|
let processor = postcss(plugins);
|
|
@@ -255,7 +279,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
255
279
|
if (input) {
|
|
256
280
|
return _fs.default.promises.readFile(_path.default.resolve(input), "utf8");
|
|
257
281
|
}
|
|
258
|
-
// No input file provided, fallback to default
|
|
282
|
+
// No input file provided, fallback to default at-rules
|
|
259
283
|
return "@tailwind base; @tailwind components; @tailwind utilities";
|
|
260
284
|
}
|
|
261
285
|
async function build() {
|
|
@@ -265,18 +289,49 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
265
289
|
from: input,
|
|
266
290
|
to: output
|
|
267
291
|
})).then((result)=>{
|
|
292
|
+
if (!state.watcher) {
|
|
293
|
+
return result;
|
|
294
|
+
}
|
|
295
|
+
_sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
|
|
296
|
+
for (let message of result.messages){
|
|
297
|
+
if (message.type === "dependency") {
|
|
298
|
+
state.contextDependencies.add(message.file);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
_sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
|
|
302
|
+
// TODO: This needs to be in a different spot
|
|
303
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
304
|
+
state.watcher.refreshWatchedFiles();
|
|
305
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
306
|
+
return result;
|
|
307
|
+
}).then((result)=>{
|
|
268
308
|
if (!output) {
|
|
269
309
|
process.stdout.write(result.css);
|
|
270
310
|
return;
|
|
271
311
|
}
|
|
272
312
|
return Promise.all([
|
|
273
|
-
(0, _utils.outputFile)(
|
|
274
|
-
result.map && (0, _utils.outputFile)(
|
|
313
|
+
(0, _utils.outputFile)(result.opts.to, result.css),
|
|
314
|
+
result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
|
|
275
315
|
]);
|
|
276
316
|
}).then(()=>{
|
|
277
317
|
let end = process.hrtime.bigint();
|
|
278
318
|
console.error();
|
|
279
319
|
console.error("Done in", (end - start) / BigInt(1e6) + "ms.");
|
|
320
|
+
}).then(()=>{}, (err)=>{
|
|
321
|
+
// TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
|
|
322
|
+
// that were collected before the error occurred
|
|
323
|
+
// The result is not stored on the error so we have to store it externally
|
|
324
|
+
// and pull the messages off of it here somehow
|
|
325
|
+
// This results in a less than ideal DX because the watcher will not pick up
|
|
326
|
+
// changes to imported CSS if one of them caused an error during the initial build
|
|
327
|
+
// If you fix it and then save the main CSS file so there's no error
|
|
328
|
+
// The watcher will start watching the imported CSS files and will be
|
|
329
|
+
// resilient to future errors.
|
|
330
|
+
if (state.watcher) {
|
|
331
|
+
console.error(err);
|
|
332
|
+
} else {
|
|
333
|
+
return Promise.reject(err);
|
|
334
|
+
}
|
|
280
335
|
});
|
|
281
336
|
}
|
|
282
337
|
/**
|
|
@@ -293,13 +348,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
293
348
|
return {
|
|
294
349
|
build,
|
|
295
350
|
watch: async ()=>{
|
|
296
|
-
state.watcher = (0,
|
|
351
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
297
352
|
state,
|
|
298
353
|
/**
|
|
299
354
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
300
355
|
*/ async rebuild (changes) {
|
|
301
356
|
let needsNewContext = changes.some((change)=>{
|
|
302
|
-
|
|
357
|
+
var _state_configBag;
|
|
358
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
303
359
|
});
|
|
304
360
|
if (needsNewContext) {
|
|
305
361
|
state.context = null;
|
package/lib/cli/build/utils.js
CHANGED
|
@@ -10,15 +10,25 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
indentRecursive: ()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
indentRecursive: function() {
|
|
14
|
+
return indentRecursive;
|
|
15
|
+
},
|
|
16
|
+
formatNodes: function() {
|
|
17
|
+
return formatNodes;
|
|
18
|
+
},
|
|
19
|
+
readFileWithRetries: function() {
|
|
20
|
+
return readFileWithRetries;
|
|
21
|
+
},
|
|
22
|
+
drainStdin: function() {
|
|
23
|
+
return drainStdin;
|
|
24
|
+
},
|
|
25
|
+
outputFile: function() {
|
|
26
|
+
return outputFile;
|
|
27
|
+
}
|
|
18
28
|
});
|
|
19
|
-
const _fs = /*#__PURE__*/
|
|
20
|
-
const _path = /*#__PURE__*/
|
|
21
|
-
function
|
|
29
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
30
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
31
|
+
function _interop_require_default(obj) {
|
|
22
32
|
return obj && obj.__esModule ? obj : {
|
|
23
33
|
default: obj
|
|
24
34
|
};
|