tailwindcss 0.0.0-insiders.c5c644f → 0.0.0-insiders.cd5cb00

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.
package/CHANGELOG.md CHANGED
@@ -29,10 +29,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
29
29
  - Add `touch-action` utilities ([#5603](https://github.com/tailwindlabs/tailwindcss/pull/5603))
30
30
  - Add `inherit` to default color palette ([#5597](https://github.com/tailwindlabs/tailwindcss/pull/5597))
31
31
  - Add `overflow-clip`, `overflow-x-clip` and `overflow-y-clip` utilities ([#5630](https://github.com/tailwindlabs/tailwindcss/pull/5630))
32
+ - Add `scroll-snap` utilities ([#5637](https://github.com/tailwindlabs/tailwindcss/pull/5637))
33
+ - Add `border-x` and `border-y` width and color utilities ([#5639](https://github.com/tailwindlabs/tailwindcss/pull/5639))
32
34
 
33
35
  ### Fixed
34
36
 
35
37
  - Fix defining colors as functions when color opacity plugins are disabled ([#5470](https://github.com/tailwindlabs/tailwindcss/pull/5470))
38
+ - Fix using negated `content` globs ([#5625](https://github.com/tailwindlabs/tailwindcss/pull/5625))
39
+ - Fix using backslashes in `content` globs ([#5628](https://github.com/tailwindlabs/tailwindcss/pull/5628))
36
40
 
37
41
  ## [2.2.16] - 2021-09-26
38
42
 
package/lib/cli.js CHANGED
@@ -15,6 +15,7 @@ var _fastGlob = _interopRequireDefault(require("fast-glob"));
15
15
  var _getModuleDependencies = _interopRequireDefault(require("./lib/getModuleDependencies"));
16
16
  var _log = _interopRequireDefault(require("./util/log"));
17
17
  var _packageJson = _interopRequireDefault(require("../package.json"));
18
+ var _normalizePath = _interopRequireDefault(require("normalize-path"));
18
19
  function _interopRequireDefault(obj) {
19
20
  return obj && obj.__esModule ? obj : {
20
21
  default: obj
@@ -386,14 +387,12 @@ async function build() {
386
387
  };
387
388
  let resolvedConfig = (0, _resolveConfig).default(config);
388
389
  if (args['--purge']) {
389
- _log.default.warn([
390
+ _log.default.warn('purge-flag-deprecated', [
390
391
  'The `--purge` flag has been deprecated.',
391
- 'Please use `--content` instead.'
392
+ 'Please use `--content` instead.',
392
393
  ]);
393
394
  if (!args['--content']) {
394
- args['--content'] = [
395
- '--purge'
396
- ];
395
+ args['--content'] = args['--purge'];
397
396
  }
398
397
  }
399
398
  if (args['--content']) {
@@ -410,7 +409,8 @@ async function build() {
410
409
  // like an object it's probably a raw content object. But this object
411
410
  // is not watchable, so let's remove it.
412
411
  return typeof file === 'string';
413
- });
412
+ }).map((glob)=>(0, _normalizePath).default(glob)
413
+ );
414
414
  }
415
415
  function extractRawContent(config) {
416
416
  return extractContent(config).filter((file)=>{
@@ -48,6 +48,11 @@ var _default = [
48
48
  "touchAction",
49
49
  "userSelect",
50
50
  "resize",
51
+ "scrollSnapType",
52
+ "scrollSnapAlign",
53
+ "scrollSnapStop",
54
+ "scrollMargin",
55
+ "scrollPadding",
51
56
  "listStylePosition",
52
57
  "listStyleType",
53
58
  "appearance",
@@ -263,7 +263,7 @@ var _default = {
263
263
  let mode = config('darkMode', 'media');
264
264
  if (mode === false) {
265
265
  mode = 'media';
266
- _log.default.warn([
266
+ _log.default.warn('darkmode-false', [
267
267
  '`darkMode` is set to `false` in your config.',
268
268
  'This will behave just like the `media` value.',
269
269
  ]);
@@ -1146,6 +1146,165 @@ var _default = {
1146
1146
  }
1147
1147
  });
1148
1148
  },
1149
+ scrollSnapType: ({ addUtilities , addBase })=>{
1150
+ addBase({
1151
+ '@defaults scroll-snap-type': {
1152
+ '--tw-scroll-snap-strictness': 'proximity'
1153
+ }
1154
+ });
1155
+ addUtilities({
1156
+ '.snap-none': {
1157
+ 'scroll-snap-type': 'none'
1158
+ },
1159
+ '.snap-x': {
1160
+ '@defaults scroll-snap-type': {
1161
+ },
1162
+ 'scroll-snap-type': 'x var(--tw-scroll-snap-strictness)'
1163
+ },
1164
+ '.snap-y': {
1165
+ '@defaults scroll-snap-type': {
1166
+ },
1167
+ 'scroll-snap-type': 'y var(--tw-scroll-snap-strictness)'
1168
+ },
1169
+ '.snap-both': {
1170
+ '@defaults scroll-snap-type': {
1171
+ },
1172
+ 'scroll-snap-type': 'both var(--tw-scroll-snap-strictness)'
1173
+ },
1174
+ '.snap-mandatory': {
1175
+ '--tw-scroll-snap-strictness': 'mandatory'
1176
+ },
1177
+ '.snap-proximity': {
1178
+ '--tw-scroll-snap-strictness': 'proximity'
1179
+ }
1180
+ });
1181
+ },
1182
+ scrollSnapAlign: ({ addUtilities })=>{
1183
+ addUtilities({
1184
+ '.snap-start': {
1185
+ 'scroll-snap-align': 'start'
1186
+ },
1187
+ '.snap-end': {
1188
+ 'scroll-snap-align': 'end'
1189
+ },
1190
+ '.snap-center': {
1191
+ 'scroll-snap-align': 'center'
1192
+ },
1193
+ '.snap-align-none': {
1194
+ 'scroll-snap-align': 'none'
1195
+ }
1196
+ });
1197
+ },
1198
+ scrollSnapStop: ({ addUtilities })=>{
1199
+ addUtilities({
1200
+ '.snap-normal': {
1201
+ 'scroll-snap-stop': 'normal'
1202
+ },
1203
+ '.snap-always': {
1204
+ 'scroll-snap-stop': 'always'
1205
+ }
1206
+ });
1207
+ },
1208
+ scrollMargin: (0, _createUtilityPlugin).default('scrollMargin', [
1209
+ [
1210
+ 'scroll-m',
1211
+ [
1212
+ 'scroll-margin'
1213
+ ]
1214
+ ],
1215
+ [
1216
+ [
1217
+ 'scroll-mx',
1218
+ [
1219
+ 'scroll-margin-left',
1220
+ 'scroll-margin-right'
1221
+ ]
1222
+ ],
1223
+ [
1224
+ 'scroll-my',
1225
+ [
1226
+ 'scroll-margin-top',
1227
+ 'scroll-margin-bottom'
1228
+ ]
1229
+ ],
1230
+ ],
1231
+ [
1232
+ [
1233
+ 'scroll-mt',
1234
+ [
1235
+ 'scroll-margin-top'
1236
+ ]
1237
+ ],
1238
+ [
1239
+ 'scroll-mr',
1240
+ [
1241
+ 'scroll-margin-right'
1242
+ ]
1243
+ ],
1244
+ [
1245
+ 'scroll-mb',
1246
+ [
1247
+ 'scroll-margin-bottom'
1248
+ ]
1249
+ ],
1250
+ [
1251
+ 'scroll-ml',
1252
+ [
1253
+ 'scroll-margin-left'
1254
+ ]
1255
+ ],
1256
+ ],
1257
+ ]),
1258
+ scrollPadding: (0, _createUtilityPlugin).default('scrollPadding', [
1259
+ [
1260
+ 'scroll-p',
1261
+ [
1262
+ 'scroll-padding'
1263
+ ]
1264
+ ],
1265
+ [
1266
+ [
1267
+ 'scroll-px',
1268
+ [
1269
+ 'scroll-padding-left',
1270
+ 'scroll-padding-right'
1271
+ ]
1272
+ ],
1273
+ [
1274
+ 'scroll-py',
1275
+ [
1276
+ 'scroll-padding-top',
1277
+ 'scroll-padding-bottom'
1278
+ ]
1279
+ ],
1280
+ ],
1281
+ [
1282
+ [
1283
+ 'scroll-pt',
1284
+ [
1285
+ 'scroll-padding-top'
1286
+ ]
1287
+ ],
1288
+ [
1289
+ 'scroll-pr',
1290
+ [
1291
+ 'scroll-padding-right'
1292
+ ]
1293
+ ],
1294
+ [
1295
+ 'scroll-pb',
1296
+ [
1297
+ 'scroll-padding-bottom'
1298
+ ]
1299
+ ],
1300
+ [
1301
+ 'scroll-pl',
1302
+ [
1303
+ 'scroll-padding-left'
1304
+ ]
1305
+ ],
1306
+ ],
1307
+ ]),
1149
1308
  listStylePosition: ({ addUtilities })=>{
1150
1309
  addUtilities({
1151
1310
  '.list-inside': {
@@ -1883,6 +2042,32 @@ var _default = {
1883
2042
  'border-width'
1884
2043
  ]
1885
2044
  ],
2045
+ [
2046
+ [
2047
+ 'border-x',
2048
+ [
2049
+ [
2050
+ '@defaults border-width',
2051
+ {
2052
+ }
2053
+ ],
2054
+ 'border-left-width',
2055
+ 'border-right-width'
2056
+ ]
2057
+ ],
2058
+ [
2059
+ 'border-y',
2060
+ [
2061
+ [
2062
+ '@defaults border-width',
2063
+ {
2064
+ }
2065
+ ],
2066
+ 'border-top-width',
2067
+ 'border-bottom-width'
2068
+ ]
2069
+ ],
2070
+ ],
1886
2071
  [
1887
2072
  [
1888
2073
  'border-t',
@@ -1994,6 +2179,44 @@ var _default = {
1994
2179
  'color'
1995
2180
  ]
1996
2181
  });
2182
+ matchUtilities({
2183
+ 'border-x': (value)=>{
2184
+ if (!corePlugins('borderOpacity')) {
2185
+ return {
2186
+ 'border-left-color': (0, _toColorValue).default(value),
2187
+ 'border-right-color': (0, _toColorValue).default(value)
2188
+ };
2189
+ }
2190
+ return (0, _withAlphaVariable).default({
2191
+ color: value,
2192
+ property: [
2193
+ 'border-left-color',
2194
+ 'border-right-color'
2195
+ ],
2196
+ variable: '--tw-border-opacity'
2197
+ });
2198
+ },
2199
+ 'border-y': (value)=>{
2200
+ if (!corePlugins('borderOpacity')) {
2201
+ return {
2202
+ 'border-top-color': (0, _toColorValue).default(value),
2203
+ 'border-bottom-color': (0, _toColorValue).default(value)
2204
+ };
2205
+ }
2206
+ return (0, _withAlphaVariable).default({
2207
+ color: value,
2208
+ property: [
2209
+ 'border-top-color',
2210
+ 'border-bottom-color'
2211
+ ],
2212
+ variable: '--tw-border-opacity'
2213
+ });
2214
+ }
2215
+ }, {
2216
+ values: (({ DEFAULT: _ , ...colors })=>colors
2217
+ )((0, _flattenColorPalette).default(theme('borderColor'))),
2218
+ type: 'color'
2219
+ });
1997
2220
  matchUtilities({
1998
2221
  'border-t': (value)=>{
1999
2222
  if (!corePlugins('borderOpacity')) {
@@ -47,7 +47,7 @@ function issueFlagNotices(config) {
47
47
  if (experimentalFlagsEnabled(config).length > 0) {
48
48
  const changes = experimentalFlagsEnabled(config).map((s)=>_chalk.default.yellow(s)
49
49
  ).join(', ');
50
- _log.default.warn([
50
+ _log.default.warn('experimental-flags-enabled', [
51
51
  `You have enabled experimental features: ${changes}`,
52
52
  'Experimental features are not covered by semver, may introduce breaking changes, and can change at any time.',
53
53
  ]);
@@ -9,6 +9,7 @@ var _parseObjectStyles = _interopRequireDefault(require("../util/parseObjectStyl
9
9
  var _isPlainObject = _interopRequireDefault(require("../util/isPlainObject"));
10
10
  var _prefixSelector = _interopRequireDefault(require("../util/prefixSelector"));
11
11
  var _pluginUtils = require("../util/pluginUtils");
12
+ var _log = _interopRequireDefault(require("../util/log"));
12
13
  function _interopRequireDefault(obj) {
13
14
  return obj && obj.__esModule ? obj : {
14
15
  default: obj
@@ -244,16 +245,18 @@ function* resolveMatches(candidate, context) {
244
245
  // }
245
246
  for (let matchedPlugins of resolveMatchedPlugins(classCandidate, context)){
246
247
  let matches = [];
248
+ let typesByMatches = new Map();
247
249
  let [plugins, modifier] = matchedPlugins;
248
250
  let isOnlyPlugin = plugins.length === 1;
249
251
  for (let [sort, plugin] of plugins){
252
+ let matchesPerPlugin = [];
250
253
  if (typeof plugin === 'function') {
251
254
  for (let ruleSet of [].concat(plugin(modifier, {
252
255
  isOnlyPlugin
253
256
  }))){
254
257
  let [rules, options] = parseRules(ruleSet, context.postCssNodeCache);
255
258
  for (let rule of rules){
256
- matches.push([
259
+ matchesPerPlugin.push([
257
260
  {
258
261
  ...sort,
259
262
  options: {
@@ -269,7 +272,7 @@ function* resolveMatches(candidate, context) {
269
272
  let ruleSet = plugin;
270
273
  let [rules, options] = parseRules(ruleSet, context.postCssNodeCache);
271
274
  for (let rule of rules){
272
- matches.push([
275
+ matchesPerPlugin.push([
273
276
  {
274
277
  ...sort,
275
278
  options: {
@@ -281,8 +284,58 @@ function* resolveMatches(candidate, context) {
281
284
  ]);
282
285
  }
283
286
  }
287
+ if (matchesPerPlugin.length > 0) {
288
+ var ref;
289
+ typesByMatches.set(matchesPerPlugin, (ref = sort.options) === null || ref === void 0 ? void 0 : ref.type);
290
+ matches.push(matchesPerPlugin);
291
+ }
284
292
  }
285
- matches = applyPrefix(matches, context);
293
+ // Only keep the result of the very first plugin if we are dealing with
294
+ // arbitrary values, to protect against ambiguity.
295
+ if (isArbitraryValue(modifier) && matches.length > 1) {
296
+ var ref;
297
+ let typesPerPlugin = matches.map((match)=>new Set([
298
+ ...(ref = typesByMatches.get(match)) !== null && ref !== void 0 ? ref : []
299
+ ])
300
+ );
301
+ // Remove duplicates, so that we can detect proper unique types for each plugin.
302
+ for (let pluginTypes of typesPerPlugin){
303
+ for (let type of pluginTypes){
304
+ let removeFromOwnGroup = false;
305
+ for (let otherGroup of typesPerPlugin){
306
+ if (pluginTypes === otherGroup) continue;
307
+ if (otherGroup.has(type)) {
308
+ otherGroup.delete(type);
309
+ removeFromOwnGroup = true;
310
+ }
311
+ }
312
+ if (removeFromOwnGroup) pluginTypes.delete(type);
313
+ }
314
+ }
315
+ let messages = [];
316
+ for (let [idx, group] of typesPerPlugin.entries()){
317
+ for (let type of group){
318
+ let rules = matches[idx].map(([, rule])=>rule
319
+ ).flat().map((rule)=>rule.toString().split('\n').slice(1, -1) // Remove selector and closing '}'
320
+ .map((line)=>line.trim()
321
+ ).map((x)=>` ${x}`
322
+ ) // Re-indent
323
+ .join('\n')
324
+ ).join('\n\n');
325
+ messages.push(` - Replace "${candidate}" with "${candidate.replace('[', `[${type}:`)}" for:\n${rules}\n`);
326
+ break;
327
+ }
328
+ }
329
+ _log.default.warn([
330
+ // TODO: Update URL
331
+ `The class "${candidate}" is ambiguous and matches multiple utilities. Use a type hint (https://tailwindcss.com/docs/just-in-time-mode#ambiguous-values) to fix this.`,
332
+ '',
333
+ ...messages,
334
+ `If this is just part of your content and not a class, replace it with "${candidate.replace('[', '[').replace(']', ']')}" to silence this warning.`,
335
+ ]);
336
+ continue;
337
+ }
338
+ matches = applyPrefix(matches.flat(), context);
286
339
  if (important) {
287
340
  matches = applyImportant(matches, context);
288
341
  }
@@ -346,5 +399,8 @@ function generateRules(candidates, context) {
346
399
  ];
347
400
  });
348
401
  }
402
+ function isArbitraryValue(input) {
403
+ return input.startsWith('[') && input.endsWith(']');
404
+ }
349
405
  exports.resolveMatches = resolveMatches;
350
406
  exports.generateRules = generateRules;
@@ -43,7 +43,7 @@ function normalizeTailwindDirectives(root) {
43
43
  'responsive',
44
44
  'variants'
45
45
  ].includes(atRule.name)) {
46
- _log.default.warn([
46
+ _log.default.warn(`${atRule.name}-at-rule-deprecated`, [
47
47
  `'@${atRule.name}' is deprecated, use '@layer utilities' or '@layer components' instead.`,
48
48
  ]);
49
49
  }
@@ -593,8 +593,6 @@ function registerPlugins(plugins, context) {
593
593
  ]
594
594
  ));
595
595
  }
596
- //
597
- let warnedAbout = new Set([]);
598
596
  context.safelist = function() {
599
597
  var _safelist;
600
598
  let safelist = ((_safelist = context.tailwindConfig.safelist) !== null && _safelist !== void 0 ? _safelist : []).filter(Boolean);
@@ -607,14 +605,11 @@ function registerPlugins(plugins, context) {
607
605
  continue;
608
606
  }
609
607
  if (value instanceof RegExp) {
610
- if (!warnedAbout.has('root-regex')) {
611
- _log.default.warn([
612
- // TODO: Improve this warning message
613
- 'RegExp in the safelist option is not supported.',
614
- 'Please use the object syntax instead: https://tailwindcss.com/docs/...',
615
- ]);
616
- warnedAbout.add('root-regex');
617
- }
608
+ _log.default.warn('root-regex', [
609
+ // TODO: Improve this warning message
610
+ 'RegExp in the safelist option is not supported.',
611
+ 'Please use the object syntax instead: https://tailwindcss.com/docs/...',
612
+ ]);
618
613
  continue;
619
614
  }
620
615
  checks.push(value);
@@ -29,7 +29,7 @@ function getCandidateFiles(context, tailwindConfig) {
29
29
  return candidateFilesCache.get(context);
30
30
  }
31
31
  let candidateFiles = tailwindConfig.content.content.filter((item)=>typeof item === 'string'
32
- ).map((contentPath)=>(0, _normalizePath).default(_path.default.resolve(contentPath))
32
+ ).map((contentPath)=>(0, _normalizePath).default(contentPath)
33
33
  );
34
34
  return candidateFilesCache.set(context, candidateFiles).get(context);
35
35
  }
@@ -149,7 +149,10 @@ function setupTrackingContext(configOrPath) {
149
149
  let fileModifiedMap = (0, _setupContextUtils).getFileModifiedMap(context);
150
150
  // Add template paths as postcss dependencies.
151
151
  for (let fileOrGlob of candidateFiles){
152
- registerDependency((0, _parseDependency).default(fileOrGlob));
152
+ let dependency = (0, _parseDependency).default(fileOrGlob);
153
+ if (dependency) {
154
+ registerDependency(dependency);
155
+ }
153
156
  }
154
157
  for (let changedContent of resolvedChangedContent(context, candidateFiles, fileModifiedMap)){
155
158
  context.changedContent.push(changedContent);
@@ -137,7 +137,7 @@ function getCandidateFiles(context, tailwindConfig) {
137
137
  return candidateFilesCache.get(context);
138
138
  }
139
139
  let candidateFiles = tailwindConfig.content.content.filter((item)=>typeof item === 'string'
140
- ).map((contentPath)=>(0, _normalizePath).default(_path.default.resolve(contentPath))
140
+ ).map((contentPath)=>(0, _normalizePath).default(contentPath)
141
141
  );
142
142
  return candidateFilesCache.set(context, candidateFiles).get(context);
143
143
  }
@@ -9,15 +9,11 @@ function _interopRequireDefault(obj) {
9
9
  default: obj
10
10
  };
11
11
  }
12
- let warned = [];
13
12
  function warn({ version , from , to }) {
14
- if (!warned.includes(from)) {
15
- _log.default.warn([
16
- `As of Tailwind CSS ${version}, \`${from}\` has been renamed to \`${to}\`.`,
17
- 'Please update your color palette to eliminate this warning.',
18
- ]);
19
- warned.push(from);
20
- }
13
+ _log.default.warn(`${from}-color-rename`, [
14
+ `As of Tailwind CSS ${version}, \`${from}\` has been renamed to \`${to}\`.`,
15
+ 'Please update your color palette to eliminate this warning.',
16
+ ]);
21
17
  }
22
18
  var _default = {
23
19
  inherit: 'inherit',
package/lib/util/log.js CHANGED
@@ -9,27 +9,39 @@ function _interopRequireDefault(obj) {
9
9
  default: obj
10
10
  };
11
11
  }
12
+ let alreadyShown = new Set();
13
+ function log(chalk, messages, key) {
14
+ if (process.env.JEST_WORKER_ID !== undefined) return;
15
+ if (key && alreadyShown.has(key)) return;
16
+ if (key) alreadyShown.add(key);
17
+ console.warn('');
18
+ messages.forEach((message)=>console.warn(chalk, '-', message)
19
+ );
20
+ }
12
21
  var _default = {
13
- info (messages) {
14
- if (process.env.JEST_WORKER_ID !== undefined) return;
15
- console.warn('');
16
- messages.forEach((message)=>{
17
- console.warn(_chalk.default.bold.cyan('info'), '-', message);
18
- });
22
+ info (key, messages) {
23
+ log(_chalk.default.bold.cyan('info'), ...Array.isArray(key) ? [
24
+ key
25
+ ] : [
26
+ messages,
27
+ key
28
+ ]);
19
29
  },
20
- warn (messages) {
21
- if (process.env.JEST_WORKER_ID !== undefined) return;
22
- console.warn('');
23
- messages.forEach((message)=>{
24
- console.warn(_chalk.default.bold.yellow('warn'), '-', message);
25
- });
30
+ warn (key, messages) {
31
+ log(_chalk.default.bold.yellow('warn'), ...Array.isArray(key) ? [
32
+ key
33
+ ] : [
34
+ messages,
35
+ key
36
+ ]);
26
37
  },
27
- risk (messages) {
28
- if (process.env.JEST_WORKER_ID !== undefined) return;
29
- console.warn('');
30
- messages.forEach((message)=>{
31
- console.warn(_chalk.default.bold.magenta('risk'), '-', message);
32
- });
38
+ risk (key, messages) {
39
+ log(_chalk.default.bold.magenta('risk'), ...Array.isArray(key) ? [
40
+ key
41
+ ] : [
42
+ messages,
43
+ key
44
+ ]);
33
45
  }
34
46
  };
35
47
  exports.default = _default;
@@ -34,6 +34,9 @@ function parseGlob(pattern) {
34
34
  };
35
35
  }
36
36
  function parseDependency(normalizedFileOrGlob) {
37
+ if (normalizedFileOrGlob.startsWith('!')) {
38
+ return null;
39
+ }
37
40
  let message;
38
41
  if ((0, _isGlob).default(normalizedFileOrGlob)) {
39
42
  let { base , glob } = parseGlob(normalizedFileOrGlob);
@@ -44,11 +44,10 @@ const configUtils = {
44
44
  colors: _colors.default,
45
45
  negative (scale) {
46
46
  return Object.keys(scale).filter((key)=>scale[key] !== '0'
47
- ).reduce((negativeScale, key)=>({
48
- ...negativeScale,
49
- [`-${key}`]: (0, _negateValue).default(scale[key])
50
- })
51
- , {
47
+ ).reduce((negativeScale, key)=>{
48
+ negativeScale[`-${key}`] = (0, _negateValue).default(scale[key]);
49
+ return negativeScale;
50
+ }, {
52
51
  });
53
52
  },
54
53
  breakpoints (screens) {
@@ -229,16 +228,12 @@ function resolveConfig(configs) {
229
228
  }))
230
229
  }, ...allConfigs));
231
230
  }
232
- let warnedAbout = new Set();
233
231
  function normalizeConfig(config) {
234
232
  var ref, ref1, ref2, ref3, ref4, ref5;
235
- if (!warnedAbout.has('purge-deprecation') && config.hasOwnProperty('purge')) {
236
- _log.default.warn([
237
- 'The `purge` option in your tailwind.config.js file has been deprecated.',
238
- 'Please rename this to `content` instead.',
239
- ]);
240
- warnedAbout.add('purge-deprecation');
241
- }
233
+ _log.default.warn('purge-deprecation', [
234
+ 'The `purge` option in your tailwind.config.js file has been deprecated.',
235
+ 'Please rename this to `content` instead.',
236
+ ]);
242
237
  config.content = {
243
238
  content: (()=>{
244
239
  let { content , purge } = config;