tailwindcss 0.0.0-insiders.a795e45 → 0.0.0-insiders.a7a1f93

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 (185) hide show
  1. package/README.md +1 -1
  2. package/index.css +5 -0
  3. package/lib/cli/build/index.js +18 -9
  4. package/lib/cli/build/plugin.js +176 -111
  5. package/lib/cli/build/utils.js +18 -8
  6. package/lib/cli/build/watching.js +16 -12
  7. package/lib/cli/help/index.js +6 -4
  8. package/lib/cli/index.js +223 -10
  9. package/lib/cli/init/index.js +28 -11
  10. package/lib/cli.js +1 -237
  11. package/lib/corePluginList.js +8 -1
  12. package/lib/corePlugins.js +350 -53
  13. package/lib/css/preflight.css +9 -1
  14. package/lib/featureFlags.js +22 -9
  15. package/lib/index.js +1 -47
  16. package/lib/lib/cacheInvalidation.js +7 -5
  17. package/lib/lib/collapseAdjacentRules.js +3 -1
  18. package/lib/lib/collapseDuplicateDeclarations.js +10 -8
  19. package/lib/lib/content.js +61 -31
  20. package/lib/lib/defaultExtractor.js +12 -5
  21. package/lib/lib/detectNesting.js +10 -2
  22. package/lib/lib/evaluateTailwindFunctions.js +20 -16
  23. package/lib/lib/expandApplyAtRules.js +41 -33
  24. package/lib/lib/expandTailwindAtRules.js +85 -18
  25. package/lib/lib/findAtConfigPath.js +6 -4
  26. package/lib/lib/generateRules.js +146 -103
  27. package/lib/lib/getModuleDependencies.js +85 -37
  28. package/lib/lib/handleImportAtRules.js +50 -0
  29. package/lib/lib/load-config.js +42 -0
  30. package/lib/lib/normalizeTailwindDirectives.js +5 -18
  31. package/lib/lib/offsets.js +28 -7
  32. package/lib/lib/partitionApplyAtRules.js +3 -1
  33. package/lib/lib/regex.js +21 -7
  34. package/lib/lib/remap-bitfield.js +3 -1
  35. package/lib/lib/resolveDefaultsAtRules.js +24 -20
  36. package/lib/lib/setupContextUtils.js +158 -103
  37. package/lib/lib/setupTrackingContext.js +50 -26
  38. package/lib/lib/sharedState.js +28 -9
  39. package/lib/lib/substituteScreenAtRules.js +5 -3
  40. package/lib/plugin.js +160 -0
  41. package/lib/postcss-plugins/nesting/index.js +3 -1
  42. package/lib/postcss-plugins/nesting/plugin.js +8 -6
  43. package/lib/processTailwindFeatures.js +14 -12
  44. package/lib/public/colors.js +49 -25
  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 +12 -0
  49. package/lib/public/resolve-config.js +6 -4
  50. package/lib/util/applyImportantSelector.js +36 -0
  51. package/lib/util/bigSign.js +3 -1
  52. package/lib/util/buildMediaQuery.js +3 -1
  53. package/lib/util/cloneDeep.js +3 -1
  54. package/lib/util/cloneNodes.js +3 -1
  55. package/lib/util/color.js +26 -8
  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 +5 -3
  60. package/lib/util/dataTypes.js +59 -21
  61. package/lib/util/defaults.js +6 -4
  62. package/lib/util/escapeClassName.js +7 -5
  63. package/lib/util/escapeCommas.js +3 -1
  64. package/lib/util/flattenColorPalette.js +3 -1
  65. package/lib/util/formatVariantSelector.js +138 -168
  66. package/lib/util/getAllConfigs.js +6 -4
  67. package/lib/util/hashConfig.js +6 -4
  68. package/lib/util/isKeyframeRule.js +3 -1
  69. package/lib/util/isPlainObject.js +3 -1
  70. package/lib/util/isSyntacticallyValidPropertyValue.js +3 -1
  71. package/lib/util/log.js +25 -4
  72. package/lib/util/nameClass.js +12 -6
  73. package/lib/util/negateValue.js +4 -2
  74. package/lib/util/normalizeConfig.js +44 -17
  75. package/lib/util/normalizeScreens.js +12 -4
  76. package/lib/util/parseAnimationValue.js +3 -1
  77. package/lib/util/parseBoxShadowValue.js +6 -2
  78. package/lib/util/parseDependency.js +3 -1
  79. package/lib/util/parseGlob.js +6 -4
  80. package/lib/util/parseObjectStyles.js +9 -7
  81. package/lib/util/pluginUtils.js +34 -43
  82. package/lib/util/prefixSelector.js +27 -11
  83. package/lib/util/pseudoElements.js +209 -0
  84. package/lib/util/removeAlphaVariables.js +3 -1
  85. package/lib/util/resolveConfig.js +10 -8
  86. package/lib/util/resolveConfigPath.js +26 -10
  87. package/lib/util/responsive.js +6 -4
  88. package/lib/util/splitAtTopLevelOnly.js +10 -2
  89. package/lib/util/tap.js +3 -1
  90. package/lib/util/toColorValue.js +3 -1
  91. package/lib/util/toPath.js +3 -1
  92. package/lib/util/transformThemeValue.js +6 -4
  93. package/lib/util/validateConfig.js +27 -3
  94. package/lib/util/validateFormalSyntax.js +3 -1
  95. package/lib/util/withAlphaVariable.js +6 -2
  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/loadConfig.d.ts +4 -0
  105. package/loadConfig.js +2 -0
  106. package/package.json +48 -49
  107. package/src/cli/build/index.js +11 -7
  108. package/src/cli/build/plugin.js +102 -71
  109. package/src/cli/build/watching.js +4 -2
  110. package/src/cli/index.js +217 -3
  111. package/src/cli/init/index.js +37 -8
  112. package/src/cli.js +1 -232
  113. package/src/corePluginList.js +1 -1
  114. package/src/corePlugins.js +237 -34
  115. package/src/css/preflight.css +9 -1
  116. package/src/featureFlags.js +7 -3
  117. package/src/index.js +1 -47
  118. package/src/lib/content.js +45 -18
  119. package/src/lib/defaultExtractor.js +8 -2
  120. package/src/lib/detectNesting.js +9 -1
  121. package/src/lib/evaluateTailwindFunctions.js +4 -1
  122. package/src/lib/expandApplyAtRules.js +8 -1
  123. package/src/lib/expandTailwindAtRules.js +73 -12
  124. package/src/lib/generateRules.js +127 -71
  125. package/src/lib/getModuleDependencies.js +70 -30
  126. package/src/lib/handleImportAtRules.js +34 -0
  127. package/src/lib/load-config.ts +31 -0
  128. package/src/lib/normalizeTailwindDirectives.js +0 -27
  129. package/src/lib/offsets.js +25 -3
  130. package/src/lib/setupContextUtils.js +105 -58
  131. package/src/lib/setupTrackingContext.js +37 -14
  132. package/src/lib/sharedState.js +11 -4
  133. package/src/plugin.js +128 -0
  134. package/src/public/colors.js +22 -0
  135. package/src/public/default-config.js +1 -1
  136. package/src/public/default-theme.js +2 -2
  137. package/src/public/load-config.js +2 -0
  138. package/src/util/applyImportantSelector.js +27 -0
  139. package/src/util/color.js +18 -3
  140. package/src/util/colorNames.js +150 -0
  141. package/src/util/dataTypes.js +17 -6
  142. package/src/util/formatVariantSelector.js +160 -174
  143. package/src/util/getAllConfigs.js +2 -2
  144. package/src/util/log.js +24 -0
  145. package/src/util/negateValue.js +1 -1
  146. package/src/util/normalizeConfig.js +39 -11
  147. package/src/util/pluginUtils.js +11 -38
  148. package/src/util/prefixSelector.js +28 -10
  149. package/src/util/pseudoElements.js +167 -0
  150. package/src/util/resolveConfigPath.js +12 -1
  151. package/src/util/splitAtTopLevelOnly.js +8 -1
  152. package/src/util/validateConfig.js +23 -0
  153. package/src/value-parser/LICENSE +22 -0
  154. package/src/value-parser/README.md +3 -0
  155. package/src/value-parser/index.d.ts +177 -0
  156. package/src/value-parser/index.js +28 -0
  157. package/src/value-parser/parse.js +303 -0
  158. package/src/value-parser/stringify.js +41 -0
  159. package/src/value-parser/unit.js +118 -0
  160. package/src/value-parser/walk.js +18 -0
  161. package/stubs/.gitignore +1 -0
  162. package/stubs/.prettierrc.json +6 -0
  163. package/stubs/{defaultConfig.stub.js → config.full.js} +51 -2
  164. package/stubs/{simpleConfig.stub.js → config.simple.js} +1 -2
  165. package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -1
  166. package/stubs/postcss.config.js +5 -0
  167. package/stubs/tailwind.config.cjs +2 -0
  168. package/stubs/tailwind.config.js +2 -0
  169. package/stubs/tailwind.config.ts +3 -0
  170. package/types/config.d.ts +14 -8
  171. package/types/generated/colors.d.ts +22 -0
  172. package/types/generated/corePluginList.d.ts +1 -1
  173. package/types/generated/default-theme.d.ts +33 -3
  174. package/CHANGELOG.md +0 -2353
  175. package/lib/cli/build/deps.js +0 -54
  176. package/lib/cli/shared.js +0 -12
  177. package/lib/cli-peer-dependencies.js +0 -28
  178. package/lib/constants.js +0 -44
  179. package/peers/index.js +0 -79537
  180. package/scripts/install-integrations.js +0 -27
  181. package/scripts/rebuildFixtures.js +0 -68
  182. package/src/cli/build/deps.js +0 -56
  183. package/src/cli/shared.js +0 -5
  184. package/src/cli-peer-dependencies.js +0 -15
  185. package/src/constants.js +0 -17
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/nodejs.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,17 +5,20 @@ 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 _pluginJs = require("./plugin.js");
13
- 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) {
14
17
  return obj && obj.__esModule ? obj : {
15
18
  default: obj
16
19
  };
17
20
  }
18
- async function build(args, configs) {
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
@@ -31,9 +34,12 @@ async function build(args, configs) {
31
34
  console.error(`Specified config file ${args["--config"]} does not exist.`);
32
35
  process.exit(9);
33
36
  }
37
+ if (args["--no-autoprefixer"]) {
38
+ console.error("[deprecation] The --no-autoprefixer flag is deprecated and has no effect.");
39
+ }
34
40
  // TODO: Reference the @config path here if exists
35
- let configPath = args["--config"] ? args["--config"] : ((defaultPath)=>_fs.default.existsSync(defaultPath) ? defaultPath : null)(_path.default.resolve(`./${configs.tailwind}`));
36
- 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);
37
43
  if (shouldWatch) {
38
44
  // Abort the watcher if stdin is closed to avoid zombie processes
39
45
  // You can disable this behavior with --watch=always
@@ -43,6 +49,9 @@ async function build(args, configs) {
43
49
  process.stdin.resume();
44
50
  await processor.watch();
45
51
  } else {
46
- await processor.build();
52
+ await processor.build().catch((e)=>{
53
+ console.error(e);
54
+ process.exit(1);
55
+ });
47
56
  }
48
57
  }
@@ -5,32 +5,115 @@ 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
- const _shared = require("../shared");
22
- const _resolveConfigJs = /*#__PURE__*/ _interopRequireDefault(require("../../../resolveConfig.js"));
23
- const _getModuleDependenciesJs = /*#__PURE__*/ _interopRequireDefault(require("../../lib/getModuleDependencies.js"));
24
- const _contentJs = require("../../lib/content.js");
25
- const _watchingJs = require("./watching.js");
26
- const _fastGlob = /*#__PURE__*/ _interopRequireDefault(require("fast-glob"));
27
- const _findAtConfigPathJs = require("../../lib/findAtConfigPath.js");
28
- const _log = /*#__PURE__*/ _interopRequireDefault(require("../../util/log"));
29
- function _interopRequireDefault(obj) {
26
+ const _sharedState = require("../../lib/sharedState");
27
+ const _resolveConfig = /*#__PURE__*/ _interop_require_default(require("../../../resolveConfig.js"));
28
+ const _content = require("../../lib/content.js");
29
+ const _watching = require("./watching.js");
30
+ const _fastglob = /*#__PURE__*/ _interop_require_default(require("fast-glob"));
31
+ const _findAtConfigPath = require("../../lib/findAtConfigPath.js");
32
+ const _log = /*#__PURE__*/ _interop_require_default(require("../../util/log"));
33
+ const _loadconfig = require("../../lib/load-config");
34
+ const _getModuleDependencies = /*#__PURE__*/ _interop_require_default(require("../../lib/getModuleDependencies"));
35
+ const _validateConfig = require("../../util/validateConfig");
36
+ const _handleImportAtRules = require("../../lib/handleImportAtRules");
37
+ const _featureFlags = require("../../featureFlags");
38
+ function _interop_require_default(obj) {
30
39
  return obj && obj.__esModule ? obj : {
31
40
  default: obj
32
41
  };
33
42
  }
43
+ function _getRequireWildcardCache(nodeInterop) {
44
+ if (typeof WeakMap !== "function") return null;
45
+ var cacheBabelInterop = new WeakMap();
46
+ var cacheNodeInterop = new WeakMap();
47
+ return (_getRequireWildcardCache = function(nodeInterop) {
48
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
49
+ })(nodeInterop);
50
+ }
51
+ function _interop_require_wildcard(obj, nodeInterop) {
52
+ if (!nodeInterop && obj && obj.__esModule) {
53
+ return obj;
54
+ }
55
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
56
+ return {
57
+ default: obj
58
+ };
59
+ }
60
+ var cache = _getRequireWildcardCache(nodeInterop);
61
+ if (cache && cache.has(obj)) {
62
+ return cache.get(obj);
63
+ }
64
+ var newObj = {};
65
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
66
+ for(var key in obj){
67
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
68
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
69
+ if (desc && (desc.get || desc.set)) {
70
+ Object.defineProperty(newObj, key, desc);
71
+ } else {
72
+ newObj[key] = obj[key];
73
+ }
74
+ }
75
+ }
76
+ newObj.default = obj;
77
+ if (cache) {
78
+ cache.set(obj, newObj);
79
+ }
80
+ return newObj;
81
+ }
82
+ async function lightningcss(result, { map =true , minify =true } = {}) {
83
+ try {
84
+ var _browserslist_findConfig;
85
+ var _result_opts_from;
86
+ 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;
87
+ let defaultBrowsersListConfig = _packagejson.default.browserslist;
88
+ let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
89
+ let transformed = _lightningcss.default.transform({
90
+ filename: result.opts.from || "input.css",
91
+ code: Buffer.from(result.css, "utf-8"),
92
+ minify,
93
+ sourceMap: result.map === undefined ? map : !!result.map,
94
+ inputSourceMap: result.map ? result.map.toString() : undefined,
95
+ targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(browsersListConfig)),
96
+ drafts: {
97
+ nesting: true
98
+ },
99
+ include: _lightningcss.Features.Nesting,
100
+ exclude: _lightningcss.Features.LogicalProperties
101
+ });
102
+ return Object.assign(result, {
103
+ css: transformed.code.toString("utf8"),
104
+ map: result.map ? Object.assign(result.map, {
105
+ toString () {
106
+ var _transformed_map;
107
+ return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
108
+ }
109
+ }) : result.map
110
+ });
111
+ } catch (err) {
112
+ console.error("Unable to use Lightning CSS. Using raw version instead.");
113
+ console.error(err);
114
+ return result;
115
+ }
116
+ }
34
117
  /**
35
118
  *
36
119
  * @param {string} [customPostCssPath ]
@@ -54,7 +137,7 @@ function _interopRequireDefault(obj) {
54
137
  plugins: (0, _plugins.default)(config, file),
55
138
  options: (0, _options.default)(config, file)
56
139
  };
57
- })() : await (0, _postcssLoadConfig.default)();
140
+ })() : await (0, _postcssloadconfig.default)();
58
141
  let configPlugins = config.plugins;
59
142
  let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
60
143
  if (typeof plugin === "function" && plugin.name === "tailwindcss") {
@@ -73,48 +156,16 @@ function _interopRequireDefault(obj) {
73
156
  config.options
74
157
  ];
75
158
  }
76
- function loadBuiltinPostcssPlugins() {
77
- let postcss = (0, _deps.loadPostcss)();
78
- let IMPORT_COMMENT = "__TAILWIND_RESTORE_IMPORT__: ";
79
- return [
80
- [
81
- (root)=>{
82
- root.walkAtRules("import", (rule)=>{
83
- if (rule.params.slice(1).startsWith("tailwindcss/")) {
84
- rule.after(postcss.comment({
85
- text: IMPORT_COMMENT + rule.params
86
- }));
87
- rule.remove();
88
- }
89
- });
90
- },
91
- (0, _deps.loadPostcssImport)(),
92
- (root)=>{
93
- root.walkComments((rule)=>{
94
- if (rule.text.startsWith(IMPORT_COMMENT)) {
95
- rule.after(postcss.atRule({
96
- name: "import",
97
- params: rule.text.replace(IMPORT_COMMENT, "")
98
- }));
99
- rule.remove();
100
- }
101
- });
102
- }
103
- ],
104
- [],
105
- {}
106
- ];
107
- }
108
159
  let state = {
109
160
  /** @type {any} */ context: null,
110
161
  /** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
111
162
  /** @type {{content: string, extension: string}[]} */ changedContent: [],
112
- configDependencies: new Set(),
163
+ /** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
113
164
  contextDependencies: new Set(),
114
165
  /** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
115
166
  refreshContentPaths () {
116
167
  var _this_context;
117
- this.contentPaths = (0, _contentJs.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
168
+ this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
118
169
  },
119
170
  get config () {
120
171
  return this.context.tailwindConfig;
@@ -127,44 +178,49 @@ let state = {
127
178
  },
128
179
  loadConfig (configPath, content) {
129
180
  if (this.watcher && configPath) {
130
- this.refreshConfigDependencies(configPath);
181
+ this.refreshConfigDependencies();
131
182
  }
132
- let config = configPath ? require(configPath) : {};
133
- // @ts-ignore
134
- config = (0, _resolveConfigJs.default)(config, {
135
- content: {
136
- files: []
183
+ let config = (0, _loadconfig.loadConfig)(configPath);
184
+ let dependencies = (0, _getModuleDependencies.default)(configPath);
185
+ this.configBag = {
186
+ config,
187
+ dependencies,
188
+ dispose () {
189
+ for (let file of dependencies){
190
+ delete require.cache[require.resolve(file)];
191
+ }
137
192
  }
138
- });
193
+ };
194
+ this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
139
195
  // Override content files if `--content` has been passed explicitly
140
196
  if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
141
- config.content.files = content;
197
+ this.configBag.config.content.files = content;
142
198
  }
143
- return config;
199
+ return this.configBag.config;
144
200
  },
145
- refreshConfigDependencies (configPath) {
146
- _shared.env.DEBUG && console.time("Module dependencies");
147
- for (let file of this.configDependencies){
148
- delete require.cache[require.resolve(file)];
149
- }
150
- if (configPath) {
151
- let deps = (0, _getModuleDependenciesJs.default)(configPath).map(({ file })=>file);
152
- for (let dependency of deps){
153
- this.configDependencies.add(dependency);
154
- }
155
- }
156
- _shared.env.DEBUG && console.timeEnd("Module dependencies");
201
+ refreshConfigDependencies () {
202
+ var _this_configBag;
203
+ _sharedState.env.DEBUG && console.time("Module dependencies");
204
+ (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
205
+ _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
157
206
  },
158
207
  readContentPaths () {
159
208
  let content = [];
160
209
  // Resolve globs from the content config
161
210
  // TODO: When we make the postcss plugin async-capable this can become async
162
- let files = _fastGlob.default.sync(this.contentPatterns.all);
211
+ let files = _fastglob.default.sync(this.contentPatterns.all);
163
212
  for (let file of files){
164
- content.push({
165
- content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
166
- extension: _path.default.extname(file).slice(1)
167
- });
213
+ if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
214
+ content.push({
215
+ file,
216
+ extension: _path.default.extname(file).slice(1)
217
+ });
218
+ } else {
219
+ content.push({
220
+ content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
221
+ extension: _path.default.extname(file).slice(1)
222
+ });
223
+ }
168
224
  }
169
225
  // Resolve raw content in the tailwind config
170
226
  let rawContent = this.config.content.files.filter((file)=>{
@@ -183,43 +239,45 @@ let state = {
183
239
  this.context.changedContent = this.changedContent.splice(0);
184
240
  return this.context;
185
241
  }
186
- _shared.env.DEBUG && console.time("Searching for config");
187
- var _findAtConfigPath;
188
- let configPath = (_findAtConfigPath = (0, _findAtConfigPathJs.findAtConfigPath)(root, result)) !== null && _findAtConfigPath !== void 0 ? _findAtConfigPath : cliConfigPath;
189
- _shared.env.DEBUG && console.timeEnd("Searching for config");
190
- _shared.env.DEBUG && console.time("Loading config");
242
+ _sharedState.env.DEBUG && console.time("Searching for config");
243
+ var _findAtConfigPath1;
244
+ let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
245
+ _sharedState.env.DEBUG && console.timeEnd("Searching for config");
246
+ _sharedState.env.DEBUG && console.time("Loading config");
191
247
  let config = this.loadConfig(configPath, content);
192
- _shared.env.DEBUG && console.timeEnd("Loading config");
193
- _shared.env.DEBUG && console.time("Creating context");
248
+ _sharedState.env.DEBUG && console.timeEnd("Loading config");
249
+ _sharedState.env.DEBUG && console.time("Creating context");
194
250
  this.context = createContext(config, []);
195
251
  Object.assign(this.context, {
196
252
  userConfigPath: configPath
197
253
  });
198
- _shared.env.DEBUG && console.timeEnd("Creating context");
199
- _shared.env.DEBUG && console.time("Resolving content paths");
254
+ _sharedState.env.DEBUG && console.timeEnd("Creating context");
255
+ _sharedState.env.DEBUG && console.time("Resolving content paths");
200
256
  this.refreshContentPaths();
201
- _shared.env.DEBUG && console.timeEnd("Resolving content paths");
257
+ _sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
202
258
  if (this.watcher) {
203
- _shared.env.DEBUG && console.time("Watch new files");
259
+ _sharedState.env.DEBUG && console.time("Watch new files");
204
260
  this.watcher.refreshWatchedFiles();
205
- _shared.env.DEBUG && console.timeEnd("Watch new files");
261
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
206
262
  }
207
- _shared.env.DEBUG && console.time("Reading content files");
208
263
  for (let file of this.readContentPaths()){
209
264
  this.context.changedContent.push(file);
210
265
  }
211
- _shared.env.DEBUG && console.timeEnd("Reading content files");
212
266
  return this.context;
213
267
  }
214
268
  };
215
269
  async function createProcessor(args, cliConfigPath) {
216
270
  var _args_content;
217
- let postcss = (0, _deps.loadPostcss)();
218
271
  let input = args["--input"];
219
272
  let output = args["--output"];
220
273
  let includePostCss = args["--postcss"];
221
274
  let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
222
- let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : loadBuiltinPostcssPlugins();
275
+ let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
276
+ [],
277
+ [],
278
+ {}
279
+ ];
280
+ beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
223
281
  if (args["--purge"]) {
224
282
  _log.default.warn("purge-flag-deprecated", [
225
283
  "The `--purge` flag has been deprecated.",
@@ -235,7 +293,7 @@ async function createProcessor(args, cliConfigPath) {
235
293
  return {
236
294
  postcssPlugin: "tailwindcss",
237
295
  Once (root, { result }) {
238
- _shared.env.DEBUG && console.time("Compiling CSS");
296
+ _sharedState.env.DEBUG && console.time("Compiling CSS");
239
297
  (0, _processTailwindFeatures.default)(({ createContext })=>{
240
298
  console.error();
241
299
  console.error("Rebuilding...");
@@ -249,7 +307,7 @@ async function createProcessor(args, cliConfigPath) {
249
307
  });
250
308
  };
251
309
  })(root, result);
252
- _shared.env.DEBUG && console.timeEnd("Compiling CSS");
310
+ _sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
253
311
  }
254
312
  };
255
313
  };
@@ -258,12 +316,10 @@ async function createProcessor(args, cliConfigPath) {
258
316
  ...beforePlugins,
259
317
  tailwindPlugin,
260
318
  !args["--minify"] && _utils.formatNodes,
261
- ...afterPlugins,
262
- !args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
263
- args["--minify"] && (0, _deps.loadCssNano)()
319
+ ...afterPlugins
264
320
  ].filter(Boolean);
265
321
  /** @type {import('postcss').Processor} */ // @ts-ignore
266
- let processor = postcss(plugins);
322
+ let processor = (0, _postcss.default)(plugins);
267
323
  async function readInput() {
268
324
  // Piping in data, let's drain the stdin
269
325
  if (input === "-") {
@@ -278,25 +334,29 @@ async function createProcessor(args, cliConfigPath) {
278
334
  }
279
335
  async function build() {
280
336
  let start = process.hrtime.bigint();
281
- return readInput().then((css)=>processor.process(css, {
282
- ...postcssOptions,
283
- from: input,
284
- to: output
337
+ let options = {
338
+ ...postcssOptions,
339
+ from: input,
340
+ to: output
341
+ };
342
+ return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
343
+ ...options,
344
+ minify: !!args["--minify"]
285
345
  })).then((result)=>{
286
346
  if (!state.watcher) {
287
347
  return result;
288
348
  }
289
- _shared.env.DEBUG && console.time("Recording PostCSS dependencies");
349
+ _sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
290
350
  for (let message of result.messages){
291
351
  if (message.type === "dependency") {
292
352
  state.contextDependencies.add(message.file);
293
353
  }
294
354
  }
295
- _shared.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
355
+ _sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
296
356
  // TODO: This needs to be in a different spot
297
- _shared.env.DEBUG && console.time("Watch new files");
357
+ _sharedState.env.DEBUG && console.time("Watch new files");
298
358
  state.watcher.refreshWatchedFiles();
299
- _shared.env.DEBUG && console.timeEnd("Watch new files");
359
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
300
360
  return result;
301
361
  }).then((result)=>{
302
362
  if (!output) {
@@ -321,7 +381,11 @@ async function createProcessor(args, cliConfigPath) {
321
381
  // If you fix it and then save the main CSS file so there's no error
322
382
  // The watcher will start watching the imported CSS files and will be
323
383
  // resilient to future errors.
324
- console.error(err);
384
+ if (state.watcher) {
385
+ console.error(err);
386
+ } else {
387
+ return Promise.reject(err);
388
+ }
325
389
  });
326
390
  }
327
391
  /**
@@ -338,13 +402,14 @@ async function createProcessor(args, cliConfigPath) {
338
402
  return {
339
403
  build,
340
404
  watch: async ()=>{
341
- state.watcher = (0, _watchingJs.createWatcher)(args, {
405
+ state.watcher = (0, _watching.createWatcher)(args, {
342
406
  state,
343
407
  /**
344
408
  * @param {{file: string, content(): Promise<string>, extension: string}[]} changes
345
409
  */ async rebuild (changes) {
346
410
  let needsNewContext = changes.some((change)=>{
347
- return state.configDependencies.has(change.file) || state.contextDependencies.has(change.file);
411
+ var _state_configBag;
412
+ return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
348
413
  });
349
414
  if (needsNewContext) {
350
415
  state.context = null;
@@ -10,15 +10,25 @@ function _export(target, all) {
10
10
  });
11
11
  }
12
12
  _export(exports, {
13
- indentRecursive: ()=>indentRecursive,
14
- formatNodes: ()=>formatNodes,
15
- readFileWithRetries: ()=>readFileWithRetries,
16
- drainStdin: ()=>drainStdin,
17
- outputFile: ()=>outputFile
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__*/ _interopRequireDefault(require("fs"));
20
- const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
21
- function _interopRequireDefault(obj) {
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
  };
@@ -5,15 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "createWatcher", {
7
7
  enumerable: true,
8
- get: ()=>createWatcher
8
+ get: function() {
9
+ return createWatcher;
10
+ }
9
11
  });
10
- const _chokidar = /*#__PURE__*/ _interopRequireDefault(require("chokidar"));
11
- const _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
12
- const _micromatch = /*#__PURE__*/ _interopRequireDefault(require("micromatch"));
13
- const _normalizePath = /*#__PURE__*/ _interopRequireDefault(require("normalize-path"));
14
- const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
15
- const _utilsJs = require("./utils.js");
16
- function _interopRequireDefault(obj) {
12
+ const _chokidar = /*#__PURE__*/ _interop_require_default(require("chokidar"));
13
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
14
+ const _micromatch = /*#__PURE__*/ _interop_require_default(require("micromatch"));
15
+ const _normalizepath = /*#__PURE__*/ _interop_require_default(require("normalize-path"));
16
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
17
+ const _utils = require("./utils.js");
18
+ function _interop_require_default(obj) {
17
19
  return obj && obj.__esModule ? obj : {
18
20
  default: obj
19
21
  };
@@ -64,7 +66,9 @@ function createWatcher(args, { state , rebuild }) {
64
66
  // Clear all pending rebuilds for the about-to-be-built files
65
67
  changes.forEach((change)=>pendingRebuilds.delete(change.file));
66
68
  // Resolve the promise even when the rebuild fails
67
- return rebuild(changes).then(()=>{}, ()=>{});
69
+ return rebuild(changes).then(()=>{}, (e)=>{
70
+ console.error(e.toString());
71
+ });
68
72
  }
69
73
  /**
70
74
  *
@@ -109,7 +113,7 @@ function createWatcher(args, { state , rebuild }) {
109
113
  // This can happen when a file is pseudo-atomically replaced (a copy is created, overwritten, the old one is unlinked, and the new one is renamed)
110
114
  // TODO: An an optimization we should allow removal when the config changes
111
115
  watcher.on("unlink", (file)=>{
112
- file = (0, _normalizePath.default)(file);
116
+ file = (0, _normalizepath.default)(file);
113
117
  // Only re-add the file if it's not covered by a dynamic pattern
114
118
  if (!_micromatch.default.some([
115
119
  file
@@ -148,7 +152,7 @@ function createWatcher(args, { state , rebuild }) {
148
152
  // We need to read the file as early as possible outside of the chain
149
153
  // because it may be gone by the time we get to it. doing the read
150
154
  // immediately increases the chance that the file is still there
151
- let content = await (0, _utilsJs.readFileWithRetries)(_path.default.resolve(filePath));
155
+ let content = await (0, _utils.readFileWithRetries)(_path.default.resolve(filePath));
152
156
  if (content === undefined) {
153
157
  return;
154
158
  }
@@ -171,7 +175,7 @@ function createWatcher(args, { state , rebuild }) {
171
175
  fswatcher: watcher,
172
176
  refreshWatchedFiles () {
173
177
  watcher.add(Array.from(state.contextDependencies));
174
- watcher.add(Array.from(state.configDependencies));
178
+ watcher.add(Array.from(state.configBag.dependencies));
175
179
  watcher.add(state.contentPatterns.all);
176
180
  }
177
181
  };
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "help", {
7
7
  enumerable: true,
8
- get: ()=>help
8
+ get: function() {
9
+ return help;
10
+ }
9
11
  });
10
- const _packageJson = /*#__PURE__*/ _interopRequireDefault(require("../../../package.json"));
11
- function _interopRequireDefault(obj) {
12
+ const _packagejson = /*#__PURE__*/ _interop_require_default(require("../../../package.json"));
13
+ function _interop_require_default(obj) {
12
14
  return obj && obj.__esModule ? obj : {
13
15
  default: obj
14
16
  };
@@ -17,7 +19,7 @@ function help({ message , usage , commands , options }) {
17
19
  let indent = 2;
18
20
  // Render header
19
21
  console.log();
20
- console.log(`${_packageJson.default.name} v${_packageJson.default.version}`);
22
+ console.log(`${_packagejson.default.name} v${_packagejson.default.version}`);
21
23
  // Render message
22
24
  if (message) {
23
25
  console.log();