tailwindcss 0.0.0-insiders.d2a95a0 → 0.0.0-insiders.d2bb6f1

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