uikit 3.14.1 → 3.14.2-dev.57e3417c4

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 (74) hide show
  1. package/CHANGELOG.md +25 -3
  2. package/build/util.js +8 -2
  3. package/dist/css/uikit-core-rtl.css +47 -20
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +47 -20
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +49 -32
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +49 -32
  10. package/dist/css/uikit.min.css +1 -1
  11. package/dist/js/components/countdown.js +1 -1
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +1 -1
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +6 -1
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +6 -1
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +1 -1
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +2 -2
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +1 -1
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +1 -1
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +1 -1
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +1 -1
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +1 -1
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +25 -15
  34. package/dist/js/components/tooltip.min.js +1 -1
  35. package/dist/js/components/upload.js +1 -1
  36. package/dist/js/components/upload.min.js +1 -1
  37. package/dist/js/uikit-core.js +73 -56
  38. package/dist/js/uikit-core.min.js +1 -1
  39. package/dist/js/uikit-icons.js +1 -1
  40. package/dist/js/uikit-icons.min.js +1 -1
  41. package/dist/js/uikit.js +74 -57
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +11 -11
  44. package/src/js/components/parallax.js +1 -1
  45. package/src/js/core/drop.js +16 -7
  46. package/src/js/core/height-viewport.js +1 -2
  47. package/src/js/core/toggle.js +4 -0
  48. package/src/js/mixin/position.js +18 -23
  49. package/src/js/mixin/togglable.js +5 -0
  50. package/src/js/util/position.js +24 -22
  51. package/src/js/util/viewport.js +6 -13
  52. package/src/less/components/drop.less +2 -0
  53. package/src/less/components/dropdown.less +2 -0
  54. package/src/less/components/modal.less +19 -4
  55. package/src/less/components/navbar.less +28 -8
  56. package/src/less/components/offcanvas.less +21 -21
  57. package/src/less/components/tooltip.less +1 -0
  58. package/src/less/components/utility.less +1 -1
  59. package/src/less/theme/navbar.less +3 -10
  60. package/src/scss/components/drop.scss +2 -0
  61. package/src/scss/components/dropdown.scss +2 -0
  62. package/src/scss/components/modal.scss +19 -4
  63. package/src/scss/components/navbar.scss +28 -8
  64. package/src/scss/components/offcanvas.scss +21 -21
  65. package/src/scss/components/tooltip.scss +1 -0
  66. package/src/scss/components/utility.scss +1 -1
  67. package/src/scss/mixins-theme.scss +0 -10
  68. package/src/scss/theme/navbar.scss +3 -0
  69. package/src/scss/variables-theme.scss +23 -11
  70. package/src/scss/variables.scss +23 -11
  71. package/tests/drop.html +20 -2
  72. package/tests/dropdown.html +6 -0
  73. package/tests/navbar.html +21 -59
  74. package/tests/offcanvas.html +8 -8
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.1 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.2-dev.57e3417c4 | 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,32 +1911,25 @@
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'],
1922
1917
  ['height', 'y', 'top', 'bottom']])
1923
1918
  {
1924
- if (!isWindow(getViewport$1(viewportElement))) {
1919
+ if (!isWindow(viewportElement)) {
1925
1920
  rect[start] += toFloat(css(viewportElement, "border" + ucfirst(start) + "Width"));
1921
+ } else {
1922
+ // iOS 12 returns <body> as scrollingElement
1923
+ viewportElement = viewportElement.document.documentElement;
1926
1924
  }
1927
- rect[prop] = rect[dir] = (
1928
- isWindow(viewportElement) ? scrollingElement(viewportElement) : viewportElement)["client" +
1929
- ucfirst(prop)];
1925
+ rect[prop] = rect[dir] = viewportElement["client" + ucfirst(prop)];
1930
1926
  rect[end] = rect[prop] + rect[start];
1931
1927
  }
1932
1928
  return rect;
1933
1929
  }
1934
1930
 
1935
1931
  function scrollingElement(element) {
1936
- const {
1937
- document: { scrollingElement } } =
1938
- toWindow(element);
1939
- return scrollingElement;
1932
+ return toWindow(element).document.scrollingElement;
1940
1933
  }
1941
1934
 
1942
1935
  function getViewport$1(scrollElement) {
@@ -1990,6 +1983,10 @@
1990
1983
  return position;
1991
1984
  }
1992
1985
 
1986
+ function moveBy(start, end, dim) {
1987
+ return start === 'center' ? dim / 2 : start === end ? dim : 0;
1988
+ }
1989
+
1993
1990
  function attachToWithFlip(element, target, options) {
1994
1991
  const position = attachTo(element, target, options);
1995
1992
  const targetDim = offset(target);
@@ -2000,7 +1997,7 @@
2000
1997
  offset: elOffset,
2001
1998
  boundary,
2002
1999
  viewport,
2003
- viewportPadding } =
2000
+ viewportOffset } =
2004
2001
  options;
2005
2002
 
2006
2003
  let viewports = scrollParents(element);
@@ -2021,9 +2018,9 @@
2021
2018
 
2022
2019
  viewport = getIntersectionArea(...viewports.filter(Boolean).map(offsetViewport));
2023
2020
 
2024
- if (viewportPadding) {
2025
- viewport[start] += viewportPadding;
2026
- viewport[end] -= viewportPadding;
2021
+ if (viewportOffset) {
2022
+ viewport[start] += viewportOffset;
2023
+ viewport[end] -= viewportOffset;
2027
2024
  }
2028
2025
 
2029
2026
  if (boundary && !willFlip && position[prop] <= offset(boundary)[prop]) {
@@ -2080,19 +2077,21 @@
2080
2077
  return false;
2081
2078
  }
2082
2079
 
2083
- const newPos = attachToWithFlip(element, target, {
2084
- ...options,
2085
- attach: {
2086
- element: elAttach.map(flipDir).reverse(),
2087
- target: targetAttach.map(flipDir).reverse() },
2080
+ if (flip === true || includes(flip, dirs[1 - i][1])) {
2081
+ const newPos = attachToWithFlip(element, target, {
2082
+ ...options,
2083
+ attach: {
2084
+ element: elAttach.map(flipDir).reverse(),
2085
+ target: targetAttach.map(flipDir).reverse() },
2088
2086
 
2089
- offset: elOffset.reverse(),
2090
- flip: flip === true ? flip : [...flip, dirs[1 - i][1]],
2091
- recursion: true });
2087
+ offset: elOffset.reverse(),
2088
+ flip: flip === true ? flip : [...flip, dirs[1 - i][1]],
2089
+ recursion: true });
2092
2090
 
2093
2091
 
2094
- if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
2095
- return newPos;
2092
+ if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
2093
+ return newPos;
2094
+ }
2096
2095
  }
2097
2096
  }
2098
2097
 
@@ -2113,10 +2112,6 @@
2113
2112
  return offsetPosition;
2114
2113
  }
2115
2114
 
2116
- function moveBy(start, end, dim) {
2117
- return start === 'center' ? dim / 2 : start === end ? dim : 0;
2118
- }
2119
-
2120
2115
  function getIntersectionArea() {
2121
2116
  let area = {};for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}
2122
2117
  for (const rect of rects) {
@@ -2954,7 +2949,7 @@
2954
2949
  UIkit.data = '__uikit__';
2955
2950
  UIkit.prefix = 'uk-';
2956
2951
  UIkit.options = {};
2957
- UIkit.version = '3.14.1';
2952
+ UIkit.version = '3.14.2-dev.57e3417c4';
2958
2953
 
2959
2954
  globalAPI(UIkit);
2960
2955
  hooksAPI(UIkit);
@@ -3103,6 +3098,11 @@
3103
3098
  return Promise.reject();
3104
3099
  }
3105
3100
 
3101
+ if (!animate) {
3102
+ Animation.cancel(el);
3103
+ Transition.cancel(el);
3104
+ }
3105
+
3106
3106
  const promise = (
3107
3107
  isFunction(animate) ?
3108
3108
  animate :
@@ -3582,8 +3582,7 @@
3582
3582
  data: {
3583
3583
  pos: "bottom-" + (isRtl ? 'right' : 'left'),
3584
3584
  flip: true,
3585
- offset: false,
3586
- viewportPadding: 10 },
3585
+ offset: false },
3587
3586
 
3588
3587
 
3589
3588
  connected() {
@@ -3595,16 +3594,22 @@
3595
3594
  positionAt(element, target, boundary) {
3596
3595
  const [dir, align] = this.pos;
3597
3596
 
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];
3597
+ const mainAxisOffset =
3598
+ toPx(
3599
+ this.offset === false ? getCssVar('position-offset', element) : this.offset,
3600
+ this.axis === 'x' ? 'width' : 'height',
3601
+ element) * (
3602
+ includes(['left', 'top'], dir) ? -1 : 1);
3603
+
3604
+ const crossAxisOffset = includes(['center', 'justify'], align) ?
3605
+ 0 :
3606
+ toPx(
3607
+ getCssVar('position-shift-offset', element),
3608
+ this.axis === 'y' ? 'width' : 'height',
3609
+ element) * (
3610
+ includes(['left', 'top'], align) ? 1 : -1);
3611
+
3612
+ let offset = [mainAxisOffset, crossAxisOffset];
3608
3613
 
3609
3614
  const attach = {
3610
3615
  element: [flipPosition(dir), align],
@@ -3615,15 +3620,15 @@
3615
3620
  for (const prop in attach) {
3616
3621
  attach[prop] = attach[prop].reverse();
3617
3622
  }
3618
- offset$1 = offset$1.reverse();
3623
+ offset = offset.reverse();
3619
3624
  }
3620
3625
 
3621
3626
  positionAt(element, target, {
3622
3627
  attach,
3623
- offset: offset$1,
3628
+ offset,
3624
3629
  boundary,
3625
- viewportPadding: this.boundaryAlign ? 0 : this.viewportPadding,
3626
- flip: this.flip });
3630
+ flip: this.flip,
3631
+ viewportOffset: toPx(getCssVar('position-viewport-offset', element)) });
3627
3632
 
3628
3633
  } } };
3629
3634
 
@@ -3974,19 +3979,27 @@
3974
3979
  toggleClass(this.$el, this.clsDrop + "-boundary", this.boundaryAlign);
3975
3980
 
3976
3981
  const boundary = query(this.boundary, this.$el);
3977
- const [scrollParent] = scrollParents(this.$el);
3978
- const scrollParentOffset = offsetViewport(scrollParent);
3982
+ const scrollParentOffset = offset(
3983
+ scrollParents(boundary && this.boundaryAlign ? boundary : this.$el)[0]);
3984
+
3979
3985
  const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
3980
3986
 
3981
3987
  css(this.$el, 'maxWidth', '');
3982
3988
  const maxWidth =
3983
- scrollParentOffset.width - (this.boundaryAlign ? 0 : 2 * this.viewportPadding);
3989
+ scrollParentOffset.width -
3990
+ 2 * toPx(getCssVar('position-viewport-offset', this.$el));
3984
3991
 
3985
3992
  if (this.pos[1] === 'justify') {
3986
3993
  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]);
3994
+ css(
3995
+ this.$el,
3996
+ prop,
3997
+ Math.min(
3998
+ (boundary ? boundaryOffset : offset(this.target))[prop],
3999
+ scrollParentOffset[prop] -
4000
+ 2 * toPx(getCssVar('position-viewport-offset', this.$el))));
4001
+
4002
+
3990
4003
  } else if (this.$el.offsetWidth > maxWidth) {
3991
4004
  addClass(this.$el, this.clsDrop + "-stack");
3992
4005
  }
@@ -4464,7 +4477,7 @@
4464
4477
  }
4465
4478
 
4466
4479
  var heightViewport = {
4467
- mixins: [Class, Resize],
4480
+ mixins: [Resize],
4468
4481
 
4469
4482
  props: {
4470
4483
  expand: Boolean,
@@ -7339,6 +7352,10 @@
7339
7352
  {
7340
7353
  name: 'click',
7341
7354
 
7355
+ filter() {
7356
+ return ['click', 'hover'].some((mode) => includes(this.mode, mode));
7357
+ },
7358
+
7342
7359
  handler(e) {
7343
7360
  let link;
7344
7361
  if (
@@ -9728,7 +9745,7 @@
9728
9745
 
9729
9746
 
9730
9747
  function ease(percent, easing) {
9731
- return easing >= 0 ? Math.pow(percent, easing + 1) : 1 - Math.pow(1 - percent, -easing + 1);
9748
+ return easing >= 0 ? Math.pow(percent, easing + 1) : 1 - Math.pow(1 - percent, 1 - easing);
9732
9749
  }
9733
9750
 
9734
9751
  // SVG elements do not inherit from HTMLElement