tailwindcss 0.0.0-insiders.bc115f0 → 0.0.0-insiders.bc1af02

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 (208) 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 +178 -114
  5. package/lib/cli/build/utils.js +18 -8
  6. package/lib/cli/build/watching.js +17 -13
  7. package/lib/cli/help/index.js +8 -6
  8. package/lib/cli/index.js +20 -28
  9. package/lib/cli/init/index.js +28 -11
  10. package/lib/cli.js +1 -5
  11. package/lib/corePluginList.js +8 -1
  12. package/lib/corePlugins.js +495 -200
  13. package/lib/css/preflight.css +9 -1
  14. package/lib/featureFlags.js +28 -14
  15. package/lib/index.js +1 -5
  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 +46 -16
  20. package/lib/lib/defaultExtractor.js +6 -4
  21. package/lib/lib/detectNesting.js +3 -1
  22. package/lib/lib/evaluateTailwindFunctions.js +24 -20
  23. package/lib/lib/expandApplyAtRules.js +41 -33
  24. package/lib/lib/expandTailwindAtRules.js +73 -33
  25. package/lib/lib/findAtConfigPath.js +6 -4
  26. package/lib/lib/generateRules.js +90 -69
  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 +14 -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 +25 -21
  36. package/lib/lib/setupContextUtils.js +156 -108
  37. package/lib/lib/setupTrackingContext.js +30 -26
  38. package/lib/lib/sharedState.js +29 -11
  39. package/lib/lib/substituteScreenAtRules.js +7 -5
  40. package/lib/plugin.js +124 -8
  41. package/lib/postcss-plugins/nesting/index.js +4 -2
  42. package/lib/postcss-plugins/nesting/plugin.js +10 -8
  43. package/lib/processTailwindFeatures.js +17 -15
  44. package/lib/public/colors.js +50 -26
  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 +29 -11
  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 +59 -21
  61. package/lib/util/defaults.js +9 -7
  62. package/lib/util/escapeClassName.js +9 -7
  63. package/lib/util/escapeCommas.js +3 -1
  64. package/lib/util/flattenColorPalette.js +3 -1
  65. package/lib/util/formatVariantSelector.js +39 -126
  66. package/lib/util/getAllConfigs.js +9 -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 +3 -1
  74. package/lib/util/normalizeConfig.js +68 -36
  75. package/lib/util/normalizeScreens.js +15 -7
  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 +40 -49
  82. package/lib/util/prefixSelector.js +6 -4
  83. package/lib/util/pseudoElements.js +209 -0
  84. package/lib/util/removeAlphaVariables.js +3 -1
  85. package/lib/util/resolveConfig.js +20 -14
  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 +7 -3
  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 +43 -58
  107. package/src/cli/build/index.js +11 -7
  108. package/src/cli/build/plugin.js +100 -70
  109. package/src/cli/build/watching.js +4 -2
  110. package/src/cli/index.js +9 -26
  111. package/src/cli/init/index.js +37 -8
  112. package/src/cli.js +1 -5
  113. package/src/corePluginList.js +1 -1
  114. package/src/corePlugins.js +245 -46
  115. package/src/css/preflight.css +9 -1
  116. package/src/featureFlags.js +7 -3
  117. package/src/index.js +1 -5
  118. package/src/lib/content.js +33 -1
  119. package/src/lib/defaultExtractor.js +1 -1
  120. package/src/lib/evaluateTailwindFunctions.js +4 -1
  121. package/src/lib/expandApplyAtRules.js +8 -1
  122. package/src/lib/expandTailwindAtRules.js +70 -39
  123. package/src/lib/generateRules.js +64 -33
  124. package/src/lib/getModuleDependencies.js +70 -30
  125. package/src/lib/handleImportAtRules.js +34 -0
  126. package/src/lib/load-config.ts +31 -0
  127. package/src/lib/normalizeTailwindDirectives.js +0 -27
  128. package/src/lib/offsets.js +9 -3
  129. package/src/lib/setupContextUtils.js +49 -26
  130. package/src/lib/setupTrackingContext.js +6 -8
  131. package/src/lib/sharedState.js +11 -5
  132. package/src/plugin.js +88 -2
  133. package/src/processTailwindFeatures.js +3 -2
  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 +6 -102
  143. package/src/util/getAllConfigs.js +2 -2
  144. package/src/util/log.js +24 -0
  145. package/src/util/normalizeConfig.js +39 -11
  146. package/src/util/pluginUtils.js +11 -38
  147. package/src/util/prefixSelector.js +1 -0
  148. package/src/util/pseudoElements.js +167 -0
  149. package/src/util/resolveConfigPath.js +12 -1
  150. package/src/util/splitAtTopLevelOnly.js +8 -1
  151. package/src/util/validateConfig.js +23 -0
  152. package/src/value-parser/LICENSE +22 -0
  153. package/src/value-parser/README.md +3 -0
  154. package/src/value-parser/index.d.ts +177 -0
  155. package/src/value-parser/index.js +28 -0
  156. package/src/value-parser/parse.js +303 -0
  157. package/src/value-parser/stringify.js +41 -0
  158. package/src/value-parser/unit.js +118 -0
  159. package/src/value-parser/walk.js +18 -0
  160. package/stubs/.gitignore +1 -0
  161. package/stubs/.prettierrc.json +6 -0
  162. package/stubs/{defaultConfig.stub.js → config.full.js} +49 -2
  163. package/stubs/{simpleConfig.stub.js → config.simple.js} +1 -2
  164. package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -1
  165. package/stubs/postcss.config.js +5 -0
  166. package/stubs/tailwind.config.cjs +2 -0
  167. package/stubs/tailwind.config.js +2 -0
  168. package/stubs/tailwind.config.ts +3 -0
  169. package/types/config.d.ts +10 -8
  170. package/types/generated/colors.d.ts +22 -0
  171. package/types/generated/corePluginList.d.ts +1 -1
  172. package/types/generated/default-theme.d.ts +28 -1
  173. package/CHANGELOG.md +0 -2362
  174. package/lib/cli/build/deps.js +0 -54
  175. package/lib/cli/shared.js +0 -13
  176. package/lib/cli-peer-dependencies.js +0 -28
  177. package/lib/constants.js +0 -44
  178. package/lib/oxide/cli/build/deps.js +0 -81
  179. package/lib/oxide/cli/build/index.js +0 -47
  180. package/lib/oxide/cli/build/plugin.js +0 -364
  181. package/lib/oxide/cli/build/utils.js +0 -77
  182. package/lib/oxide/cli/build/watching.js +0 -177
  183. package/lib/oxide/cli/help/index.js +0 -70
  184. package/lib/oxide/cli/index.js +0 -220
  185. package/lib/oxide/cli/init/index.js +0 -35
  186. package/lib/oxide/cli/shared.js +0 -12
  187. package/lib/oxide/cli.js +0 -5
  188. package/lib/oxide/postcss-plugin.js +0 -2
  189. package/oxide-node-api-shim/index.js +0 -21
  190. package/oxide-node-api-shim/package.json +0 -5
  191. package/peers/index.js +0 -79531
  192. package/scripts/install-integrations.js +0 -27
  193. package/scripts/rebuildFixtures.js +0 -68
  194. package/src/cli/build/deps.js +0 -56
  195. package/src/cli/shared.js +0 -6
  196. package/src/cli-peer-dependencies.js +0 -15
  197. package/src/constants.js +0 -17
  198. package/src/oxide/cli/build/deps.ts +0 -91
  199. package/src/oxide/cli/build/index.ts +0 -47
  200. package/src/oxide/cli/build/plugin.ts +0 -436
  201. package/src/oxide/cli/build/utils.ts +0 -74
  202. package/src/oxide/cli/build/watching.ts +0 -225
  203. package/src/oxide/cli/help/index.ts +0 -69
  204. package/src/oxide/cli/index.ts +0 -212
  205. package/src/oxide/cli/init/index.ts +0 -32
  206. package/src/oxide/cli/shared.ts +0 -4
  207. package/src/oxide/cli.ts +0 -1
  208. 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/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,118 @@ 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
+ function license() {
83
+ return `/* ! tailwindcss v${_packagejson.default.version} | MIT License | https://tailwindcss.com */\n`;
84
+ }
85
+ async function lightningcss(result, { map = true, minify = true } = {}) {
86
+ try {
87
+ var _browserslist_findConfig;
88
+ var _result_opts_from;
89
+ 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;
90
+ let defaultBrowsersListConfig = _packagejson.default.browserslist;
91
+ let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
92
+ let transformed = _lightningcss.default.transform({
93
+ filename: result.opts.from || "input.css",
94
+ code: Buffer.from(result.css, "utf-8"),
95
+ minify,
96
+ sourceMap: result.map === undefined ? map : !!result.map,
97
+ inputSourceMap: result.map ? result.map.toString() : undefined,
98
+ targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(browsersListConfig)),
99
+ drafts: {
100
+ nesting: true
101
+ },
102
+ include: _lightningcss.Features.Nesting,
103
+ exclude: _lightningcss.Features.LogicalProperties
104
+ });
105
+ return Object.assign(result, {
106
+ css: transformed.code.toString("utf8"),
107
+ map: result.map ? Object.assign(result.map, {
108
+ toString () {
109
+ var _transformed_map;
110
+ return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
111
+ }
112
+ }) : result.map
113
+ });
114
+ } catch (err) {
115
+ console.error("Unable to use Lightning CSS. Using raw version instead.");
116
+ console.error(err);
117
+ return result;
118
+ }
119
+ }
34
120
  /**
35
121
  *
36
122
  * @param {string} [customPostCssPath ]
@@ -40,7 +126,7 @@ function _interopRequireDefault(obj) {
40
126
  let file = _path.default.resolve(customPostCssPath);
41
127
  // Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
42
128
  // @ts-ignore
43
- let { config ={} } = await (0, _lilconfig.lilconfig)("postcss").load(file);
129
+ let { config = {} } = await (0, _lilconfig.lilconfig)("postcss").load(file);
44
130
  if (typeof config === "function") {
45
131
  config = config();
46
132
  } else {
@@ -54,7 +140,7 @@ function _interopRequireDefault(obj) {
54
140
  plugins: (0, _plugins.default)(config, file),
55
141
  options: (0, _options.default)(config, file)
56
142
  };
57
- })() : await (0, _postcssLoadConfig.default)();
143
+ })() : await (0, _postcssloadconfig.default)();
58
144
  let configPlugins = config.plugins;
59
145
  let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
60
146
  if (typeof plugin === "function" && plugin.name === "tailwindcss") {
@@ -73,48 +159,16 @@ function _interopRequireDefault(obj) {
73
159
  config.options
74
160
  ];
75
161
  }
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
162
  let state = {
109
163
  /** @type {any} */ context: null,
110
164
  /** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
111
165
  /** @type {{content: string, extension: string}[]} */ changedContent: [],
112
- configDependencies: new Set(),
166
+ /** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
113
167
  contextDependencies: new Set(),
114
168
  /** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
115
169
  refreshContentPaths () {
116
170
  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);
171
+ this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
118
172
  },
119
173
  get config () {
120
174
  return this.context.tailwindConfig;
@@ -126,42 +180,41 @@ let state = {
126
180
  };
127
181
  },
128
182
  loadConfig (configPath, content) {
183
+ var _content;
129
184
  if (this.watcher && configPath) {
130
- this.refreshConfigDependencies(configPath);
185
+ this.refreshConfigDependencies();
131
186
  }
132
- let config = configPath ? require(configPath) : {};
133
- // @ts-ignore
134
- config = (0, _resolveConfigJs.default)(config, {
135
- content: {
136
- files: []
187
+ let config = (0, _loadconfig.loadConfig)(configPath);
188
+ let dependencies = (0, _getModuleDependencies.default)(configPath);
189
+ this.configBag = {
190
+ config,
191
+ dependencies,
192
+ dispose () {
193
+ for (let file of dependencies){
194
+ delete require.cache[require.resolve(file)];
195
+ }
137
196
  }
138
- });
197
+ };
198
+ this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
139
199
  // Override content files if `--content` has been passed explicitly
140
- if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
141
- config.content.files = content;
200
+ if (((_content = content) === null || _content === void 0 ? void 0 : _content.length) > 0) {
201
+ this.configBag.config.content.files = content;
142
202
  }
143
- return config;
203
+ return this.configBag.config;
144
204
  },
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");
205
+ refreshConfigDependencies () {
206
+ var _this_configBag;
207
+ _sharedState.env.DEBUG && console.time("Module dependencies");
208
+ (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
209
+ _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
157
210
  },
158
211
  readContentPaths () {
159
212
  let content = [];
160
213
  // Resolve globs from the content config
161
214
  // TODO: When we make the postcss plugin async-capable this can become async
162
- let files = _fastGlob.default.sync(this.contentPatterns.all);
215
+ let files = _fastglob.default.sync(this.contentPatterns.all);
163
216
  for (let file of files){
164
- if (_shared.env.OXIDE) {
217
+ if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
165
218
  content.push({
166
219
  file,
167
220
  extension: _path.default.extname(file).slice(1)
@@ -177,7 +230,7 @@ let state = {
177
230
  let rawContent = this.config.content.files.filter((file)=>{
178
231
  return file !== null && typeof file === "object";
179
232
  });
180
- for (let { raw: htmlContent , extension ="html" } of rawContent){
233
+ for (let { raw: htmlContent, extension = "html" } of rawContent){
181
234
  content.push({
182
235
  content: htmlContent,
183
236
  extension
@@ -185,31 +238,31 @@ let state = {
185
238
  }
186
239
  return content;
187
240
  },
188
- getContext ({ createContext , cliConfigPath , root , result , content }) {
241
+ getContext ({ createContext, cliConfigPath, root, result, content }) {
189
242
  if (this.context) {
190
243
  this.context.changedContent = this.changedContent.splice(0);
191
244
  return this.context;
192
245
  }
193
- _shared.env.DEBUG && console.time("Searching for config");
194
- var _findAtConfigPath;
195
- let configPath = (_findAtConfigPath = (0, _findAtConfigPathJs.findAtConfigPath)(root, result)) !== null && _findAtConfigPath !== void 0 ? _findAtConfigPath : cliConfigPath;
196
- _shared.env.DEBUG && console.timeEnd("Searching for config");
197
- _shared.env.DEBUG && console.time("Loading config");
246
+ _sharedState.env.DEBUG && console.time("Searching for config");
247
+ var _findAtConfigPath1;
248
+ let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
249
+ _sharedState.env.DEBUG && console.timeEnd("Searching for config");
250
+ _sharedState.env.DEBUG && console.time("Loading config");
198
251
  let config = this.loadConfig(configPath, content);
199
- _shared.env.DEBUG && console.timeEnd("Loading config");
200
- _shared.env.DEBUG && console.time("Creating context");
252
+ _sharedState.env.DEBUG && console.timeEnd("Loading config");
253
+ _sharedState.env.DEBUG && console.time("Creating context");
201
254
  this.context = createContext(config, []);
202
255
  Object.assign(this.context, {
203
256
  userConfigPath: configPath
204
257
  });
205
- _shared.env.DEBUG && console.timeEnd("Creating context");
206
- _shared.env.DEBUG && console.time("Resolving content paths");
258
+ _sharedState.env.DEBUG && console.timeEnd("Creating context");
259
+ _sharedState.env.DEBUG && console.time("Resolving content paths");
207
260
  this.refreshContentPaths();
208
- _shared.env.DEBUG && console.timeEnd("Resolving content paths");
261
+ _sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
209
262
  if (this.watcher) {
210
- _shared.env.DEBUG && console.time("Watch new files");
263
+ _sharedState.env.DEBUG && console.time("Watch new files");
211
264
  this.watcher.refreshWatchedFiles();
212
- _shared.env.DEBUG && console.timeEnd("Watch new files");
265
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
213
266
  }
214
267
  for (let file of this.readContentPaths()){
215
268
  this.context.changedContent.push(file);
@@ -219,12 +272,16 @@ let state = {
219
272
  };
220
273
  async function createProcessor(args, cliConfigPath) {
221
274
  var _args_content;
222
- let postcss = (0, _deps.loadPostcss)();
223
275
  let input = args["--input"];
224
276
  let output = args["--output"];
225
277
  let includePostCss = args["--postcss"];
226
278
  let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
227
- let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : loadBuiltinPostcssPlugins();
279
+ let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
280
+ [],
281
+ [],
282
+ {}
283
+ ];
284
+ beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
228
285
  if (args["--purge"]) {
229
286
  _log.default.warn("purge-flag-deprecated", [
230
287
  "The `--purge` flag has been deprecated.",
@@ -239,9 +296,9 @@ async function createProcessor(args, cliConfigPath) {
239
296
  let tailwindPlugin = ()=>{
240
297
  return {
241
298
  postcssPlugin: "tailwindcss",
242
- Once (root, { result }) {
243
- _shared.env.DEBUG && console.time("Compiling CSS");
244
- (0, _processTailwindFeatures.default)(({ createContext })=>{
299
+ async Once (root, { result }) {
300
+ _sharedState.env.DEBUG && console.time("Compiling CSS");
301
+ await (0, _processTailwindFeatures.default)(({ createContext })=>{
245
302
  console.error();
246
303
  console.error("Rebuilding...");
247
304
  return ()=>{
@@ -254,7 +311,7 @@ async function createProcessor(args, cliConfigPath) {
254
311
  });
255
312
  };
256
313
  })(root, result);
257
- _shared.env.DEBUG && console.timeEnd("Compiling CSS");
314
+ _sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
258
315
  }
259
316
  };
260
317
  };
@@ -263,12 +320,10 @@ async function createProcessor(args, cliConfigPath) {
263
320
  ...beforePlugins,
264
321
  tailwindPlugin,
265
322
  !args["--minify"] && _utils.formatNodes,
266
- ...afterPlugins,
267
- !args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
268
- args["--minify"] && (0, _deps.loadCssNano)()
323
+ ...afterPlugins
269
324
  ].filter(Boolean);
270
325
  /** @type {import('postcss').Processor} */ // @ts-ignore
271
- let processor = postcss(plugins);
326
+ let processor = (0, _postcss.default)(plugins);
272
327
  async function readInput() {
273
328
  // Piping in data, let's drain the stdin
274
329
  if (input === "-") {
@@ -283,33 +338,37 @@ async function createProcessor(args, cliConfigPath) {
283
338
  }
284
339
  async function build() {
285
340
  let start = process.hrtime.bigint();
286
- return readInput().then((css)=>processor.process(css, {
287
- ...postcssOptions,
288
- from: input,
289
- to: output
341
+ let options = {
342
+ ...postcssOptions,
343
+ from: input,
344
+ to: output
345
+ };
346
+ return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
347
+ ...options,
348
+ minify: !!args["--minify"]
290
349
  })).then((result)=>{
291
350
  if (!state.watcher) {
292
351
  return result;
293
352
  }
294
- _shared.env.DEBUG && console.time("Recording PostCSS dependencies");
353
+ _sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
295
354
  for (let message of result.messages){
296
355
  if (message.type === "dependency") {
297
356
  state.contextDependencies.add(message.file);
298
357
  }
299
358
  }
300
- _shared.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
359
+ _sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
301
360
  // TODO: This needs to be in a different spot
302
- _shared.env.DEBUG && console.time("Watch new files");
361
+ _sharedState.env.DEBUG && console.time("Watch new files");
303
362
  state.watcher.refreshWatchedFiles();
304
- _shared.env.DEBUG && console.timeEnd("Watch new files");
363
+ _sharedState.env.DEBUG && console.timeEnd("Watch new files");
305
364
  return result;
306
365
  }).then((result)=>{
307
366
  if (!output) {
308
- process.stdout.write(result.css);
367
+ process.stdout.write(license() + result.css);
309
368
  return;
310
369
  }
311
370
  return Promise.all([
312
- (0, _utils.outputFile)(result.opts.to, result.css),
371
+ (0, _utils.outputFile)(result.opts.to, license() + result.css),
313
372
  result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
314
373
  ]);
315
374
  }).then(()=>{
@@ -326,7 +385,11 @@ async function createProcessor(args, cliConfigPath) {
326
385
  // If you fix it and then save the main CSS file so there's no error
327
386
  // The watcher will start watching the imported CSS files and will be
328
387
  // resilient to future errors.
329
- console.error(err);
388
+ if (state.watcher) {
389
+ console.error(err);
390
+ } else {
391
+ return Promise.reject(err);
392
+ }
330
393
  });
331
394
  }
332
395
  /**
@@ -343,13 +406,14 @@ async function createProcessor(args, cliConfigPath) {
343
406
  return {
344
407
  build,
345
408
  watch: async ()=>{
346
- state.watcher = (0, _watchingJs.createWatcher)(args, {
409
+ state.watcher = (0, _watching.createWatcher)(args, {
347
410
  state,
348
411
  /**
349
412
  * @param {{file: string, content(): Promise<string>, extension: string}[]} changes
350
413
  */ async rebuild (changes) {
351
414
  let needsNewContext = changes.some((change)=>{
352
- return state.configDependencies.has(change.file) || state.contextDependencies.has(change.file);
415
+ var _state_configBag;
416
+ return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
353
417
  });
354
418
  if (needsNewContext) {
355
419
  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,20 +5,22 @@ 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
  };
20
22
  }
21
- function createWatcher(args, { state , rebuild }) {
23
+ function createWatcher(args, { state, rebuild }) {
22
24
  let shouldPoll = args["--poll"];
23
25
  let shouldCoalesceWriteEvents = shouldPoll || process.platform === "win32";
24
26
  // Polling interval in milliseconds
@@ -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
  };