uikit 3.9.5-dev.ce77459c6 → 3.10.1-dev.2a182d8f9

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 (63) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/build/build.js +5 -5
  3. package/build/less.js +30 -11
  4. package/build/publishDev.js +2 -1
  5. package/build/util.js +1 -20
  6. package/dist/css/uikit-core-rtl.css +15 -7
  7. package/dist/css/uikit-core-rtl.min.css +1 -1
  8. package/dist/css/uikit-core.css +12 -4
  9. package/dist/css/uikit-core.min.css +1 -1
  10. package/dist/css/uikit-rtl.css +15 -7
  11. package/dist/css/uikit-rtl.min.css +1 -1
  12. package/dist/css/uikit.css +12 -4
  13. package/dist/css/uikit.min.css +1 -1
  14. package/dist/js/components/countdown.js +1 -1
  15. package/dist/js/components/countdown.min.js +1 -1
  16. package/dist/js/components/filter.js +1 -1
  17. package/dist/js/components/filter.min.js +1 -1
  18. package/dist/js/components/lightbox-panel.js +1 -1
  19. package/dist/js/components/lightbox-panel.min.js +1 -1
  20. package/dist/js/components/lightbox.js +1 -1
  21. package/dist/js/components/lightbox.min.js +1 -1
  22. package/dist/js/components/notification.js +1 -1
  23. package/dist/js/components/notification.min.js +1 -1
  24. package/dist/js/components/parallax.js +1 -1
  25. package/dist/js/components/parallax.min.js +1 -1
  26. package/dist/js/components/slider-parallax.js +1 -1
  27. package/dist/js/components/slider-parallax.min.js +1 -1
  28. package/dist/js/components/slider.js +1 -1
  29. package/dist/js/components/slider.min.js +1 -1
  30. package/dist/js/components/slideshow-parallax.js +1 -1
  31. package/dist/js/components/slideshow-parallax.min.js +1 -1
  32. package/dist/js/components/slideshow.js +5 -1
  33. package/dist/js/components/slideshow.min.js +1 -1
  34. package/dist/js/components/sortable.js +2 -2
  35. package/dist/js/components/sortable.min.js +1 -1
  36. package/dist/js/components/tooltip.js +1 -1
  37. package/dist/js/components/tooltip.min.js +1 -1
  38. package/dist/js/components/upload.js +1 -1
  39. package/dist/js/components/upload.min.js +1 -1
  40. package/dist/js/uikit-core.js +117 -53
  41. package/dist/js/uikit-core.min.js +1 -1
  42. package/dist/js/uikit-icons.js +1 -1
  43. package/dist/js/uikit-icons.min.js +1 -1
  44. package/dist/js/uikit.js +122 -54
  45. package/dist/js/uikit.min.js +1 -1
  46. package/package.json +9 -11
  47. package/src/js/components/slideshow.js +4 -0
  48. package/src/js/components/sortable.js +1 -1
  49. package/src/js/core/img.js +93 -47
  50. package/src/js/util/dom.js +2 -5
  51. package/src/js/util/selector.js +4 -2
  52. package/src/less/components/list.less +1 -1
  53. package/src/less/components/search.less +9 -6
  54. package/src/less/components/utility.less +3 -2
  55. package/src/less/components/width.less +7 -0
  56. package/src/scss/components/list.scss +1 -1
  57. package/src/scss/components/search.scss +9 -6
  58. package/src/scss/components/utility.scss +3 -2
  59. package/src/scss/components/width.scss +7 -0
  60. package/src/scss/variables-theme.scss +4 -0
  61. package/src/scss/variables.scss +4 -0
  62. package/tests/image.html +40 -14
  63. package/tests/search.html +1 -1
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.9.5-dev.ce77459c6 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
1
+ /*! UIkit 3.10.1-dev.2a182d8f9 | 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) {
@@ -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.ce77459c6';
3466
+ UIkit.version = '3.10.1-dev.2a182d8f9';
3469
3467
 
3470
3468
  globalAPI(UIkit);
3471
3469
  hooksAPI(UIkit);
@@ -5790,6 +5788,10 @@
5790
5788
 
5791
5789
  props: {
5792
5790
  dataSrc: String,
5791
+ dataSrcset: Boolean,
5792
+ sizes: String,
5793
+ width: Number,
5794
+ height: Number,
5793
5795
  offsetTop: String,
5794
5796
  offsetLeft: String,
5795
5797
  target: String
@@ -5797,6 +5799,10 @@
5797
5799
 
5798
5800
  data: {
5799
5801
  dataSrc: '',
5802
+ dataSrcset: false,
5803
+ sizes: false,
5804
+ width: false,
5805
+ height: false,
5800
5806
  offsetTop: '50vh',
5801
5807
  offsetLeft: '50vw',
5802
5808
  target: false
@@ -5804,6 +5810,37 @@
5804
5810
 
5805
5811
  computed: {
5806
5812
 
5813
+ cacheKey: function(ref) {
5814
+ var dataSrc = ref.dataSrc;
5815
+
5816
+ return ((this.$name) + "." + dataSrc);
5817
+ },
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
+
5807
5844
  target: {
5808
5845
 
5809
5846
  get: function(ref) {
@@ -5816,6 +5853,18 @@
5816
5853
  this.observe();
5817
5854
  }
5818
5855
 
5856
+ },
5857
+
5858
+ offsetTop: function(ref) {
5859
+ var offsetTop = ref.offsetTop;
5860
+
5861
+ return toPx(offsetTop, 'height');
5862
+ },
5863
+
5864
+ offsetLeft: function(ref) {
5865
+ var offsetLeft = ref.offsetLeft;
5866
+
5867
+ return toPx(offsetLeft, 'width');
5819
5868
  }
5820
5869
 
5821
5870
  },
@@ -5823,13 +5872,21 @@
5823
5872
  connected: function() {
5824
5873
 
5825
5874
  if (!window.IntersectionObserver) {
5826
- setSrcAttrs(this.$el, this.dataSrc);
5875
+ setSrcAttrs(this.$el, this.dataSrc, this.dataSrcset, this.sizes);
5827
5876
  return;
5828
5877
  }
5829
5878
 
5830
- var rootMargin = (toPx(this.offsetTop, 'height')) + "px " + (toPx(this.offsetLeft, 'width')) + "px";
5831
- this.observer = new IntersectionObserver(this.load, {rootMargin: rootMargin});
5832
- this.observe();
5879
+ if (storage[this.cacheKey]) {
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));
5883
+ }
5884
+
5885
+ this.observer = new IntersectionObserver(this.load, {
5886
+ rootMargin: ((this.offsetTop) + "px " + (this.offsetLeft) + "px")
5887
+ });
5888
+
5889
+ requestAnimationFrame(this.observe);
5833
5890
 
5834
5891
  },
5835
5892
 
@@ -5840,26 +5897,34 @@
5840
5897
  update: {
5841
5898
 
5842
5899
  read: function(ref) {
5900
+ var this$1$1 = this;
5843
5901
  var image = ref.image;
5844
5902
 
5845
5903
 
5846
- if (!this.observer || isImg(this.$el)) {
5904
+ if (!this.observer) {
5847
5905
  return false;
5848
5906
  }
5849
5907
 
5850
- setSrcAttrs(this.$el, image && image.currentSrc);
5908
+ if (!image && document.readyState === 'complete') {
5909
+ this.load(this.observer.takeRecords());
5910
+ }
5911
+
5912
+ if (this.isImg) {
5913
+ return false;
5914
+ }
5915
+
5916
+ image && image.then(function (img) { return img && img.currentSrc !== '' && setSrcAttrs(this$1$1.$el, currentSrc(img)); });
5851
5917
 
5852
5918
  },
5853
5919
 
5854
- write: function(store) {
5920
+ write: function(data) {
5855
5921
 
5856
- var srcset = data(this.$el, 'data-srcset');
5857
- if (srcset && window.devicePixelRatio !== 1) {
5922
+ if (this.dataSrcset && window.devicePixelRatio !== 1) {
5858
5923
 
5859
5924
  var bgSize = css(this.$el, 'backgroundSize');
5860
- if (bgSize.match(/^(auto\s?)+$/) || toFloat(bgSize) === store.bgSize) {
5861
- store.bgSize = getSourceSize(srcset, data(this.$el, 'sizes'));
5862
- 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"));
5863
5928
  }
5864
5929
 
5865
5930
  }
@@ -5873,19 +5938,21 @@
5873
5938
  methods: {
5874
5939
 
5875
5940
  load: function(entries) {
5941
+ var this$1$1 = this;
5942
+
5876
5943
 
5877
5944
  // Old chromium based browsers (UC Browser) did not implement `isIntersecting`
5878
5945
  if (!entries.some(function (entry) { return isUndefined(entry.isIntersecting) || entry.isIntersecting; })) {
5879
5946
  return;
5880
5947
  }
5881
5948
 
5882
- if (this._data.image) {
5883
- return this._data.image;
5884
- }
5949
+ this._data.image = getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function (img) {
5950
+
5951
+ setSrcAttrs(this$1$1.$el, currentSrc(img), img.srcset, img.sizes);
5952
+ storage[this$1$1.cacheKey] = currentSrc(img);
5953
+ return img;
5885
5954
 
5886
- var image = isImg(this.$el) ? this.$el : getImageFromElement(this.$el, this.dataSrc);
5887
- this._data.image = image;
5888
- setSrcAttrs(this.$el, image.currentSrc);
5955
+ }, function (e) { return trigger(this$1$1.$el, new e.constructor(e.type, e)); });
5889
5956
 
5890
5957
  this.observer.disconnect();
5891
5958
  },
@@ -5902,13 +5969,13 @@
5902
5969
 
5903
5970
  };
5904
5971
 
5905
- function setSrcAttrs(el, src) {
5972
+ function setSrcAttrs(el, src, srcset, sizes) {
5906
5973
 
5907
5974
  if (isImg(el)) {
5908
- var parentNode = parent(el);
5909
- var elements = isPicture(parentNode) ? children(parentNode) : [el];
5910
- elements.forEach(setSourceProps);
5911
- 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);
5912
5979
  } else if (src) {
5913
5980
 
5914
5981
  var change = !includes(el.style.backgroundImage, src);
@@ -5921,26 +5988,15 @@
5921
5988
 
5922
5989
  }
5923
5990
 
5924
- var srcProps = ['data-src', 'data-srcset', 'sizes'];
5925
- function setSourceProps(sourceEl, targetEl) {
5926
- srcProps.forEach(function (prop) {
5927
- var value = data(sourceEl, prop);
5928
- if (value) {
5929
- attr(targetEl || sourceEl, prop.replace(/^(data-)+/, ''), value);
5930
- }
5931
- });
5932
- }
5991
+ function getPlaceholderImage(width, height, sizes) {
5992
+ var assign;
5933
5993
 
5934
- function getImageFromElement(el, src) {
5935
5994
 
5936
- if (!src) {
5937
- return false;
5995
+ if (sizes) {
5996
+ ((assign = Dimensions.ratio({width: width, height: height}, 'width', toPx(sizesToPixel(sizes))), width = assign.width, height = assign.height));
5938
5997
  }
5939
5998
 
5940
- var img = new Image();
5941
- setSourceProps(el, img);
5942
- attr(img, 'src', src);
5943
- return img;
5999
+ return ("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"" + width + "\" height=\"" + height + "\"></svg>");
5944
6000
  }
5945
6001
 
5946
6002
  var sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g;
@@ -5980,16 +6036,24 @@
5980
6036
  return descriptors.filter(function (size) { return size >= srcSize; })[0] || descriptors.pop() || '';
5981
6037
  }
5982
6038
 
5983
- function isPicture(el) {
5984
- return isA(el, 'PICTURE');
6039
+ function isImg(el) {
6040
+ return el.tagName === 'IMG';
5985
6041
  }
5986
6042
 
5987
- function isImg(el) {
5988
- return isA(el, 'IMG');
6043
+ function currentSrc(el) {
6044
+ return el.currentSrc || el.src;
5989
6045
  }
5990
6046
 
5991
- function isA(el, tagName) {
5992
- return el && el.tagName === tagName;
6047
+ var key = '__test__';
6048
+ var storage;
6049
+
6050
+ // workaround for Safari's private browsing mode and accessing sessionStorage in Blink
6051
+ try {
6052
+ storage = window.sessionStorage || {};
6053
+ storage[key] = 1;
6054
+ delete storage[key];
6055
+ } catch (e) {
6056
+ storage = {};
5993
6057
  }
5994
6058
 
5995
6059
  var Media = {
@@ -11770,6 +11834,10 @@
11770
11834
 
11771
11835
  read: function() {
11772
11836
 
11837
+ if (!this.list) {
11838
+ return false;
11839
+ }
11840
+
11773
11841
  var ref = this.ratio.split(':').map(Number);
11774
11842
  var width = ref[0];
11775
11843
  var height = ref[1];
@@ -12121,7 +12189,7 @@
12121
12189
  var dist = (Date.now() - last) * .3;
12122
12190
  last = Date.now();
12123
12191
 
12124
- scrollParents(document.elementFromPoint(x, pos.y)).reverse().some(function (scrollEl) {
12192
+ scrollParents(document.elementFromPoint(x, pos.y), /auto|scroll/).reverse().some(function (scrollEl) {
12125
12193
 
12126
12194
  var scroll = scrollEl.scrollTop;
12127
12195
  var scrollHeight = scrollEl.scrollHeight;