uikit 3.9.5-dev.e48c5e252 → 3.10.1-dev.6b26facf9

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 (103) hide show
  1. package/CHANGELOG.md +24 -8
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +4 -2
  4. package/build/.eslintrc.json +10 -1
  5. package/build/build.js +5 -5
  6. package/build/less.js +29 -11
  7. package/build/publishDev.js +2 -1
  8. package/build/scss.js +1 -1
  9. package/build/util.js +1 -20
  10. package/dist/css/uikit-core-rtl.css +24 -13
  11. package/dist/css/uikit-core-rtl.min.css +1 -1
  12. package/dist/css/uikit-core.css +21 -10
  13. package/dist/css/uikit-core.min.css +1 -1
  14. package/dist/css/uikit-rtl.css +24 -13
  15. package/dist/css/uikit-rtl.min.css +1 -1
  16. package/dist/css/uikit.css +21 -10
  17. package/dist/css/uikit.min.css +1 -1
  18. package/dist/js/components/countdown.js +1 -1
  19. package/dist/js/components/countdown.min.js +1 -1
  20. package/dist/js/components/filter.js +5 -5
  21. package/dist/js/components/filter.min.js +1 -1
  22. package/dist/js/components/lightbox-panel.js +2 -2
  23. package/dist/js/components/lightbox-panel.min.js +1 -1
  24. package/dist/js/components/lightbox.js +2 -2
  25. package/dist/js/components/lightbox.min.js +1 -1
  26. package/dist/js/components/notification.js +1 -1
  27. package/dist/js/components/notification.min.js +1 -1
  28. package/dist/js/components/parallax.js +2 -2
  29. package/dist/js/components/parallax.min.js +1 -1
  30. package/dist/js/components/slider-parallax.js +2 -2
  31. package/dist/js/components/slider-parallax.min.js +1 -1
  32. package/dist/js/components/slider.js +2 -2
  33. package/dist/js/components/slider.min.js +1 -1
  34. package/dist/js/components/slideshow-parallax.js +2 -2
  35. package/dist/js/components/slideshow-parallax.min.js +1 -1
  36. package/dist/js/components/slideshow.js +6 -2
  37. package/dist/js/components/slideshow.min.js +1 -1
  38. package/dist/js/components/sortable.js +6 -6
  39. package/dist/js/components/sortable.min.js +1 -1
  40. package/dist/js/components/tooltip.js +3 -2
  41. package/dist/js/components/tooltip.min.js +1 -1
  42. package/dist/js/components/upload.js +1 -1
  43. package/dist/js/components/upload.min.js +1 -1
  44. package/dist/js/uikit-core.js +72 -80
  45. package/dist/js/uikit-core.min.js +1 -1
  46. package/dist/js/uikit-icons.js +1 -1
  47. package/dist/js/uikit-icons.min.js +1 -1
  48. package/dist/js/uikit.js +85 -88
  49. package/dist/js/uikit.min.js +1 -1
  50. package/package.json +9 -11
  51. package/src/js/api/component.js +3 -3
  52. package/src/js/api/state.js +3 -3
  53. package/src/js/components/slideshow.js +4 -0
  54. package/src/js/components/sortable.js +1 -1
  55. package/src/js/components/tooltip.js +2 -1
  56. package/src/js/core/cover.js +1 -2
  57. package/src/js/core/img.js +40 -57
  58. package/src/js/core/sticky.js +1 -1
  59. package/src/js/core/toggle.js +4 -3
  60. package/src/js/mixin/animate.js +4 -4
  61. package/src/js/mixin/internal/slideshow-animations.js +1 -1
  62. package/src/js/mixin/parallax.js +1 -1
  63. package/src/js/util/dom.js +5 -8
  64. package/src/js/util/selector.js +4 -2
  65. package/src/js/util/viewport.js +3 -3
  66. package/src/less/components/cover.less +5 -4
  67. package/src/less/components/divider.less +1 -1
  68. package/src/less/components/list.less +1 -1
  69. package/src/less/components/search.less +9 -6
  70. package/src/less/components/utility.less +5 -3
  71. package/src/less/components/width.less +7 -0
  72. package/src/scss/components/cover.scss +5 -4
  73. package/src/scss/components/divider.scss +1 -1
  74. package/src/scss/components/list.scss +1 -1
  75. package/src/scss/components/search.scss +9 -6
  76. package/src/scss/components/utility.scss +5 -3
  77. package/src/scss/components/width.scss +7 -0
  78. package/src/scss/variables-theme.scss +4 -0
  79. package/src/scss/variables.scss +4 -0
  80. package/tests/base.html +12 -12
  81. package/tests/button.html +1 -1
  82. package/tests/cover.html +5 -5
  83. package/tests/drop.html +2 -2
  84. package/tests/dropdown.html +1 -1
  85. package/tests/flex.html +1 -1
  86. package/tests/grid-masonry.html +1 -1
  87. package/tests/grid-parallax.html +1 -1
  88. package/tests/grid.html +1 -1
  89. package/tests/height.html +2 -2
  90. package/tests/margin.html +1 -1
  91. package/tests/modal.html +2 -2
  92. package/tests/navbar.html +2 -2
  93. package/tests/padding.html +1 -1
  94. package/tests/parallax.html +1 -1
  95. package/tests/search.html +1 -1
  96. package/tests/slider.html +1 -1
  97. package/tests/slideshow.html +2 -2
  98. package/tests/sticky.html +2 -2
  99. package/tests/switcher.html +1 -1
  100. package/tests/tab.html +1 -1
  101. package/tests/utility.html +1 -1
  102. package/tests/video.html +3 -3
  103. package/tests/width.html +1 -1
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.9.5-dev.e48c5e252 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
1
+ /*! UIkit 3.10.1-dev.6b26facf9 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -634,8 +634,9 @@
634
634
  function domPath(element) {
635
635
  var names = [];
636
636
  while (element.parentNode) {
637
- if (element.id) {
638
- names.unshift(("#" + (escape(element.id))));
637
+ var id = attr(element, 'id');
638
+ if (id) {
639
+ names.unshift(("#" + (escape(id))));
639
640
  break;
640
641
  } else {
641
642
  var tagName = element.tagName;
@@ -1104,10 +1105,7 @@
1104
1105
  return;
1105
1106
  }
1106
1107
 
1107
- var unbind = on(document, 'DOMContentLoaded', function () {
1108
- unbind();
1109
- fn();
1110
- });
1108
+ once(document, 'DOMContentLoaded', fn);
1111
1109
  }
1112
1110
 
1113
1111
  function empty(element) {
@@ -1127,10 +1125,10 @@
1127
1125
 
1128
1126
  parent = $(parent);
1129
1127
 
1130
- if (!parent.hasChildNodes()) {
1131
- return append(parent, element);
1132
- } else {
1128
+ if (parent.hasChildNodes()) {
1133
1129
  return insertNodes(element, function (element) { return parent.insertBefore(element, parent.firstChild); });
1130
+ } else {
1131
+ return append(parent, element);
1134
1132
  }
1135
1133
  }
1136
1134
 
@@ -2294,10 +2292,10 @@
2294
2292
  scrollTop(element, scroll + top * percent);
2295
2293
 
2296
2294
  // scroll more if we have not reached our destination
2297
- if (percent !== 1) {
2298
- requestAnimationFrame(step);
2299
- } else {
2295
+ if (percent === 1) {
2300
2296
  resolve();
2297
+ } else {
2298
+ requestAnimationFrame(step);
2301
2299
  }
2302
2300
 
2303
2301
  })();
@@ -3006,12 +3004,12 @@
3006
3004
 
3007
3005
  events.forEach(function (event) {
3008
3006
 
3009
- if (!hasOwn(event, 'handler')) {
3007
+ if (hasOwn(event, 'handler')) {
3008
+ registerEvent(this$1$1, event);
3009
+ } else {
3010
3010
  for (var key in event) {
3011
3011
  registerEvent(this$1$1, event[key], key);
3012
3012
  }
3013
- } else {
3014
- registerEvent(this$1$1, event);
3015
3013
  }
3016
3014
 
3017
3015
  });
@@ -3392,10 +3390,10 @@
3392
3390
  var instance = UIkit.getComponent(element, name);
3393
3391
 
3394
3392
  if (instance) {
3395
- if (!data) {
3396
- return instance;
3397
- } else {
3393
+ if (data) {
3398
3394
  instance.$destroy();
3395
+ } else {
3396
+ return instance;
3399
3397
  }
3400
3398
  }
3401
3399
 
@@ -3465,7 +3463,7 @@
3465
3463
  UIkit.data = '__uikit__';
3466
3464
  UIkit.prefix = 'uk-';
3467
3465
  UIkit.options = {};
3468
- UIkit.version = '3.9.5-dev.e48c5e252';
3466
+ UIkit.version = '3.10.1-dev.6b26facf9';
3469
3467
 
3470
3468
  globalAPI(UIkit);
3471
3469
  hooksAPI(UIkit);
@@ -4105,7 +4103,7 @@
4105
4103
 
4106
4104
  var cover = {
4107
4105
 
4108
- mixins: [Class, Video],
4106
+ mixins: [Video],
4109
4107
 
4110
4108
  props: {
4111
4109
  width: Number,
@@ -5790,6 +5788,8 @@
5790
5788
 
5791
5789
  props: {
5792
5790
  dataSrc: String,
5791
+ dataSrcset: Boolean,
5792
+ sizes: String,
5793
5793
  width: Number,
5794
5794
  height: Number,
5795
5795
  offsetTop: String,
@@ -5799,6 +5799,8 @@
5799
5799
 
5800
5800
  data: {
5801
5801
  dataSrc: '',
5802
+ dataSrcset: false,
5803
+ sizes: false,
5802
5804
  width: false,
5803
5805
  height: false,
5804
5806
  offsetTop: '50vh',
@@ -5814,6 +5816,31 @@
5814
5816
  return ((this.$name) + "." + dataSrc);
5815
5817
  },
5816
5818
 
5819
+ width: function(ref) {
5820
+ var width = ref.width;
5821
+ var dataWidth = ref.dataWidth;
5822
+
5823
+ return width || dataWidth;
5824
+ },
5825
+
5826
+ height: function(ref) {
5827
+ var height = ref.height;
5828
+ var dataHeight = ref.dataHeight;
5829
+
5830
+ return height || dataHeight;
5831
+ },
5832
+
5833
+ sizes: function(ref) {
5834
+ var sizes = ref.sizes;
5835
+ var dataSizes = ref.dataSizes;
5836
+
5837
+ return sizes || dataSizes;
5838
+ },
5839
+
5840
+ isImg: function(_, $el) {
5841
+ return isImg($el);
5842
+ },
5843
+
5817
5844
  target: {
5818
5845
 
5819
5846
  get: function(ref) {
@@ -5845,14 +5872,14 @@
5845
5872
  connected: function() {
5846
5873
 
5847
5874
  if (!window.IntersectionObserver) {
5848
- setSrcAttrs(this.$el);
5875
+ setSrcAttrs(this.$el, this.dataSrc, this.dataSrcset, this.sizes);
5849
5876
  return;
5850
5877
  }
5851
5878
 
5852
5879
  if (storage[this.cacheKey]) {
5853
- setSrcAttrs(this.$el, storage[this.cacheKey]);
5854
- } else if (isImg(this.$el) && this.width && this.height) {
5855
- attr(this.$el, 'src', getPlaceholderImage(this.$el));
5880
+ setSrcAttrs(this.$el, storage[this.cacheKey], this.dataSrcset, this.sizes);
5881
+ } else if (this.isImg && this.width && this.height) {
5882
+ setSrcAttrs(this.$el, getPlaceholderImage(this.width, this.height, this.sizes));
5856
5883
  }
5857
5884
 
5858
5885
  this.observer = new IntersectionObserver(this.load, {
@@ -5882,7 +5909,7 @@
5882
5909
  this.load(this.observer.takeRecords());
5883
5910
  }
5884
5911
 
5885
- if (isImg(this.$el)) {
5912
+ if (this.isImg) {
5886
5913
  return false;
5887
5914
  }
5888
5915
 
@@ -5890,15 +5917,14 @@
5890
5917
 
5891
5918
  },
5892
5919
 
5893
- write: function(store) {
5920
+ write: function(data) {
5894
5921
 
5895
- var srcset = data(this.$el, 'data-srcset');
5896
- if (srcset && window.devicePixelRatio !== 1) {
5922
+ if (this.dataSrcset && window.devicePixelRatio !== 1) {
5897
5923
 
5898
5924
  var bgSize = css(this.$el, 'backgroundSize');
5899
- if (bgSize.match(/^(auto\s?)+$/) || toFloat(bgSize) === store.bgSize) {
5900
- store.bgSize = getSourceSize(srcset, data(this.$el, 'sizes'));
5901
- css(this.$el, 'backgroundSize', ((store.bgSize) + "px"));
5925
+ if (bgSize.match(/^(auto\s?)+$/) || toFloat(bgSize) === data.bgSize) {
5926
+ data.bgSize = getSourceSize(this.dataSrcset, this.sizes);
5927
+ css(this.$el, 'backgroundSize', ((data.bgSize) + "px"));
5902
5928
  }
5903
5929
 
5904
5930
  }
@@ -5920,9 +5946,9 @@
5920
5946
  return;
5921
5947
  }
5922
5948
 
5923
- this._data.image = getImageFromElement(this.$el, this.dataSrc).then(function (img) {
5949
+ this._data.image = getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function (img) {
5924
5950
 
5925
- setSrcAttrs(this$1$1.$el, currentSrc(img));
5951
+ setSrcAttrs(this$1$1.$el, currentSrc(img), img.srcset, img.sizes);
5926
5952
  storage[this$1$1.cacheKey] = currentSrc(img);
5927
5953
  return img;
5928
5954
 
@@ -5943,19 +5969,13 @@
5943
5969
 
5944
5970
  };
5945
5971
 
5946
- var srcProps = ['data-src', 'data-srcset', 'sizes'];
5947
- function setSrcAttrs(el, src) {
5972
+ function setSrcAttrs(el, src, srcset, sizes) {
5948
5973
 
5949
- var parentNode = parent(el);
5950
5974
  if (isImg(el)) {
5951
- (isPicture(parentNode) ? children(parentNode) : [el]).forEach(function (el) { return srcProps.forEach(function (prop) {
5952
- var value = data(el, prop);
5953
- if (value) {
5954
- attr(el, prop.replace(/^(data-)+/, ''), value);
5955
- }
5956
- }); }
5957
- );
5958
- src && attr(el, 'src', src);
5975
+ var set = function (prop, val) { return val && val !== el[prop] && (el[prop] = val); };
5976
+ set('sizes', sizes);
5977
+ set('srcset', srcset);
5978
+ set('src', src);
5959
5979
  } else if (src) {
5960
5980
 
5961
5981
  var change = !includes(el.style.backgroundImage, src);
@@ -5968,12 +5988,9 @@
5968
5988
 
5969
5989
  }
5970
5990
 
5971
- function getPlaceholderImage(el) {
5991
+ function getPlaceholderImage(width, height, sizes) {
5972
5992
  var assign;
5973
5993
 
5974
- var sizes = data(el, 'sizes');
5975
- var width = data(el, 'width');
5976
- var height = data(el, 'height');
5977
5994
 
5978
5995
  if (sizes) {
5979
5996
  ((assign = Dimensions.ratio({width: width, height: height}, 'width', toPx(sizesToPixel(sizes))), width = assign.width, height = assign.height));
@@ -5998,24 +6015,6 @@
5998
6015
  return matches || '100vw';
5999
6016
  }
6000
6017
 
6001
- function getImageFromElement(el, src) {
6002
- var parentNode = parent(el);
6003
-
6004
- if (!src) {
6005
- return Promise.reject(createEvent('error', false));
6006
- }
6007
-
6008
- if (!isPicture(parentNode)) {
6009
- return getImage.apply(void 0, [ src ].concat( srcProps.slice(1).map(function (prop) { return data(el, prop); }) ));
6010
- }
6011
-
6012
- return new Promise(function (resolve, reject) {
6013
- var picture = parentNode.cloneNode(true);
6014
- once(picture, 'load error', function (e) { return e.type === 'error' ? reject(e) : resolve(e.target); }, true);
6015
- setSrcAttrs($('img', picture));
6016
- });
6017
- }
6018
-
6019
6018
  var sizeRe = /\d+(?:\w+|%)/g;
6020
6019
  var additionRe = /[+-]?(\d+)/g;
6021
6020
  function evaluateSize(size) {
@@ -6037,16 +6036,8 @@
6037
6036
  return descriptors.filter(function (size) { return size >= srcSize; })[0] || descriptors.pop() || '';
6038
6037
  }
6039
6038
 
6040
- function isPicture(el) {
6041
- return isA(el, 'PICTURE');
6042
- }
6043
-
6044
6039
  function isImg(el) {
6045
- return isA(el, 'IMG');
6046
- }
6047
-
6048
- function isA(el, tagName) {
6049
- return el && el.tagName === tagName;
6040
+ return el.tagName === 'IMG';
6050
6041
  }
6051
6042
 
6052
6043
  function currentSrc(el) {
@@ -7843,7 +7834,7 @@
7843
7834
  this.show();
7844
7835
  }
7845
7836
 
7846
- height$1 = !this.isActive ? this.$el.offsetHeight : height$1;
7837
+ height$1 = this.isActive ? height$1 : this.$el.offsetHeight;
7847
7838
 
7848
7839
  if (height$1 + this.offset > height(window)) {
7849
7840
  this.inactive = true;
@@ -8253,6 +8244,8 @@
8253
8244
 
8254
8245
  };
8255
8246
 
8247
+ var KEY_SPACE = 32;
8248
+
8256
8249
  var toggle = {
8257
8250
 
8258
8251
  mixins: [Media, Togglable],
@@ -8375,12 +8368,11 @@
8375
8368
  name: 'keydown',
8376
8369
 
8377
8370
  filter: function() {
8378
- return includes(this.mode, 'click');
8371
+ return includes(this.mode, 'click') && this.$el.tagName !== 'INPUT';
8379
8372
  },
8380
8373
 
8381
8374
  handler: function(e) {
8382
- // Space
8383
- if (e.keyCode === 32) {
8375
+ if (e.keyCode === KEY_SPACE) {
8384
8376
  e.preventDefault();
8385
8377
  this.$el.click();
8386
8378
  }
@@ -8979,12 +8971,12 @@
8979
8971
 
8980
8972
  return fade.apply(void 0, args.concat( [40] ));
8981
8973
  }
8982
- : !name
8983
- ? function () {
8974
+ : name
8975
+ ? slide
8976
+ : function () {
8984
8977
  action();
8985
8978
  return Promise$1.resolve();
8986
- }
8987
- : slide;
8979
+ };
8988
8980
 
8989
8981
  return animationFn(action, target, this.duration)
8990
8982
  .then(function () { return this$1$1.$update(target, 'resize'); }, noop);
@@ -9263,7 +9255,7 @@
9263
9255
  if ( unit === void 0 ) unit = '%';
9264
9256
 
9265
9257
  value += value ? unit : '';
9266
- return isIE ? ("translateX(" + value + ")") : ("translate3d(" + value + ", 0, 0)"); // currently not translate3d in IE, translate3d within translate3d does not work while transitioning
9258
+ return isIE ? ("translateX(" + value + ")") : ("translate3d(" + value + ", 0, 0)"); // currently, not translate3d in IE, translate3d within translate3d does not work while transitioning
9267
9259
  }
9268
9260
 
9269
9261
  function scale3d(value) {
@@ -10977,7 +10969,7 @@
10977
10969
  var p = ref$1[2];
10978
10970
 
10979
10971
  css[prop] = "rgba(" + (start.map(function (value, i) {
10980
- value = value + p * (end[i] - value);
10972
+ value += p * (end[i] - value);
10981
10973
  return i === 3 ? toFloat(value) : parseInt(value, 10);
10982
10974
  }).join(',')) + ")";
10983
10975
  break;
@@ -11843,6 +11835,10 @@
11843
11835
 
11844
11836
  read: function() {
11845
11837
 
11838
+ if (!this.list) {
11839
+ return false;
11840
+ }
11841
+
11846
11842
  var ref = this.ratio.split(':').map(Number);
11847
11843
  var width = ref[0];
11848
11844
  var height = ref[1];
@@ -12194,7 +12190,7 @@
12194
12190
  var dist = (Date.now() - last) * .3;
12195
12191
  last = Date.now();
12196
12192
 
12197
- scrollParents(document.elementFromPoint(x, pos.y)).reverse().some(function (scrollEl) {
12193
+ scrollParents(document.elementFromPoint(x, pos.y), /auto|scroll/).reverse().some(function (scrollEl) {
12198
12194
 
12199
12195
  var scroll = scrollEl.scrollTop;
12200
12196
  var scrollHeight = scrollEl.scrollHeight;
@@ -12390,7 +12386,8 @@
12390
12386
  }
12391
12387
 
12392
12388
  this.toggleElement(this.tooltip, false, false).then(function () {
12393
- this$1$1.tooltip = remove$1(this$1$1.tooltip);
12389
+ remove$1(this$1$1.tooltip);
12390
+ this$1$1.tooltip = null;
12394
12391
  this$1$1._unbind();
12395
12392
  });
12396
12393
  },