uikit 3.14.1-dev.e15dd286c → 3.14.2-dev.731537913

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 (62) hide show
  1. package/CHANGELOG.md +14 -3
  2. package/dist/css/uikit-core-rtl.css +6 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +6 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +6 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +6 -1
  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 +6 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +6 -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 +1 -1
  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 +1 -1
  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 +14 -14
  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 +53 -50
  37. package/dist/js/uikit-core.min.js +1 -1
  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 +53 -50
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/hooks.js +1 -1
  44. package/src/js/core/drop.js +16 -7
  45. package/src/js/core/height-viewport.js +1 -2
  46. package/src/js/core/scrollspy.js +7 -9
  47. package/src/js/core/toggle.js +4 -0
  48. package/src/js/mixin/position.js +7 -22
  49. package/src/js/mixin/togglable.js +5 -0
  50. package/src/js/util/position.js +9 -9
  51. package/src/js/util/viewport.js +2 -8
  52. package/src/less/components/drop.less +1 -0
  53. package/src/less/components/dropdown.less +1 -0
  54. package/src/less/components/navbar.less +2 -0
  55. package/src/less/components/tooltip.less +1 -0
  56. package/src/scss/components/drop.scss +1 -0
  57. package/src/scss/components/dropdown.scss +1 -0
  58. package/src/scss/components/navbar.scss +2 -0
  59. package/src/scss/components/tooltip.scss +1 -0
  60. package/tests/drop.html +20 -2
  61. package/tests/dropdown.html +6 -0
  62. package/tests/navbar.html +6 -0
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.1-dev.e15dd286c | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.2-dev.731537913 | 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() :
@@ -1911,11 +1911,6 @@
1911
1911
  function offsetViewport(scrollElement) {
1912
1912
  let viewportElement = getViewport$1(scrollElement);
1913
1913
 
1914
- // iOS 12 returns <body> as scrollingElement
1915
- if (viewportElement === scrollingElement(viewportElement)) {
1916
- viewportElement = document.documentElement;
1917
- }
1918
-
1919
1914
  let rect = offset(viewportElement);
1920
1915
  for (let [prop, dir, start, end] of [
1921
1916
  ['width', 'x', 'left', 'right'],
@@ -1924,9 +1919,8 @@
1924
1919
  if (!isWindow(getViewport$1(viewportElement))) {
1925
1920
  rect[start] += toFloat(css(viewportElement, "border" + ucfirst(start) + "Width"));
1926
1921
  }
1927
- rect[prop] = rect[dir] = (
1928
- isWindow(viewportElement) ? scrollingElement(viewportElement) : viewportElement)["client" +
1929
- ucfirst(prop)];
1922
+ rect[prop] = rect[dir] =
1923
+ viewportElement[(isWindow(viewportElement) ? 'inner' : 'client') + ucfirst(prop)];
1930
1924
  rect[end] = rect[prop] + rect[start];
1931
1925
  }
1932
1926
  return rect;
@@ -1990,6 +1984,10 @@
1990
1984
  return position;
1991
1985
  }
1992
1986
 
1987
+ function moveBy(start, end, dim) {
1988
+ return start === 'center' ? dim / 2 : start === end ? dim : 0;
1989
+ }
1990
+
1993
1991
  function attachToWithFlip(element, target, options) {
1994
1992
  const position = attachTo(element, target, options);
1995
1993
  const targetDim = offset(target);
@@ -2000,7 +1998,7 @@
2000
1998
  offset: elOffset,
2001
1999
  boundary,
2002
2000
  viewport,
2003
- viewportPadding } =
2001
+ viewportOffset } =
2004
2002
  options;
2005
2003
 
2006
2004
  let viewports = scrollParents(element);
@@ -2021,9 +2019,9 @@
2021
2019
 
2022
2020
  viewport = getIntersectionArea(...viewports.filter(Boolean).map(offsetViewport));
2023
2021
 
2024
- if (viewportPadding) {
2025
- viewport[start] += viewportPadding;
2026
- viewport[end] -= viewportPadding;
2022
+ if (viewportOffset) {
2023
+ viewport[start] += viewportOffset;
2024
+ viewport[end] -= viewportOffset;
2027
2025
  }
2028
2026
 
2029
2027
  if (boundary && !willFlip && position[prop] <= offset(boundary)[prop]) {
@@ -2113,10 +2111,6 @@
2113
2111
  return offsetPosition;
2114
2112
  }
2115
2113
 
2116
- function moveBy(start, end, dim) {
2117
- return start === 'center' ? dim / 2 : start === end ? dim : 0;
2118
- }
2119
-
2120
2114
  function getIntersectionArea() {
2121
2115
  let area = {};for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}
2122
2116
  for (const rect of rects) {
@@ -2474,7 +2468,7 @@
2474
2468
  const {
2475
2469
  $options: { computed } } =
2476
2470
  this;
2477
- const values = { ...(initial ? {} : this._computed) };
2471
+ const values = { ...this._computed };
2478
2472
  this._computed = {};
2479
2473
 
2480
2474
  for (const key in computed) {
@@ -2954,7 +2948,7 @@
2954
2948
  UIkit.data = '__uikit__';
2955
2949
  UIkit.prefix = 'uk-';
2956
2950
  UIkit.options = {};
2957
- UIkit.version = '3.14.1-dev.e15dd286c';
2951
+ UIkit.version = '3.14.2-dev.731537913';
2958
2952
 
2959
2953
  globalAPI(UIkit);
2960
2954
  hooksAPI(UIkit);
@@ -3103,6 +3097,11 @@
3103
3097
  return Promise.reject();
3104
3098
  }
3105
3099
 
3100
+ if (!animate) {
3101
+ Animation.cancel(el);
3102
+ Transition.cancel(el);
3103
+ }
3104
+
3106
3105
  const promise = (
3107
3106
  isFunction(animate) ?
3108
3107
  animate :
@@ -3582,8 +3581,7 @@
3582
3581
  data: {
3583
3582
  pos: "bottom-" + (isRtl ? 'right' : 'left'),
3584
3583
  flip: true,
3585
- offset: false,
3586
- viewportPadding: 10 },
3584
+ offset: false },
3587
3585
 
3588
3586
 
3589
3587
  connected() {
@@ -3595,16 +3593,12 @@
3595
3593
  positionAt(element, target, boundary) {
3596
3594
  const [dir, align] = this.pos;
3597
3595
 
3598
- let { offset: offset$1 } = this;
3599
- if (!isNumeric(offset$1)) {
3600
- const node = $(offset$1);
3601
- offset$1 = node ?
3602
- offset(node)[this.axis === 'x' ? 'left' : 'top'] -
3603
- offset(target)[this.axis === 'x' ? 'right' : 'bottom'] :
3604
- 0;
3605
- }
3606
- offset$1 = toPx(offset$1) + toPx(getCssVar('position-offset', element));
3607
- offset$1 = [includes(['left', 'top'], dir) ? -offset$1 : +offset$1, 0];
3596
+ let offset = toPx(
3597
+ this.offset === false ? getCssVar('position-offset', element) : this.offset,
3598
+ this.axis === 'x' ? 'width' : 'height',
3599
+ element);
3600
+
3601
+ offset = [includes(['left', 'top'], dir) ? -offset : +offset, 0];
3608
3602
 
3609
3603
  const attach = {
3610
3604
  element: [flipPosition(dir), align],
@@ -3615,15 +3609,15 @@
3615
3609
  for (const prop in attach) {
3616
3610
  attach[prop] = attach[prop].reverse();
3617
3611
  }
3618
- offset$1 = offset$1.reverse();
3612
+ offset = offset.reverse();
3619
3613
  }
3620
3614
 
3621
3615
  positionAt(element, target, {
3622
3616
  attach,
3623
- offset: offset$1,
3617
+ offset,
3624
3618
  boundary,
3625
- viewportPadding: this.boundaryAlign ? 0 : this.viewportPadding,
3626
- flip: this.flip });
3619
+ flip: this.flip,
3620
+ viewportOffset: toPx(getCssVar('position-viewport-offset', element)) });
3627
3621
 
3628
3622
  } } };
3629
3623
 
@@ -3974,19 +3968,27 @@
3974
3968
  toggleClass(this.$el, this.clsDrop + "-boundary", this.boundaryAlign);
3975
3969
 
3976
3970
  const boundary = query(this.boundary, this.$el);
3977
- const [scrollParent] = scrollParents(this.$el);
3978
- const scrollParentOffset = offsetViewport(scrollParent);
3971
+ const scrollParentOffset = offset(
3972
+ scrollParents(boundary && this.boundaryAlign ? boundary : this.$el)[0]);
3973
+
3979
3974
  const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
3980
3975
 
3981
3976
  css(this.$el, 'maxWidth', '');
3982
3977
  const maxWidth =
3983
- scrollParentOffset.width - (this.boundaryAlign ? 0 : 2 * this.viewportPadding);
3978
+ scrollParentOffset.width -
3979
+ 2 * toPx(getCssVar('position-viewport-offset', this.$el));
3984
3980
 
3985
3981
  if (this.pos[1] === 'justify') {
3986
3982
  const prop = this.axis === 'y' ? 'width' : 'height';
3987
- const targetOffset = offset(this.target);
3988
- const alignTo = this.boundaryAlign ? boundaryOffset : targetOffset;
3989
- css(this.$el, prop, alignTo[prop]);
3983
+ css(
3984
+ this.$el,
3985
+ prop,
3986
+ Math.min(
3987
+ (boundary ? boundaryOffset : offset(this.target))[prop],
3988
+ scrollParentOffset[prop] -
3989
+ 2 * toPx(getCssVar('position-viewport-offset', this.$el))));
3990
+
3991
+
3990
3992
  } else if (this.$el.offsetWidth > maxWidth) {
3991
3993
  addClass(this.$el, this.clsDrop + "-stack");
3992
3994
  }
@@ -4464,7 +4466,7 @@
4464
4466
  }
4465
4467
 
4466
4468
  var heightViewport = {
4467
- mixins: [Class, Resize],
4469
+ mixins: [Resize],
4468
4470
 
4469
4471
  props: {
4470
4472
  expand: Boolean,
@@ -6443,13 +6445,13 @@
6443
6445
  return target ? $$(target, $el) : [$el];
6444
6446
  },
6445
6447
 
6446
- watch(elements) {
6448
+ watch(elements, prev) {
6447
6449
  if (this.hidden) {
6448
6450
  css(filter$1(elements, ":not(." + this.inViewClass + ")"), 'visibility', 'hidden');
6449
6451
  }
6450
6452
 
6451
- for (const element of elements) {
6452
- this._observer.observe(element);
6453
+ if (!isEqual(elements, prev)) {
6454
+ this.$reset();
6453
6455
  }
6454
6456
  },
6455
6457
 
@@ -6459,10 +6461,9 @@
6459
6461
 
6460
6462
  connected() {
6461
6463
  this._data.elements = new Map();
6462
-
6463
6464
  this.registerObserver(
6464
- this._observer = observeIntersection(
6465
- [],
6465
+ observeIntersection(
6466
+ this.elements,
6466
6467
  (records) => {
6467
6468
  const elements = this._data.elements;
6468
6469
  for (const { target: el, isIntersecting } of records) {
@@ -6496,8 +6497,6 @@
6496
6497
  for (const [el, state] of this._data.elements.entries()) {
6497
6498
  removeClass(el, this.inViewClass, (state == null ? void 0 : state.cls) || '');
6498
6499
  }
6499
-
6500
- this._observer = null;
6501
6500
  },
6502
6501
 
6503
6502
  update: [
@@ -7342,6 +7341,10 @@
7342
7341
  {
7343
7342
  name: 'click',
7344
7343
 
7344
+ filter() {
7345
+ return includes(['click', 'hover'], this.mode);
7346
+ },
7347
+
7345
7348
  handler(e) {
7346
7349
  let link;
7347
7350
  if (