uikit 3.14.4-dev.fef7412a0 → 3.15.1-dev.a99898921

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 (66) hide show
  1. package/CHANGELOG.md +6 -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 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +3 -1
  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 +84 -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 +84 -70
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/core/drop.js +2 -2
  44. package/src/js/core/navbar.js +5 -5
  45. package/src/js/core/switcher.js +4 -5
  46. package/src/js/core/toggle.js +1 -2
  47. package/src/js/mixin/lazyload.js +8 -1
  48. package/src/js/mixin/togglable.js +2 -0
  49. package/src/js/util/position.js +61 -55
  50. package/src/less/components/nav.less +3 -1
  51. package/src/less/components/navbar.less +9 -3
  52. package/src/less/theme/navbar.less +4 -0
  53. package/src/scss/components/nav.scss +3 -1
  54. package/src/scss/components/navbar.scss +9 -3
  55. package/src/scss/mixins-theme.scss +2 -0
  56. package/src/scss/mixins.scss +2 -0
  57. package/src/scss/theme/navbar.scss +4 -0
  58. package/src/scss/variables-theme.scss +3 -1
  59. package/src/scss/variables.scss +3 -1
  60. package/tests/flex.html +36 -36
  61. package/tests/grid.html +22 -22
  62. package/tests/height.html +6 -6
  63. package/tests/index.html +3 -3
  64. package/tests/modal.html +2 -2
  65. package/tests/pagination.html +6 -6
  66. 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.a99898921 | 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
- }
1956
+ const viewport = getViewport$1(target[i], viewportOffset, boundary, i);
1976
1957
 
1977
- const isInStartViewport = position[start] >= viewport[start];
1978
- const isInEndViewport = position[end] <= viewport[end];
1979
-
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 });
1987
+ const newPos = flipAxis(element, target, options);
2015
1988
 
2016
-
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.a99898921';
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,
@@ -4286,7 +4301,7 @@
4286
4301
 
4287
4302
  (() => {
4288
4303
  const observer = observeResize(
4289
- scrollParents(this.$el).concat(this.targetEl),
4304
+ scrollParents(this.$el).concat(this.target),
4290
4305
  update);
4291
4306
 
4292
4307
  return () => observer.disconnect();
@@ -4418,7 +4433,7 @@
4418
4433
  this.$el.hidden = true;
4419
4434
 
4420
4435
  const boundary = query(this.boundary, this.$el);
4421
- const boundaryOffset = offsetViewport(boundary || window);
4436
+ const boundaryOffset = offset(boundary || window);
4422
4437
  const viewports = this.target.map((target) => offsetViewport(scrollParents(target)[0]));
4423
4438
  const viewportOffset = this.getViewportOffset(this.$el);
4424
4439
 
@@ -5885,7 +5900,7 @@
5885
5900
  },
5886
5901
 
5887
5902
  dropbarAnchor(_ref2, $el) {let { dropbarAnchor } = _ref2;
5888
- return query(dropbarAnchor, $el);
5903
+ return query(dropbarAnchor, $el) || $el;
5889
5904
  },
5890
5905
 
5891
5906
  pos(_ref3) {let { align } = _ref3;
@@ -6106,8 +6121,8 @@
6106
6121
  return;
6107
6122
  }
6108
6123
 
6109
- if (!parent(this.dropbar)) {
6110
- after(this.dropbarAnchor || this.$el, this.dropbar);
6124
+ if (this.dropbar.previousElementSibling !== this.dropbarAnchor) {
6125
+ after(this.dropbarAnchor, this.dropbar);
6111
6126
  }
6112
6127
 
6113
6128
  addClass(target, this.clsDrop + "-dropbar");
@@ -6130,7 +6145,8 @@
6130
6145
  return;
6131
6146
  }
6132
6147
 
6133
- this._observer = observeResize(target, () => {
6148
+ const drop = this.getDropdown(target);
6149
+ this._observer = observeResize([drop.$el, ...drop.target], () => {
6134
6150
  const targetOffsets = parents(target, "." + this.clsDrop).
6135
6151
  concat(target).
6136
6152
  map((el) => offset(el));
@@ -7322,9 +7338,10 @@
7322
7338
  }
7323
7339
 
7324
7340
  const index = this.index();
7325
- this.connects.forEach((el) =>
7326
- children(el).forEach((child, i) => toggleClass(child, this.cls, i === index)));
7327
-
7341
+ this.connects.forEach((el) => {
7342
+ children(el).forEach((child, i) => toggleClass(child, this.cls, i === index));
7343
+ this.lazyload(this.$el, children(el));
7344
+ });
7328
7345
  },
7329
7346
 
7330
7347
  immediate: true },
@@ -7357,8 +7374,6 @@
7357
7374
 
7358
7375
 
7359
7376
  connected() {
7360
- this.lazyload(this.$el, this.connects);
7361
-
7362
7377
  // check for connects
7363
7378
  ready(() => this.$emit());
7364
7379
  },
@@ -7492,6 +7507,7 @@
7492
7507
 
7493
7508
  watch() {
7494
7509
  this.updateAria();
7510
+ this.lazyload(this.$el, this.target);
7495
7511
  },
7496
7512
 
7497
7513
  immediate: true } },
@@ -7503,8 +7519,6 @@
7503
7519
  attr(this.$el, 'tabindex', '0');
7504
7520
  }
7505
7521
 
7506
- this.lazyload(this.$el, this.target);
7507
-
7508
7522
  // check for target
7509
7523
  ready(() => this.$emit());
7510
7524
  },