uikit 3.14.4-dev.fef7412a0 → 3.15.1-dev.11cb5b4fb

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 (68) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/css/uikit-core-rtl.css +4 -3
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +4 -3
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +3 -2
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +3 -2
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +3 -2
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +3 -2
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +9 -2
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +9 -2
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +3 -1
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +88 -70
  37. package/dist/js/uikit-core.min.js +2 -2
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +88 -71
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/components/lightbox-panel.js +0 -1
  44. package/src/js/core/drop.js +2 -2
  45. package/src/js/core/navbar.js +5 -5
  46. package/src/js/core/switcher.js +4 -5
  47. package/src/js/core/toggle.js +1 -2
  48. package/src/js/core/video.js +5 -0
  49. package/src/js/mixin/lazyload.js +8 -1
  50. package/src/js/mixin/togglable.js +2 -0
  51. package/src/js/util/position.js +61 -55
  52. package/src/less/components/nav.less +3 -1
  53. package/src/less/components/navbar.less +9 -3
  54. package/src/less/theme/navbar.less +4 -0
  55. package/src/scss/components/nav.scss +3 -1
  56. package/src/scss/components/navbar.scss +9 -3
  57. package/src/scss/mixins-theme.scss +2 -0
  58. package/src/scss/mixins.scss +2 -0
  59. package/src/scss/theme/navbar.scss +4 -0
  60. package/src/scss/variables-theme.scss +3 -1
  61. package/src/scss/variables.scss +3 -1
  62. package/tests/flex.html +36 -36
  63. package/tests/grid.html +22 -22
  64. package/tests/height.html +6 -6
  65. package/tests/index.html +3 -3
  66. package/tests/modal.html +2 -2
  67. package/tests/pagination.html +6 -6
  68. package/tests/utility.html +16 -16
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.4-dev.fef7412a0 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.15.1-dev.11cb5b4fb | 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() :
@@ -1949,35 +1949,13 @@
1949
1949
 
1950
1950
  function getPosition(element, target, options) {
1951
1951
  const position = attachTo(element, target, options);
1952
-
1953
- let {
1954
- attach: { element: elAttach, target: targetAttach },
1955
- offset: elOffset,
1956
- boundary,
1957
- viewportOffset,
1958
- placement } =
1959
- options;
1952
+ const { boundary, viewportOffset = 0, placement } = options;
1960
1953
 
1961
1954
  let offsetPosition = position;
1962
1955
  for (const [i, [prop,, start, end]] of Object.entries(dirs)) {
1963
- let viewports = scrollParents(target[i]);
1964
- const [scrollElement] = viewports;
1965
-
1966
- let viewport = getIntersectionArea(...viewports.map(offsetViewport));
1967
-
1968
- if (viewportOffset) {
1969
- viewport[start] += viewportOffset;
1970
- viewport[end] -= viewportOffset;
1971
- }
1972
-
1973
- if (boundary) {
1974
- viewport = getIntersectionArea(viewport, offsetViewport(boundary));
1975
- }
1976
-
1977
- const isInStartViewport = position[start] >= viewport[start];
1978
- const isInEndViewport = position[end] <= viewport[end];
1956
+ const viewport = getViewport$1(target[i], viewportOffset, boundary, i);
1979
1957
 
1980
- if (isInStartViewport && isInEndViewport) {
1958
+ if (isWithin(position, viewport, i)) {
1981
1959
  continue;
1982
1960
  }
1983
1961
 
@@ -1985,17 +1963,20 @@
1985
1963
 
1986
1964
  // Flip
1987
1965
  if (placement[i] === 'flip') {
1966
+ const attach = options.attach.target[i];
1988
1967
  if (
1989
- targetAttach[i] === end && isInEndViewport ||
1990
- targetAttach[i] === start && isInStartViewport)
1968
+ attach === end && position[end] <= viewport[end] ||
1969
+ attach === start && position[start] >= viewport[start])
1991
1970
  {
1992
1971
  continue;
1993
1972
  }
1994
1973
 
1995
1974
  offsetBy = flip(element, target, options, i)[start] - position[start];
1996
1975
 
1997
- if (!isInScrollArea(applyOffset(position, offsetBy, i), scrollElement, i)) {
1998
- if (isInScrollArea(position, scrollElement, i)) {
1976
+ const scrollArea = getScrollArea(target[i], viewportOffset, i);
1977
+
1978
+ if (!isWithin(applyOffset(position, offsetBy, i), scrollArea, i)) {
1979
+ if (isWithin(position, scrollArea, i)) {
1999
1980
  continue;
2000
1981
  }
2001
1982
 
@@ -2003,18 +1984,9 @@
2003
1984
  return false;
2004
1985
  }
2005
1986
 
2006
- const newPos = getPosition(element, target, {
2007
- ...options,
2008
- attach: {
2009
- element: elAttach.map(flipAxis).reverse(),
2010
- target: targetAttach.map(flipAxis).reverse() },
2011
-
2012
- offset: elOffset.reverse(),
2013
- placement: placement.reverse(),
2014
- recursion: true });
2015
-
1987
+ const newPos = flipAxis(element, target, options);
2016
1988
 
2017
- if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
1989
+ if (newPos && isWithin(newPos, scrollArea, 1 - i)) {
2018
1990
  return newPos;
2019
1991
  }
2020
1992
 
@@ -2024,6 +1996,7 @@
2024
1996
  // Shift
2025
1997
  } else if (placement[i] === 'shift') {
2026
1998
  const targetDim = offset(target[i]);
1999
+ const { offset: elOffset } = options;
2027
2000
  offsetBy =
2028
2001
  clamp(
2029
2002
  clamp(position[start], viewport[start], viewport[end] - position[prop]),
@@ -2080,6 +2053,30 @@
2080
2053
  return attach === 'center' ? dim / 2 : attach === end ? dim : 0;
2081
2054
  }
2082
2055
 
2056
+ function getViewport$1(element, viewportOffset, boundary, i) {
2057
+ let viewport = getIntersectionArea(...scrollParents(element).map(offsetViewport));
2058
+
2059
+ if (viewportOffset) {
2060
+ viewport[dirs[i][2]] += viewportOffset;
2061
+ viewport[dirs[i][3]] -= viewportOffset;
2062
+ }
2063
+
2064
+ if (boundary) {
2065
+ viewport = getIntersectionArea(viewport, offset(boundary));
2066
+ }
2067
+
2068
+ return viewport;
2069
+ }
2070
+
2071
+ function getScrollArea(element, viewportOffset, i) {
2072
+ const [prop,, start, end] = dirs[i];
2073
+ const [scrollElement] = scrollParents(element);
2074
+ const viewport = offsetViewport(scrollElement);
2075
+ viewport[start] -= scrollElement["scroll" + ucfirst(start)] - viewportOffset;
2076
+ viewport[end] = viewport[start] + scrollElement["scroll" + ucfirst(prop)] - viewportOffset;
2077
+ return viewport;
2078
+ }
2079
+
2083
2080
  function getIntersectionArea() {
2084
2081
  let area = {};for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}
2085
2082
  for (const rect of rects) {
@@ -2091,13 +2088,9 @@
2091
2088
  return area;
2092
2089
  }
2093
2090
 
2094
- function isInScrollArea(position, scrollElement, dir) {
2095
- const viewport = offsetViewport(scrollElement);
2096
- const [prop,, start, end] = dirs[dir];
2097
- viewport[start] -= scrollElement["scroll" + ucfirst(start)];
2098
- viewport[end] = viewport[start] + scrollElement["scroll" + ucfirst(prop)];
2099
-
2100
- return position[start] >= viewport[start] && position[end] <= viewport[end];
2091
+ function isWithin(positionA, positionB, i) {
2092
+ const [,, start, end] = dirs[i];
2093
+ return positionA[start] >= positionB[start] && positionA[end] <= positionB[end];
2101
2094
  }
2102
2095
 
2103
2096
  function flip(element, target, _ref, i) {let { offset, attach } = _ref;
@@ -2110,6 +2103,19 @@
2110
2103
 
2111
2104
  }
2112
2105
 
2106
+ function flipAxis(element, target, options) {
2107
+ return getPosition(element, target, {
2108
+ ...options,
2109
+ attach: {
2110
+ element: options.attach.element.map(flipAttachAxis).reverse(),
2111
+ target: options.attach.target.map(flipAttachAxis).reverse() },
2112
+
2113
+ offset: options.offset.reverse(),
2114
+ placement: options.placement.reverse(),
2115
+ recursion: true });
2116
+
2117
+ }
2118
+
2113
2119
  function flipAttach(attach, i) {
2114
2120
  const newAttach = [...attach];
2115
2121
  const index = dirs[i].indexOf(attach[i]);
@@ -2119,13 +2125,7 @@
2119
2125
  return newAttach;
2120
2126
  }
2121
2127
 
2122
- function flipOffset(offset, i) {
2123
- offset = [...offset];
2124
- offset[i] *= -1;
2125
- return offset;
2126
- }
2127
-
2128
- function flipAxis(prop) {
2128
+ function flipAttachAxis(prop) {
2129
2129
  for (let i = 0; i < dirs.length; i++) {
2130
2130
  const index = dirs[i].indexOf(prop);
2131
2131
  if (~index) {
@@ -2134,6 +2134,12 @@
2134
2134
  }
2135
2135
  }
2136
2136
 
2137
+ function flipOffset(offset, i) {
2138
+ offset = [...offset];
2139
+ offset[i] *= -1;
2140
+ return offset;
2141
+ }
2142
+
2137
2143
  var util = /*#__PURE__*/Object.freeze({
2138
2144
  __proto__: null,
2139
2145
  ajax: ajax,
@@ -2936,7 +2942,7 @@
2936
2942
  UIkit.data = '__uikit__';
2937
2943
  UIkit.prefix = 'uk-';
2938
2944
  UIkit.options = {};
2939
- UIkit.version = '3.14.4-dev.fef7412a0';
2945
+ UIkit.version = '3.15.1-dev.11cb5b4fb';
2940
2946
 
2941
2947
  globalAPI(UIkit);
2942
2948
  hooksAPI(UIkit);
@@ -3007,13 +3013,20 @@
3007
3013
  } };
3008
3014
 
3009
3015
  var Lazyload = {
3016
+ data: {
3017
+ preload: 5 },
3018
+
3019
+
3010
3020
  methods: {
3011
3021
  lazyload(observeTargets, targets) {if (observeTargets === void 0) {observeTargets = this.$el;}if (targets === void 0) {targets = this.$el;}
3012
3022
  this.registerObserver(
3013
3023
  observeIntersection(observeTargets, (entries, observer) => {
3014
3024
  for (const el of toNodes(isFunction(targets) ? targets() : targets)) {
3015
- $$('[loading="lazy"]', el).forEach((el) => removeAttr(el, 'loading'));
3025
+ $$('[loading="lazy"]', el).
3026
+ slice(0, this.preload - 1).
3027
+ forEach((el) => removeAttr(el, 'loading'));
3016
3028
  }
3029
+
3017
3030
  for (const el of entries.
3018
3031
  filter((_ref) => {let { isIntersecting } = _ref;return isIntersecting;}).
3019
3032
  map((_ref2) => {let { target } = _ref2;return target;})) {
@@ -3211,6 +3224,8 @@
3211
3224
  css(el, {
3212
3225
  padding: 0,
3213
3226
  border: 0,
3227
+ minWidth: 0,
3228
+ minHeight: 0,
3214
3229
  [marginStartProp]: 0,
3215
3230
  width: dim.width,
3216
3231
  height: dim.height,
@@ -3484,6 +3499,10 @@
3484
3499
  this.$el.preload = 'none';
3485
3500
  }
3486
3501
 
3502
+ if (isTag(this.$el, 'iframe') && !hasAttr(this.$el, 'allow')) {
3503
+ this.$el.allow = 'autoplay';
3504
+ }
3505
+
3487
3506
  if (this.automute) {
3488
3507
  mute(this.$el);
3489
3508
  }
@@ -4286,7 +4305,7 @@
4286
4305
 
4287
4306
  (() => {
4288
4307
  const observer = observeResize(
4289
- scrollParents(this.$el).concat(this.targetEl),
4308
+ scrollParents(this.$el).concat(this.target),
4290
4309
  update);
4291
4310
 
4292
4311
  return () => observer.disconnect();
@@ -4418,7 +4437,7 @@
4418
4437
  this.$el.hidden = true;
4419
4438
 
4420
4439
  const boundary = query(this.boundary, this.$el);
4421
- const boundaryOffset = offsetViewport(boundary || window);
4440
+ const boundaryOffset = offset(boundary || window);
4422
4441
  const viewports = this.target.map((target) => offsetViewport(scrollParents(target)[0]));
4423
4442
  const viewportOffset = this.getViewportOffset(this.$el);
4424
4443
 
@@ -5885,7 +5904,7 @@
5885
5904
  },
5886
5905
 
5887
5906
  dropbarAnchor(_ref2, $el) {let { dropbarAnchor } = _ref2;
5888
- return query(dropbarAnchor, $el);
5907
+ return query(dropbarAnchor, $el) || $el;
5889
5908
  },
5890
5909
 
5891
5910
  pos(_ref3) {let { align } = _ref3;
@@ -6106,8 +6125,8 @@
6106
6125
  return;
6107
6126
  }
6108
6127
 
6109
- if (!parent(this.dropbar)) {
6110
- after(this.dropbarAnchor || this.$el, this.dropbar);
6128
+ if (this.dropbar.previousElementSibling !== this.dropbarAnchor) {
6129
+ after(this.dropbarAnchor, this.dropbar);
6111
6130
  }
6112
6131
 
6113
6132
  addClass(target, this.clsDrop + "-dropbar");
@@ -6130,7 +6149,8 @@
6130
6149
  return;
6131
6150
  }
6132
6151
 
6133
- this._observer = observeResize(target, () => {
6152
+ const drop = this.getDropdown(target);
6153
+ this._observer = observeResize([drop.$el, ...drop.target], () => {
6134
6154
  const targetOffsets = parents(target, "." + this.clsDrop).
6135
6155
  concat(target).
6136
6156
  map((el) => offset(el));
@@ -7322,9 +7342,10 @@
7322
7342
  }
7323
7343
 
7324
7344
  const index = this.index();
7325
- this.connects.forEach((el) =>
7326
- children(el).forEach((child, i) => toggleClass(child, this.cls, i === index)));
7327
-
7345
+ this.connects.forEach((el) => {
7346
+ children(el).forEach((child, i) => toggleClass(child, this.cls, i === index));
7347
+ this.lazyload(this.$el, children(el));
7348
+ });
7328
7349
  },
7329
7350
 
7330
7351
  immediate: true },
@@ -7357,8 +7378,6 @@
7357
7378
 
7358
7379
 
7359
7380
  connected() {
7360
- this.lazyload(this.$el, this.connects);
7361
-
7362
7381
  // check for connects
7363
7382
  ready(() => this.$emit());
7364
7383
  },
@@ -7492,6 +7511,7 @@
7492
7511
 
7493
7512
  watch() {
7494
7513
  this.updateAria();
7514
+ this.lazyload(this.$el, this.target);
7495
7515
  },
7496
7516
 
7497
7517
  immediate: true } },
@@ -7503,8 +7523,6 @@
7503
7523
  attr(this.$el, 'tabindex', '0');
7504
7524
  }
7505
7525
 
7506
- this.lazyload(this.$el, this.target);
7507
-
7508
7526
  // check for target
7509
7527
  ready(() => this.$emit());
7510
7528
  },
@@ -9245,7 +9263,6 @@
9245
9263
  let matches;
9246
9264
  const iframeAttrs = {
9247
9265
  frameborder: '0',
9248
- allow: 'autoplay',
9249
9266
  allowfullscreen: '',
9250
9267
  style: 'max-width: 100%; box-sizing: border-box;',
9251
9268
  'uk-responsive': '',