uikit 3.14.4-dev.ca199f7a7 → 3.14.4-dev.e3664d0d2

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 (52) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/css/uikit-core-rtl.css +12 -4
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +12 -4
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +12 -4
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +12 -4
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +22 -7
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +22 -7
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +22 -7
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +22 -7
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +3 -3
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +8 -1
  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 +32 -35
  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 +79 -67
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/components/sortable.js +2 -3
  44. package/src/js/core/height-viewport.js +9 -5
  45. package/src/js/core/sticky.js +8 -9
  46. package/src/js/mixin/position.js +8 -0
  47. package/src/js/mixin/slider-drag.js +20 -8
  48. package/src/js/util/dimensions.js +6 -6
  49. package/src/js/util/position.js +1 -0
  50. package/src/js/util/viewport.js +2 -27
  51. package/src/less/components/utility.less +12 -3
  52. package/src/scss/components/utility.scss +12 -3
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.4-dev.ca199f7a7 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.4-dev.e3664d0d2 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1060,13 +1060,13 @@
1060
1060
  }
1061
1061
 
1062
1062
  function offsetPosition(element) {
1063
- const offset = [0, 0];
1064
-
1065
1063
  element = toNode(element);
1066
1064
 
1067
- do {
1068
- offset[0] += element.offsetTop;
1069
- offset[1] += element.offsetLeft;
1065
+ const offset = [element.offsetTop, element.offsetLeft];
1066
+
1067
+ while (element = element.offsetParent) {
1068
+ offset[0] += element.offsetTop + toFloat(css(element, "borderTopWidth"));
1069
+ offset[1] += element.offsetLeft + toFloat(css(element, "borderLeftWidth"));
1070
1070
 
1071
1071
  if (css(element, 'position') === 'fixed') {
1072
1072
  const win = toWindow(element);
@@ -1074,7 +1074,7 @@
1074
1074
  offset[1] += win.scrollX;
1075
1075
  return offset;
1076
1076
  }
1077
- } while (element = element.offsetParent);
1077
+ }
1078
1078
 
1079
1079
  return offset;
1080
1080
  }
@@ -1293,9 +1293,9 @@
1293
1293
  const hasTouch = inBrowser && 'ontouchstart' in window;
1294
1294
  const hasPointerEvents = inBrowser && window.PointerEvent;
1295
1295
 
1296
- const pointerDown = hasPointerEvents ? 'pointerdown' : hasTouch ? 'touchstart' : 'mousedown';
1297
- const pointerMove = hasPointerEvents ? 'pointermove' : hasTouch ? 'touchmove' : 'mousemove';
1298
- const pointerUp = hasPointerEvents ? 'pointerup' : hasTouch ? 'touchend' : 'mouseup';
1296
+ const pointerDown$1 = hasPointerEvents ? 'pointerdown' : hasTouch ? 'touchstart' : 'mousedown';
1297
+ const pointerMove$1 = hasPointerEvents ? 'pointermove' : hasTouch ? 'touchmove' : 'mousemove';
1298
+ const pointerUp$1 = hasPointerEvents ? 'pointerup' : hasTouch ? 'touchend' : 'mouseup';
1299
1299
  const pointerEnter = hasPointerEvents ? 'pointerenter' : hasTouch ? '' : 'mouseenter';
1300
1300
  const pointerLeave = hasPointerEvents ? 'pointerleave' : hasTouch ? '' : 'mouseleave';
1301
1301
  const pointerCancel = hasPointerEvents ? 'pointercancel' : 'touchcancel';
@@ -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
@@ -2205,9 +2192,9 @@
2205
2192
  inBrowser: inBrowser,
2206
2193
  isRtl: isRtl,
2207
2194
  hasTouch: hasTouch,
2208
- pointerDown: pointerDown,
2209
- pointerMove: pointerMove,
2210
- pointerUp: pointerUp,
2195
+ pointerDown: pointerDown$1,
2196
+ pointerMove: pointerMove$1,
2197
+ pointerUp: pointerUp$1,
2211
2198
  pointerEnter: pointerEnter,
2212
2199
  pointerLeave: pointerLeave,
2213
2200
  pointerCancel: pointerCancel,
@@ -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.ca199f7a7';
2950
+ UIkit.version = '3.14.4-dev.e3664d0d2';
2965
2951
 
2966
2952
  globalAPI(UIkit);
2967
2953
  hooksAPI(UIkit);
@@ -3698,6 +3684,9 @@
3698
3684
  offset = offset.reverse();
3699
3685
  }
3700
3686
 
3687
+ const [scrollElement] = scrollParents(element, /auto|scroll/);
3688
+ const { scrollTop, scrollLeft } = scrollElement;
3689
+
3701
3690
  // Ensure none positioned element does not generate scrollbars
3702
3691
  const elDim = dimensions$1(element);
3703
3692
  css(element, { top: -elDim.height, left: -elDim.width });
@@ -3709,6 +3698,10 @@
3709
3698
  flip: this.flip,
3710
3699
  viewportOffset: this.getViewportOffset(element) });
3711
3700
 
3701
+
3702
+ // Restore scroll position
3703
+ scrollElement.scrollTop = scrollTop;
3704
+ scrollElement.scrollLeft = scrollLeft;
3712
3705
  },
3713
3706
 
3714
3707
  getPositionOffset(element) {
@@ -3858,7 +3851,7 @@
3858
3851
  once(
3859
3852
  this.$el,
3860
3853
  'hide',
3861
- on(document, pointerDown, (_ref3) => {let { target } = _ref3;
3854
+ on(document, pointerDown$1, (_ref3) => {let { target } = _ref3;
3862
3855
  if (
3863
3856
  last(active$1) !== this ||
3864
3857
  this.overlay && !within(target, this.$el) ||
@@ -3869,11 +3862,11 @@
3869
3862
 
3870
3863
  once(
3871
3864
  document,
3872
- pointerUp + " " + pointerCancel + " scroll",
3865
+ pointerUp$1 + " " + pointerCancel + " scroll",
3873
3866
  (_ref4) => {let { defaultPrevented, type, target: newTarget } = _ref4;
3874
3867
  if (
3875
3868
  !defaultPrevented &&
3876
- type === pointerUp &&
3869
+ type === pointerUp$1 &&
3877
3870
  target === newTarget)
3878
3871
  {
3879
3872
  this.hide();
@@ -4265,16 +4258,16 @@
4265
4258
  for (const handler of [
4266
4259
  on(
4267
4260
  document,
4268
- pointerDown,
4261
+ pointerDown$1,
4269
4262
  (_ref2) => {let { target } = _ref2;return (
4270
4263
  !within(target, this.$el) &&
4271
4264
  once(
4272
4265
  document,
4273
- pointerUp + " " + pointerCancel + " scroll",
4266
+ pointerUp$1 + " " + pointerCancel + " scroll",
4274
4267
  (_ref3) => {let { defaultPrevented, type, target: newTarget } = _ref3;
4275
4268
  if (
4276
4269
  !defaultPrevented &&
4277
- type === pointerUp &&
4270
+ type === pointerUp$1 &&
4278
4271
  target === newTarget &&
4279
4272
  !(this.target && within(target, this.target)))
4280
4273
  {
@@ -4983,14 +4976,18 @@
4983
4976
  0);
4984
4977
 
4985
4978
  } else {
4986
- // on mobile devices (iOS and Android) window.innerHeight !== 100vh
4987
- minHeight = "calc(" + (
4988
- document.scrollingElement === scrollElement ? '100vh' : viewportHeight + "px");
4979
+ const isScrollingElement = document.scrollingElement === scrollElement;
4989
4980
 
4981
+ // on mobile devices (iOS and Android) window.innerHeight !== 100vh
4982
+ minHeight = "calc(" + (isScrollingElement ? '100vh' : viewportHeight + "px");
4990
4983
 
4991
4984
  if (this.offsetTop) {
4992
- const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];
4993
- minHeight += top > 0 && top < viewportHeight / 2 ? " - " + top + "px" : '';
4985
+ if (isScrollingElement) {
4986
+ const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];
4987
+ minHeight += top > 0 && top < viewportHeight / 2 ? " - " + top + "px" : '';
4988
+ } else {
4989
+ minHeight += " - " + css(scrollElement, 'paddingTop');
4990
+ }
4994
4991
  }
4995
4992
 
4996
4993
  if (this.offsetBottom === true) {
@@ -6259,7 +6256,7 @@
6259
6256
 
6260
6257
  registerEvent(this, {
6261
6258
  el: this.swipeTarget,
6262
- name: pointerDown,
6259
+ name: pointerDown$1,
6263
6260
  passive: true,
6264
6261
  handler(e) {
6265
6262
  if (!isTouch(e)) {
@@ -6269,7 +6266,7 @@
6269
6266
  // Handle Swipe Gesture
6270
6267
  const pos = getEventPos(e);
6271
6268
  const target = 'tagName' in e.target ? e.target : parent(e.target);
6272
- once(document, pointerUp + " " + pointerCancel + " scroll", (e) => {
6269
+ once(document, pointerUp$1 + " " + pointerCancel + " scroll", (e) => {
6273
6270
  const { x, y } = getEventPos(e);
6274
6271
 
6275
6272
  // swipe
@@ -6921,7 +6918,9 @@
6921
6918
  },
6922
6919
 
6923
6920
  handler() {
6924
- if (!location.hash || scrollTop(window) === 0) {
6921
+ const { scrollingElement } = document;
6922
+
6923
+ if (!location.hash || scrollingElement.scrollTop === 0) {
6925
6924
  return;
6926
6925
  }
6927
6926
 
@@ -6930,13 +6929,11 @@
6930
6929
  const elOffset = offset(this.$el);
6931
6930
 
6932
6931
  if (this.isFixed && intersectRect(targetOffset, elOffset)) {
6933
- scrollTop(
6934
- window,
6932
+ scrollingElement.scrollTop =
6935
6933
  targetOffset.top -
6936
6934
  elOffset.height -
6937
6935
  toPx(this.targetOffset, 'height', this.placeholder) -
6938
- toPx(this.offset, 'height', this.placeholder));
6939
-
6936
+ toPx(this.offset, 'height', this.placeholder);
6940
6937
  }
6941
6938
  });
6942
6939
  } }],
@@ -7034,7 +7031,7 @@
7034
7031
 
7035
7032
 
7036
7033
  {let { scroll: prevScroll = 0, dir: prevDir = 'down', overflow, overflowScroll = 0, start, end } = _ref4;
7037
- const scroll = scrollTop(window);
7034
+ const scroll = document.scrollingElement.scrollTop;
7038
7035
  const dir = prevScroll <= scroll ? 'down' : 'up';
7039
7036
 
7040
7037
  return {
@@ -7443,7 +7440,7 @@
7443
7440
 
7444
7441
  events: [
7445
7442
  {
7446
- name: pointerDown,
7443
+ name: pointerDown$1,
7447
7444
 
7448
7445
  filter() {
7449
7446
  return includes(this.mode, 'hover');
@@ -7461,7 +7458,7 @@
7461
7458
  trigger(this.$el, 'focus');
7462
7459
  once(
7463
7460
  document,
7464
- pointerDown,
7461
+ pointerDown$1,
7465
7462
  () => trigger(this.$el, 'blur'),
7466
7463
  true,
7467
7464
  (e) => !within(e.target, this.$el));
@@ -8460,6 +8457,11 @@
8460
8457
  this.interval && clearInterval(this.interval);
8461
8458
  } } };
8462
8459
 
8460
+ const pointerOptions = { passive: false, capture: true };
8461
+ const pointerDown = 'touchstart mousedown';
8462
+ const pointerMove = 'touchmove mousemove';
8463
+ const pointerUp = 'touchend touchcancel mouseup click input';
8464
+
8463
8465
  var SliderDrag = {
8464
8466
  props: {
8465
8467
  draggable: Boolean },
@@ -8512,7 +8514,17 @@
8512
8514
 
8513
8515
  handler(e) {
8514
8516
  e.preventDefault();
8515
- } }],
8517
+ } },
8518
+
8519
+
8520
+ {
8521
+ // iOS workaround for slider stopping if swiping fast
8522
+ name: pointerMove + " " + pointerUp,
8523
+ el() {
8524
+ return this.list;
8525
+ },
8526
+ handler: noop,
8527
+ ...pointerOptions }],
8516
8528
 
8517
8529
 
8518
8530
 
@@ -8534,10 +8546,10 @@
8534
8546
  this.prevIndex = this.index;
8535
8547
  }
8536
8548
 
8537
- on(document, pointerMove, this.move, { passive: false });
8549
+ on(document, pointerMove, this.move, pointerOptions);
8538
8550
 
8539
8551
  // 'input' event is triggered by video controls
8540
- on(document, pointerUp + " " + pointerCancel + " input", this.end, true);
8552
+ on(document, pointerUp, this.end, pointerOptions);
8541
8553
 
8542
8554
  css(this.list, 'userSelect', 'none');
8543
8555
  },
@@ -8617,8 +8629,8 @@
8617
8629
  },
8618
8630
 
8619
8631
  end() {
8620
- off(document, pointerMove, this.move, { passive: false });
8621
- off(document, pointerUp + " " + pointerCancel + " input", this.end, true);
8632
+ off(document, pointerMove, this.move, pointerOptions);
8633
+ off(document, pointerUp, this.end, pointerOptions);
8622
8634
 
8623
8635
  if (this.dragging) {
8624
8636
  this.dragging = null;
@@ -9026,7 +9038,7 @@
9026
9038
 
9027
9039
  events: [
9028
9040
  {
9029
- name: pointerMove + " " + pointerDown + " keydown",
9041
+ name: pointerMove$1 + " " + pointerDown$1 + " keydown",
9030
9042
 
9031
9043
  handler: 'showControls' },
9032
9044
 
@@ -10681,7 +10693,7 @@
10681
10693
  },
10682
10694
 
10683
10695
  events: {
10684
- name: pointerDown,
10696
+ name: pointerDown$1,
10685
10697
  passive: false,
10686
10698
  handler: 'init' },
10687
10699
 
@@ -10811,8 +10823,8 @@
10811
10823
  this.placeholder = placeholder;
10812
10824
  this.origin = { target, index: index(placeholder), ...this.pos };
10813
10825
 
10814
- on(document, pointerMove, this.move);
10815
- on(document, pointerUp, this.end);
10826
+ on(document, pointerMove$1, this.move);
10827
+ on(document, pointerUp$1, this.end);
10816
10828
 
10817
10829
  if (!this.threshold) {
10818
10830
  this.start(e);
@@ -10848,8 +10860,8 @@
10848
10860
  },
10849
10861
 
10850
10862
  end() {
10851
- off(document, pointerMove, this.move);
10852
- off(document, pointerUp, this.end);
10863
+ off(document, pointerMove$1, this.move);
10864
+ off(document, pointerUp$1, this.end);
10853
10865
 
10854
10866
  if (!this.drag) {
10855
10867
  return;
@@ -10918,7 +10930,7 @@
10918
10930
  let last = Date.now();
10919
10931
  trackTimer = setInterval(() => {
10920
10932
  let { x, y } = pos;
10921
- y += scrollTop(window);
10933
+ y += document.scrollingElement.scrollTop;
10922
10934
 
10923
10935
  const dist = (Date.now() - last) * 0.3;
10924
10936
  last = Date.now();
@@ -10939,7 +10951,7 @@
10939
10951
  }
10940
10952
 
10941
10953
  if (scroll > 0 && scroll < scrollHeight - height) {
10942
- scrollTop(scrollEl, scroll);
10954
+ scrollEl.scrollTop = scroll;
10943
10955
  return true;
10944
10956
  }
10945
10957
  });
@@ -11084,11 +11096,11 @@
11084
11096
 
11085
11097
  this._unbind = once(
11086
11098
  document, "show keydown " +
11087
- pointerDown,
11099
+ pointerDown$1,
11088
11100
  this.hide,
11089
11101
  false,
11090
11102
  (e) =>
11091
- e.type === pointerDown && !within(e.target, this.$el) ||
11103
+ e.type === pointerDown$1 && !within(e.target, this.$el) ||
11092
11104
  e.type === 'keydown' && e.keyCode === 27 ||
11093
11105
  e.type === 'show' && e.detail[0] !== this && e.detail[0].$name === this.$name);
11094
11106
 
@@ -11159,7 +11171,7 @@
11159
11171
 
11160
11172
  // Clicking a button does not give it focus on all browsers and platforms
11161
11173
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus
11162
- [pointerDown](e) {
11174
+ [pointerDown$1](e) {
11163
11175
  if (isTouch(e)) {
11164
11176
  this.show();
11165
11177
  }