tailwindcss 0.0.0-insiders.fb796cd → 0.0.0-insiders.fb85c8f

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