tailwindcss 0.0.0-insiders.8f788e2 → 0.0.0-insiders.8f91c27

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.
Files changed (136) hide show
  1. package/README.md +4 -5
  2. package/lib/cli/build/deps.js +62 -0
  3. package/lib/cli/build/index.js +12 -15
  4. package/lib/cli/build/plugin.js +109 -165
  5. package/lib/cli/build/utils.js +20 -20
  6. package/lib/cli/build/watching.js +10 -10
  7. package/lib/cli/help/index.js +11 -11
  8. package/lib/cli/index.js +58 -59
  9. package/lib/cli/init/index.js +16 -16
  10. package/lib/cli-peer-dependencies.js +36 -0
  11. package/lib/cli.js +1 -1
  12. package/lib/corePluginList.js +3 -1
  13. package/lib/corePlugins.js +2052 -1922
  14. package/lib/css/preflight.css +18 -14
  15. package/lib/featureFlags.js +17 -22
  16. package/lib/index.js +1 -1
  17. package/lib/lib/cacheInvalidation.js +4 -6
  18. package/lib/lib/collapseAdjacentRules.js +7 -9
  19. package/lib/lib/collapseDuplicateDeclarations.js +1 -1
  20. package/lib/lib/content.js +72 -32
  21. package/lib/lib/defaultExtractor.js +51 -17
  22. package/lib/lib/evaluateTailwindFunctions.js +22 -22
  23. package/lib/lib/expandApplyAtRules.js +32 -19
  24. package/lib/lib/expandTailwindAtRules.js +45 -79
  25. package/lib/lib/findAtConfigPath.js +5 -5
  26. package/lib/lib/generateRules.js +77 -62
  27. package/lib/lib/getModuleDependencies.js +23 -23
  28. package/lib/lib/load-config.js +25 -6
  29. package/lib/lib/normalizeTailwindDirectives.js +36 -21
  30. package/lib/lib/offsets.js +97 -48
  31. package/lib/lib/partitionApplyAtRules.js +2 -2
  32. package/lib/lib/regex.js +17 -17
  33. package/lib/lib/resolveDefaultsAtRules.js +42 -42
  34. package/lib/lib/setupContextUtils.js +163 -132
  35. package/lib/lib/setupTrackingContext.js +3 -3
  36. package/lib/lib/sharedState.js +22 -22
  37. package/lib/lib/substituteScreenAtRules.js +4 -4
  38. package/lib/plugin.js +8 -126
  39. package/lib/postcss-plugins/nesting/index.js +2 -2
  40. package/lib/postcss-plugins/nesting/plugin.js +10 -10
  41. package/lib/processTailwindFeatures.js +3 -5
  42. package/lib/public/colors.js +264 -264
  43. package/lib/util/applyImportantSelector.js +6 -4
  44. package/lib/util/buildMediaQuery.js +2 -2
  45. package/lib/util/cloneDeep.js +1 -1
  46. package/lib/util/cloneNodes.js +33 -13
  47. package/lib/util/color.js +22 -22
  48. package/lib/util/createUtilityPlugin.js +3 -3
  49. package/lib/util/dataTypes.js +201 -163
  50. package/lib/util/escapeCommas.js +1 -1
  51. package/lib/util/flattenColorPalette.js +2 -2
  52. package/lib/util/formatVariantSelector.js +21 -21
  53. package/lib/util/getAllConfigs.js +3 -3
  54. package/lib/util/isKeyframeRule.js +1 -1
  55. package/lib/util/isPlainObject.js +1 -1
  56. package/lib/util/isSyntacticallyValidPropertyValue.js +10 -10
  57. package/lib/util/log.js +9 -26
  58. package/lib/util/nameClass.js +4 -4
  59. package/lib/util/negateValue.js +8 -8
  60. package/lib/util/normalizeConfig.js +57 -86
  61. package/lib/util/normalizeScreens.js +22 -22
  62. package/lib/util/parseAnimationValue.js +39 -39
  63. package/lib/util/parseBoxShadowValue.js +21 -21
  64. package/lib/util/parseDependency.js +4 -4
  65. package/lib/util/parseGlob.js +4 -5
  66. package/lib/util/parseObjectStyles.js +1 -1
  67. package/lib/util/pluginUtils.js +47 -32
  68. package/lib/util/prefixSelector.js +4 -4
  69. package/lib/util/pseudoElements.js +72 -69
  70. package/lib/util/removeAlphaVariables.js +3 -1
  71. package/lib/util/resolveConfig.js +43 -50
  72. package/lib/util/resolveConfigPath.js +8 -6
  73. package/lib/util/responsive.js +1 -1
  74. package/lib/util/splitAtTopLevelOnly.js +3 -7
  75. package/lib/util/toColorValue.js +1 -1
  76. package/lib/util/toPath.js +2 -2
  77. package/lib/util/transformThemeValue.js +24 -24
  78. package/lib/util/validateConfig.js +9 -20
  79. package/lib/util/validateFormalSyntax.js +5 -5
  80. package/lib/util/withAlphaVariable.js +10 -10
  81. package/lib/value-parser/index.js +5 -5
  82. package/lib/value-parser/parse.js +43 -43
  83. package/lib/value-parser/stringify.js +11 -11
  84. package/lib/value-parser/unit.js +5 -5
  85. package/lib/value-parser/walk.js +1 -1
  86. package/package.json +49 -44
  87. package/peers/index.js +97871 -0
  88. package/scripts/release-notes.js +1 -1
  89. package/src/cli/build/deps.js +56 -0
  90. package/src/cli/build/index.js +0 -4
  91. package/src/cli/build/plugin.js +59 -84
  92. package/src/cli/index.js +0 -1
  93. package/src/cli-peer-dependencies.js +15 -0
  94. package/src/corePluginList.js +1 -1
  95. package/src/corePlugins.js +183 -56
  96. package/src/css/preflight.css +18 -14
  97. package/src/featureFlags.js +3 -5
  98. package/src/lib/content.js +88 -33
  99. package/src/lib/defaultExtractor.js +46 -6
  100. package/src/lib/expandApplyAtRules.js +17 -0
  101. package/src/lib/expandTailwindAtRules.js +10 -51
  102. package/src/lib/generateRules.js +25 -5
  103. package/src/lib/load-config.ts +24 -0
  104. package/src/lib/normalizeTailwindDirectives.js +27 -0
  105. package/src/lib/offsets.js +62 -3
  106. package/src/lib/resolveDefaultsAtRules.js +16 -14
  107. package/src/lib/setupContextUtils.js +47 -9
  108. package/src/plugin.js +0 -86
  109. package/src/processTailwindFeatures.js +0 -3
  110. package/src/util/applyImportantSelector.js +5 -6
  111. package/src/util/cloneNodes.js +35 -14
  112. package/src/util/dataTypes.js +57 -7
  113. package/src/util/formatVariantSelector.js +1 -1
  114. package/src/util/log.js +0 -24
  115. package/src/util/normalizeConfig.js +12 -41
  116. package/src/util/parseAnimationValue.js +1 -1
  117. package/src/util/parseGlob.js +1 -2
  118. package/src/util/pluginUtils.js +21 -1
  119. package/src/util/pseudoElements.js +4 -0
  120. package/src/util/removeAlphaVariables.js +2 -0
  121. package/src/util/resolveConfig.js +24 -42
  122. package/src/util/resolveConfigPath.js +2 -0
  123. package/src/util/splitAtTopLevelOnly.js +1 -5
  124. package/src/util/validateConfig.js +0 -10
  125. package/src/util/withAlphaVariable.js +2 -2
  126. package/stubs/config.full.js +2 -2
  127. package/stubs/config.simple.js +1 -1
  128. package/stubs/postcss.config.cjs +1 -0
  129. package/stubs/postcss.config.js +1 -0
  130. package/types/config.d.ts +14 -7
  131. package/types/generated/corePluginList.d.ts +1 -1
  132. package/index.css +0 -5
  133. package/lib/lib/detectNesting.js +0 -45
  134. package/lib/lib/handleImportAtRules.js +0 -50
  135. package/src/lib/detectNesting.js +0 -47
  136. package/src/lib/handleImportAtRules.js +0 -34
package/README.md CHANGED
@@ -12,15 +12,14 @@
12
12
  A utility-first CSS framework for rapidly building custom user interfaces.
13
13
  </p>
14
14
 
15
-
16
15
  <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.yml?branch=master" alt="Build Status"></a>
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>
18
17
  <a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
19
18
  <a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
20
- <a href="https://github.com/tailwindcss/tailwindcss/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
19
+ <a href="https://github.com/tailwindcss/tailwindcss/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
21
20
  </p>
22
21
 
23
- ------
22
+ ---
24
23
 
25
24
  ## Documentation
26
25
 
@@ -38,4 +37,4 @@ For casual chit-chat with others using the framework:
38
37
 
39
38
  ## Contributing
40
39
 
41
- If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/master/.github/CONTRIBUTING.md) **before submitting a pull request**.
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**.
@@ -0,0 +1,62 @@
1
+ // @ts-check
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ function _export(target, all) {
7
+ for(var name in all)Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: all[name]
10
+ });
11
+ }
12
+ _export(exports, {
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
+ }
25
+ });
26
+ const _index = require("../../../peers/index.js");
27
+ function loadPostcss() {
28
+ // Try to load a local `postcss` version first
29
+ try {
30
+ return require("postcss");
31
+ } catch {}
32
+ return (0, _index.lazyPostcss)();
33
+ }
34
+ function loadPostcssImport() {
35
+ // Try to load a local `postcss-import` version first
36
+ try {
37
+ return require("postcss-import");
38
+ } catch {}
39
+ return (0, _index.lazyPostcssImport)();
40
+ }
41
+ function loadCssNano() {
42
+ let options = {
43
+ preset: [
44
+ "default",
45
+ {
46
+ cssDeclarationSorter: false
47
+ }
48
+ ]
49
+ };
50
+ // Try to load a local `cssnano` version first
51
+ try {
52
+ return require("cssnano");
53
+ } catch {}
54
+ return (0, _index.lazyCssnano)()(options);
55
+ }
56
+ function loadAutoprefixer() {
57
+ // Try to load a local `autoprefixer` version first
58
+ try {
59
+ return require("autoprefixer");
60
+ } catch {}
61
+ return (0, _index.lazyAutoprefixer)();
62
+ }
@@ -19,32 +19,29 @@ function _interop_require_default(obj) {
19
19
  };
20
20
  }
21
21
  async function build(args) {
22
- let input = args['--input'];
23
- let shouldWatch = args['--watch'];
22
+ let input = args["--input"];
23
+ let shouldWatch = args["--watch"];
24
24
  // TODO: Deprecate this in future versions
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
+ if (!input && args["_"][1]) {
26
+ console.error("[deprecation] Running tailwindcss without -i, please provide an input file.");
27
+ input = args["--input"] = args["_"][1];
28
28
  }
29
- if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
30
- console.error(`Specified input file ${args['--input']} does not exist.`);
29
+ if (input && input !== "-" && !_fs.default.existsSync(input = _path.default.resolve(input))) {
30
+ console.error(`Specified input file ${args["--input"]} does not exist.`);
31
31
  process.exit(9);
32
32
  }
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
+ if (args["--config"] && !_fs.default.existsSync(args["--config"] = _path.default.resolve(args["--config"]))) {
34
+ console.error(`Specified config file ${args["--config"]} does not exist.`);
35
35
  process.exit(9);
36
36
  }
37
- if (args['--no-autoprefixer']) {
38
- console.error('[deprecation] The --no-autoprefixer flag is deprecated and has no effect.');
39
- }
40
37
  // TODO: Reference the @config path here if exists
41
- let configPath = args['--config'] ? args['--config'] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
38
+ let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
42
39
  let processor = await (0, _plugin.createProcessor)(args, configPath);
43
40
  if (shouldWatch) {
44
41
  // Abort the watcher if stdin is closed to avoid zombie processes
45
42
  // You can disable this behavior with --watch=always
46
- if (args['--watch'] !== 'always') {
47
- process.stdin.on('end', ()=>process.exit(0));
43
+ if (args["--watch"] !== "always") {
44
+ process.stdin.on("end", ()=>process.exit(0));
48
45
  }
49
46
  process.stdin.resume();
50
47
  await processor.watch();
@@ -9,19 +9,16 @@ Object.defineProperty(exports, "createProcessor", {
9
9
  return createProcessor;
10
10
  }
11
11
  });
12
- const _packagejson = /*#__PURE__*/ _interop_require_default(require("../../../package.json"));
13
12
  const _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
13
  const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
15
- const _postcss = /*#__PURE__*/ _interop_require_default(require("postcss"));
16
14
  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"));
19
15
  const _lilconfig = require("lilconfig");
20
16
  const _plugins = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/plugins" // Little bit scary, looking at private/internal API
21
17
  ));
22
18
  const _options = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/options" // Little bit scary, looking at private/internal API
23
19
  ));
24
20
  const _processTailwindFeatures = /*#__PURE__*/ _interop_require_default(require("../../processTailwindFeatures"));
21
+ const _deps = require("./deps");
25
22
  const _utils = require("./utils");
26
23
  const _sharedState = require("../../lib/sharedState");
27
24
  const _resolveConfig = /*#__PURE__*/ _interop_require_default(require("../../../resolveConfig.js"));
@@ -32,90 +29,11 @@ const _findAtConfigPath = require("../../lib/findAtConfigPath.js");
32
29
  const _log = /*#__PURE__*/ _interop_require_default(require("../../util/log"));
33
30
  const _loadconfig = require("../../lib/load-config");
34
31
  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
32
  function _interop_require_default(obj) {
39
33
  return obj && obj.__esModule ? obj : {
40
34
  default: obj
41
35
  };
42
36
  }
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
- }
119
37
  /**
120
38
  *
121
39
  * @param {string} [customPostCssPath ]
@@ -125,8 +43,8 @@ async function lightningcss(result, { map = true, minify = true } = {}) {
125
43
  let file = _path.default.resolve(customPostCssPath);
126
44
  // Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
127
45
  // @ts-ignore
128
- let { config = {} } = await (0, _lilconfig.lilconfig)('postcss').load(file);
129
- if (typeof config === 'function') {
46
+ let { config ={} } = await (0, _lilconfig.lilconfig)("postcss").load(file);
47
+ if (typeof config === "function") {
130
48
  config = config();
131
49
  } else {
132
50
  config = Object.assign({}, config);
@@ -142,10 +60,10 @@ async function lightningcss(result, { map = true, minify = true } = {}) {
142
60
  })() : await (0, _postcssloadconfig.default)();
143
61
  let configPlugins = config.plugins;
144
62
  let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
145
- if (typeof plugin === 'function' && plugin.name === 'tailwindcss') {
63
+ if (typeof plugin === "function" && plugin.name === "tailwindcss") {
146
64
  return true;
147
65
  }
148
- if (typeof plugin === 'object' && plugin !== null && plugin.postcssPlugin === 'tailwindcss') {
66
+ if (typeof plugin === "object" && plugin !== null && plugin.postcssPlugin === "tailwindcss") {
149
67
  return true;
150
68
  }
151
69
  return false;
@@ -158,11 +76,43 @@ async function lightningcss(result, { map = true, minify = true } = {}) {
158
76
  config.options
159
77
  ];
160
78
  }
79
+ function loadBuiltinPostcssPlugins() {
80
+ let postcss = (0, _deps.loadPostcss)();
81
+ let IMPORT_COMMENT = "__TAILWIND_RESTORE_IMPORT__: ";
82
+ return [
83
+ [
84
+ (root)=>{
85
+ root.walkAtRules("import", (rule)=>{
86
+ if (rule.params.slice(1).startsWith("tailwindcss/")) {
87
+ rule.after(postcss.comment({
88
+ text: IMPORT_COMMENT + rule.params
89
+ }));
90
+ rule.remove();
91
+ }
92
+ });
93
+ },
94
+ (0, _deps.loadPostcssImport)(),
95
+ (root)=>{
96
+ root.walkComments((rule)=>{
97
+ if (rule.text.startsWith(IMPORT_COMMENT)) {
98
+ rule.after(postcss.atRule({
99
+ name: "import",
100
+ params: rule.text.replace(IMPORT_COMMENT, "")
101
+ }));
102
+ rule.remove();
103
+ }
104
+ });
105
+ }
106
+ ],
107
+ [],
108
+ {}
109
+ ];
110
+ }
161
111
  let state = {
162
112
  /** @type {any} */ context: null,
163
113
  /** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
164
114
  /** @type {{content: string, extension: string}[]} */ changedContent: [],
165
- /** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
115
+ /** @type {ReturnType<typeof load> | null} */ configBag: null,
166
116
  contextDependencies: new Set(),
167
117
  /** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
168
118
  refreshContentPaths () {
@@ -193,7 +143,12 @@ let state = {
193
143
  }
194
144
  }
195
145
  };
196
- this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
146
+ // @ts-ignore
147
+ this.configBag.config = (0, _resolveConfig.default)(this.configBag.config, {
148
+ content: {
149
+ files: []
150
+ }
151
+ });
197
152
  // Override content files if `--content` has been passed explicitly
198
153
  if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
199
154
  this.configBag.config.content.files = content;
@@ -202,33 +157,28 @@ let state = {
202
157
  },
203
158
  refreshConfigDependencies () {
204
159
  var _this_configBag;
205
- _sharedState.env.DEBUG && console.time('Module dependencies');
160
+ _sharedState.env.DEBUG && console.time("Module dependencies");
206
161
  (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
207
- _sharedState.env.DEBUG && console.timeEnd('Module dependencies');
162
+ _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
208
163
  },
209
164
  readContentPaths () {
210
165
  let content = [];
211
166
  // Resolve globs from the content config
212
167
  // TODO: When we make the postcss plugin async-capable this can become async
213
168
  let files = _fastglob.default.sync(this.contentPatterns.all);
169
+ let checkBroadPattern = (0, _content.createBroadPatternCheck)(this.contentPatterns.all);
214
170
  for (let file of files){
215
- if ((0, _featureFlags.flagEnabled)(this.config, 'oxideParser')) {
216
- content.push({
217
- file,
218
- extension: _path.default.extname(file).slice(1)
219
- });
220
- } else {
221
- content.push({
222
- content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
223
- extension: _path.default.extname(file).slice(1)
224
- });
225
- }
171
+ checkBroadPattern(file);
172
+ content.push({
173
+ content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
174
+ extension: _path.default.extname(file).slice(1)
175
+ });
226
176
  }
227
177
  // Resolve raw content in the tailwind config
228
178
  let rawContent = this.config.content.files.filter((file)=>{
229
- return file !== null && typeof file === 'object';
179
+ return file !== null && typeof file === "object";
230
180
  });
231
- for (let { raw: htmlContent, extension = 'html' } of rawContent){
181
+ for (let { raw: htmlContent , extension ="html" } of rawContent){
232
182
  content.push({
233
183
  content: htmlContent,
234
184
  extension
@@ -236,31 +186,31 @@ let state = {
236
186
  }
237
187
  return content;
238
188
  },
239
- getContext ({ createContext, cliConfigPath, root, result, content }) {
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");
240
194
  if (this.context) {
241
195
  this.context.changedContent = this.changedContent.splice(0);
242
196
  return this.context;
243
197
  }
244
- _sharedState.env.DEBUG && console.time('Searching for config');
245
- var _findAtConfigPath1;
246
- let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
247
- _sharedState.env.DEBUG && console.timeEnd('Searching for config');
248
- _sharedState.env.DEBUG && console.time('Loading config');
198
+ _sharedState.env.DEBUG && console.time("Loading config");
249
199
  let config = this.loadConfig(configPath, content);
250
- _sharedState.env.DEBUG && console.timeEnd('Loading config');
251
- _sharedState.env.DEBUG && console.time('Creating context');
200
+ _sharedState.env.DEBUG && console.timeEnd("Loading config");
201
+ _sharedState.env.DEBUG && console.time("Creating context");
252
202
  this.context = createContext(config, []);
253
203
  Object.assign(this.context, {
254
204
  userConfigPath: configPath
255
205
  });
256
- _sharedState.env.DEBUG && console.timeEnd('Creating context');
257
- _sharedState.env.DEBUG && console.time('Resolving content paths');
206
+ _sharedState.env.DEBUG && console.timeEnd("Creating context");
207
+ _sharedState.env.DEBUG && console.time("Resolving content paths");
258
208
  this.refreshContentPaths();
259
- _sharedState.env.DEBUG && console.timeEnd('Resolving content paths');
209
+ _sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
260
210
  if (this.watcher) {
261
- _sharedState.env.DEBUG && console.time('Watch new files');
211
+ _sharedState.env.DEBUG && console.time("Watch new files");
262
212
  this.watcher.refreshWatchedFiles();
263
- _sharedState.env.DEBUG && console.timeEnd('Watch new files');
213
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
264
214
  }
265
215
  for (let file of this.readContentPaths()){
266
216
  this.context.changedContent.push(file);
@@ -270,35 +220,31 @@ let state = {
270
220
  };
271
221
  async function createProcessor(args, cliConfigPath) {
272
222
  var _args_content;
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.'
223
+ let postcss = (0, _deps.loadPostcss)();
224
+ let input = args["--input"];
225
+ let output = args["--output"];
226
+ let includePostCss = args["--postcss"];
227
+ let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
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."
287
233
  ]);
288
- if (!args['--content']) {
289
- args['--content'] = args['--purge'];
234
+ if (!args["--content"]) {
235
+ args["--content"] = args["--purge"];
290
236
  }
291
237
  }
292
238
  var _args_content_split;
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
+ 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 : [];
294
240
  let tailwindPlugin = ()=>{
295
241
  return {
296
- postcssPlugin: 'tailwindcss',
297
- async Once (root, { result }) {
298
- _sharedState.env.DEBUG && console.time('Compiling CSS');
299
- await (0, _processTailwindFeatures.default)(({ createContext })=>{
242
+ postcssPlugin: "tailwindcss",
243
+ async Once (root, { result }) {
244
+ _sharedState.env.DEBUG && console.time("Compiling CSS");
245
+ await (0, _processTailwindFeatures.default)(({ createContext })=>{
300
246
  console.error();
301
- console.error('Rebuilding...');
247
+ console.error("Rebuilding...");
302
248
  return ()=>{
303
249
  return state.getContext({
304
250
  createContext,
@@ -309,7 +255,7 @@ async function createProcessor(args, cliConfigPath) {
309
255
  });
310
256
  };
311
257
  })(root, result);
312
- _sharedState.env.DEBUG && console.timeEnd('Compiling CSS');
258
+ _sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
313
259
  }
314
260
  };
315
261
  };
@@ -317,62 +263,60 @@ async function createProcessor(args, cliConfigPath) {
317
263
  let plugins = [
318
264
  ...beforePlugins,
319
265
  tailwindPlugin,
320
- !args['--minify'] && _utils.formatNodes,
321
- ...afterPlugins
266
+ !args["--minify"] && _utils.formatNodes,
267
+ ...afterPlugins,
268
+ !args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
269
+ args["--minify"] && (0, _deps.loadCssNano)()
322
270
  ].filter(Boolean);
323
271
  /** @type {import('postcss').Processor} */ // @ts-ignore
324
- let processor = (0, _postcss.default)(plugins);
272
+ let processor = postcss(plugins);
325
273
  async function readInput() {
326
274
  // Piping in data, let's drain the stdin
327
- if (input === '-') {
275
+ if (input === "-") {
328
276
  return (0, _utils.drainStdin)();
329
277
  }
330
278
  // Input file has been provided
331
279
  if (input) {
332
- return _fs.default.promises.readFile(_path.default.resolve(input), 'utf8');
280
+ return _fs.default.promises.readFile(_path.default.resolve(input), "utf8");
333
281
  }
334
- // No input file provided, fallback to default atrules
335
- return '@tailwind base; @tailwind components; @tailwind utilities';
282
+ // No input file provided, fallback to default at-rules
283
+ return "@tailwind base; @tailwind components; @tailwind utilities";
336
284
  }
337
285
  async function build() {
338
286
  let start = process.hrtime.bigint();
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']
287
+ return readInput().then((css)=>processor.process(css, {
288
+ ...postcssOptions,
289
+ from: input,
290
+ to: output
347
291
  })).then((result)=>{
348
292
  if (!state.watcher) {
349
293
  return result;
350
294
  }
351
- _sharedState.env.DEBUG && console.time('Recording PostCSS dependencies');
295
+ _sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
352
296
  for (let message of result.messages){
353
- if (message.type === 'dependency') {
297
+ if (message.type === "dependency") {
354
298
  state.contextDependencies.add(message.file);
355
299
  }
356
300
  }
357
- _sharedState.env.DEBUG && console.timeEnd('Recording PostCSS dependencies');
301
+ _sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
358
302
  // TODO: This needs to be in a different spot
359
- _sharedState.env.DEBUG && console.time('Watch new files');
303
+ _sharedState.env.DEBUG && console.time("Watch new files");
360
304
  state.watcher.refreshWatchedFiles();
361
- _sharedState.env.DEBUG && console.timeEnd('Watch new files');
305
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
362
306
  return result;
363
307
  }).then((result)=>{
364
308
  if (!output) {
365
- process.stdout.write(license() + result.css);
309
+ process.stdout.write(result.css);
366
310
  return;
367
311
  }
368
312
  return Promise.all([
369
- (0, _utils.outputFile)(result.opts.to, license() + result.css),
370
- result.map && (0, _utils.outputFile)(result.opts.to + '.map', result.map.toString())
313
+ (0, _utils.outputFile)(result.opts.to, result.css),
314
+ result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
371
315
  ]);
372
316
  }).then(()=>{
373
317
  let end = process.hrtime.bigint();
374
318
  console.error();
375
- console.error('Done in', (end - start) / BigInt(1e6) + 'ms.');
319
+ console.error("Done in", (end - start) / BigInt(1e6) + "ms.");
376
320
  }).then(()=>{}, (err)=>{
377
321
  // TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
378
322
  // that were collected before the error occurred
@@ -398,7 +342,7 @@ async function createProcessor(args, cliConfigPath) {
398
342
  extension: change.extension
399
343
  })));
400
344
  }
401
- if (input !== undefined && input !== '-') {
345
+ if (input !== undefined && input !== "-") {
402
346
  state.contextDependencies.add(_path.default.resolve(input));
403
347
  }
404
348
  return {