uikit 3.14.4-dev.fea9fd466 → 3.15.1-dev.022704dc6

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 (128) hide show
  1. package/CHANGELOG.md +32 -18
  2. package/build/util.js +1 -0
  3. package/dist/css/uikit-core-rtl.css +284 -63
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +284 -63
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +306 -92
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +306 -92
  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 +98 -131
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +98 -131
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +4 -2
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +1 -1
  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 +9 -2
  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 +9 -2
  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 +101 -136
  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 +531 -486
  38. package/dist/js/uikit-core.min.js +17 -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 +534 -487
  42. package/dist/js/uikit.min.js +17 -1
  43. package/package.json +11 -11
  44. package/src/images/components/navbar-toggle-icon.svg +25 -3
  45. package/src/js/api/hooks.js +5 -1
  46. package/src/js/api/state.js +2 -2
  47. package/src/js/components/notification.js +3 -1
  48. package/src/js/core/accordion.js +9 -17
  49. package/src/js/core/alert.js +35 -14
  50. package/src/js/core/drop.js +110 -82
  51. package/src/js/core/navbar.js +33 -49
  52. package/src/js/core/offcanvas.js +8 -4
  53. package/src/js/core/scroll.js +37 -10
  54. package/src/js/core/switcher.js +4 -5
  55. package/src/js/core/toggle.js +4 -7
  56. package/src/js/mixin/lazyload.js +8 -1
  57. package/src/js/mixin/modal.js +15 -12
  58. package/src/js/mixin/position.js +21 -22
  59. package/src/js/mixin/style.js +11 -0
  60. package/src/js/mixin/togglable.js +90 -124
  61. package/src/js/util/animation.js +9 -7
  62. package/src/js/util/class.js +3 -1
  63. package/src/js/util/filter.js +3 -7
  64. package/src/js/util/position.js +136 -130
  65. package/src/js/util/viewport.js +1 -1
  66. package/src/less/components/_import.less +1 -0
  67. package/src/less/components/drop.less +1 -18
  68. package/src/less/components/dropbar.less +126 -0
  69. package/src/less/components/dropdown.less +6 -20
  70. package/src/less/components/nav.less +214 -23
  71. package/src/less/components/navbar.less +26 -54
  72. package/src/less/theme/_import.less +1 -0
  73. package/src/less/theme/dropbar.less +44 -0
  74. package/src/less/theme/dropdown.less +0 -11
  75. package/src/less/theme/nav.less +46 -0
  76. package/src/less/theme/navbar.less +5 -36
  77. package/src/scss/components/_import.scss +1 -0
  78. package/src/scss/components/drop.scss +1 -18
  79. package/src/scss/components/dropbar.scss +126 -0
  80. package/src/scss/components/dropdown.scss +6 -20
  81. package/src/scss/components/nav.scss +163 -22
  82. package/src/scss/components/navbar.scss +26 -54
  83. package/src/scss/mixins-theme.scss +81 -35
  84. package/src/scss/mixins.scss +77 -3
  85. package/src/scss/theme/_import.scss +1 -0
  86. package/src/scss/theme/dropbar.scss +44 -0
  87. package/src/scss/theme/dropdown.scss +0 -8
  88. package/src/scss/theme/nav.scss +44 -0
  89. package/src/scss/theme/navbar.scss +4 -8
  90. package/src/scss/variables-theme.scss +58 -13
  91. package/src/scss/variables.scss +46 -8
  92. package/tests/accordion.html +2 -2
  93. package/tests/alert.html +2 -2
  94. package/tests/countdown.html +1 -1
  95. package/tests/drop.html +446 -416
  96. package/tests/dropbar.html +458 -0
  97. package/tests/dropdown.html +8 -470
  98. package/tests/filter.html +9 -12
  99. package/tests/flex.html +36 -36
  100. package/tests/form.html +1 -1
  101. package/tests/grid.html +22 -22
  102. package/tests/height.html +6 -6
  103. package/tests/index.html +127 -108
  104. package/tests/js/index.js +1 -4
  105. package/tests/lightbox.html +5 -5
  106. package/tests/list.html +8 -8
  107. package/tests/modal.html +15 -15
  108. package/tests/nav.html +121 -12
  109. package/tests/navbar.html +111 -220
  110. package/tests/offcanvas.html +10 -14
  111. package/tests/pagination.html +6 -6
  112. package/tests/parallax.html +1 -1
  113. package/tests/position.html +18 -16
  114. package/tests/progress.html +9 -9
  115. package/tests/scroll.html +7 -10
  116. package/tests/search.html +6 -6
  117. package/tests/slider.html +6 -5
  118. package/tests/slideshow.html +8 -8
  119. package/tests/sortable.html +6 -8
  120. package/tests/sticky-navbar.html +15 -15
  121. package/tests/sticky.html +8 -8
  122. package/tests/switcher.html +1 -1
  123. package/tests/tab.html +1 -1
  124. package/tests/table.html +7 -7
  125. package/tests/toggle.html +2 -2
  126. package/tests/tooltip.html +1 -1
  127. package/tests/upload.html +11 -11
  128. package/tests/utility.html +16 -16
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.4-dev.fea9fd466 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.15.1-dev.022704dc6 | 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() :
@@ -383,12 +383,8 @@
383
383
  }
384
384
 
385
385
  function closest(element, selector) {
386
- if (startsWith(selector, '>')) {
387
- selector = selector.slice(1);
388
- }
389
-
390
386
  return isElement(element) ?
391
- element.closest(selector) :
387
+ element.closest(startsWith(selector, '>') ? selector.slice(1) : selector) :
392
388
  toNodes(element).
393
389
  map((element) => closest(element, selector)).
394
390
  filter(Boolean);
@@ -396,8 +392,8 @@
396
392
 
397
393
  function within(element, selector) {
398
394
  return isString(selector) ?
399
- matches(element, selector) || !!closest(element, selector) :
400
- element === selector || toNode(selector).contains(toNode(element));
395
+ !!closest(element, selector) :
396
+ toNode(selector).contains(toNode(element));
401
397
  }
402
398
 
403
399
  function parents(element, selector) {
@@ -818,7 +814,9 @@
818
814
  }
819
815
 
820
816
  function removeClasses(element, cls) {
821
- attr(element, 'class', (value) => (value || '').replace(new RegExp("\\b" + cls + "\\b", 'g'), ''));
817
+ attr(element, 'class', (value) =>
818
+ (value || '').replace(new RegExp("\\b" + cls + "\\b\\s?", 'g'), ''));
819
+
822
820
  }
823
821
 
824
822
  function replaceClass(element) {
@@ -903,13 +901,14 @@
903
901
  const Transition = {
904
902
  start: transition,
905
903
 
906
- stop(element) {
904
+ async stop(element) {
907
905
  trigger(element, 'transitionend');
908
- return Promise.resolve();
906
+ await Promise.resolve();
909
907
  },
910
908
 
911
- cancel(element) {
909
+ async cancel(element) {
912
910
  trigger(element, 'transitioncanceled');
911
+ await Promise.resolve();
913
912
  },
914
913
 
915
914
  inProgress(element) {
@@ -919,7 +918,7 @@
919
918
 
920
919
  const animationPrefix = 'uk-animation-';
921
920
 
922
- function animate$1(element, animation, duration, origin, out) {if (duration === void 0) {duration = 200;}
921
+ function animate$2(element, animation, duration, origin, out) {if (duration === void 0) {duration = 200;}
923
922
  return Promise.all(
924
923
  toNodes(element).map(
925
924
  (element) =>
@@ -953,16 +952,17 @@
953
952
 
954
953
  }
955
954
 
956
- const inProgress = new RegExp(animationPrefix + "(enter|leave)");
955
+ const inProgressRe = new RegExp(animationPrefix + "(enter|leave)");
956
+
957
957
  const Animation = {
958
- in: animate$1,
958
+ in: animate$2,
959
959
 
960
960
  out(element, animation, duration, origin) {
961
- return animate$1(element, animation, duration, origin, true);
961
+ return animate$2(element, animation, duration, origin, true);
962
962
  },
963
963
 
964
964
  inProgress(element) {
965
- return inProgress.test(attr(element, 'class'));
965
+ return inProgressRe.test(attr(element, 'class'));
966
966
  },
967
967
 
968
968
  cancel(element) {
@@ -1911,7 +1911,7 @@
1911
1911
  // iOS 12 returns <body> as scrollingElement
1912
1912
  viewportElement = documentElement;
1913
1913
  } else {
1914
- rect[start] += toFloat(css(viewportElement, "border" + ucfirst(start) + "Width"));
1914
+ rect[start] += toFloat(css(viewportElement, "border-" + start + "-width"));
1915
1915
  }
1916
1916
  rect[prop] = rect[dir] = viewportElement["client" + ucfirst(prop)];
1917
1917
  rect[end] = rect[prop] + rect[start];
@@ -1936,127 +1936,47 @@
1936
1936
  ...options.attach },
1937
1937
 
1938
1938
  offset: [0, 0],
1939
+ placement: [],
1939
1940
  ...options };
1940
1941
 
1941
1942
 
1942
- const dim = options.flip ?
1943
- attachToWithFlip(element, target, options) :
1944
- attachTo(element, target, options);
1945
-
1946
- offset(element, dim);
1947
- }
1948
-
1949
- function attachTo(element, target, options) {
1950
- let { attach, offset: offsetBy } = {
1951
- attach: {
1952
- element: ['left', 'top'],
1953
- target: ['left', 'top'],
1954
- ...options.attach },
1955
-
1956
- offset: [0, 0],
1957
- ...options };
1958
-
1959
-
1960
- const position = offset(element);
1961
- const targetOffset = offset(target);
1962
- for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
1963
- position[start] = position[dir] =
1964
- targetOffset[start] +
1965
- moveBy(attach.target[i], end, targetOffset[prop]) -
1966
- moveBy(attach.element[i], end, position[prop]) +
1967
- +offsetBy[i];
1968
- position[end] = position[start] + position[prop];
1943
+ if (!isArray(target)) {
1944
+ target = [target, target];
1969
1945
  }
1970
- return position;
1971
- }
1972
1946
 
1973
- function moveBy(start, end, dim) {
1974
- return start === 'center' ? dim / 2 : start === end ? dim : 0;
1947
+ offset(element, getPosition(element, target, options));
1975
1948
  }
1976
1949
 
1977
- function attachToWithFlip(element, target, options) {
1950
+ function getPosition(element, target, options) {
1978
1951
  const position = attachTo(element, target, options);
1979
- const targetDim = offset(target);
1980
-
1981
- let {
1982
- flip,
1983
- attach: { element: elAttach, target: targetAttach },
1984
- offset: elOffset,
1985
- boundary,
1986
- viewport,
1987
- viewportOffset } =
1988
- options;
1989
-
1990
- let viewports = scrollParents(element);
1991
- if (boundary === target) {
1992
- viewports = viewports.filter((viewport) => viewport !== boundary);
1993
- }
1994
- const [scrollElement] = viewports;
1995
- viewports.push(viewport);
1996
-
1997
- const offsetPosition = { ...position };
1998
- for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
1999
- if (flip !== true && !includes(flip, dir)) {
2000
- continue;
2001
- }
2002
-
2003
- const willFlip =
2004
- !intersectLine(position, targetDim, i) && intersectLine(position, targetDim, 1 - i);
2005
-
2006
- viewport = getIntersectionArea(...viewports.filter(Boolean).map(offsetViewport));
2007
-
2008
- if (viewportOffset) {
2009
- viewport[start] += viewportOffset;
2010
- viewport[end] -= viewportOffset;
2011
- }
1952
+ const { boundary, viewportOffset = 0, placement } = options;
2012
1953
 
2013
- if (boundary && !willFlip && position[prop] <= offset(boundary)[prop]) {
2014
- viewport = getIntersectionArea(viewport, offset(boundary));
2015
- }
2016
-
2017
- const isInStartBoundary = position[start] >= viewport[start];
2018
- const isInEndBoundary = position[end] <= viewport[end];
1954
+ let offsetPosition = position;
1955
+ for (const [i, [prop,, start, end]] of Object.entries(dirs)) {
1956
+ const viewport = getViewport$1(target[i], viewportOffset, boundary, i);
2019
1957
 
2020
- if (isInStartBoundary && isInEndBoundary) {
1958
+ if (isWithin(position, viewport, i)) {
2021
1959
  continue;
2022
1960
  }
2023
1961
 
2024
- let offsetBy;
1962
+ let offsetBy = 0;
2025
1963
 
2026
1964
  // Flip
2027
- if (willFlip) {
1965
+ if (placement[i] === 'flip') {
1966
+ const attach = options.attach.target[i];
2028
1967
  if (
2029
- elAttach[i] === end && isInStartBoundary ||
2030
- elAttach[i] === start && isInEndBoundary)
1968
+ attach === end && position[end] <= viewport[end] ||
1969
+ attach === start && position[start] >= viewport[start])
2031
1970
  {
2032
1971
  continue;
2033
1972
  }
2034
1973
 
2035
- offsetBy =
2036
- (elAttach[i] === start ?
2037
- -position[prop] :
2038
- elAttach[i] === end ?
2039
- position[prop] :
2040
- 0) + (
2041
- targetAttach[i] === start ?
2042
- targetDim[prop] :
2043
- targetAttach[i] === end ?
2044
- -targetDim[prop] :
2045
- 0) -
2046
- elOffset[i] * 2;
1974
+ offsetBy = flip(element, target, options, i)[start] - position[start];
2047
1975
 
2048
- if (
2049
- !isInScrollArea(
2050
- {
2051
- ...position,
2052
- [start]: position[start] + offsetBy,
2053
- [end]: position[end] + offsetBy },
1976
+ const scrollArea = getScrollArea(target[i], viewportOffset, i);
2054
1977
 
2055
- scrollElement,
2056
- i))
2057
-
2058
- {
2059
- if (isInScrollArea(position, scrollElement, i)) {
1978
+ if (!isWithin(applyOffset(position, offsetBy, i), scrollArea, i)) {
1979
+ if (isWithin(position, scrollArea, i)) {
2060
1980
  continue;
2061
1981
  }
2062
1982
 
@@ -2064,27 +1984,19 @@
2064
1984
  return false;
2065
1985
  }
2066
1986
 
2067
- if (flip === true || includes(flip, dirs[1 - i][1])) {
2068
- const newPos = attachToWithFlip(element, target, {
2069
- ...options,
2070
- attach: {
2071
- element: elAttach.map(flipDir).reverse(),
2072
- target: targetAttach.map(flipDir).reverse() },
2073
-
2074
- offset: elOffset.reverse(),
2075
- flip: flip === true ? flip : [...flip, dirs[1 - i][1]],
2076
- recursion: true });
2077
-
1987
+ const newPos = flipAxis(element, target, options);
2078
1988
 
2079
- if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
2080
- return newPos;
2081
- }
1989
+ if (newPos && isWithin(newPos, scrollArea, 1 - i)) {
1990
+ return newPos;
2082
1991
  }
1992
+
2083
1993
  continue;
2084
1994
  }
2085
1995
 
2086
- // Move
2087
- } else {
1996
+ // Shift
1997
+ } else if (placement[i] === 'shift') {
1998
+ const targetDim = offset(target[i]);
1999
+ const { offset: elOffset } = options;
2088
2000
  offsetBy =
2089
2001
  clamp(
2090
2002
  clamp(position[start], viewport[start], viewport[end] - position[prop]),
@@ -2093,13 +2005,78 @@
2093
2005
  position[start];
2094
2006
  }
2095
2007
 
2096
- offsetPosition[start] = position[dir] = position[start] + offsetBy;
2097
- offsetPosition[end] += offsetBy;
2008
+ offsetPosition = applyOffset(offsetPosition, offsetBy, i);
2098
2009
  }
2099
2010
 
2100
2011
  return offsetPosition;
2101
2012
  }
2102
2013
 
2014
+ function attachTo(element, target, options) {
2015
+ let { attach, offset: offsetBy } = {
2016
+ attach: {
2017
+ element: ['left', 'top'],
2018
+ target: ['left', 'top'],
2019
+ ...options.attach },
2020
+
2021
+ offset: [0, 0],
2022
+ ...options };
2023
+
2024
+
2025
+ let elOffset = offset(element);
2026
+
2027
+ for (const [i, [prop,, start, end]] of Object.entries(dirs)) {
2028
+ const targetOffset =
2029
+ attach.target[i] === attach.element[i] ? offsetViewport(target[i]) : offset(target[i]);
2030
+
2031
+ elOffset = applyOffset(
2032
+ elOffset,
2033
+ targetOffset[start] -
2034
+ elOffset[start] +
2035
+ moveBy(attach.target[i], end, targetOffset[prop]) -
2036
+ moveBy(attach.element[i], end, elOffset[prop]) +
2037
+ +offsetBy[i],
2038
+ i);
2039
+
2040
+ }
2041
+ return elOffset;
2042
+ }
2043
+
2044
+ function applyOffset(position, offset, i) {
2045
+ const [, dir, start, end] = dirs[i];
2046
+ const newPos = { ...position };
2047
+ newPos[start] = position[dir] = position[start] + offset;
2048
+ newPos[end] += offset;
2049
+ return newPos;
2050
+ }
2051
+
2052
+ function moveBy(attach, end, dim) {
2053
+ return attach === 'center' ? dim / 2 : attach === end ? dim : 0;
2054
+ }
2055
+
2056
+ function getViewport$1(element, viewportOffset, boundary, i) {
2057
+ let viewport = getIntersectionArea(...scrollParents(element).map(offsetViewport));
2058
+
2059
+ if (viewportOffset) {
2060
+ viewport[dirs[i][2]] += viewportOffset;
2061
+ viewport[dirs[i][3]] -= viewportOffset;
2062
+ }
2063
+
2064
+ if (boundary) {
2065
+ viewport = getIntersectionArea(viewport, offset(boundary));
2066
+ }
2067
+
2068
+ return viewport;
2069
+ }
2070
+
2071
+ function getScrollArea(element, viewportOffset, i) {
2072
+ const [prop,, start, end] = dirs[i];
2073
+ const [scrollElement] = scrollParents(element);
2074
+ const viewport = offsetViewport(scrollElement);
2075
+ viewport[start] -= scrollElement["scroll" + ucfirst(start)] - viewportOffset;
2076
+ viewport[end] = viewport[start] + scrollElement["scroll" + ucfirst(prop)] - viewportOffset;
2077
+ return viewport;
2078
+ }
2079
+
2103
2080
  function getIntersectionArea() {
2104
2081
  let area = {};for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}
2105
2082
  for (const rect of rects) {
@@ -2111,21 +2088,44 @@
2111
2088
  return area;
2112
2089
  }
2113
2090
 
2114
- function isInScrollArea(position, scrollElement, dir) {
2115
- const viewport = offsetViewport(scrollElement);
2116
- const [prop,, start, end] = dirs[dir];
2117
- viewport[start] -= scrollElement["scroll" + ucfirst(start)];
2118
- viewport[end] = viewport[start] + scrollElement["scroll" + ucfirst(prop)];
2091
+ function isWithin(positionA, positionB, i) {
2092
+ const [,, start, end] = dirs[i];
2093
+ return positionA[start] >= positionB[start] && positionA[end] <= positionB[end];
2094
+ }
2095
+
2096
+ function flip(element, target, _ref, i) {let { offset, attach } = _ref;
2097
+ return attachTo(element, target, {
2098
+ attach: {
2099
+ element: flipAttach(attach.element, i),
2100
+ target: flipAttach(attach.target, i) },
2101
+
2102
+ offset: flipOffset(offset, i) });
2103
+
2104
+ }
2105
+
2106
+ function flipAxis(element, target, options) {
2107
+ return getPosition(element, target, {
2108
+ ...options,
2109
+ attach: {
2110
+ element: options.attach.element.map(flipAttachAxis).reverse(),
2111
+ target: options.attach.target.map(flipAttachAxis).reverse() },
2112
+
2113
+ offset: options.offset.reverse(),
2114
+ placement: options.placement.reverse(),
2115
+ recursion: true });
2119
2116
 
2120
- return position[start] >= viewport[start] && position[end] <= viewport[end];
2121
2117
  }
2122
2118
 
2123
- function intersectLine(dimA, dimB, dir) {
2124
- const [,, start, end] = dirs[dir];
2125
- return dimA[end] > dimB[start] && dimB[end] > dimA[start];
2119
+ function flipAttach(attach, i) {
2120
+ const newAttach = [...attach];
2121
+ const index = dirs[i].indexOf(attach[i]);
2122
+ if (~index) {
2123
+ newAttach[i] = dirs[i][1 - index % 2 + 2];
2124
+ }
2125
+ return newAttach;
2126
2126
  }
2127
2127
 
2128
- function flipDir(prop) {
2128
+ function flipAttachAxis(prop) {
2129
2129
  for (let i = 0; i < dirs.length; i++) {
2130
2130
  const index = dirs[i].indexOf(prop);
2131
2131
  if (~index) {
@@ -2134,13 +2134,17 @@
2134
2134
  }
2135
2135
  }
2136
2136
 
2137
+ function flipOffset(offset, i) {
2138
+ offset = [...offset];
2139
+ offset[i] *= -1;
2140
+ return offset;
2141
+ }
2142
+
2137
2143
  var util = /*#__PURE__*/Object.freeze({
2138
2144
  __proto__: null,
2139
2145
  ajax: ajax,
2140
2146
  getImage: getImage,
2141
- transition: transition,
2142
2147
  Transition: Transition,
2143
- animate: animate$1,
2144
2148
  Animation: Animation,
2145
2149
  attr: attr,
2146
2150
  hasAttr: hasAttr,
@@ -2445,7 +2449,11 @@
2445
2449
  }
2446
2450
 
2447
2451
  if (write && result !== false) {
2448
- fastdom.write(() => write.call(this, this._data, types));
2452
+ fastdom.write(() => {
2453
+ if (this._connected) {
2454
+ write.call(this, this._data, types);
2455
+ }
2456
+ });
2449
2457
  }
2450
2458
  }
2451
2459
  }
@@ -2594,7 +2602,7 @@
2594
2602
 
2595
2603
  value = props[key] === Boolean && value === '' ? true : coerce$1(props[key], value);
2596
2604
 
2597
- if (prop === 'target' && (!value || startsWith(value, '_'))) {
2605
+ if (prop === 'target' && startsWith(value, '_')) {
2598
2606
  continue;
2599
2607
  }
2600
2608
 
@@ -2605,7 +2613,7 @@
2605
2613
 
2606
2614
  for (const key in options) {
2607
2615
  const prop = camelize(key);
2608
- if (props[prop] !== undefined) {
2616
+ if (!isUndefined(props[prop])) {
2609
2617
  data$1[prop] = coerce$1(props[prop], options[key]);
2610
2618
  }
2611
2619
  }
@@ -2934,7 +2942,7 @@
2934
2942
  UIkit.data = '__uikit__';
2935
2943
  UIkit.prefix = 'uk-';
2936
2944
  UIkit.options = {};
2937
- UIkit.version = '3.14.4-dev.fea9fd466';
2945
+ UIkit.version = '3.15.1-dev.022704dc6';
2938
2946
 
2939
2947
  globalAPI(UIkit);
2940
2948
  hooksAPI(UIkit);
@@ -3005,13 +3013,20 @@
3005
3013
  } };
3006
3014
 
3007
3015
  var Lazyload = {
3016
+ data: {
3017
+ preload: 5 },
3018
+
3019
+
3008
3020
  methods: {
3009
3021
  lazyload(observeTargets, targets) {if (observeTargets === void 0) {observeTargets = this.$el;}if (targets === void 0) {targets = this.$el;}
3010
3022
  this.registerObserver(
3011
3023
  observeIntersection(observeTargets, (entries, observer) => {
3012
3024
  for (const el of toNodes(isFunction(targets) ? targets() : targets)) {
3013
- $$('[loading="lazy"]', el).forEach((el) => removeAttr(el, 'loading'));
3025
+ $$('[loading="lazy"]', el).
3026
+ slice(0, this.preload - 1).
3027
+ forEach((el) => removeAttr(el, 'loading'));
3014
3028
  }
3029
+
3015
3030
  for (const el of entries.
3016
3031
  filter((_ref) => {let { isIntersecting } = _ref;return isIntersecting;}).
3017
3032
  map((_ref2) => {let { target } = _ref2;return target;})) {
@@ -3039,27 +3054,7 @@
3039
3054
  origin: false,
3040
3055
  transition: 'ease',
3041
3056
  clsEnter: 'uk-togglabe-enter',
3042
- clsLeave: 'uk-togglabe-leave',
3043
-
3044
- initProps: {
3045
- overflow: '',
3046
- maxHeight: '',
3047
- paddingTop: '',
3048
- paddingBottom: '',
3049
- marginTop: '',
3050
- marginBottom: '',
3051
- boxShadow: '' },
3052
-
3053
-
3054
- hideProps: {
3055
- overflow: 'hidden',
3056
- maxHeight: 0,
3057
- paddingTop: 0,
3058
- paddingBottom: 0,
3059
- marginTop: 0,
3060
- marginBottom: 0,
3061
- boxShadow: 'none' } },
3062
-
3057
+ clsLeave: 'uk-togglabe-leave' },
3063
3058
 
3064
3059
 
3065
3060
  computed: {
@@ -3068,7 +3063,7 @@
3068
3063
  },
3069
3064
 
3070
3065
  hasTransition(_ref2) {let { animation } = _ref2;
3071
- return startsWith(animation[0], 'slide');
3066
+ return ['slide', 'reveal'].some((transition) => startsWith(animation[0], transition));
3072
3067
  } },
3073
3068
 
3074
3069
 
@@ -3161,122 +3156,107 @@
3161
3156
  };
3162
3157
  }
3163
3158
 
3164
- function toggleTransition(cmp) {
3165
- switch (cmp.animation[0]) {
3166
- case 'slide-left':
3167
- return slideHorizontal(cmp);
3168
- case 'slide-right':
3169
- return slideHorizontal(cmp, true);}
3170
-
3171
- return slide(cmp);
3172
- }
3173
-
3174
- function slide(_ref4)
3159
+ function toggleTransition(cmp) {var _cmp$animation$;
3160
+ const [mode = 'reveal', startProp = 'top'] = ((_cmp$animation$ = cmp.animation[0]) == null ? void 0 : _cmp$animation$.split('-')) || [];
3175
3161
 
3162
+ const dirs = [
3163
+ ['left', 'right'],
3164
+ ['top', 'bottom']];
3176
3165
 
3166
+ const dir = dirs[includes(dirs[0], startProp) ? 0 : 1];
3167
+ const end = dir[1] === startProp;
3168
+ const props = ['width', 'height'];
3169
+ const dimProp = props[dirs.indexOf(dir)];
3170
+ const marginProp = "margin-" + dir[0];
3171
+ const marginStartProp = "margin-" + startProp;
3177
3172
 
3173
+ return async (el, show) => {
3174
+ let { duration, velocity, transition, _toggle } = cmp;
3178
3175
 
3176
+ let currentDim = dimensions(el)[dimProp];
3179
3177
 
3180
-
3181
-
3182
- {let { isToggled, duration, velocity, initProps, hideProps, transition, _toggle } = _ref4;
3183
- return (el, show) => {
3184
3178
  const inProgress = Transition.inProgress(el);
3185
- const inner =
3186
- !inProgress && el.hasChildNodes() ?
3187
- toFloat(css(el.firstElementChild, 'marginTop')) +
3188
- toFloat(css(el.lastElementChild, 'marginBottom')) :
3189
- 0;
3190
- const currentHeight = isVisible(el) ? toFloat(css(el, 'height')) + inner : 0;
3191
-
3192
- const props = inProgress ? css(el, Object.keys(initProps)) : show ? hideProps : initProps;
3179
+ await Transition.cancel(el);
3193
3180
 
3194
- Transition.cancel(el);
3195
-
3196
- if (!isToggled(el)) {
3181
+ if (show) {
3197
3182
  _toggle(el, true);
3198
3183
  }
3199
3184
 
3200
- css(el, 'maxHeight', '');
3201
-
3202
- // Update child components first
3203
- fastdom.flush();
3204
-
3205
- const endHeight = toFloat(css(el, 'height')) + inner;
3206
- duration = velocity * endHeight + duration;
3207
-
3208
- css(el, { ...props, maxHeight: currentHeight });
3209
-
3210
- return (
3211
- show ?
3212
- Transition.start(
3213
- el,
3214
- { ...initProps, overflow: 'hidden', maxHeight: endHeight },
3215
- duration * (1 - currentHeight / endHeight),
3216
- transition) :
3217
-
3218
- Transition.start(
3219
- el,
3220
- hideProps,
3221
- duration * (currentHeight / endHeight),
3222
- transition).
3223
- then(() => _toggle(el, false))).
3224
- then(() => css(el, initProps));
3225
- };
3226
- }
3227
-
3228
- function slideHorizontal(_ref5, right) {let { isToggled, duration, velocity, transition, _toggle } = _ref5;
3229
- return (el, show) => {
3230
- const visible = isVisible(el);
3231
- const marginLeft = toFloat(css(el, 'marginLeft'));
3232
-
3233
- Transition.cancel(el);
3234
-
3235
- const [scrollElement] = scrollParents(el.offsetParent);
3236
- css(scrollElement, 'overflowX', 'hidden');
3237
-
3238
- if (!isToggled(el)) {
3239
- _toggle(el, true);
3240
- }
3185
+ const prevProps = Object.fromEntries(
3186
+ [
3187
+ 'padding',
3188
+ 'border',
3189
+ 'width',
3190
+ 'height',
3191
+ 'overflowY',
3192
+ 'overflowX',
3193
+ marginProp,
3194
+ marginStartProp].
3195
+ map((key) => [key, el.style[key]]));
3196
+
3197
+
3198
+ const dim = dimensions(el);
3199
+ const currentMargin = toFloat(css(el, marginProp));
3200
+ const marginStart = toFloat(css(el, marginStartProp));
3201
+ const endDim = dim[dimProp] + marginStart;
3202
+
3203
+ if (!inProgress && !show) {
3204
+ currentDim += marginStart;
3205
+ }
3206
+
3207
+ const [wrapper] = wrapInner(el, '<div>');
3208
+ css(wrapper, {
3209
+ boxSizing: 'border-box',
3210
+ height: dim.height,
3211
+ width: dim.width,
3212
+ ...css(el, [
3213
+ 'overflow',
3214
+ 'padding',
3215
+ 'borderTop',
3216
+ 'borderRight',
3217
+ 'borderBottom',
3218
+ 'borderLeft',
3219
+ 'borderImage',
3220
+ marginStartProp]) });
3241
3221
 
3242
- const width = toFloat(css(el, 'width'));
3243
- duration = velocity * width + duration;
3244
3222
 
3245
- const percent = visible ? (width + marginLeft * (right ? -1 : 1)) / width * 100 : 0;
3246
3223
 
3247
3224
  css(el, {
3248
- clipPath: right ? "polygon(0 0," +
3249
- percent + "% 0," + percent + "% 100%,0 100%)" : "polygon(" + (
3250
- 100 - percent) + "% 0,100% 0,100% 100%," + (100 - percent) + "% 100%)",
3251
- marginLeft: (100 - percent) * (right ? 1 : -1) / 100 * width });
3252
-
3225
+ padding: 0,
3226
+ border: 0,
3227
+ minWidth: 0,
3228
+ minHeight: 0,
3229
+ [marginStartProp]: 0,
3230
+ width: dim.width,
3231
+ height: dim.height,
3232
+ overflow: 'hidden',
3233
+ [dimProp]: currentDim });
3253
3234
 
3254
- return (
3255
- show ?
3256
- Transition.start(
3257
- el,
3258
- {
3259
- clipPath: "polygon(0 0,100% 0,100% 100%,0 100%)",
3260
- marginLeft: 0 },
3261
3235
 
3262
- duration * (1 - percent / 100),
3263
- transition) :
3236
+ const percent = currentDim / endDim;
3237
+ duration = (velocity * endDim + duration) * (show ? 1 - percent : percent);
3238
+ const endProps = { [dimProp]: show ? endDim : 0 };
3264
3239
 
3265
- Transition.start(
3266
- el,
3267
- {
3268
- clipPath: right ? "polygon(0 0,0 0,0 100%,0 100%)" : "polygon(100% 0,100% 0,100% 100%,100% 100%)",
3240
+ if (end) {
3241
+ css(el, marginProp, endDim - currentDim + currentMargin);
3242
+ endProps[marginProp] = show ? currentMargin : endDim + currentMargin;
3243
+ }
3269
3244
 
3245
+ if (!end ^ mode === 'reveal') {
3246
+ css(wrapper, marginProp, -endDim + currentDim);
3247
+ Transition.start(wrapper, { [marginProp]: show ? 0 : -endDim }, duration, transition);
3248
+ }
3270
3249
 
3271
- marginLeft: (right ? 1 : -1) * width },
3250
+ try {
3251
+ await Transition.start(el, endProps, duration, transition);
3252
+ } finally {
3253
+ css(el, prevProps);
3254
+ unwrap(wrapper.firstChild);
3272
3255
 
3273
- duration * (percent / 100),
3274
- transition).
3275
- then(() => _toggle(el, false))).
3276
- then(() => {
3277
- css(scrollElement, 'overflowX', '');
3278
- css(el, { clipPath: '', marginLeft: '' });
3279
- });
3256
+ if (!show) {
3257
+ _toggle(el, false);
3258
+ }
3259
+ }
3280
3260
  };
3281
3261
  }
3282
3262
 
@@ -3301,6 +3281,7 @@
3301
3281
  mixins: [Class, Lazyload, Togglable],
3302
3282
 
3303
3283
  props: {
3284
+ animation: Boolean,
3304
3285
  targets: String,
3305
3286
  active: null,
3306
3287
  collapsible: Boolean,
@@ -3313,7 +3294,7 @@
3313
3294
  data: {
3314
3295
  targets: '> *',
3315
3296
  active: false,
3316
- animation: ['slide'],
3297
+ animation: true,
3317
3298
  collapsible: true,
3318
3299
  multiple: false,
3319
3300
  clsOpen: 'uk-open',
@@ -3359,7 +3340,7 @@
3359
3340
  hide(
3360
3341
  el,
3361
3342
  !hasClass(
3362
- this.items.find((item) => item.contains(el)),
3343
+ this.items.find((item) => within(el, item)),
3363
3344
  this.clsOpen));
3364
3345
 
3365
3346
 
@@ -3411,23 +3392,15 @@
3411
3392
  toggleClass(el, this.clsOpen, show);
3412
3393
  attr($(this.$props.toggle, el), 'aria-expanded', show);
3413
3394
 
3414
- const content = $("" + (el._wrapper ? '> * ' : '') + this.content, el);
3395
+ const content = $(this.content, el);
3415
3396
 
3416
- if (animate === false || !this.hasTransition) {
3397
+ if (animate === false || !this.animation) {
3398
+ content.hidden = !show;
3417
3399
  hide(content, !show);
3418
3400
  return;
3419
3401
  }
3420
3402
 
3421
- if (!el._wrapper) {
3422
- el._wrapper = wrapAll(content, "<div" + (show ? ' hidden' : '') + ">");
3423
- }
3424
-
3425
- hide(content, false);
3426
- await slide(this)(el._wrapper, show);
3427
- hide(content, !show);
3428
-
3429
- delete el._wrapper;
3430
- unwrap(content);
3403
+ await toggleTransition(this)(content, show);
3431
3404
 
3432
3405
  if (show) {
3433
3406
  const toggle = $(this.$props.toggle, el);
@@ -3453,18 +3426,17 @@
3453
3426
  args: 'animation',
3454
3427
 
3455
3428
  props: {
3429
+ animation: Boolean,
3456
3430
  close: String },
3457
3431
 
3458
3432
 
3459
3433
  data: {
3460
- animation: ['slide'],
3434
+ animation: true,
3461
3435
  selClose: '.uk-alert-close',
3462
- duration: 150,
3463
- hideProps: { opacity: 0, ...Togglable.data.hideProps } },
3436
+ duration: 150 },
3464
3437
 
3465
3438
 
3466
- events: [
3467
- {
3439
+ events: {
3468
3440
  name: 'click',
3469
3441
 
3470
3442
  delegate() {
@@ -3474,16 +3446,39 @@
3474
3446
  handler(e) {
3475
3447
  e.preventDefault();
3476
3448
  this.close();
3477
- } }],
3478
-
3449
+ } },
3479
3450
 
3480
3451
 
3481
3452
  methods: {
3482
3453
  async close() {
3483
- await this.toggleElement(this.$el);
3454
+ await this.toggleElement(this.$el, false, animate$1(this));
3484
3455
  this.$destroy(true);
3485
3456
  } } };
3486
3457
 
3458
+
3459
+
3460
+ function animate$1(_ref) {let { duration, transition, velocity } = _ref;
3461
+ return (el) => {
3462
+ const height = toFloat(css(el, 'height'));
3463
+ css(el, 'height', height);
3464
+ return Transition.start(
3465
+ el,
3466
+ {
3467
+ height: 0,
3468
+ marginTop: 0,
3469
+ marginBottom: 0,
3470
+ paddingTop: 0,
3471
+ paddingBottom: 0,
3472
+ borderTop: 0,
3473
+ borderBottom: 0,
3474
+ opacity: 0 },
3475
+
3476
+ velocity * height + duration,
3477
+ transition);
3478
+
3479
+ };
3480
+ }
3481
+
3487
3482
  var Video = {
3488
3483
  args: 'autoplay',
3489
3484
 
@@ -3632,13 +3627,17 @@
3632
3627
  props: {
3633
3628
  pos: String,
3634
3629
  offset: null,
3635
- flip: Boolean },
3630
+ flip: Boolean,
3631
+ shift: Boolean,
3632
+ inset: Boolean },
3636
3633
 
3637
3634
 
3638
3635
  data: {
3639
3636
  pos: "bottom-" + (isRtl ? 'right' : 'left'),
3637
+ offset: false,
3640
3638
  flip: true,
3641
- offset: false },
3639
+ shift: true,
3640
+ inset: false },
3642
3641
 
3643
3642
 
3644
3643
  connected() {
@@ -3650,17 +3649,19 @@
3650
3649
  methods: {
3651
3650
  positionAt(element, target, boundary) {
3652
3651
  let offset = [this.getPositionOffset(element), this.getShiftOffset(element)];
3652
+ const placement = [this.flip && 'flip', this.shift && 'shift'];
3653
3653
 
3654
3654
  const attach = {
3655
- element: [flipPosition(this.dir), this.align],
3655
+ element: [this.inset ? this.dir : flipPosition(this.dir), this.align],
3656
3656
  target: [this.dir, this.align] };
3657
3657
 
3658
3658
 
3659
3659
  if (this.axis === 'y') {
3660
3660
  for (const prop in attach) {
3661
- attach[prop] = attach[prop].reverse();
3661
+ attach[prop].reverse();
3662
3662
  }
3663
- offset = offset.reverse();
3663
+ offset.reverse();
3664
+ placement.reverse();
3664
3665
  }
3665
3666
 
3666
3667
  const [scrollElement] = scrollParents(element, /auto|scroll/);
@@ -3670,21 +3671,13 @@
3670
3671
  const elDim = dimensions(element);
3671
3672
  css(element, { top: -elDim.height, left: -elDim.width });
3672
3673
 
3673
- const args = [
3674
- element,
3675
- target,
3676
- {
3674
+ positionAt(element, target, {
3677
3675
  attach,
3678
3676
  offset,
3679
3677
  boundary,
3680
- flip: this.flip,
3681
- viewportOffset: this.getViewportOffset(element) }];
3682
-
3683
-
3678
+ placement,
3679
+ viewportOffset: this.getViewportOffset(element) });
3684
3680
 
3685
- trigger(element, 'beforeposition', args);
3686
-
3687
- positionAt(...args);
3688
3681
 
3689
3682
  // Restore scroll position
3690
3683
  scrollElement.scrollTop = scrollTop;
@@ -3697,12 +3690,14 @@
3697
3690
  this.offset === false ? css(element, '--uk-position-offset') : this.offset,
3698
3691
  this.axis === 'x' ? 'width' : 'height',
3699
3692
  element) * (
3700
- includes(['left', 'top'], this.dir) ? -1 : 1));
3693
+
3694
+ includes(['left', 'top'], this.dir) ? -1 : 1) * (
3695
+ this.inset ? -1 : 1));
3701
3696
 
3702
3697
  },
3703
3698
 
3704
3699
  getShiftOffset(element) {
3705
- return includes(['center', 'justify', 'stretch'], this.align) ?
3700
+ return this.align === 'center' ?
3706
3701
  0 :
3707
3702
  toPx(
3708
3703
  css(element, '--uk-position-shift-offset'),
@@ -3715,6 +3710,15 @@
3715
3710
  return toPx(css(element, '--uk-position-viewport-offset'));
3716
3711
  } } };
3717
3712
 
3713
+ var Style = {
3714
+ beforeConnect() {
3715
+ this._style = attr(this.$el, 'style');
3716
+ },
3717
+
3718
+ disconnected() {
3719
+ attr(this.$el, 'style', this._style);
3720
+ } };
3721
+
3718
3722
  const active$1 = [];
3719
3723
 
3720
3724
  var Modal = {
@@ -3824,8 +3828,8 @@
3824
3828
 
3825
3829
 
3826
3830
  if (this.overlay) {
3827
- once(this.$el, 'hide', preventOverscroll(this.$el));
3828
- once(this.$el, 'hide', preventBackgroundScroll());
3831
+ once(this.$el, 'hidden', preventOverscroll(this.$el), { self: true });
3832
+ once(this.$el, 'hidden', preventBackgroundScroll(), { self: true });
3829
3833
  }
3830
3834
 
3831
3835
  if (this.stack) {
@@ -3907,10 +3911,6 @@
3907
3911
  active$1.splice(active$1.indexOf(this), 1);
3908
3912
  }
3909
3913
 
3910
- if (!active$1.length) {
3911
- css(document.body, 'overflowY', '');
3912
- }
3913
-
3914
3914
  css(this.$el, 'zIndex', '');
3915
3915
 
3916
3916
  if (!active$1.some((modal) => modal.clsPage === this.clsPage)) {
@@ -4027,16 +4027,22 @@
4027
4027
  return () => events.forEach((fn) => fn());
4028
4028
  }
4029
4029
 
4030
+ let prevented;
4030
4031
  function preventBackgroundScroll() {
4031
- const { body, documentElement } = document;
4032
- css(body, {
4033
- overflowY: width(window) > documentElement.clientWidth ? 'scroll' : '',
4034
- touchAction: 'none' });
4032
+ if (prevented) {
4033
+ return noop;
4034
+ }
4035
+ prevented = true;
4036
+
4037
+ const { scrollingElement } = document;
4038
+ css(scrollingElement, {
4039
+ overflowY: 'hidden',
4040
+ touchAction: 'none',
4041
+ paddingRight: width(window) - scrollingElement.clientWidth });
4035
4042
 
4036
- css(documentElement, 'overflowY', 'hidden');
4037
4043
  return () => {
4038
- css(documentElement, 'overflowY', '');
4039
- css(body, { overflowY: '', touchAction: '' });
4044
+ prevented = false;
4045
+ css(scrollingElement, { overflowY: '', touchAction: '', paddingRight: '' });
4040
4046
  };
4041
4047
  }
4042
4048
 
@@ -4053,7 +4059,7 @@
4053
4059
  let active;
4054
4060
 
4055
4061
  var drop = {
4056
- mixins: [Container, Lazyload, Position, Togglable],
4062
+ mixins: [Container, Lazyload, Position, Style, Togglable],
4057
4063
 
4058
4064
  args: 'pos',
4059
4065
 
@@ -4061,10 +4067,13 @@
4061
4067
  mode: 'list',
4062
4068
  toggle: Boolean,
4063
4069
  boundary: Boolean,
4064
- boundaryAlign: Boolean,
4070
+ target: Boolean,
4071
+ targetX: Boolean,
4072
+ targetY: Boolean,
4073
+ stretch: Boolean,
4065
4074
  delayShow: Number,
4066
4075
  delayHide: Number,
4067
- display: String,
4076
+ autoUpdate: Boolean,
4068
4077
  clsDrop: String,
4069
4078
  animateOut: Boolean,
4070
4079
  bgScroll: Boolean },
@@ -4073,17 +4082,32 @@
4073
4082
  data: {
4074
4083
  mode: ['click', 'hover'],
4075
4084
  toggle: '- *',
4076
- boundary: true,
4077
- boundaryAlign: false,
4085
+ boundary: false,
4086
+ target: false,
4087
+ targetX: false,
4088
+ targetY: false,
4089
+ stretch: false,
4078
4090
  delayShow: 0,
4079
4091
  delayHide: 800,
4080
- display: null,
4092
+ autoUpdate: true,
4081
4093
  clsDrop: false,
4094
+ animateOut: false,
4095
+ bgScroll: true,
4082
4096
  animation: ['uk-animation-fade'],
4083
4097
  cls: 'uk-open',
4084
- container: false,
4085
- animateOut: false,
4086
- bgScroll: true },
4098
+ container: false },
4099
+
4100
+
4101
+ computed: {
4102
+ target(_ref, $el) {let { target, targetX, targetY } = _ref;
4103
+ targetX = targetX || target || this.targetEl;
4104
+ targetY = targetY || target || this.targetEl;
4105
+
4106
+ return [
4107
+ targetX === true ? window : query(targetX, $el),
4108
+ targetY === true ? window : query(targetY, $el)];
4109
+
4110
+ } },
4087
4111
 
4088
4112
 
4089
4113
  created() {
@@ -4097,18 +4121,19 @@
4097
4121
  connected() {
4098
4122
  addClass(this.$el, this.clsDrop);
4099
4123
 
4100
- if (this.toggle && !this.target) {
4101
- this.target = this.$create('toggle', query(this.toggle, this.$el), {
4124
+ if (this.toggle && !this.targetEl) {
4125
+ this.targetEl = this.$create('toggle', query(this.toggle, this.$el), {
4102
4126
  target: this.$el,
4103
4127
  mode: this.mode }).
4104
4128
  $el;
4105
- attr(this.target, 'aria-haspopup', true);
4106
- this.lazyload(this.target);
4129
+ attr(this.targetEl, 'aria-haspopup', true);
4130
+ this.lazyload(this.targetEl);
4107
4131
  }
4108
4132
  },
4109
4133
 
4110
4134
  disconnected() {
4111
4135
  if (this.isActive()) {
4136
+ this.hide(false);
4112
4137
  active = null;
4113
4138
  }
4114
4139
  },
@@ -4134,7 +4159,7 @@
4134
4159
  return 'a[href^="#"]';
4135
4160
  },
4136
4161
 
4137
- handler(_ref) {let { defaultPrevented, current: { hash } } = _ref;
4162
+ handler(_ref2) {let { defaultPrevented, current: { hash } } = _ref2;
4138
4163
  if (!defaultPrevented && hash && !within(hash, this.$el)) {
4139
4164
  this.hide(false);
4140
4165
  }
@@ -4242,21 +4267,22 @@
4242
4267
 
4243
4268
  this.tracker.init();
4244
4269
 
4245
- for (const handler of [
4270
+ const update = () => this.$emit();
4271
+ const handlers = [
4246
4272
  on(
4247
4273
  document,
4248
4274
  pointerDown,
4249
- (_ref2) => {let { target } = _ref2;return (
4275
+ (_ref3) => {let { target } = _ref3;return (
4250
4276
  !within(target, this.$el) &&
4251
4277
  once(
4252
4278
  document,
4253
4279
  pointerUp + " " + pointerCancel + " scroll",
4254
- (_ref3) => {let { defaultPrevented, type, target: newTarget } = _ref3;
4280
+ (_ref4) => {let { defaultPrevented, type, target: newTarget } = _ref4;
4255
4281
  if (
4256
4282
  !defaultPrevented &&
4257
4283
  type === pointerUp &&
4258
4284
  target === newTarget &&
4259
- !(this.target && within(target, this.target)))
4285
+ !(this.targetEl && within(target, this.targetEl)))
4260
4286
  {
4261
4287
  this.hide(false);
4262
4288
  }
@@ -4271,29 +4297,28 @@
4271
4297
  }
4272
4298
  }),
4273
4299
 
4300
+ on(window, 'resize', update),
4301
+
4302
+ (() => {
4303
+ const observer = observeResize(
4304
+ scrollParents(this.$el).concat(this.targetEl),
4305
+ update);
4306
+
4307
+ return () => observer.disconnect();
4308
+ })(),
4309
+
4310
+ ...(this.autoUpdate ?
4311
+ [on([document, scrollParents(this.$el)], 'scroll', update)] :
4312
+ []),
4313
+
4274
4314
  ...(this.bgScroll ?
4275
4315
  [] :
4276
- [preventOverscroll(this.$el), preventBackgroundScroll()]),
4316
+ [preventOverscroll(this.$el), preventBackgroundScroll()])];
4317
+
4318
+
4319
+ once(this.$el, 'hide', () => handlers.forEach((handler) => handler()), {
4320
+ self: true });
4277
4321
 
4278
- ...(this.display === 'static' && this.align !== 'stretch' ?
4279
- [] :
4280
- (() => {
4281
- const handler = () => this.$emit();
4282
- return [
4283
- on(window, 'resize', handler),
4284
- on(document, 'scroll', handler, true),
4285
- (() => {
4286
- const observer = observeResize(
4287
- scrollParents(this.$el),
4288
- handler);
4289
-
4290
- return () => observer.disconnect();
4291
- })()];
4292
-
4293
- })())])
4294
- {
4295
- once(this.$el, 'hide', handler, { self: true });
4296
- }
4297
4322
  } },
4298
4323
 
4299
4324
 
@@ -4310,7 +4335,7 @@
4310
4335
  {
4311
4336
  name: 'hide',
4312
4337
 
4313
- handler(_ref4) {let { target } = _ref4;
4338
+ handler(_ref5) {let { target } = _ref5;
4314
4339
  if (this.$el !== target) {
4315
4340
  active =
4316
4341
  active === null && within(target, this.$el) && this.isToggled() ?
@@ -4334,12 +4359,12 @@
4334
4359
 
4335
4360
 
4336
4361
  methods: {
4337
- show(target, delay) {if (target === void 0) {target = this.target;}if (delay === void 0) {delay = true;}
4338
- if (this.isToggled() && target && this.target && target !== this.target) {
4362
+ show(target, delay) {if (target === void 0) {target = this.targetEl;}if (delay === void 0) {delay = true;}
4363
+ if (this.isToggled() && target && this.targetEl && target !== this.targetEl) {
4339
4364
  this.hide(false, false);
4340
4365
  }
4341
4366
 
4342
- this.target = target;
4367
+ this.targetEl = target;
4343
4368
 
4344
4369
  this.clearTimers();
4345
4370
 
@@ -4402,60 +4427,69 @@
4402
4427
 
4403
4428
  position() {
4404
4429
  removeClass(this.$el, this.clsDrop + "-stack");
4405
- toggleClass(this.$el, this.clsDrop + "-boundary", this.boundaryAlign);
4406
- toggleClass(this.$el, this.clsDrop + "-stretch", this.align === 'stretch');
4430
+ attr(this.$el, 'style', this._style);
4407
4431
 
4408
- const boundary = query(this.boundary, this.$el);
4409
- const target = boundary && this.boundaryAlign ? boundary : this.target;
4410
- const [scrollParent] = scrollParents(
4411
- boundary && this.boundaryAlign ? boundary : this.$el);
4432
+ // Ensure none positioned element does not generate scrollbars
4433
+ this.$el.hidden = true;
4412
4434
 
4413
- const scrollParentOffset = offset(scrollParent);
4414
- const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
4435
+ const boundary = query(this.boundary, this.$el);
4436
+ const boundaryOffset = offset(boundary || window);
4437
+ const viewports = this.target.map((target) => offsetViewport(scrollParents(target)[0]));
4415
4438
  const viewportOffset = this.getViewportOffset(this.$el);
4416
4439
 
4417
- css(this.$el, 'maxWidth', '');
4418
- const maxWidth = scrollParentOffset.width - 2 * viewportOffset;
4440
+ const dirs = [
4441
+ [0, ['x', 'width', 'left', 'right']],
4442
+ [1, ['y', 'height', 'top', 'bottom']]];
4419
4443
 
4420
- if (this.align === 'justify') {
4421
- const prop = this.axis === 'y' ? 'width' : 'height';
4422
- css(
4423
- this.$el,
4424
- prop,
4425
- Math.min(
4426
- (boundary ? boundaryOffset : offset(this.target))[prop],
4427
- scrollParentOffset[prop] - 2 * viewportOffset));
4428
-
4429
-
4430
- } else if (this.align === 'stretch') {
4431
- this.flip = this.axis === 'y' ? 'x' : 'y';
4432
- this.display = 'static';
4433
-
4434
- const viewport = offsetViewport(scrollParent);
4435
- const targetDim = offset(target);
4436
- const elOffset = Math.abs(this.getPositionOffset(this.$el)) + viewportOffset;
4437
-
4438
- css(this.$el, {
4439
- width:
4440
- this.axis === 'y' ?
4441
- viewport.width :
4442
- (this.dir === 'left' ?
4443
- targetDim.left - viewport.left :
4444
- viewport.right - targetDim.right) - elOffset,
4445
- height:
4446
- this.axis === 'x' ?
4447
- viewport.height :
4448
- (this.dir === 'top' ?
4449
- targetDim.top - viewport.top :
4450
- viewport.bottom - targetDim.bottom) - elOffset });
4451
-
4452
- } else if (this.$el.offsetWidth > maxWidth) {
4444
+
4445
+ for (const [i, [axis, prop]] of dirs) {
4446
+ if (this.axis !== axis && includes([axis, true], this.stretch)) {
4447
+ css(this.$el, {
4448
+ [prop]: Math.min(
4449
+ boundaryOffset[prop],
4450
+ viewports[i][prop] - 2 * viewportOffset),
4451
+
4452
+ ["overflow-" + axis]: 'auto' });
4453
+
4454
+ }
4455
+ }
4456
+
4457
+ const maxWidth = viewports[0].width - 2 * viewportOffset;
4458
+
4459
+ if (this.$el.offsetWidth > maxWidth) {
4453
4460
  addClass(this.$el, this.clsDrop + "-stack");
4454
4461
  }
4455
4462
 
4456
4463
  css(this.$el, 'maxWidth', maxWidth);
4457
4464
 
4458
- this.positionAt(this.$el, target, boundary);
4465
+ this.$el.hidden = false;
4466
+
4467
+ this.positionAt(this.$el, this.target, boundary);
4468
+
4469
+ for (const [i, [axis, prop, start, end]] of dirs) {
4470
+ if (this.axis === axis && includes([axis, true], this.stretch)) {
4471
+ const positionOffset = Math.abs(this.getPositionOffset(this.$el));
4472
+ const targetOffset = offset(this.target[i]);
4473
+ const elOffset = offset(this.$el);
4474
+
4475
+ css(this.$el, {
4476
+ [prop]:
4477
+ (targetOffset[start] > elOffset[start] ?
4478
+ targetOffset[start] -
4479
+ Math.max(
4480
+ boundaryOffset[start],
4481
+ viewports[i][start] + viewportOffset) :
4482
+
4483
+ Math.min(
4484
+ boundaryOffset[end],
4485
+ viewports[i][end] - viewportOffset) -
4486
+ targetOffset[end]) - positionOffset,
4487
+ ["overflow-" + axis]: 'auto' });
4488
+
4489
+
4490
+ this.positionAt(this.$el, this.target, boundary);
4491
+ }
4492
+ }
4459
4493
  } } };
4460
4494
 
4461
4495
 
@@ -5227,7 +5261,7 @@
5227
5261
 
5228
5262
  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
5263
 
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>";
5264
+ var navbarToggleIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><style>.uk-navbar-toggle-animate svg > [class*='line-'] {\n transition: 0.2s ease-in-out;\n transition-property: transform, opacity,;\n transform-origin: center;\n opacity: 1;\n }\n\n .uk-navbar-toggle svg > .line-3 { opacity: 0; }\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-3 { opacity: 1; }\n\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-2 { transform: rotate(45deg); }\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-3 { transform: rotate(-45deg); }\n\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-1,\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-4 { opacity: 0; }\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-1 { transform: translateY(6px) scaleX(0); }\n .uk-navbar-toggle-animate[aria-expanded=\"true\"] svg > .line-4 { transform: translateY(-6px) scaleX(0); }</style><rect class=\"line-1\" y=\"3\" width=\"20\" height=\"2\"/><rect class=\"line-2\" y=\"9\" width=\"20\" height=\"2\"/><rect class=\"line-3\" y=\"9\" width=\"20\" height=\"2\"/><rect class=\"line-4\" y=\"15\" width=\"20\" height=\"2\"/></svg>";
5231
5265
 
5232
5266
  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>";
5233
5267
 
@@ -5829,7 +5863,9 @@
5829
5863
  align: String,
5830
5864
  offset: Number,
5831
5865
  boundary: Boolean,
5832
- boundaryAlign: Boolean,
5866
+ target: Boolean,
5867
+ targetX: Boolean,
5868
+ targetY: Boolean,
5833
5869
  clsDrop: String,
5834
5870
  delayShow: Number,
5835
5871
  delayHide: Number,
@@ -5846,9 +5882,12 @@
5846
5882
  offset: undefined,
5847
5883
  delayShow: undefined,
5848
5884
  delayHide: undefined,
5849
- boundaryAlign: undefined,
5850
- flip: 'x',
5885
+ flip: false,
5886
+ shift: true,
5851
5887
  boundary: true,
5888
+ target: false,
5889
+ targetX: false,
5890
+ targetY: false,
5852
5891
  dropbar: false,
5853
5892
  dropbarAnchor: false,
5854
5893
  duration: 200,
@@ -5861,7 +5900,7 @@
5861
5900
  },
5862
5901
 
5863
5902
  dropbarAnchor(_ref2, $el) {let { dropbarAnchor } = _ref2;
5864
- return query(dropbarAnchor, $el);
5903
+ return query(dropbarAnchor, $el) || $el;
5865
5904
  },
5866
5905
 
5867
5906
  pos(_ref3) {let { align } = _ref3;
@@ -5883,7 +5922,7 @@
5883
5922
  },
5884
5923
 
5885
5924
  watch(dropbar) {
5886
- addClass(dropbar, 'uk-navbar-dropbar');
5925
+ addClass(dropbar, 'uk-dropbar', 'uk-dropbar-top', 'uk-navbar-dropbar');
5887
5926
  },
5888
5927
 
5889
5928
  immediate: true },
@@ -5899,7 +5938,7 @@
5899
5938
 
5900
5939
  if (this.dropContainer !== $el) {
5901
5940
  for (const el of $$("." + clsDrop, this.dropContainer)) {var _this$getDropdown;
5902
- const target = (_this$getDropdown = this.getDropdown(el)) == null ? void 0 : _this$getDropdown.target;
5941
+ const target = (_this$getDropdown = this.getDropdown(el)) == null ? void 0 : _this$getDropdown.targetEl;
5903
5942
  if (!includes(dropdowns, el) && target && within(target, this.$el)) {
5904
5943
  dropdowns.push(el);
5905
5944
  }
@@ -5961,8 +6000,8 @@
5961
6000
  if (
5962
6001
  active &&
5963
6002
  includes(active.mode, 'hover') &&
5964
- active.target &&
5965
- !within(active.target, current) &&
6003
+ active.targetEl &&
6004
+ !within(active.targetEl, current) &&
5966
6005
  !active.isDelaying)
5967
6006
  {
5968
6007
  active.hide(false);
@@ -5984,7 +6023,7 @@
5984
6023
  if (keyCode === keyMap.DOWN && hasAttr(current, 'aria-expanded')) {
5985
6024
  e.preventDefault();
5986
6025
 
5987
- if (!active || active.target !== current) {
6026
+ if (!active || active.targetEl !== current) {
5988
6027
  current.click();
5989
6028
  once(this.dropContainer, 'show', (_ref8) => {let { target } = _ref8;return (
5990
6029
  focusFirstFocusableElement(target));});
@@ -6034,8 +6073,8 @@
6034
6073
  }
6035
6074
  }
6036
6075
 
6037
- if (keyCode === keyMap.ESC) {var _active$target;
6038
- active == null ? void 0 : (_active$target = active.target) == null ? void 0 : _active$target.focus();
6076
+ if (keyCode === keyMap.ESC) {var _active$targetEl;
6077
+ active == null ? void 0 : (_active$targetEl = active.targetEl) == null ? void 0 : _active$targetEl.focus();
6039
6078
  }
6040
6079
 
6041
6080
  handleNavItemNavigation(e, this.toggles, active);
@@ -6082,8 +6121,8 @@
6082
6121
  return;
6083
6122
  }
6084
6123
 
6085
- if (!parent(this.dropbar)) {
6086
- after(this.dropbarAnchor || this.$el, this.dropbar);
6124
+ if (this.dropbar.previousElementSibling !== this.dropbarAnchor) {
6125
+ after(this.dropbarAnchor, this.dropbar);
6087
6126
  }
6088
6127
 
6089
6128
  addClass(target, this.clsDrop + "-dropbar");
@@ -6106,39 +6145,19 @@
6106
6145
  return;
6107
6146
  }
6108
6147
 
6109
- this._observer = observeResize(target, () =>
6110
- this.transitionTo(
6111
- offset(target).bottom -
6112
- offset(this.dropbar).top +
6113
- toFloat(css(target, 'marginBottom')),
6114
- target));
6115
-
6116
-
6117
- } },
6118
-
6148
+ this._observer = observeResize(target, () => {
6149
+ const targetOffsets = parents(target, "." + this.clsDrop).
6150
+ concat(target).
6151
+ map((el) => offset(el));
6152
+ const minTop = Math.min(...targetOffsets.map((_ref11) => {let { top } = _ref11;return top;}));
6153
+ const maxBottom = Math.max(...targetOffsets.map((_ref12) => {let { bottom } = _ref12;return bottom;}));
6154
+ const dropbarOffset = offset(this.dropbar);
6155
+ css(this.dropbar, 'top', this.dropbar.offsetTop - (dropbarOffset.top - minTop));
6156
+ this.transitionTo(
6157
+ maxBottom - minTop + toFloat(css(target, 'marginBottom')),
6158
+ target);
6119
6159
 
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;
6160
+ });
6142
6161
  } },
6143
6162
 
6144
6163
 
@@ -6159,7 +6178,7 @@
6159
6178
  if (
6160
6179
  matches(this.dropbar, ':hover') &&
6161
6180
  (active == null ? void 0 : active.$el) === e.target &&
6162
- !this.toggles.some((el) => active.target !== el && matches(el, ':focus')))
6181
+ !this.toggles.some((el) => active.targetEl !== el && matches(el, ':focus')))
6163
6182
  {
6164
6183
  e.preventDefault();
6165
6184
  }
@@ -6177,7 +6196,7 @@
6177
6196
  return this.dropbar;
6178
6197
  },
6179
6198
 
6180
- handler(_ref11) {let { target } = _ref11;
6199
+ handler(_ref13) {let { target } = _ref13;
6181
6200
  if (!this.isDropbarDrop(target)) {
6182
6201
  return;
6183
6202
  }
@@ -6195,7 +6214,7 @@
6195
6214
 
6196
6215
  methods: {
6197
6216
  getActive() {
6198
- return active && within(active.target, this.$el) && active;
6217
+ return includes(this.dropdowns, active == null ? void 0 : active.$el) && active;
6199
6218
  },
6200
6219
 
6201
6220
  transitionTo(newHeight, el) {
@@ -6228,15 +6247,14 @@
6228
6247
  },
6229
6248
 
6230
6249
  isDropbarDrop(el) {
6231
- const drop = this.getDropdown(el);
6232
- return drop && hasClass(el, this.clsDrop) && drop.align !== 'stretch';
6250
+ return this.getDropdown(el) && hasClass(el, this.clsDrop);
6233
6251
  } } };
6234
6252
 
6235
6253
 
6236
6254
 
6237
6255
  function handleNavItemNavigation(e, toggles, active) {
6238
6256
  const { current, keyCode } = e;
6239
- const target = (active == null ? void 0 : active.target) || current;
6257
+ const target = (active == null ? void 0 : active.targetEl) || current;
6240
6258
  const i = toggles.indexOf(target);
6241
6259
 
6242
6260
  // Left
@@ -6436,9 +6454,12 @@
6436
6454
  addClass(parent(this.panel), this.clsMode);
6437
6455
  }
6438
6456
 
6439
- addClass(document.body, this.clsContainer, this.clsFlip);
6440
- css(document.body, 'touch-action', 'pan-y pinch-zoom');
6457
+ const { body, scrollingElement } = document;
6458
+
6459
+ addClass(body, this.clsContainer, this.clsFlip);
6460
+ css(body, 'touch-action', 'pan-y pinch-zoom');
6441
6461
  css(this.$el, 'display', 'block');
6462
+ css(this.panel, 'maxWidth', scrollingElement.clientWidth);
6442
6463
  addClass(this.$el, this.clsOverlay);
6443
6464
  addClass(
6444
6465
  this.panel,
@@ -6446,8 +6467,8 @@
6446
6467
  this.mode === 'reveal' ? '' : this.clsMode);
6447
6468
 
6448
6469
 
6449
- height(document.body); // force reflow
6450
- addClass(document.body, this.clsContainerAnimation);
6470
+ height(body); // force reflow
6471
+ addClass(body, this.clsContainerAnimation);
6451
6472
 
6452
6473
  this.clsContainerAnimation && suppressUserScale();
6453
6474
  } },
@@ -6479,6 +6500,7 @@
6479
6500
  removeClass(this.panel, this.clsSidebarAnimation, this.clsMode);
6480
6501
  removeClass(this.$el, this.clsOverlay);
6481
6502
  css(this.$el, 'display', '');
6503
+ css(this.panel, 'maxWidth', '');
6482
6504
  removeClass(document.body, this.clsContainer, this.clsFlip);
6483
6505
  } },
6484
6506
 
@@ -6604,6 +6626,14 @@
6604
6626
  offset: 0 },
6605
6627
 
6606
6628
 
6629
+ connected() {
6630
+ registerClick(this);
6631
+ },
6632
+
6633
+ disconnected() {
6634
+ unregisterClick(this);
6635
+ },
6636
+
6607
6637
  methods: {
6608
6638
  async scrollTo(el) {
6609
6639
  el = el && $(el) || document.body;
@@ -6612,20 +6642,39 @@
6612
6642
  await scrollIntoView(el, { offset: this.offset });
6613
6643
  trigger(this.$el, 'scrolled', [this, el]);
6614
6644
  }
6615
- } },
6645
+ } } };
6616
6646
 
6617
6647
 
6618
- events: {
6619
- click(e) {
6620
- if (e.defaultPrevented) {
6621
- return;
6622
- }
6623
6648
 
6624
- e.preventDefault();
6625
- this.scrollTo(getTargetElement(this.$el));
6626
- } } };
6649
+ const components$1 = new Set();
6650
+ function registerClick(cmp) {
6651
+ if (!components$1.size) {
6652
+ on(document, 'click', clickHandler);
6653
+ }
6627
6654
 
6655
+ components$1.add(cmp);
6656
+ }
6628
6657
 
6658
+ function unregisterClick(cmp) {
6659
+ components$1.delete(cmp);
6660
+
6661
+ if (!components$1.length) {
6662
+ off(document, 'click', clickHandler);
6663
+ }
6664
+ }
6665
+
6666
+ function clickHandler(e) {
6667
+ if (e.defaultPrevented) {
6668
+ return;
6669
+ }
6670
+
6671
+ for (const component of components$1) {
6672
+ if (within(e.target, component.$el)) {
6673
+ e.preventDefault();
6674
+ component.scrollTo(getTargetElement(component.$el));
6675
+ }
6676
+ }
6677
+ }
6629
6678
 
6630
6679
  function getTargetElement(el) {
6631
6680
  return document.getElementById(decodeURIComponent(el.hash).substring(1));
@@ -7288,9 +7337,10 @@
7288
7337
  }
7289
7338
 
7290
7339
  const index = this.index();
7291
- this.connects.forEach((el) =>
7292
- children(el).forEach((child, i) => toggleClass(child, this.cls, i === index)));
7293
-
7340
+ this.connects.forEach((el) => {
7341
+ children(el).forEach((child, i) => toggleClass(child, this.cls, i === index));
7342
+ this.lazyload(this.$el, children(el));
7343
+ });
7294
7344
  },
7295
7345
 
7296
7346
  immediate: true },
@@ -7323,8 +7373,6 @@
7323
7373
 
7324
7374
 
7325
7375
  connected() {
7326
- this.lazyload(this.$el, this.connects);
7327
-
7328
7376
  // check for connects
7329
7377
  ready(() => this.$emit());
7330
7378
  },
@@ -7458,6 +7506,7 @@
7458
7506
 
7459
7507
  watch() {
7460
7508
  this.updateAria();
7509
+ this.lazyload(this.$el, this.target);
7461
7510
  },
7462
7511
 
7463
7512
  immediate: true } },
@@ -7469,8 +7518,6 @@
7469
7518
  attr(this.$el, 'tabindex', '0');
7470
7519
  }
7471
7520
 
7472
- this.lazyload(this.$el, this.target);
7473
-
7474
7521
  // check for target
7475
7522
  ready(() => this.$emit());
7476
7523
  },
@@ -7588,7 +7635,7 @@
7588
7635
 
7589
7636
 
7590
7637
  {
7591
- name: 'toggled',
7638
+ name: 'hide show',
7592
7639
 
7593
7640
  self: true,
7594
7641
 
@@ -7596,10 +7643,8 @@
7596
7643
  return this.target;
7597
7644
  },
7598
7645
 
7599
- handler(e, toggled) {
7600
- if (e.target === this.target[0]) {
7601
- this.updateAria(toggled);
7602
- }
7646
+ handler(_ref2) {let { type } = _ref2;
7647
+ this.updateAria(type === 'show');
7603
7648
  } },
7604
7649
 
7605
7650