tailwindcss 0.0.0-insiders.ea10bb9 → 0.0.0-insiders.ea3d9cd

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 (187) hide show
  1. package/README.md +1 -1
  2. package/index.css +5 -0
  3. package/lib/cli/build/index.js +23 -10
  4. package/lib/cli/build/plugin.js +136 -117
  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 +29 -12
  10. package/lib/cli.js +1 -227
  11. package/lib/corePluginList.js +8 -1
  12. package/lib/corePlugins.js +374 -77
  13. package/lib/css/preflight.css +9 -1
  14. package/lib/featureFlags.js +30 -17
  15. package/lib/index.js +1 -47
  16. package/lib/lib/cacheInvalidation.js +7 -5
  17. package/lib/lib/collapseAdjacentRules.js +5 -3
  18. package/lib/lib/collapseDuplicateDeclarations.js +12 -10
  19. package/lib/lib/content.js +61 -31
  20. package/lib/lib/defaultExtractor.js +15 -8
  21. package/lib/lib/detectNesting.js +10 -2
  22. package/lib/lib/evaluateTailwindFunctions.js +24 -20
  23. package/lib/lib/expandApplyAtRules.js +43 -35
  24. package/lib/lib/expandTailwindAtRules.js +89 -22
  25. package/lib/lib/findAtConfigPath.js +9 -7
  26. package/lib/lib/generateRules.js +160 -98
  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 +93 -4
  32. package/lib/lib/partitionApplyAtRules.js +3 -1
  33. package/lib/lib/regex.js +21 -7
  34. package/lib/lib/remap-bitfield.js +89 -0
  35. package/lib/lib/resolveDefaultsAtRules.js +28 -24
  36. package/lib/lib/setupContextUtils.js +191 -142
  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 +116 -0
  41. package/lib/postcss-plugins/nesting/index.js +3 -1
  42. package/lib/postcss-plugins/nesting/plugin.js +10 -8
  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 +5 -3
  55. package/lib/util/color.js +30 -12
  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 +7 -5
  60. package/lib/util/dataTypes.js +88 -23
  61. package/lib/util/defaults.js +9 -7
  62. package/lib/util/escapeClassName.js +10 -8
  63. package/lib/util/escapeCommas.js +3 -1
  64. package/lib/util/flattenColorPalette.js +3 -1
  65. package/lib/util/formatVariantSelector.js +138 -160
  66. package/lib/util/getAllConfigs.js +8 -6
  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 +63 -36
  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 +53 -55
  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 +17 -15
  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 +46 -45
  107. package/resolveConfig.d.ts +11 -2
  108. package/src/cli/build/index.js +17 -9
  109. package/src/cli/build/plugin.js +96 -73
  110. package/src/cli/build/watching.js +4 -2
  111. package/src/cli/index.js +217 -3
  112. package/src/cli/init/index.js +37 -8
  113. package/src/cli.js +1 -221
  114. package/src/corePluginList.js +1 -1
  115. package/src/corePlugins.js +237 -34
  116. package/src/css/preflight.css +9 -1
  117. package/src/featureFlags.js +7 -3
  118. package/src/index.js +1 -47
  119. package/src/lib/content.js +45 -18
  120. package/src/lib/defaultExtractor.js +9 -3
  121. package/src/lib/detectNesting.js +9 -1
  122. package/src/lib/evaluateTailwindFunctions.js +4 -1
  123. package/src/lib/expandApplyAtRules.js +8 -1
  124. package/src/lib/expandTailwindAtRules.js +73 -12
  125. package/src/lib/generateRules.js +127 -49
  126. package/src/lib/getModuleDependencies.js +70 -30
  127. package/src/lib/handleImportAtRules.js +34 -0
  128. package/src/lib/load-config.ts +31 -0
  129. package/src/lib/normalizeTailwindDirectives.js +0 -27
  130. package/src/lib/offsets.js +104 -1
  131. package/src/lib/remap-bitfield.js +82 -0
  132. package/src/lib/setupContextUtils.js +109 -69
  133. package/src/lib/setupTrackingContext.js +37 -14
  134. package/src/lib/sharedState.js +11 -4
  135. package/src/plugin.js +124 -0
  136. package/src/public/colors.js +22 -0
  137. package/src/public/default-config.js +1 -1
  138. package/src/public/default-theme.js +2 -2
  139. package/src/public/load-config.js +2 -0
  140. package/src/util/applyImportantSelector.js +27 -0
  141. package/src/util/color.js +18 -3
  142. package/src/util/colorNames.js +150 -0
  143. package/src/util/dataTypes.js +49 -9
  144. package/src/util/formatVariantSelector.js +160 -163
  145. package/src/util/getAllConfigs.js +2 -2
  146. package/src/util/log.js +24 -0
  147. package/src/util/negateValue.js +1 -1
  148. package/src/util/normalizeConfig.js +39 -11
  149. package/src/util/pluginUtils.js +16 -35
  150. package/src/util/prefixSelector.js +28 -10
  151. package/src/util/pseudoElements.js +167 -0
  152. package/src/util/resolveConfigPath.js +12 -1
  153. package/src/util/splitAtTopLevelOnly.js +8 -1
  154. package/src/util/validateConfig.js +23 -0
  155. package/src/value-parser/LICENSE +22 -0
  156. package/src/value-parser/README.md +3 -0
  157. package/src/value-parser/index.d.ts +177 -0
  158. package/src/value-parser/index.js +28 -0
  159. package/src/value-parser/parse.js +303 -0
  160. package/src/value-parser/stringify.js +41 -0
  161. package/src/value-parser/unit.js +118 -0
  162. package/src/value-parser/walk.js +18 -0
  163. package/stubs/.gitignore +1 -0
  164. package/stubs/.prettierrc.json +6 -0
  165. package/stubs/{defaultConfig.stub.js → config.full.js} +197 -147
  166. package/stubs/{simpleConfig.stub.js → config.simple.js} +1 -2
  167. package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -1
  168. package/stubs/postcss.config.js +5 -0
  169. package/stubs/tailwind.config.cjs +2 -0
  170. package/stubs/tailwind.config.js +2 -0
  171. package/stubs/tailwind.config.ts +3 -0
  172. package/types/config.d.ts +17 -10
  173. package/types/generated/colors.d.ts +22 -0
  174. package/types/generated/corePluginList.d.ts +1 -1
  175. package/types/generated/default-theme.d.ts +110 -80
  176. package/CHANGELOG.md +0 -2336
  177. package/lib/cli/build/deps.js +0 -54
  178. package/lib/cli/shared.js +0 -12
  179. package/lib/cli-peer-dependencies.js +0 -28
  180. package/lib/constants.js +0 -44
  181. package/peers/index.js +0 -79512
  182. package/scripts/install-integrations.js +0 -27
  183. package/scripts/rebuildFixtures.js +0 -68
  184. package/src/cli/build/deps.js +0 -56
  185. package/src/cli/shared.js +0 -5
  186. package/src/cli-peer-dependencies.js +0 -15
  187. 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/workflow/status/tailwindlabs/tailwindcss/Node.js%20CI" 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,14 +34,24 @@ 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
- /* Abort the watcher if stdin is closed to avoid zombie processes */ process.stdin.on("end", ()=>process.exit(0));
44
+ // Abort the watcher if stdin is closed to avoid zombie processes
45
+ // You can disable this behavior with --watch=always
46
+ if (args["--watch"] !== "always") {
47
+ process.stdin.on("end", ()=>process.exit(0));
48
+ }
39
49
  process.stdin.resume();
40
50
  await processor.watch();
41
51
  } else {
42
- await processor.build();
52
+ await processor.build().catch((e)=>{
53
+ console.error(e);
54
+ process.exit(1);
55
+ });
43
56
  }
44
57
  }
@@ -5,32 +5,69 @@ 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_default(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
+ async function lightningcss(result, { map =true , minify =true } = {}) {
44
+ try {
45
+ let transformed = _lightningcss.default.transform({
46
+ filename: result.opts.from || "input.css",
47
+ code: Buffer.from(result.css, "utf-8"),
48
+ minify,
49
+ sourceMap: result.map === undefined ? map : !!result.map,
50
+ inputSourceMap: result.map ? result.map.toString() : undefined,
51
+ targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(_packagejson.default.browserslist)),
52
+ drafts: {
53
+ nesting: true
54
+ }
55
+ });
56
+ return Object.assign(result, {
57
+ css: transformed.code.toString("utf8"),
58
+ map: result.map ? Object.assign(result.map, {
59
+ toString () {
60
+ var _transformed_map;
61
+ return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
62
+ }
63
+ }) : result.map
64
+ });
65
+ } catch (err) {
66
+ console.error("Unable to use Lightning CSS. Using raw version instead.");
67
+ console.error(err);
68
+ return result;
69
+ }
70
+ }
34
71
  /**
35
72
  *
36
73
  * @param {string} [customPostCssPath ]
@@ -54,7 +91,7 @@ function _interopRequireDefault(obj) {
54
91
  plugins: (0, _plugins.default)(config, file),
55
92
  options: (0, _options.default)(config, file)
56
93
  };
57
- })() : await (0, _postcssLoadConfig.default)();
94
+ })() : await (0, _postcssloadconfig.default)();
58
95
  let configPlugins = config.plugins;
59
96
  let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
60
97
  if (typeof plugin === "function" && plugin.name === "tailwindcss") {
@@ -73,48 +110,16 @@ function _interopRequireDefault(obj) {
73
110
  config.options
74
111
  ];
75
112
  }
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
113
  let state = {
109
114
  /** @type {any} */ context: null,
110
115
  /** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
111
116
  /** @type {{content: string, extension: string}[]} */ changedContent: [],
112
- configDependencies: new Set(),
117
+ /** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
113
118
  contextDependencies: new Set(),
114
119
  /** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
115
120
  refreshContentPaths () {
116
- var ref;
117
- this.contentPaths = (0, _contentJs.parseCandidateFiles)(this.context, (ref = this.context) === null || ref === void 0 ? void 0 : ref.tailwindConfig);
121
+ var _this_context;
122
+ this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
118
123
  },
119
124
  get config () {
120
125
  return this.context.tailwindConfig;
@@ -127,44 +132,49 @@ let state = {
127
132
  },
128
133
  loadConfig (configPath, content) {
129
134
  if (this.watcher && configPath) {
130
- this.refreshConfigDependencies(configPath);
135
+ this.refreshConfigDependencies();
131
136
  }
132
- let config = configPath ? require(configPath) : {};
133
- // @ts-ignore
134
- config = (0, _resolveConfigJs.default)(config, {
135
- content: {
136
- files: []
137
+ let config = (0, _loadconfig.loadConfig)(configPath);
138
+ let dependencies = (0, _getModuleDependencies.default)(configPath);
139
+ this.configBag = {
140
+ config,
141
+ dependencies,
142
+ dispose () {
143
+ for (let file of dependencies){
144
+ delete require.cache[require.resolve(file)];
145
+ }
137
146
  }
138
- });
147
+ };
148
+ this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
139
149
  // Override content files if `--content` has been passed explicitly
140
150
  if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
141
- config.content.files = content;
151
+ this.configBag.config.content.files = content;
142
152
  }
143
- return config;
153
+ return this.configBag.config;
144
154
  },
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");
155
+ refreshConfigDependencies () {
156
+ var _this_configBag;
157
+ _sharedState.env.DEBUG && console.time("Module dependencies");
158
+ (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
159
+ _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
157
160
  },
158
161
  readContentPaths () {
159
162
  let content = [];
160
163
  // Resolve globs from the content config
161
164
  // TODO: When we make the postcss plugin async-capable this can become async
162
- let files = _fastGlob.default.sync(this.contentPatterns.all);
165
+ let files = _fastglob.default.sync(this.contentPatterns.all);
163
166
  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
- });
167
+ if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
168
+ content.push({
169
+ file,
170
+ extension: _path.default.extname(file).slice(1)
171
+ });
172
+ } else {
173
+ content.push({
174
+ content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
175
+ extension: _path.default.extname(file).slice(1)
176
+ });
177
+ }
168
178
  }
169
179
  // Resolve raw content in the tailwind config
170
180
  let rawContent = this.config.content.files.filter((file)=>{
@@ -183,43 +193,45 @@ let state = {
183
193
  this.context.changedContent = this.changedContent.splice(0);
184
194
  return this.context;
185
195
  }
186
- _shared.env.DEBUG && console.time("Searching for config");
187
- var ref;
188
- let configPath = (ref = (0, _findAtConfigPathJs.findAtConfigPath)(root, result)) !== null && ref !== void 0 ? ref : cliConfigPath;
189
- _shared.env.DEBUG && console.timeEnd("Searching for config");
190
- _shared.env.DEBUG && console.time("Loading config");
196
+ _sharedState.env.DEBUG && console.time("Searching for config");
197
+ var _findAtConfigPath1;
198
+ let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
199
+ _sharedState.env.DEBUG && console.timeEnd("Searching for config");
200
+ _sharedState.env.DEBUG && console.time("Loading config");
191
201
  let config = this.loadConfig(configPath, content);
192
- _shared.env.DEBUG && console.timeEnd("Loading config");
193
- _shared.env.DEBUG && console.time("Creating context");
202
+ _sharedState.env.DEBUG && console.timeEnd("Loading config");
203
+ _sharedState.env.DEBUG && console.time("Creating context");
194
204
  this.context = createContext(config, []);
195
205
  Object.assign(this.context, {
196
206
  userConfigPath: configPath
197
207
  });
198
- _shared.env.DEBUG && console.timeEnd("Creating context");
199
- _shared.env.DEBUG && console.time("Resolving content paths");
208
+ _sharedState.env.DEBUG && console.timeEnd("Creating context");
209
+ _sharedState.env.DEBUG && console.time("Resolving content paths");
200
210
  this.refreshContentPaths();
201
- _shared.env.DEBUG && console.timeEnd("Resolving content paths");
211
+ _sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
202
212
  if (this.watcher) {
203
- _shared.env.DEBUG && console.time("Watch new files");
213
+ _sharedState.env.DEBUG && console.time("Watch new files");
204
214
  this.watcher.refreshWatchedFiles();
205
- _shared.env.DEBUG && console.timeEnd("Watch new files");
215
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
206
216
  }
207
- _shared.env.DEBUG && console.time("Reading content files");
208
217
  for (let file of this.readContentPaths()){
209
218
  this.context.changedContent.push(file);
210
219
  }
211
- _shared.env.DEBUG && console.timeEnd("Reading content files");
212
220
  return this.context;
213
221
  }
214
222
  };
215
223
  async function createProcessor(args, cliConfigPath) {
216
- var ref;
217
- let postcss = (0, _deps.loadPostcss)();
224
+ var _args_content;
218
225
  let input = args["--input"];
219
226
  let output = args["--output"];
220
227
  let includePostCss = args["--postcss"];
221
228
  let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
222
- let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : loadBuiltinPostcssPlugins();
229
+ let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
230
+ [],
231
+ [],
232
+ {}
233
+ ];
234
+ beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
223
235
  if (args["--purge"]) {
224
236
  _log.default.warn("purge-flag-deprecated", [
225
237
  "The `--purge` flag has been deprecated.",
@@ -229,13 +241,13 @@ async function createProcessor(args, cliConfigPath) {
229
241
  args["--content"] = args["--purge"];
230
242
  }
231
243
  }
232
- var ref1;
233
- let content = (ref1 = (ref = args["--content"]) === null || ref === void 0 ? void 0 : ref.split(/(?<!{[^}]+),/)) !== null && ref1 !== void 0 ? ref1 : [];
244
+ var _args_content_split;
245
+ 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 : [];
234
246
  let tailwindPlugin = ()=>{
235
247
  return {
236
248
  postcssPlugin: "tailwindcss",
237
249
  Once (root, { result }) {
238
- _shared.env.DEBUG && console.time("Compiling CSS");
250
+ _sharedState.env.DEBUG && console.time("Compiling CSS");
239
251
  (0, _processTailwindFeatures.default)(({ createContext })=>{
240
252
  console.error();
241
253
  console.error("Rebuilding...");
@@ -249,7 +261,7 @@ async function createProcessor(args, cliConfigPath) {
249
261
  });
250
262
  };
251
263
  })(root, result);
252
- _shared.env.DEBUG && console.timeEnd("Compiling CSS");
264
+ _sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
253
265
  }
254
266
  };
255
267
  };
@@ -258,12 +270,10 @@ async function createProcessor(args, cliConfigPath) {
258
270
  ...beforePlugins,
259
271
  tailwindPlugin,
260
272
  !args["--minify"] && _utils.formatNodes,
261
- ...afterPlugins,
262
- !args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
263
- args["--minify"] && (0, _deps.loadCssNano)()
273
+ ...afterPlugins
264
274
  ].filter(Boolean);
265
275
  /** @type {import('postcss').Processor} */ // @ts-ignore
266
- let processor = postcss(plugins);
276
+ let processor = (0, _postcss.default)(plugins);
267
277
  async function readInput() {
268
278
  // Piping in data, let's drain the stdin
269
279
  if (input === "-") {
@@ -278,25 +288,29 @@ async function createProcessor(args, cliConfigPath) {
278
288
  }
279
289
  async function build() {
280
290
  let start = process.hrtime.bigint();
281
- return readInput().then((css)=>processor.process(css, {
282
- ...postcssOptions,
283
- from: input,
284
- to: output
291
+ let options = {
292
+ ...postcssOptions,
293
+ from: input,
294
+ to: output
295
+ };
296
+ return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
297
+ ...options,
298
+ minify: !!args["--minify"]
285
299
  })).then((result)=>{
286
300
  if (!state.watcher) {
287
301
  return result;
288
302
  }
289
- _shared.env.DEBUG && console.time("Recording PostCSS dependencies");
303
+ _sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
290
304
  for (let message of result.messages){
291
305
  if (message.type === "dependency") {
292
306
  state.contextDependencies.add(message.file);
293
307
  }
294
308
  }
295
- _shared.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
309
+ _sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
296
310
  // TODO: This needs to be in a different spot
297
- _shared.env.DEBUG && console.time("Watch new files");
311
+ _sharedState.env.DEBUG && console.time("Watch new files");
298
312
  state.watcher.refreshWatchedFiles();
299
- _shared.env.DEBUG && console.timeEnd("Watch new files");
313
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
300
314
  return result;
301
315
  }).then((result)=>{
302
316
  if (!output) {
@@ -304,8 +318,8 @@ async function createProcessor(args, cliConfigPath) {
304
318
  return;
305
319
  }
306
320
  return Promise.all([
307
- (0, _utils.outputFile)(output, result.css),
308
- result.map && (0, _utils.outputFile)(output + ".map", result.map.toString())
321
+ (0, _utils.outputFile)(result.opts.to, result.css),
322
+ result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
309
323
  ]);
310
324
  }).then(()=>{
311
325
  let end = process.hrtime.bigint();
@@ -321,7 +335,11 @@ async function createProcessor(args, cliConfigPath) {
321
335
  // If you fix it and then save the main CSS file so there's no error
322
336
  // The watcher will start watching the imported CSS files and will be
323
337
  // resilient to future errors.
324
- console.error(err);
338
+ if (state.watcher) {
339
+ console.error(err);
340
+ } else {
341
+ return Promise.reject(err);
342
+ }
325
343
  });
326
344
  }
327
345
  /**
@@ -338,13 +356,14 @@ async function createProcessor(args, cliConfigPath) {
338
356
  return {
339
357
  build,
340
358
  watch: async ()=>{
341
- state.watcher = (0, _watchingJs.createWatcher)(args, {
359
+ state.watcher = (0, _watching.createWatcher)(args, {
342
360
  state,
343
361
  /**
344
362
  * @param {{file: string, content(): Promise<string>, extension: string}[]} changes
345
363
  */ async rebuild (changes) {
346
364
  let needsNewContext = changes.some((change)=>{
347
- return state.configDependencies.has(change.file) || state.contextDependencies.has(change.file);
365
+ var _state_configBag;
366
+ return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
348
367
  });
349
368
  if (needsNewContext) {
350
369
  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();