uikit 3.14.4-dev.310965bc8 → 3.14.4-dev.51a1b06ef

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 (86) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/css/uikit-core-rtl.css +114 -63
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +114 -63
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +114 -64
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +114 -64
  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 +4 -5
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +4 -5
  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 +4 -5
  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 +19 -19
  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 +144 -94
  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 +152 -100
  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 +6 -2
  49. package/src/js/core/icon.js +16 -0
  50. package/src/js/core/index.js +2 -0
  51. package/src/js/core/leader.js +2 -2
  52. package/src/js/core/navbar.js +44 -15
  53. package/src/js/core/scroll.js +37 -10
  54. package/src/js/core/sticky.js +8 -9
  55. package/src/js/mixin/media.js +4 -5
  56. package/src/js/mixin/position.js +19 -11
  57. package/src/js/mixin/togglable.js +8 -17
  58. package/src/js/util/position.js +1 -2
  59. package/src/js/util/style.js +4 -13
  60. package/src/js/util/viewport.js +4 -31
  61. package/src/less/components/dropdown.less +14 -0
  62. package/src/less/components/leader.less +1 -1
  63. package/src/less/components/nav.less +15 -40
  64. package/src/less/components/navbar.less +100 -13
  65. package/src/less/components/utility.less +10 -2
  66. package/src/less/theme/nav.less +0 -8
  67. package/src/less/theme/navbar.less +4 -6
  68. package/src/scss/components/dropdown.scss +14 -0
  69. package/src/scss/components/leader.scss +1 -1
  70. package/src/scss/components/nav.scss +14 -28
  71. package/src/scss/components/navbar.scss +88 -13
  72. package/src/scss/components/utility.scss +8 -1
  73. package/src/scss/mixins-theme.scss +17 -19
  74. package/src/scss/mixins.scss +16 -15
  75. package/src/scss/theme/nav.scss +0 -8
  76. package/src/scss/theme/navbar.scss +3 -2
  77. package/src/scss/variables-theme.scss +17 -11
  78. package/src/scss/variables.scss +17 -10
  79. package/tests/drop.html +66 -16
  80. package/tests/dropdown.html +103 -16
  81. package/tests/index.html +4 -4
  82. package/tests/nav.html +22 -89
  83. package/tests/navbar.html +284 -63
  84. package/tests/offcanvas.html +16 -16
  85. package/tests/utility.html +19 -0
  86. package/src/images/backgrounds/nav-parent-close.svg +0 -3
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.4-dev.310965bc8 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.4-dev.51a1b06ef | 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() :
@@ -785,18 +785,11 @@
785
785
  return elements[0];
786
786
  }
787
787
 
788
- const propertyRe = /^\s*(["'])?(.*?)\1\s*$/;
789
- function getCssVar(name, element) {if (element === void 0) {element = document.documentElement;}
790
- return css(element, "--uk-" + name).replace(propertyRe, '$2');
791
- }
792
-
793
788
  // https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty
794
789
  const propName = memoize((name) => vendorPropName(name));
795
790
 
796
- const cssPrefixes = ['webkit', 'moz'];
797
-
798
791
  function vendorPropName(name) {
799
- if (name[0] === '-') {
792
+ if (startsWith(name, '--')) {
800
793
  return name;
801
794
  }
802
795
 
@@ -808,11 +801,8 @@
808
801
  return name;
809
802
  }
810
803
 
811
- let i = cssPrefixes.length,
812
- prefixedName;
813
-
814
- while (i--) {
815
- prefixedName = "-" + cssPrefixes[i] + "-" + name;
804
+ for (const prefix of ['webkit', 'moz']) {
805
+ const prefixedName = "-" + prefix + "-" + name;
816
806
  if (prefixedName in style) {
817
807
  return prefixedName;
818
808
  }
@@ -1795,20 +1785,6 @@
1795
1785
 
1796
1786
  }
1797
1787
 
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
1788
  function scrollIntoView(element, _temp) {let { offset: offsetBy = 0 } = _temp === void 0 ? {} : _temp;
1813
1789
  const parents = isVisible(element) ? scrollParents(element) : [];
1814
1790
  return parents.reduce(
@@ -1850,7 +1826,7 @@
1850
1826
  (function step() {
1851
1827
  const percent = ease(clamp((Date.now() - start) / duration));
1852
1828
 
1853
- scrollTop(element, scroll + top * percent);
1829
+ element.scrollTop = scroll + top * percent;
1854
1830
 
1855
1831
  // scroll more if we have not reached our destination
1856
1832
  if (percent === 1) {
@@ -1913,12 +1889,10 @@
1913
1889
  function offsetViewport(scrollElement) {
1914
1890
  const window = toWindow(scrollElement);
1915
1891
  const {
1916
- document: { body, documentElement } } =
1892
+ document: { documentElement } } =
1917
1893
  window;
1918
1894
  let viewportElement =
1919
- scrollElement === scrollingElement(scrollElement) || scrollElement === body ?
1920
- window :
1921
- scrollElement;
1895
+ scrollElement === scrollingElement(scrollElement) ? window : scrollElement;
1922
1896
 
1923
1897
  const { visualViewport } = window;
1924
1898
  if (isWindow(viewportElement) && visualViewport) {
@@ -2105,9 +2079,8 @@
2105
2079
  if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
2106
2080
  return newPos;
2107
2081
  }
2108
-
2109
- continue;
2110
2082
  }
2083
+ continue;
2111
2084
  }
2112
2085
 
2113
2086
  // Move
@@ -2297,10 +2270,8 @@
2297
2270
  findAll: findAll,
2298
2271
  escape: escape,
2299
2272
  css: css,
2300
- getCssVar: getCssVar,
2301
2273
  propName: propName,
2302
2274
  isInView: isInView,
2303
- scrollTop: scrollTop,
2304
2275
  scrollIntoView: scrollIntoView,
2305
2276
  scrolledOver: scrolledOver,
2306
2277
  scrollParents: scrollParents,
@@ -2963,7 +2934,7 @@
2963
2934
  UIkit.data = '__uikit__';
2964
2935
  UIkit.prefix = 'uk-';
2965
2936
  UIkit.options = {};
2966
- UIkit.version = '3.14.4-dev.310965bc8';
2937
+ UIkit.version = '3.14.4-dev.51a1b06ef';
2967
2938
 
2968
2939
  globalAPI(UIkit);
2969
2940
  hooksAPI(UIkit);
@@ -3261,7 +3232,7 @@
3261
3232
 
3262
3233
  Transition.cancel(el);
3263
3234
 
3264
- const [scrollElement] = scrollParents(el);
3235
+ const [scrollElement] = scrollParents(el.offsetParent);
3265
3236
  css(scrollElement, 'overflowX', 'hidden');
3266
3237
 
3267
3238
  if (!isToggled(el)) {
@@ -3272,17 +3243,11 @@
3272
3243
  duration = velocity * width + duration;
3273
3244
 
3274
3245
  const percent = visible ? (width + marginLeft * (right ? -1 : 1)) / width * 100 : 0;
3275
- const offsetEl = offset(el);
3276
- const useClipPath = right ?
3277
- offsetEl.right < scrollElement.clientWidth :
3278
- Math.round(offsetEl.left) > 0;
3279
3246
 
3280
3247
  css(el, {
3281
- clipPath: useClipPath ?
3282
- right ? "polygon(0 0," +
3248
+ clipPath: right ? "polygon(0 0," +
3283
3249
  percent + "% 0," + percent + "% 100%,0 100%)" : "polygon(" + (
3284
- 100 - percent) + "% 0,100% 0,100% 100%," + (100 - percent) + "% 100%)" :
3285
- '',
3250
+ 100 - percent) + "% 0,100% 0,100% 100%," + (100 - percent) + "% 100%)",
3286
3251
  marginLeft: (100 - percent) * (right ? 1 : -1) / 100 * width });
3287
3252
 
3288
3253
 
@@ -3291,7 +3256,7 @@
3291
3256
  Transition.start(
3292
3257
  el,
3293
3258
  {
3294
- clipPath: useClipPath ? "polygon(0 0,100% 0,100% 100%,0 100%)" : '',
3259
+ clipPath: "polygon(0 0,100% 0,100% 100%,0 100%)",
3295
3260
  marginLeft: 0 },
3296
3261
 
3297
3262
  duration * (1 - percent / 100),
@@ -3300,11 +3265,9 @@
3300
3265
  Transition.start(
3301
3266
  el,
3302
3267
  {
3303
- clipPath: useClipPath ?
3304
- right ? "polygon(0 0,0 0,0 100%,0 100%)" : "polygon(100% 0,100% 0,100% 100%,100% 100%)" :
3268
+ clipPath: right ? "polygon(0 0,0 0,0 100%,0 100%)" : "polygon(100% 0,100% 0,100% 100%,100% 100%)",
3305
3269
 
3306
3270
 
3307
- '',
3308
3271
  marginLeft: (right ? 1 : -1) * width },
3309
3272
 
3310
3273
  duration * (percent / 100),
@@ -3707,13 +3670,21 @@
3707
3670
  const elDim = dimensions(element);
3708
3671
  css(element, { top: -elDim.height, left: -elDim.width });
3709
3672
 
3710
- positionAt(element, target, {
3673
+ const args = [
3674
+ element,
3675
+ target,
3676
+ {
3711
3677
  attach,
3712
3678
  offset,
3713
3679
  boundary,
3714
3680
  flip: this.flip,
3715
- viewportOffset: this.getViewportOffset(element) });
3681
+ viewportOffset: this.getViewportOffset(element) }];
3682
+
3683
+
3716
3684
 
3685
+ trigger(element, 'beforeposition', args);
3686
+
3687
+ positionAt(...args);
3717
3688
 
3718
3689
  // Restore scroll position
3719
3690
  scrollElement.scrollTop = scrollTop;
@@ -3723,7 +3694,7 @@
3723
3694
  getPositionOffset(element) {
3724
3695
  return (
3725
3696
  toPx(
3726
- this.offset === false ? getCssVar('position-offset', element) : this.offset,
3697
+ this.offset === false ? css(element, '--uk-position-offset') : this.offset,
3727
3698
  this.axis === 'x' ? 'width' : 'height',
3728
3699
  element) * (
3729
3700
  includes(['left', 'top'], this.dir) ? -1 : 1));
@@ -3734,14 +3705,14 @@
3734
3705
  return includes(['center', 'justify', 'stretch'], this.align) ?
3735
3706
  0 :
3736
3707
  toPx(
3737
- getCssVar('position-shift-offset', element),
3708
+ css(element, '--uk-position-shift-offset'),
3738
3709
  this.axis === 'y' ? 'width' : 'height',
3739
3710
  element) * (
3740
3711
  includes(['left', 'top'], this.align) ? 1 : -1);
3741
3712
  },
3742
3713
 
3743
3714
  getViewportOffset(element) {
3744
- return toPx(getCssVar('position-viewport-offset', element));
3715
+ return toPx(css(element, '--uk-position-viewport-offset'));
3745
3716
  } } };
3746
3717
 
3747
3718
  const active$1 = [];
@@ -4981,8 +4952,11 @@
4981
4952
  let minHeight = '';
4982
4953
  const box = boxModelAdjust(this.$el, 'height', 'content-box');
4983
4954
 
4955
+ const { body, scrollingElement } = document;
4984
4956
  const [scrollElement] = scrollParents(this.$el, /auto|scroll/);
4985
- const { height: viewportHeight } = offsetViewport(scrollElement);
4957
+ const { height: viewportHeight } = offsetViewport(
4958
+ scrollElement === body ? scrollingElement : scrollElement);
4959
+
4986
4960
 
4987
4961
  if (this.expand) {
4988
4962
  minHeight = Math.max(
@@ -4992,7 +4966,8 @@
4992
4966
  0);
4993
4967
 
4994
4968
  } else {
4995
- const isScrollingElement = document.scrollingElement === scrollElement;
4969
+ const isScrollingElement =
4970
+ scrollingElement === scrollElement || body === scrollElement;
4996
4971
 
4997
4972
  // on mobile devices (iOS and Android) window.innerHeight !== 100vh
4998
4973
  minHeight = "calc(" + (isScrollingElement ? '100vh' : viewportHeight + "px");
@@ -5246,6 +5221,12 @@
5246
5221
 
5247
5222
  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>";
5248
5223
 
5224
+ 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>";
5225
+
5226
+ 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>";
5227
+
5228
+ 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>";
5229
+
5249
5230
  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>";
5250
5231
 
5251
5232
  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>";
@@ -5278,6 +5259,9 @@
5278
5259
  marker,
5279
5260
  'close-icon': closeIcon,
5280
5261
  'close-large': closeLarge,
5262
+ 'nav-parent-icon': navParentIcon,
5263
+ 'nav-parent-icon-large': navParentIconLarge,
5264
+ 'navbar-parent-icon': navbarParentIcon,
5281
5265
  'navbar-toggle-icon': navbarToggleIcon,
5282
5266
  'overlay-icon': overlayIcon,
5283
5267
  'pagination-next': paginationNext,
@@ -5335,6 +5319,15 @@
5335
5319
  } };
5336
5320
 
5337
5321
 
5322
+ const NavParentIcon = {
5323
+ extends: IconComponent,
5324
+
5325
+ beforeConnect() {
5326
+ const icon = this.$props.icon;
5327
+ this.icon = closest(this.$el, '.uk-nav-primary') ? icon + "-large" : icon;
5328
+ } };
5329
+
5330
+
5338
5331
  const Slidenav = {
5339
5332
  extends: IconComponent,
5340
5333
 
@@ -5595,7 +5588,7 @@
5595
5588
 
5596
5589
 
5597
5590
  connected() {
5598
- const media = toMedia(this.media);
5591
+ const media = toMedia(this.media, this.$el);
5599
5592
  this.matchMedia = true;
5600
5593
  if (media) {
5601
5594
  this.mediaObj = window.matchMedia(media);
@@ -5616,11 +5609,10 @@
5616
5609
  } };
5617
5610
 
5618
5611
 
5619
- function toMedia(value) {
5612
+ function toMedia(value, element) {
5620
5613
  if (isString(value)) {
5621
5614
  if (startsWith(value, '@')) {
5622
- const name = "breakpoint-" + value.substr(1);
5623
- value = toFloat(getCssVar(name));
5615
+ value = toFloat(css(element, "--uk-breakpoint-" + value.substr(1)));
5624
5616
  } else if (isNaN(value)) {
5625
5617
  return value;
5626
5618
  }
@@ -5645,7 +5637,7 @@
5645
5637
 
5646
5638
  computed: {
5647
5639
  fill(_ref) {let { fill } = _ref;
5648
- return fill || getCssVar('leader-fill-content');
5640
+ return fill || css(this.$el, '--uk-leader-fill-content');
5649
5641
  } },
5650
5642
 
5651
5643
 
@@ -5924,8 +5916,7 @@
5924
5916
  {
5925
5917
  ...this.$props,
5926
5918
  boundary: this.boundary,
5927
- pos: this.pos,
5928
- offset: this.dropbar || this.offset });
5919
+ pos: this.pos });
5929
5920
 
5930
5921
 
5931
5922
  },
@@ -6086,8 +6077,8 @@
6086
6077
  return this.dropbar;
6087
6078
  },
6088
6079
 
6089
- handler(_, _ref9) {let { $el, align } = _ref9;
6090
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6080
+ handler(_ref9) {let { target } = _ref9;
6081
+ if (!this.isDropbarDrop(target)) {
6091
6082
  return;
6092
6083
  }
6093
6084
 
@@ -6095,7 +6086,7 @@
6095
6086
  after(this.dropbarAnchor || this.$el, this.dropbar);
6096
6087
  }
6097
6088
 
6098
- addClass($el, this.clsDrop + "-dropbar");
6089
+ addClass(target, this.clsDrop + "-dropbar");
6099
6090
  } },
6100
6091
 
6101
6092
 
@@ -6110,19 +6101,44 @@
6110
6101
  return this.dropbar;
6111
6102
  },
6112
6103
 
6113
- handler(_, _ref10) {let { $el, align } = _ref10;
6114
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6104
+ handler(_ref10) {let { target } = _ref10;
6105
+ if (!this.isDropbarDrop(target)) {
6115
6106
  return;
6116
6107
  }
6117
6108
 
6118
- this._observer = observeResize($el, () =>
6109
+ this._observer = observeResize(target, () =>
6119
6110
  this.transitionTo(
6120
- offset($el).bottom -
6111
+ offset(target).bottom -
6121
6112
  offset(this.dropbar).top +
6122
- toFloat(css($el, 'marginBottom')),
6123
- $el));
6113
+ toFloat(css(target, 'marginBottom')),
6114
+ target));
6115
+
6116
+
6117
+ } },
6118
+
6119
+
6120
+ {
6121
+ name: 'beforeposition',
6122
+
6123
+ el() {
6124
+ return this.dropContainer;
6125
+ },
6124
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);
6125
6139
 
6140
+ options.offset[1] = dropbarOffset.top - offset(target).bottom;
6141
+ options.viewportOffset += dropbarOffset.left;
6126
6142
  } },
6127
6143
 
6128
6144
 
@@ -6137,12 +6153,12 @@
6137
6153
  return this.dropbar;
6138
6154
  },
6139
6155
 
6140
- handler(e, _ref11) {let { $el } = _ref11;
6156
+ handler(e) {
6141
6157
  const active = this.getActive();
6142
6158
 
6143
6159
  if (
6144
6160
  matches(this.dropbar, ':hover') &&
6145
- (active == null ? void 0 : active.$el) === $el &&
6161
+ (active == null ? void 0 : active.$el) === e.target &&
6146
6162
  !this.toggles.some((el) => active.target !== el && matches(el, ':focus')))
6147
6163
  {
6148
6164
  e.preventDefault();
@@ -6161,8 +6177,8 @@
6161
6177
  return this.dropbar;
6162
6178
  },
6163
6179
 
6164
- handler(_, _ref12) {let { $el, align } = _ref12;
6165
- if (!hasClass($el, this.clsDrop) || align === 'stretch') {
6180
+ handler(_ref11) {let { target } = _ref11;
6181
+ if (!this.isDropbarDrop(target)) {
6166
6182
  return;
6167
6183
  }
6168
6184
 
@@ -6170,7 +6186,7 @@
6170
6186
 
6171
6187
  const active = this.getActive();
6172
6188
 
6173
- if (!active || (active == null ? void 0 : active.$el) === $el) {
6189
+ if (!active || (active == null ? void 0 : active.$el) === target) {
6174
6190
  this.transitionTo(0);
6175
6191
  }
6176
6192
  } }],
@@ -6209,6 +6225,11 @@
6209
6225
 
6210
6226
  getDropdown(el) {
6211
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';
6212
6233
  } } };
6213
6234
 
6214
6235
 
@@ -6583,6 +6604,14 @@
6583
6604
  offset: 0 },
6584
6605
 
6585
6606
 
6607
+ connected() {
6608
+ registerClick(this);
6609
+ },
6610
+
6611
+ disconnected() {
6612
+ unregisterClick(this);
6613
+ },
6614
+
6586
6615
  methods: {
6587
6616
  async scrollTo(el) {
6588
6617
  el = el && $(el) || document.body;
@@ -6591,20 +6620,39 @@
6591
6620
  await scrollIntoView(el, { offset: this.offset });
6592
6621
  trigger(this.$el, 'scrolled', [this, el]);
6593
6622
  }
6594
- } },
6623
+ } } };
6595
6624
 
6596
6625
 
6597
- events: {
6598
- click(e) {
6599
- if (e.defaultPrevented) {
6600
- return;
6601
- }
6602
6626
 
6603
- e.preventDefault();
6604
- this.scrollTo(getTargetElement(this.$el));
6605
- } } };
6627
+ const components$1 = new Set();
6628
+ function registerClick(cmp) {
6629
+ if (!components$1.size) {
6630
+ on(document, 'click', clickHandler);
6631
+ }
6632
+
6633
+ components$1.add(cmp);
6634
+ }
6635
+
6636
+ function unregisterClick(cmp) {
6637
+ components$1.delete(cmp);
6638
+
6639
+ if (!components$1.length) {
6640
+ off(document, 'click', clickHandler);
6641
+ }
6642
+ }
6606
6643
 
6644
+ function clickHandler(e) {
6645
+ if (e.defaultPrevented) {
6646
+ return;
6647
+ }
6607
6648
 
6649
+ for (const component of components$1) {
6650
+ if (within(e.target, component.$el)) {
6651
+ e.preventDefault();
6652
+ component.scrollTo(getTargetElement(component.$el));
6653
+ }
6654
+ }
6655
+ }
6608
6656
 
6609
6657
  function getTargetElement(el) {
6610
6658
  return document.getElementById(decodeURIComponent(el.hash).substring(1));
@@ -6934,7 +6982,9 @@
6934
6982
  },
6935
6983
 
6936
6984
  handler() {
6937
- if (!location.hash || scrollTop(window) === 0) {
6985
+ const { scrollingElement } = document;
6986
+
6987
+ if (!location.hash || scrollingElement.scrollTop === 0) {
6938
6988
  return;
6939
6989
  }
6940
6990
 
@@ -6943,13 +6993,11 @@
6943
6993
  const elOffset = offset(this.$el);
6944
6994
 
6945
6995
  if (this.isFixed && intersectRect(targetOffset, elOffset)) {
6946
- scrollTop(
6947
- window,
6996
+ scrollingElement.scrollTop =
6948
6997
  targetOffset.top -
6949
6998
  elOffset.height -
6950
6999
  toPx(this.targetOffset, 'height', this.placeholder) -
6951
- toPx(this.offset, 'height', this.placeholder));
6952
-
7000
+ toPx(this.offset, 'height', this.placeholder);
6953
7001
  }
6954
7002
  });
6955
7003
  } }],
@@ -7047,7 +7095,7 @@
7047
7095
 
7048
7096
 
7049
7097
  {let { scroll: prevScroll = 0, dir: prevDir = 'down', overflow, overflowScroll = 0, start, end } = _ref4;
7050
- const scroll = scrollTop(window);
7098
+ const scroll = document.scrollingElement.scrollTop;
7051
7099
  const dir = prevScroll <= scroll ? 'down' : 'up';
7052
7100
 
7053
7101
  return {
@@ -7673,10 +7721,12 @@
7673
7721
  Video: Video,
7674
7722
  Close: Close,
7675
7723
  Spinner: Spinner,
7724
+ NavParentIcon: NavParentIcon,
7676
7725
  SlidenavNext: Slidenav,
7677
7726
  SlidenavPrevious: Slidenav,
7678
7727
  SearchIcon: Search,
7679
7728
  Marker: IconComponent,
7729
+ NavbarParentIcon: IconComponent,
7680
7730
  NavbarToggleIcon: IconComponent,
7681
7731
  OverlayIcon: IconComponent,
7682
7732
  PaginationNext: IconComponent,