autoprefixer 8.5.1 → 8.6.2

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/AUTHORS CHANGED
@@ -65,6 +65,7 @@ GU Yiling <justice360@gmail.com>
65
65
  Gustavo Real <https://github.com/kotfire>
66
66
  Hallvord R. M. Steen <hallvord@hallvord.com>
67
67
  heady <https://github.com/heady>
68
+ HongShaoRou <evanzlist@sina.com>
68
69
  Huáng Jùnliàng <https://github.com/JLHwung>
69
70
  Iain Beeston <iain.beeston@gmail.com>
70
71
  Igor Adamenko <https://github.com/igoradamenko>
@@ -152,6 +153,7 @@ Vladimir Pouzanov <farcaller@gmail.com>
152
153
  vladkens <vladkens@yandex.ru>
153
154
  Yet Another Minion <yam@thinkalexandria.com>
154
155
  Yuriy Alekseyev <dev.yuriy.a@gmail.com>
156
+ Yury Timofeev <y.timofeyev@gmail.com>
155
157
  Даниил Пронин <mail@grawl.ru>
156
158
  一丝 <jie.lijie@alibaba-inc.com>
157
159
  刘祺 <gucong@gmail.com>
package/CHANGELOG.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
+ ## 8.6.2
5
+ * Fix error during adding Grid prefixes in `@media` (by Evgeny Petukhov).
6
+
7
+ ## 8.6.1
8
+ * Fix `grid-template` with media queries (by Evgeny Petukhov).
9
+
10
+ ## 8.6 “Follow Reason”
11
+ * Add `gap` support (by Evgeny Petukhov).
12
+ * Add two values support for `grid-gap` and `gap` (by Evgeny Petukhov).
13
+ * Add `ignoreUnknownVersions` option for Browserslist.
14
+
15
+ ## 8.5.2
16
+ * Fix `grid-template` support wit auto row sizes (by Yury Timofeev).
17
+
4
18
  ## 8.5.1
5
19
  * Remove unnecessary warning on `-webkit-fill-available`.
6
20
 
package/README.md CHANGED
@@ -588,6 +588,8 @@ Available options are:
588
588
  or `browserslist` key in `package.json` to share target browsers
589
589
  with Babel, ESLint and Stylelint. See [Browserslist docs]
590
590
  for available queries and default value.
591
+ * `ignoreUnknownVersions` (boolean): do not raise error on unknown browser
592
+ version in Browserslist config or `browsers` option. Default is `false`.
591
593
 
592
594
  Plugin object has `info()` method for debugging purpose.
593
595
 
@@ -65,9 +65,14 @@ module.exports = postcss.plugin('autoprefixer', function () {
65
65
  options.grid = false;
66
66
  }
67
67
 
68
+ var brwlstOpts = {
69
+ ignoreUnknownVersions: options.ignoreUnknownVersions,
70
+ stats: options.stats
71
+ };
72
+
68
73
  var loadPrefixes = function loadPrefixes(opts) {
69
74
  var data = module.exports.data;
70
- var browsers = new Browsers(data.browsers, reqs, opts, options.stats);
75
+ var browsers = new Browsers(data.browsers, reqs, opts, brwlstOpts);
71
76
  var key = browsers.selected.join(', ') + JSON.stringify(options);
72
77
 
73
78
  if (!cache[key]) {
package/lib/browsers.js CHANGED
@@ -43,12 +43,12 @@ var Browsers = function () {
43
43
  return this.prefixesRegexp.test(value);
44
44
  };
45
45
 
46
- function Browsers(data, requirements, options, stats) {
46
+ function Browsers(data, requirements, options, browserslistOpts) {
47
47
  _classCallCheck(this, Browsers);
48
48
 
49
49
  this.data = data;
50
50
  this.options = options || {};
51
- this.stats = stats;
51
+ this.browserslistOpts = browserslistOpts || {};
52
52
  this.selected = this.parse(requirements);
53
53
  }
54
54
 
@@ -58,11 +58,13 @@ var Browsers = function () {
58
58
 
59
59
 
60
60
  Browsers.prototype.parse = function parse(requirements) {
61
- return browserslist(requirements, {
62
- stats: this.stats,
63
- path: this.options.from,
64
- env: this.options.env
65
- });
61
+ var opts = {};
62
+ for (var i in this.browserslistOpts) {
63
+ opts[i] = this.browserslistOpts[i];
64
+ }
65
+ opts.path = this.options.from;
66
+ opts.env = this.options.env;
67
+ return browserslist(requirements, opts);
66
68
  };
67
69
 
68
70
  /**
@@ -220,6 +220,13 @@ function testTrack(node) {
220
220
  return node.type === 'word' && /^\[.+\]$/.test(node.value);
221
221
  }
222
222
 
223
+ function verifyRowSize(result) {
224
+ if (result.areas.length > result.rows.length) {
225
+ result.rows.push('auto');
226
+ }
227
+ return result;
228
+ }
229
+
223
230
  function parseTemplate(_ref7) {
224
231
  var decl = _ref7.decl,
225
232
  gap = _ref7.gap;
@@ -233,6 +240,7 @@ function parseTemplate(_ref7) {
233
240
 
234
241
  // area
235
242
  if (type === 'string') {
243
+ result = verifyRowSize(result);
236
244
  result.areas.push(value);
237
245
  }
238
246
 
@@ -244,6 +252,7 @@ function parseTemplate(_ref7) {
244
252
  // devider(/)
245
253
  if (type === 'div' && value === '/') {
246
254
  result.key = 'columns';
255
+ result = verifyRowSize(result);
247
256
  }
248
257
 
249
258
  return result;
@@ -301,6 +310,9 @@ function insertAreas(areas, decl, result) {
301
310
  var missed = Object.keys(areas);
302
311
 
303
312
  var parentMedia = getParentMedia(decl.parent);
313
+ var rules = [];
314
+ var areasLength = Object.keys(areas).length;
315
+ var areasCount = 0;
304
316
 
305
317
  decl.root().walkDecls('grid-area', function (gridArea) {
306
318
 
@@ -313,13 +325,6 @@ function insertAreas(areas, decl, result) {
313
325
 
314
326
  if (area && parentMedia) {
315
327
 
316
- // skip if grid-template-areas already prefixed in media
317
- if (parentMedia.some(function (i) {
318
- return i.selector === gridArea.parent.selector;
319
- })) {
320
- return undefined;
321
- }
322
-
323
328
  // create new rule
324
329
  var rule = decl.parent.clone({
325
330
  selector: gridArea.parent.selector
@@ -335,8 +340,16 @@ function insertAreas(areas, decl, result) {
335
340
  }));
336
341
  });
337
342
 
338
- // insert new rule with prefixed decl to existing media
339
- parentMedia.append(rule);
343
+ rules.push(rule);
344
+ areasCount++;
345
+ if (areasCount === areasLength) {
346
+ var next = gridArea.parent.next();
347
+
348
+ if (next && next.type === 'atrule' && next.name === 'media' && next.params === parentMedia.params && next.first.type === 'rule' && next.first.selector && parentMedia.first.selector && /^-ms-/.test(next.first.first.prop)) return undefined;
349
+
350
+ var areaMedia = parentMedia.clone().removeAll().append(rules);
351
+ gridArea.parent.after(areaMedia);
352
+ }
340
353
 
341
354
  return undefined;
342
355
  }
@@ -367,16 +380,24 @@ function getGridGap(decl) {
367
380
  var gap = {};
368
381
 
369
382
  // try to find gap
370
- decl.parent.walkDecls(/grid(-(row|column))?-gap/, function (_ref8) {
383
+ var testGap = /^(grid-)?((row|column)-)?gap$/;
384
+ decl.parent.walkDecls(testGap, function (_ref8) {
371
385
  var prop = _ref8.prop,
372
386
  value = _ref8.value;
373
387
 
374
- if (prop === 'grid-gap') {
375
- gap.column = value;
376
- gap.row = value;
388
+ if (/^(grid-)?gap$/.test(prop)) {
389
+ var _parser$nodes = parser(value).nodes,
390
+ _parser$nodes$ = _parser$nodes[0],
391
+ row = _parser$nodes$ === undefined ? {} : _parser$nodes$,
392
+ _parser$nodes$2 = _parser$nodes[2],
393
+ column = _parser$nodes$2 === undefined ? {} : _parser$nodes$2;
394
+
395
+
396
+ gap.row = row.value;
397
+ gap.column = column.value || row.value;
377
398
  }
378
- if (prop === 'grid-row-gap') gap.row = value;
379
- if (prop === 'grid-column-gap') gap.column = value;
399
+ if (/^(grid-)?row-gap$/.test(prop)) gap.row = value;
400
+ if (/^(grid-)?column-gap$/.test(prop)) gap.column = value;
380
401
  });
381
402
 
382
403
  return gap;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autoprefixer",
3
- "version": "8.5.1",
3
+ "version": "8.6.2",
4
4
  "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website",
5
5
  "keywords": ["autoprefixer", "css", "prefix", "postcss", "postcss-plugin"],
6
6
  "author": "Andrey Sitnik <andrey@sitnik.ru>",
@@ -8,7 +8,7 @@
8
8
  "repository": "postcss/autoprefixer",
9
9
  "dependencies": {
10
10
  "browserslist": "^3.2.8",
11
- "caniuse-lite": "^1.0.30000846",
11
+ "caniuse-lite": "^1.0.30000851",
12
12
  "normalize-range": "^0.1.2",
13
13
  "num2fraction": "^1.2.2",
14
14
  "postcss": "^6.0.22",