uikit 3.14.4-dev.cd89debeb → 3.14.4-dev.f2e3be255

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 (73) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/css/uikit-core-rtl.css +68 -20
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +68 -20
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +65 -21
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +65 -21
  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 +22 -7
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +22 -7
  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 +22 -7
  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 +22 -7
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +3 -3
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +18 -3
  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 +87 -53
  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 +134 -85
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/images/backgrounds/nav-parent-close.svg +1 -1
  44. package/src/images/backgrounds/nav-parent-open.svg +1 -1
  45. package/src/images/backgrounds/navbar-parent-close.svg +3 -0
  46. package/src/images/backgrounds/navbar-parent-open.svg +3 -0
  47. package/src/js/components/sortable.js +2 -3
  48. package/src/js/core/height-viewport.js +9 -5
  49. package/src/js/core/navbar.js +44 -15
  50. package/src/js/core/sticky.js +8 -9
  51. package/src/js/mixin/position.js +24 -7
  52. package/src/js/mixin/slider-drag.js +20 -8
  53. package/src/js/util/dimensions.js +6 -6
  54. package/src/js/util/position.js +1 -0
  55. package/src/js/util/viewport.js +2 -27
  56. package/src/less/components/dropdown.less +8 -0
  57. package/src/less/components/nav.less +22 -4
  58. package/src/less/components/navbar.less +52 -14
  59. package/src/less/components/utility.less +12 -3
  60. package/src/less/theme/nav.less +3 -7
  61. package/src/less/theme/navbar.less +4 -6
  62. package/src/scss/components/dropdown.scss +8 -0
  63. package/src/scss/components/nav.scss +24 -6
  64. package/src/scss/components/navbar.scss +52 -14
  65. package/src/scss/components/utility.scss +12 -3
  66. package/src/scss/mixins-theme.scss +2 -5
  67. package/src/scss/theme/nav.scss +3 -7
  68. package/src/scss/theme/navbar.scss +3 -2
  69. package/src/scss/variables-theme.scss +24 -9
  70. package/src/scss/variables.scss +24 -7
  71. package/tests/drop.html +66 -16
  72. package/tests/dropdown.html +103 -16
  73. package/tests/navbar.html +2131 -1125
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.4-dev.cd89debeb | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.4-dev.f2e3be255 | 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() :
@@ -1060,13 +1060,13 @@
1060
1060
  }
1061
1061
 
1062
1062
  function offsetPosition(element) {
1063
- const offset = [0, 0];
1064
-
1065
1063
  element = toNode(element);
1066
1064
 
1067
- do {
1068
- offset[0] += element.offsetTop;
1069
- offset[1] += element.offsetLeft;
1065
+ const offset = [element.offsetTop, element.offsetLeft];
1066
+
1067
+ while (element = element.offsetParent) {
1068
+ offset[0] += element.offsetTop + toFloat(css(element, "borderTopWidth"));
1069
+ offset[1] += element.offsetLeft + toFloat(css(element, "borderLeftWidth"));
1070
1070
 
1071
1071
  if (css(element, 'position') === 'fixed') {
1072
1072
  const win = toWindow(element);
@@ -1074,7 +1074,7 @@
1074
1074
  offset[1] += win.scrollX;
1075
1075
  return offset;
1076
1076
  }
1077
- } while (element = element.offsetParent);
1077
+ }
1078
1078
 
1079
1079
  return offset;
1080
1080
  }
@@ -1795,20 +1795,6 @@
1795
1795
 
1796
1796
  }
1797
1797
 
1798
- function scrollTop(element, top) {
1799
- if (isWindow(element) || isDocument(element)) {
1800
- element = scrollingElement(element);
1801
- } else {
1802
- element = toNode(element);
1803
- }
1804
-
1805
- if (isUndefined(top)) {
1806
- return element.scrollTop;
1807
- } else {
1808
- element.scrollTop = top;
1809
- }
1810
- }
1811
-
1812
1798
  function scrollIntoView(element, _temp) {let { offset: offsetBy = 0 } = _temp === void 0 ? {} : _temp;
1813
1799
  const parents = isVisible(element) ? scrollParents(element) : [];
1814
1800
  return parents.reduce(
@@ -1850,7 +1836,7 @@
1850
1836
  (function step() {
1851
1837
  const percent = ease(clamp((Date.now() - start) / duration));
1852
1838
 
1853
- scrollTop(element, scroll + top * percent);
1839
+ element.scrollTop = scroll + top * percent;
1854
1840
 
1855
1841
  // scroll more if we have not reached our destination
1856
1842
  if (percent === 1) {
@@ -2106,6 +2092,7 @@
2106
2092
  return newPos;
2107
2093
  }
2108
2094
  }
2095
+ continue;
2109
2096
  }
2110
2097
 
2111
2098
  // Move
@@ -2298,7 +2285,6 @@
2298
2285
  getCssVar: getCssVar,
2299
2286
  propName: propName,
2300
2287
  isInView: isInView,
2301
- scrollTop: scrollTop,
2302
2288
  scrollIntoView: scrollIntoView,
2303
2289
  scrolledOver: scrolledOver,
2304
2290
  scrollParents: scrollParents,
@@ -2961,7 +2947,7 @@
2961
2947
  UIkit.data = '__uikit__';
2962
2948
  UIkit.prefix = 'uk-';
2963
2949
  UIkit.options = {};
2964
- UIkit.version = '3.14.4-dev.cd89debeb';
2950
+ UIkit.version = '3.14.4-dev.f2e3be255';
2965
2951
 
2966
2952
  globalAPI(UIkit);
2967
2953
  hooksAPI(UIkit);
@@ -3698,17 +3684,32 @@
3698
3684
  offset = offset.reverse();
3699
3685
  }
3700
3686
 
3687
+ const [scrollElement] = scrollParents(element, /auto|scroll/);
3688
+ const { scrollTop, scrollLeft } = scrollElement;
3689
+
3701
3690
  // Ensure none positioned element does not generate scrollbars
3702
3691
  const elDim = dimensions(element);
3703
3692
  css(element, { top: -elDim.height, left: -elDim.width });
3704
3693
 
3705
- positionAt(element, target, {
3694
+ const args = [
3695
+ element,
3696
+ target,
3697
+ {
3706
3698
  attach,
3707
3699
  offset,
3708
3700
  boundary,
3709
3701
  flip: this.flip,
3710
- viewportOffset: this.getViewportOffset(element) });
3702
+ viewportOffset: this.getViewportOffset(element) }];
3703
+
3704
+
3705
+
3706
+ trigger(element, 'beforeposition', args);
3707
+
3708
+ positionAt(...args);
3711
3709
 
3710
+ // Restore scroll position
3711
+ scrollElement.scrollTop = scrollTop;
3712
+ scrollElement.scrollLeft = scrollLeft;
3712
3713
  },
3713
3714
 
3714
3715
  getPositionOffset(element) {
@@ -4983,14 +4984,18 @@
4983
4984
  0);
4984
4985
 
4985
4986
  } else {
4986
- // on mobile devices (iOS and Android) window.innerHeight !== 100vh
4987
- minHeight = "calc(" + (
4988
- document.scrollingElement === scrollElement ? '100vh' : viewportHeight + "px");
4987
+ const isScrollingElement = document.scrollingElement === scrollElement;
4989
4988
 
4989
+ // on mobile devices (iOS and Android) window.innerHeight !== 100vh
4990
+ minHeight = "calc(" + (isScrollingElement ? '100vh' : viewportHeight + "px");
4990
4991
 
4991
4992
  if (this.offsetTop) {
4992
- const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];
4993
- minHeight += top > 0 && top < viewportHeight / 2 ? " - " + top + "px" : '';
4993
+ if (isScrollingElement) {
4994
+ const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];
4995
+ minHeight += top > 0 && top < viewportHeight / 2 ? " - " + top + "px" : '';
4996
+ } else {
4997
+ minHeight += " - " + css(scrollElement, 'paddingTop');
4998
+ }
4994
4999
  }
4995
5000
 
4996
5001
  if (this.offsetBottom === true) {
@@ -5911,8 +5916,7 @@
5911
5916
  {
5912
5917
  ...this.$props,
5913
5918
  boundary: this.boundary,
5914
- pos: this.pos,
5915
- offset: this.dropbar || this.offset });
5919
+ pos: this.pos });
5916
5920
 
5917
5921
 
5918
5922
  },
@@ -6073,8 +6077,8 @@
6073
6077
  return this.dropbar;
6074
6078
  },
6075
6079
 
6076
- handler(_, _ref9) {let { $el, align } = _ref9;
6077
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6080
+ handler(_ref9) {let { target } = _ref9;
6081
+ if (!this.isDropbarDrop(target)) {
6078
6082
  return;
6079
6083
  }
6080
6084
 
@@ -6082,7 +6086,7 @@
6082
6086
  after(this.dropbarAnchor || this.$el, this.dropbar);
6083
6087
  }
6084
6088
 
6085
- addClass($el, this.clsDrop + "-dropbar");
6089
+ addClass(target, this.clsDrop + "-dropbar");
6086
6090
  } },
6087
6091
 
6088
6092
 
@@ -6097,22 +6101,47 @@
6097
6101
  return this.dropbar;
6098
6102
  },
6099
6103
 
6100
- handler(_, _ref10) {let { $el, align } = _ref10;
6101
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6104
+ handler(_ref10) {let { target } = _ref10;
6105
+ if (!this.isDropbarDrop(target)) {
6102
6106
  return;
6103
6107
  }
6104
6108
 
6105
- this._observer = observeResize($el, () =>
6109
+ this._observer = observeResize(target, () =>
6106
6110
  this.transitionTo(
6107
- offset($el).bottom -
6111
+ offset(target).bottom -
6108
6112
  offset(this.dropbar).top +
6109
- toFloat(css($el, 'marginBottom')),
6110
- $el));
6113
+ toFloat(css(target, 'marginBottom')),
6114
+ target));
6111
6115
 
6112
6116
 
6113
6117
  } },
6114
6118
 
6115
6119
 
6120
+ {
6121
+ name: 'beforeposition',
6122
+
6123
+ el() {
6124
+ return this.dropContainer;
6125
+ },
6126
+
6127
+ filter() {
6128
+ return this.dropbar;
6129
+ },
6130
+
6131
+ handler(e, element, target, options) {
6132
+ if (!this.isDropbarDrop(element)) {
6133
+ return;
6134
+ }
6135
+
6136
+ const dropbarOffset = offset(this.dropbar);
6137
+
6138
+ css(element, 'maxWidth', dropbarOffset.width - options.viewportOffset * 2);
6139
+
6140
+ options.offset[1] = dropbarOffset.top - offset(target).bottom;
6141
+ options.viewportOffset += dropbarOffset.left;
6142
+ } },
6143
+
6144
+
6116
6145
  {
6117
6146
  name: 'beforehide',
6118
6147
 
@@ -6124,12 +6153,12 @@
6124
6153
  return this.dropbar;
6125
6154
  },
6126
6155
 
6127
- handler(e, _ref11) {let { $el } = _ref11;
6156
+ handler(e) {
6128
6157
  const active = this.getActive();
6129
6158
 
6130
6159
  if (
6131
6160
  matches(this.dropbar, ':hover') &&
6132
- (active == null ? void 0 : active.$el) === $el &&
6161
+ (active == null ? void 0 : active.$el) === e.target &&
6133
6162
  !this.toggles.some((el) => active.target !== el && matches(el, ':focus')))
6134
6163
  {
6135
6164
  e.preventDefault();
@@ -6148,8 +6177,8 @@
6148
6177
  return this.dropbar;
6149
6178
  },
6150
6179
 
6151
- handler(_, _ref12) {let { $el, align } = _ref12;
6152
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6180
+ handler(_ref11) {let { target } = _ref11;
6181
+ if (!this.isDropbarDrop(target)) {
6153
6182
  return;
6154
6183
  }
6155
6184
 
@@ -6157,7 +6186,7 @@
6157
6186
 
6158
6187
  const active = this.getActive();
6159
6188
 
6160
- if (!active || (active == null ? void 0 : active.$el) === $el) {
6189
+ if (!active || (active == null ? void 0 : active.$el) === target) {
6161
6190
  this.transitionTo(0);
6162
6191
  }
6163
6192
  } }],
@@ -6196,6 +6225,11 @@
6196
6225
 
6197
6226
  getDropdown(el) {
6198
6227
  return this.$getComponent(el, 'drop') || this.$getComponent(el, 'dropdown');
6228
+ },
6229
+
6230
+ isDropbarDrop(el) {
6231
+ const drop = this.getDropdown(el);
6232
+ return drop && hasClass(el, this.clsDrop) && drop.align !== 'stretch';
6199
6233
  } } };
6200
6234
 
6201
6235
 
@@ -6921,7 +6955,9 @@
6921
6955
  },
6922
6956
 
6923
6957
  handler() {
6924
- if (!location.hash || scrollTop(window) === 0) {
6958
+ const { scrollingElement } = document;
6959
+
6960
+ if (!location.hash || scrollingElement.scrollTop === 0) {
6925
6961
  return;
6926
6962
  }
6927
6963
 
@@ -6930,13 +6966,11 @@
6930
6966
  const elOffset = offset(this.$el);
6931
6967
 
6932
6968
  if (this.isFixed && intersectRect(targetOffset, elOffset)) {
6933
- scrollTop(
6934
- window,
6969
+ scrollingElement.scrollTop =
6935
6970
  targetOffset.top -
6936
6971
  elOffset.height -
6937
6972
  toPx(this.targetOffset, 'height', this.placeholder) -
6938
- toPx(this.offset, 'height', this.placeholder));
6939
-
6973
+ toPx(this.offset, 'height', this.placeholder);
6940
6974
  }
6941
6975
  });
6942
6976
  } }],
@@ -7034,7 +7068,7 @@
7034
7068
 
7035
7069
 
7036
7070
  {let { scroll: prevScroll = 0, dir: prevDir = 'down', overflow, overflowScroll = 0, start, end } = _ref4;
7037
- const scroll = scrollTop(window);
7071
+ const scroll = document.scrollingElement.scrollTop;
7038
7072
  const dir = prevScroll <= scroll ? 'down' : 'up';
7039
7073
 
7040
7074
  return {