uikit 3.14.4-dev.17d2f2727 → 3.14.4-dev.2dc50ec60

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 (75) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/css/uikit-core-rtl.css +62 -46
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +62 -46
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +62 -47
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +62 -47
  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 +7 -5
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +6 -14
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +6 -14
  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 +3 -3
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +23 -16
  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 +100 -56
  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 +108 -62
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/images/{backgrounds/nav-parent-open.svg → components/nav-parent-icon-large.svg} +0 -0
  44. package/src/images/components/nav-parent-icon.svg +3 -0
  45. package/src/images/components/navbar-parent-icon.svg +3 -0
  46. package/src/js/components/filter.js +5 -3
  47. package/src/js/components/sortable.js +2 -3
  48. package/src/js/core/height-viewport.js +3 -1
  49. package/src/js/core/icon.js +16 -0
  50. package/src/js/core/index.js +2 -0
  51. package/src/js/core/navbar.js +44 -15
  52. package/src/js/core/sticky.js +8 -9
  53. package/src/js/mixin/position.js +24 -7
  54. package/src/js/mixin/togglable.js +8 -17
  55. package/src/js/util/position.js +1 -0
  56. package/src/js/util/viewport.js +2 -27
  57. package/src/less/components/dropdown.less +8 -0
  58. package/src/less/components/nav.less +3 -26
  59. package/src/less/components/navbar.less +95 -14
  60. package/src/less/theme/navbar.less +4 -6
  61. package/src/scss/components/dropdown.scss +8 -0
  62. package/src/scss/components/nav.scss +3 -15
  63. package/src/scss/components/navbar.scss +83 -14
  64. package/src/scss/mixins-theme.scss +13 -17
  65. package/src/scss/mixins.scss +12 -13
  66. package/src/scss/theme/navbar.scss +3 -2
  67. package/src/scss/variables-theme.scss +16 -6
  68. package/src/scss/variables.scss +16 -5
  69. package/tests/drop.html +66 -16
  70. package/tests/dropdown.html +103 -16
  71. package/tests/index.html +3 -3
  72. package/tests/nav.html +20 -87
  73. package/tests/navbar.html +283 -56
  74. package/tests/offcanvas.html +8 -8
  75. package/src/images/backgrounds/nav-parent-close.svg +0 -3
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.4-dev.17d2f2727 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.4-dev.2dc50ec60 | 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() :
@@ -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.17d2f2727';
2950
+ UIkit.version = '3.14.4-dev.2dc50ec60';
2965
2951
 
2966
2952
  globalAPI(UIkit);
2967
2953
  hooksAPI(UIkit);
@@ -3259,7 +3245,7 @@
3259
3245
 
3260
3246
  Transition.cancel(el);
3261
3247
 
3262
- const [scrollElement] = scrollParents(el);
3248
+ const [scrollElement] = scrollParents(el.offsetParent);
3263
3249
  css(scrollElement, 'overflowX', 'hidden');
3264
3250
 
3265
3251
  if (!isToggled(el)) {
@@ -3270,17 +3256,11 @@
3270
3256
  duration = velocity * width + duration;
3271
3257
 
3272
3258
  const percent = visible ? (width + marginLeft * (right ? -1 : 1)) / width * 100 : 0;
3273
- const offsetEl = offset(el);
3274
- const useClipPath = right ?
3275
- offsetEl.right < scrollElement.clientWidth :
3276
- Math.round(offsetEl.left) > 0;
3277
3259
 
3278
3260
  css(el, {
3279
- clipPath: useClipPath ?
3280
- right ? "polygon(0 0," +
3261
+ clipPath: right ? "polygon(0 0," +
3281
3262
  percent + "% 0," + percent + "% 100%,0 100%)" : "polygon(" + (
3282
- 100 - percent) + "% 0,100% 0,100% 100%," + (100 - percent) + "% 100%)" :
3283
- '',
3263
+ 100 - percent) + "% 0,100% 0,100% 100%," + (100 - percent) + "% 100%)",
3284
3264
  marginLeft: (100 - percent) * (right ? 1 : -1) / 100 * width });
3285
3265
 
3286
3266
 
@@ -3289,7 +3269,7 @@
3289
3269
  Transition.start(
3290
3270
  el,
3291
3271
  {
3292
- clipPath: useClipPath ? "polygon(0 0,100% 0,100% 100%,0 100%)" : '',
3272
+ clipPath: "polygon(0 0,100% 0,100% 100%,0 100%)",
3293
3273
  marginLeft: 0 },
3294
3274
 
3295
3275
  duration * (1 - percent / 100),
@@ -3298,11 +3278,9 @@
3298
3278
  Transition.start(
3299
3279
  el,
3300
3280
  {
3301
- clipPath: useClipPath ?
3302
- right ? "polygon(0 0,0 0,0 100%,0 100%)" : "polygon(100% 0,100% 0,100% 100%,100% 100%)" :
3281
+ clipPath: right ? "polygon(0 0,0 0,0 100%,0 100%)" : "polygon(100% 0,100% 0,100% 100%,100% 100%)",
3303
3282
 
3304
3283
 
3305
- '',
3306
3284
  marginLeft: (right ? 1 : -1) * width },
3307
3285
 
3308
3286
  duration * (percent / 100),
@@ -3698,17 +3676,32 @@
3698
3676
  offset = offset.reverse();
3699
3677
  }
3700
3678
 
3679
+ const [scrollElement] = scrollParents(element, /auto|scroll/);
3680
+ const { scrollTop, scrollLeft } = scrollElement;
3681
+
3701
3682
  // Ensure none positioned element does not generate scrollbars
3702
3683
  const elDim = dimensions(element);
3703
3684
  css(element, { top: -elDim.height, left: -elDim.width });
3704
3685
 
3705
- positionAt(element, target, {
3686
+ const args = [
3687
+ element,
3688
+ target,
3689
+ {
3706
3690
  attach,
3707
3691
  offset,
3708
3692
  boundary,
3709
3693
  flip: this.flip,
3710
- viewportOffset: this.getViewportOffset(element) });
3694
+ viewportOffset: this.getViewportOffset(element) }];
3695
+
3711
3696
 
3697
+
3698
+ trigger(element, 'beforeposition', args);
3699
+
3700
+ positionAt(...args);
3701
+
3702
+ // Restore scroll position
3703
+ scrollElement.scrollTop = scrollTop;
3704
+ scrollElement.scrollLeft = scrollLeft;
3712
3705
  },
3713
3706
 
3714
3707
  getPositionOffset(element) {
@@ -4983,7 +4976,9 @@
4983
4976
  0);
4984
4977
 
4985
4978
  } else {
4986
- const isScrollingElement = document.scrollingElement === scrollElement;
4979
+ const { body, scrollingElement } = document;
4980
+ const isScrollingElement =
4981
+ scrollingElement === scrollElement || body === scrollElement;
4987
4982
 
4988
4983
  // on mobile devices (iOS and Android) window.innerHeight !== 100vh
4989
4984
  minHeight = "calc(" + (isScrollingElement ? '100vh' : viewportHeight + "px");
@@ -5237,6 +5232,12 @@
5237
5232
 
5238
5233
  var marker = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"9\" y=\"4\" width=\"1\" height=\"11\"/><rect x=\"4\" y=\"9\" width=\"11\" height=\"1\"/></svg>";
5239
5234
 
5235
+ var navParentIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" points=\"1 3.5 6 8.5 11 3.5\"/></svg>";
5236
+
5237
+ var navParentIconLarge = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" points=\"1 4 7 10 13 4\"/></svg>";
5238
+
5239
+ var navbarParentIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" points=\"1 3.5 6 8.5 11 3.5\"/></svg>";
5240
+
5240
5241
  var navbarToggleIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect y=\"9\" width=\"20\" height=\"2\"/><rect y=\"3\" width=\"20\" height=\"2\"/><rect y=\"15\" width=\"20\" height=\"2\"/></svg>";
5241
5242
 
5242
5243
  var overlayIcon = "<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"19\" y=\"0\" width=\"1\" height=\"40\"/><rect x=\"0\" y=\"19\" width=\"40\" height=\"1\"/></svg>";
@@ -5269,6 +5270,9 @@
5269
5270
  marker,
5270
5271
  'close-icon': closeIcon,
5271
5272
  'close-large': closeLarge,
5273
+ 'nav-parent-icon': navParentIcon,
5274
+ 'nav-parent-icon-large': navParentIconLarge,
5275
+ 'navbar-parent-icon': navbarParentIcon,
5272
5276
  'navbar-toggle-icon': navbarToggleIcon,
5273
5277
  'overlay-icon': overlayIcon,
5274
5278
  'pagination-next': paginationNext,
@@ -5326,6 +5330,15 @@
5326
5330
  } };
5327
5331
 
5328
5332
 
5333
+ const NavParentIcon = {
5334
+ extends: IconComponent,
5335
+
5336
+ beforeConnect() {
5337
+ const icon = this.$props.icon;
5338
+ this.icon = closest(this.$el, '.uk-nav-primary') ? icon + "-large" : icon;
5339
+ } };
5340
+
5341
+
5329
5342
  const Slidenav = {
5330
5343
  extends: IconComponent,
5331
5344
 
@@ -5915,8 +5928,7 @@
5915
5928
  {
5916
5929
  ...this.$props,
5917
5930
  boundary: this.boundary,
5918
- pos: this.pos,
5919
- offset: this.dropbar || this.offset });
5931
+ pos: this.pos });
5920
5932
 
5921
5933
 
5922
5934
  },
@@ -6077,8 +6089,8 @@
6077
6089
  return this.dropbar;
6078
6090
  },
6079
6091
 
6080
- handler(_, _ref9) {let { $el, align } = _ref9;
6081
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6092
+ handler(_ref9) {let { target } = _ref9;
6093
+ if (!this.isDropbarDrop(target)) {
6082
6094
  return;
6083
6095
  }
6084
6096
 
@@ -6086,7 +6098,7 @@
6086
6098
  after(this.dropbarAnchor || this.$el, this.dropbar);
6087
6099
  }
6088
6100
 
6089
- addClass($el, this.clsDrop + "-dropbar");
6101
+ addClass(target, this.clsDrop + "-dropbar");
6090
6102
  } },
6091
6103
 
6092
6104
 
@@ -6101,19 +6113,44 @@
6101
6113
  return this.dropbar;
6102
6114
  },
6103
6115
 
6104
- handler(_, _ref10) {let { $el, align } = _ref10;
6105
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6116
+ handler(_ref10) {let { target } = _ref10;
6117
+ if (!this.isDropbarDrop(target)) {
6106
6118
  return;
6107
6119
  }
6108
6120
 
6109
- this._observer = observeResize($el, () =>
6121
+ this._observer = observeResize(target, () =>
6110
6122
  this.transitionTo(
6111
- offset($el).bottom -
6123
+ offset(target).bottom -
6112
6124
  offset(this.dropbar).top +
6113
- toFloat(css($el, 'marginBottom')),
6114
- $el));
6125
+ toFloat(css(target, 'marginBottom')),
6126
+ target));
6127
+
6128
+
6129
+ } },
6130
+
6131
+
6132
+ {
6133
+ name: 'beforeposition',
6134
+
6135
+ el() {
6136
+ return this.dropContainer;
6137
+ },
6138
+
6139
+ filter() {
6140
+ return this.dropbar;
6141
+ },
6142
+
6143
+ handler(e, element, target, options) {
6144
+ if (!this.isDropbarDrop(element)) {
6145
+ return;
6146
+ }
6115
6147
 
6148
+ const dropbarOffset = offset(this.dropbar);
6116
6149
 
6150
+ css(element, 'maxWidth', dropbarOffset.width - options.viewportOffset * 2);
6151
+
6152
+ options.offset[1] = dropbarOffset.top - offset(target).bottom;
6153
+ options.viewportOffset += dropbarOffset.left;
6117
6154
  } },
6118
6155
 
6119
6156
 
@@ -6128,12 +6165,12 @@
6128
6165
  return this.dropbar;
6129
6166
  },
6130
6167
 
6131
- handler(e, _ref11) {let { $el } = _ref11;
6168
+ handler(e) {
6132
6169
  const active = this.getActive();
6133
6170
 
6134
6171
  if (
6135
6172
  matches(this.dropbar, ':hover') &&
6136
- (active == null ? void 0 : active.$el) === $el &&
6173
+ (active == null ? void 0 : active.$el) === e.target &&
6137
6174
  !this.toggles.some((el) => active.target !== el && matches(el, ':focus')))
6138
6175
  {
6139
6176
  e.preventDefault();
@@ -6152,8 +6189,8 @@
6152
6189
  return this.dropbar;
6153
6190
  },
6154
6191
 
6155
- handler(_, _ref12) {let { $el, align } = _ref12;
6156
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6192
+ handler(_ref11) {let { target } = _ref11;
6193
+ if (!this.isDropbarDrop(target)) {
6157
6194
  return;
6158
6195
  }
6159
6196
 
@@ -6161,7 +6198,7 @@
6161
6198
 
6162
6199
  const active = this.getActive();
6163
6200
 
6164
- if (!active || (active == null ? void 0 : active.$el) === $el) {
6201
+ if (!active || (active == null ? void 0 : active.$el) === target) {
6165
6202
  this.transitionTo(0);
6166
6203
  }
6167
6204
  } }],
@@ -6200,6 +6237,11 @@
6200
6237
 
6201
6238
  getDropdown(el) {
6202
6239
  return this.$getComponent(el, 'drop') || this.$getComponent(el, 'dropdown');
6240
+ },
6241
+
6242
+ isDropbarDrop(el) {
6243
+ const drop = this.getDropdown(el);
6244
+ return drop && hasClass(el, this.clsDrop) && drop.align !== 'stretch';
6203
6245
  } } };
6204
6246
 
6205
6247
 
@@ -6925,7 +6967,9 @@
6925
6967
  },
6926
6968
 
6927
6969
  handler() {
6928
- if (!location.hash || scrollTop(window) === 0) {
6970
+ const { scrollingElement } = document;
6971
+
6972
+ if (!location.hash || scrollingElement.scrollTop === 0) {
6929
6973
  return;
6930
6974
  }
6931
6975
 
@@ -6934,13 +6978,11 @@
6934
6978
  const elOffset = offset(this.$el);
6935
6979
 
6936
6980
  if (this.isFixed && intersectRect(targetOffset, elOffset)) {
6937
- scrollTop(
6938
- window,
6981
+ scrollingElement.scrollTop =
6939
6982
  targetOffset.top -
6940
6983
  elOffset.height -
6941
6984
  toPx(this.targetOffset, 'height', this.placeholder) -
6942
- toPx(this.offset, 'height', this.placeholder));
6943
-
6985
+ toPx(this.offset, 'height', this.placeholder);
6944
6986
  }
6945
6987
  });
6946
6988
  } }],
@@ -7038,7 +7080,7 @@
7038
7080
 
7039
7081
 
7040
7082
  {let { scroll: prevScroll = 0, dir: prevDir = 'down', overflow, overflowScroll = 0, start, end } = _ref4;
7041
- const scroll = scrollTop(window);
7083
+ const scroll = document.scrollingElement.scrollTop;
7042
7084
  const dir = prevScroll <= scroll ? 'down' : 'up';
7043
7085
 
7044
7086
  return {
@@ -7664,10 +7706,12 @@
7664
7706
  Video: Video,
7665
7707
  Close: Close,
7666
7708
  Spinner: Spinner,
7709
+ NavParentIcon: NavParentIcon,
7667
7710
  SlidenavNext: Slidenav,
7668
7711
  SlidenavPrevious: Slidenav,
7669
7712
  SearchIcon: Search,
7670
7713
  Marker: IconComponent,
7714
+ NavbarParentIcon: IconComponent,
7671
7715
  NavbarToggleIcon: IconComponent,
7672
7716
  OverlayIcon: IconComponent,
7673
7717
  PaginationNext: IconComponent,