uikit 3.20.9-dev.a82d76e5b → 3.20.9-dev.e2e1b058d

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 (74) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/css/uikit-core-rtl.css +1 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +1 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +1 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +1 -1
  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 +2 -4
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +13 -28
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +18 -33
  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 +4 -10
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +18 -26
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +4 -10
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +17 -25
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -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 +126 -228
  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 +161 -278
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/events.js +1 -1
  44. package/src/js/components/filter.js +1 -3
  45. package/src/js/components/internal/slider-transitioner.js +4 -0
  46. package/src/js/components/lightbox-panel.js +1 -3
  47. package/src/js/components/lightbox.js +5 -5
  48. package/src/js/components/slider-parallax.js +3 -9
  49. package/src/js/components/slider.js +1 -1
  50. package/src/js/core/accordion.js +2 -6
  51. package/src/js/core/alert.js +1 -3
  52. package/src/js/core/cover.js +6 -12
  53. package/src/js/core/drop.js +5 -13
  54. package/src/js/core/dropnav.js +14 -42
  55. package/src/js/core/form-custom.js +1 -3
  56. package/src/js/core/grid.js +4 -7
  57. package/src/js/core/height-match.js +1 -3
  58. package/src/js/core/inverse.js +5 -4
  59. package/src/js/core/navbar.js +2 -6
  60. package/src/js/core/offcanvas.js +1 -3
  61. package/src/js/core/scrollspy-nav.js +2 -2
  62. package/src/js/core/scrollspy.js +1 -1
  63. package/src/js/core/sticky.js +18 -28
  64. package/src/js/core/switcher.js +7 -18
  65. package/src/js/core/toggle.js +6 -18
  66. package/src/js/core/video.js +6 -6
  67. package/src/js/mixin/internal/slideshow-transitioner.js +4 -0
  68. package/src/js/mixin/modal.js +1 -3
  69. package/src/js/mixin/slider-autoplay.js +1 -3
  70. package/src/js/mixin/slider-drag.js +2 -6
  71. package/src/js/mixin/slider-nav.js +4 -12
  72. package/src/js/mixin/slider-parallax.js +7 -3
  73. package/src/js/util/fastdom.js +24 -25
  74. package/src/js/util/viewport.js +8 -8
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.20.9-dev.a82d76e5b | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
1
+ /*! UIkit 3.20.9-dev.e2e1b058d | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -310,7 +310,7 @@
310
310
  const isVisibleFn = inBrowser && Element.prototype.checkVisibility || function() {
311
311
  return this.offsetWidth || this.offsetHeight || this.getClientRects().length;
312
312
  };
313
- function isVisible$1(element) {
313
+ function isVisible(element) {
314
314
  return toNodes(element).some((element2) => isVisibleFn.call(element2));
315
315
  }
316
316
  const selInput = "input,select,textarea,button";
@@ -979,36 +979,35 @@
979
979
  return vh;
980
980
  }
981
981
 
982
- const fastdom = {
983
- reads: [],
984
- writes: [],
985
- read(task) {
986
- this.reads.push(task);
987
- scheduleFlush();
988
- return task;
989
- },
990
- write(task) {
991
- this.writes.push(task);
992
- scheduleFlush();
993
- return task;
994
- },
995
- clear(task) {
996
- remove(this.reads, task);
997
- remove(this.writes, task);
998
- },
999
- flush
1000
- };
982
+ const fastdom = { read, write, clear, flush };
983
+ const reads = [];
984
+ const writes = [];
985
+ function read(task) {
986
+ reads.push(task);
987
+ scheduleFlush();
988
+ return task;
989
+ }
990
+ function write(task) {
991
+ writes.push(task);
992
+ scheduleFlush();
993
+ return task;
994
+ }
995
+ function clear(task) {
996
+ remove(reads, task);
997
+ remove(writes, task);
998
+ }
999
+ let scheduled = false;
1001
1000
  function flush() {
1002
- runTasks(fastdom.reads);
1003
- runTasks(fastdom.writes.splice(0));
1004
- fastdom.scheduled = false;
1005
- if (fastdom.reads.length || fastdom.writes.length) {
1001
+ runTasks(reads);
1002
+ runTasks(writes.splice(0));
1003
+ scheduled = false;
1004
+ if (reads.length || writes.length) {
1006
1005
  scheduleFlush();
1007
1006
  }
1008
1007
  }
1009
1008
  function scheduleFlush() {
1010
- if (!fastdom.scheduled) {
1011
- fastdom.scheduled = true;
1009
+ if (!scheduled) {
1010
+ scheduled = true;
1012
1011
  queueMicrotask(flush);
1013
1012
  }
1014
1013
  }
@@ -1199,7 +1198,7 @@
1199
1198
  }
1200
1199
 
1201
1200
  function isInView(element, offsetTop = 0, offsetLeft = 0) {
1202
- if (!isVisible$1(element)) {
1201
+ if (!isVisible(element)) {
1203
1202
  return false;
1204
1203
  }
1205
1204
  return intersectRect(
@@ -1215,7 +1214,7 @@
1215
1214
  );
1216
1215
  }
1217
1216
  function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
1218
- const parents2 = isVisible$1(element) ? scrollParents(element, false, ["hidden"]) : [];
1217
+ const parents2 = isVisible(element) ? scrollParents(element, false, ["hidden"]) : [];
1219
1218
  return parents2.reduce(
1220
1219
  (fn, scrollElement, i) => {
1221
1220
  const { scrollTop, scrollHeight, offsetHeight } = scrollElement;
@@ -1274,7 +1273,7 @@
1274
1273
  }
1275
1274
  }
1276
1275
  function scrolledOver(element, startOffset = 0, endOffset = 0) {
1277
- if (!isVisible$1(element)) {
1276
+ if (!isVisible(element)) {
1278
1277
  return 0;
1279
1278
  }
1280
1279
  const scrollElement = scrollParent(element, true);
@@ -1324,7 +1323,7 @@
1324
1323
  ["height", "y", "top", "bottom"]
1325
1324
  ]) {
1326
1325
  if (isWindow(viewportElement)) {
1327
- viewportElement = scrollElement.ownerDocument;
1326
+ viewportElement = viewportElement.document;
1328
1327
  } else {
1329
1328
  rect[start] += toFloat(css(viewportElement, `border-${start}-width`));
1330
1329
  }
@@ -1336,17 +1335,16 @@
1336
1335
  }
1337
1336
  function getCoveringElement(target) {
1338
1337
  const { left, width, top } = dimensions(target);
1339
- for (const topPosition of [0, top]) {
1340
- const coverEl = target.ownerDocument.elementsFromPoint(left + width / 2, topPosition).find(
1341
- (el) => !el.contains(target) && // If e.g. Offcanvas is not yet closed
1338
+ for (const position of top ? [0, top] : [0]) {
1339
+ for (const el of toWindow(target).document.elementsFromPoint(left + width / 2, position)) {
1340
+ if (!el.contains(target) && // If e.g. Offcanvas is not yet closed
1342
1341
  !hasClass(el, "uk-togglable-leave") && (hasPosition(el, "fixed") && zIndex(
1343
1342
  parents(target).reverse().find(
1344
1343
  (parent2) => !parent2.contains(el) && !hasPosition(parent2, "static")
1345
1344
  )
1346
- ) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))
1347
- );
1348
- if (coverEl) {
1349
- return coverEl;
1345
+ ) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))) {
1346
+ return el;
1347
+ }
1350
1348
  }
1351
1349
  }
1352
1350
  }
@@ -1611,7 +1609,7 @@
1611
1609
  isTouch: isTouch,
1612
1610
  isUndefined: isUndefined,
1613
1611
  isVideo: isVideo,
1614
- isVisible: isVisible$1,
1612
+ isVisible: isVisible,
1615
1613
  isVoidElement: isVoidElement,
1616
1614
  isWindow: isWindow,
1617
1615
  last: last,
@@ -1839,7 +1837,7 @@
1839
1837
  function registerEvent(instance, event, key) {
1840
1838
  let { name, el, handler, capture, passive, delegate, filter, self } = isPlainObject(event) ? event : { name: key, handler: event };
1841
1839
  el = isFunction(el) ? el.call(instance, instance) : el || instance.$el;
1842
- if (!el || isArray(el) && !el.length || filter && !filter.call(instance)) {
1840
+ if (!el || isArray(el) && !el.length || filter && !filter.call(instance, instance)) {
1843
1841
  return;
1844
1842
  }
1845
1843
  instance._events.push(
@@ -2172,7 +2170,7 @@
2172
2170
  };
2173
2171
  App.util = util;
2174
2172
  App.options = {};
2175
- App.version = "3.20.9-dev.a82d76e5b";
2173
+ App.version = "3.20.9-dev.e2e1b058d";
2176
2174
 
2177
2175
  const PREFIX = "uk-";
2178
2176
  const DATA = "__uikit__";
@@ -2550,7 +2548,7 @@
2550
2548
  },
2551
2549
  isToggled(el = this.$el) {
2552
2550
  el = toNode(el);
2553
- return hasClass(el, this.clsEnter) ? true : hasClass(el, this.clsLeave) ? false : this.cls ? hasClass(el, this.cls.split(" ")[0]) : isVisible$1(el);
2551
+ return hasClass(el, this.clsEnter) ? true : hasClass(el, this.clsLeave) ? false : this.cls ? hasClass(el, this.cls.split(" ")[0]) : isVisible(el);
2554
2552
  },
2555
2553
  _toggle(el, toggled) {
2556
2554
  if (!el) {
@@ -2565,7 +2563,7 @@
2565
2563
  changed = toggled === el.hidden;
2566
2564
  changed && (el.hidden = !toggled);
2567
2565
  }
2568
- $$("[autofocus]", el).some((el2) => isVisible$1(el2) ? el2.focus() || true : el2.blur());
2566
+ $$("[autofocus]", el).some((el2) => isVisible(el2) ? el2.focus() || true : el2.blur());
2569
2567
  if (changed) {
2570
2568
  trigger(el, "toggled", [toggled, this]);
2571
2569
  }
@@ -2751,9 +2749,7 @@
2751
2749
  events: [
2752
2750
  {
2753
2751
  name: "click keydown",
2754
- delegate() {
2755
- return `${this.targets} ${this.$props.toggle}`;
2756
- },
2752
+ delegate: ({ targets, $props }) => `${targets} ${$props.toggle}`,
2757
2753
  async handler(e) {
2758
2754
  var _a;
2759
2755
  if (e.type === "keydown" && e.keyCode !== keyMap.SPACE) {
@@ -2769,9 +2765,7 @@
2769
2765
  {
2770
2766
  name: "shown hidden",
2771
2767
  self: true,
2772
- delegate() {
2773
- return this.targets;
2774
- },
2768
+ delegate: ({ targets }) => targets,
2775
2769
  handler() {
2776
2770
  this.$emit();
2777
2771
  }
@@ -2880,9 +2874,7 @@
2880
2874
  },
2881
2875
  events: {
2882
2876
  name: "click",
2883
- delegate() {
2884
- return this.selClose;
2885
- },
2877
+ delegate: ({ selClose }) => selClose,
2886
2878
  handler(e) {
2887
2879
  e.preventDefault();
2888
2880
  this.close();
@@ -2946,9 +2938,7 @@
2946
2938
  events: [
2947
2939
  {
2948
2940
  name: `${pointerEnter} focusin`,
2949
- filter() {
2950
- return includes(this.autoplay, "hover");
2951
- },
2941
+ filter: ({ autoplay }) => includes(autoplay, "hover"),
2952
2942
  handler(e) {
2953
2943
  if (!isTouch(e) || !isPlaying(this.$el)) {
2954
2944
  play(this.$el);
@@ -2959,9 +2949,7 @@
2959
2949
  },
2960
2950
  {
2961
2951
  name: `${pointerLeave} focusout`,
2962
- filter() {
2963
- return includes(this.autoplay, "hover");
2964
- },
2952
+ filter: ({ autoplay }) => includes(autoplay, "hover"),
2965
2953
  handler(e) {
2966
2954
  if (!isTouch(e)) {
2967
2955
  pause(this.$el);
@@ -2999,19 +2987,17 @@
2999
2987
  data: {
3000
2988
  automute: true
3001
2989
  },
3002
- events: {
3003
- "load loadedmetadata"() {
3004
- this.$emit("resize");
3005
- }
2990
+ created() {
2991
+ this.useObjectFit = isTag(this.$el, "img", "video");
3006
2992
  },
3007
2993
  observe: resize({
3008
- target: ({ $el }) => [getPositionedParent($el) || parent($el)],
3009
- filter: ({ $el }) => !useObjectFit($el)
2994
+ target: ({ $el }) => getPositionedParent($el) || parent($el),
2995
+ filter: ({ useObjectFit }) => !useObjectFit
3010
2996
  }),
3011
2997
  update: {
3012
2998
  read() {
3013
- if (useObjectFit(this.$el)) {
3014
- return;
2999
+ if (this.useObjectFit) {
3000
+ return false;
3015
3001
  }
3016
3002
  const { ratio, cover } = Dimensions;
3017
3003
  const { $el, width, height } = this;
@@ -3052,9 +3038,6 @@
3052
3038
  }
3053
3039
  }
3054
3040
  }
3055
- function useObjectFit(el) {
3056
- return isTag(el, "img", "video");
3057
- }
3058
3041
 
3059
3042
  var Container = {
3060
3043
  props: {
@@ -3256,7 +3239,7 @@
3256
3239
  this.tracker = new MouseTracker();
3257
3240
  },
3258
3241
  beforeConnect() {
3259
- this.clsDrop = this.$props.clsDrop || `uk-${this.$options.name}`;
3242
+ this.clsDrop = this.$props.clsDrop || this.$options.id;
3260
3243
  },
3261
3244
  connected() {
3262
3245
  addClass(this.$el, "uk-drop", this.clsDrop);
@@ -3275,9 +3258,7 @@
3275
3258
  events: [
3276
3259
  {
3277
3260
  name: "click",
3278
- delegate() {
3279
- return ".uk-drop-close";
3280
- },
3261
+ delegate: () => ".uk-drop-close",
3281
3262
  handler(e) {
3282
3263
  e.preventDefault();
3283
3264
  this.hide(false);
@@ -3285,9 +3266,7 @@
3285
3266
  },
3286
3267
  {
3287
3268
  name: "click",
3288
- delegate() {
3289
- return 'a[href*="#"]';
3290
- },
3269
+ delegate: () => 'a[href*="#"]',
3291
3270
  handler({ defaultPrevented, current }) {
3292
3271
  const { hash } = current;
3293
3272
  if (!defaultPrevented && hash && isSameSiteAnchor(current) && !this.$el.contains($(hash))) {
@@ -3333,9 +3312,7 @@
3333
3312
  },
3334
3313
  {
3335
3314
  name: `${pointerEnter} focusin`,
3336
- filter() {
3337
- return includes(this.mode, "hover");
3338
- },
3315
+ filter: ({ mode }) => includes(mode, "hover"),
3339
3316
  handler(e) {
3340
3317
  if (!isTouch(e)) {
3341
3318
  this.clearTimers();
@@ -3344,9 +3321,7 @@
3344
3321
  },
3345
3322
  {
3346
3323
  name: `${pointerLeave} focusout`,
3347
- filter() {
3348
- return includes(this.mode, "hover");
3349
- },
3324
+ filter: ({ mode }) => includes(mode, "hover"),
3350
3325
  handler(e) {
3351
3326
  if (!isTouch(e) && e.relatedTarget) {
3352
3327
  this.hide();
@@ -3657,9 +3632,7 @@
3657
3632
  events: [
3658
3633
  {
3659
3634
  name: "mouseover focusin",
3660
- delegate() {
3661
- return this.selNavItem;
3662
- },
3635
+ delegate: ({ selNavItem }) => selNavItem,
3663
3636
  handler({ current }) {
3664
3637
  const active2 = this.getActive();
3665
3638
  if (active2 && includes(active2.mode, "hover") && active2.targetEl && !current.contains(active2.targetEl) && !active2.isDelaying) {
@@ -3670,9 +3643,7 @@
3670
3643
  {
3671
3644
  name: "keydown",
3672
3645
  self: true,
3673
- delegate() {
3674
- return this.selNavItem;
3675
- },
3646
+ delegate: ({ selNavItem }) => selNavItem,
3676
3647
  handler(e) {
3677
3648
  var _a;
3678
3649
  const { current, keyCode } = e;
@@ -3686,12 +3657,8 @@
3686
3657
  },
3687
3658
  {
3688
3659
  name: "keydown",
3689
- el() {
3690
- return this.dropContainer;
3691
- },
3692
- delegate() {
3693
- return `.${this.clsDrop}`;
3694
- },
3660
+ el: ({ dropContainer }) => dropContainer,
3661
+ delegate: ({ clsDrop }) => `.${clsDrop}`,
3695
3662
  handler(e) {
3696
3663
  var _a;
3697
3664
  const { current, keyCode } = e;
@@ -3725,12 +3692,8 @@
3725
3692
  },
3726
3693
  {
3727
3694
  name: "mouseleave",
3728
- el() {
3729
- return this.dropbar;
3730
- },
3731
- filter() {
3732
- return this.dropbar;
3733
- },
3695
+ el: ({ dropbar }) => dropbar,
3696
+ filter: ({ dropbar }) => dropbar,
3734
3697
  handler() {
3735
3698
  const active2 = this.getActive();
3736
3699
  if (active2 && includes(active2.mode, "hover") && !this.dropdowns.some((el) => matches(el, ":hover"))) {
@@ -3740,12 +3703,8 @@
3740
3703
  },
3741
3704
  {
3742
3705
  name: "beforeshow",
3743
- el() {
3744
- return this.dropContainer;
3745
- },
3746
- filter() {
3747
- return this.dropbar;
3748
- },
3706
+ el: ({ dropContainer }) => dropContainer,
3707
+ filter: ({ dropbar }) => dropbar,
3749
3708
  handler({ target }) {
3750
3709
  if (!this.isDropbarDrop(target)) {
3751
3710
  return;
@@ -3758,12 +3717,8 @@
3758
3717
  },
3759
3718
  {
3760
3719
  name: "show",
3761
- el() {
3762
- return this.dropContainer;
3763
- },
3764
- filter() {
3765
- return this.dropbar;
3766
- },
3720
+ el: ({ dropContainer }) => dropContainer,
3721
+ filter: ({ dropbar }) => dropbar,
3767
3722
  handler({ target }) {
3768
3723
  if (!this.isDropbarDrop(target)) {
3769
3724
  return;
@@ -3788,12 +3743,8 @@
3788
3743
  },
3789
3744
  {
3790
3745
  name: "beforehide",
3791
- el() {
3792
- return this.dropContainer;
3793
- },
3794
- filter() {
3795
- return this.dropbar;
3796
- },
3746
+ el: ({ dropContainer }) => dropContainer,
3747
+ filter: ({ dropbar }) => dropbar,
3797
3748
  handler(e) {
3798
3749
  const active2 = this.getActive();
3799
3750
  if (matches(this.dropbar, ":hover") && active2.$el === e.target && this.isDropbarDrop(active2.$el) && includes(active2.mode, "hover") && active2.isDelayedHide && !this.items.some((el) => active2.targetEl !== el && matches(el, ":focus"))) {
@@ -3803,12 +3754,8 @@
3803
3754
  },
3804
3755
  {
3805
3756
  name: "hide",
3806
- el() {
3807
- return this.dropContainer;
3808
- },
3809
- filter() {
3810
- return this.dropbar;
3811
- },
3757
+ el: ({ dropContainer }) => dropContainer,
3758
+ filter: ({ dropbar }) => dropbar,
3812
3759
  handler({ target }) {
3813
3760
  var _a;
3814
3761
  if (!this.isDropbarDrop(target)) {
@@ -3939,9 +3886,7 @@
3939
3886
  },
3940
3887
  {
3941
3888
  name: "reset",
3942
- el() {
3943
- return this.$el.closest("form");
3944
- },
3889
+ el: ({ $el }) => $el.closest("form"),
3945
3890
  handler() {
3946
3891
  this.$emit();
3947
3892
  }
@@ -3998,7 +3943,7 @@
3998
3943
  (el, i) => i && elements[i - 1].offsetParent !== el.offsetParent
3999
3944
  );
4000
3945
  for (const el of elements) {
4001
- if (!isVisible$1(el)) {
3946
+ if (!isVisible(el)) {
4002
3947
  continue;
4003
3948
  }
4004
3949
  const offset = getOffset(el, withOffset);
@@ -4131,11 +4076,8 @@
4131
4076
  },
4132
4077
  {
4133
4078
  read({ rows, scrollColumns, parallaxStart, parallaxEnd }) {
4134
- if (scrollColumns && positionedAbsolute(rows)) {
4135
- return false;
4136
- }
4137
4079
  return {
4138
- scrolled: scrollColumns ? scrolledOver(this.$el, parallaxStart, parallaxEnd) : false
4080
+ scrolled: scrollColumns && !positionedAbsolute(rows) ? scrolledOver(this.$el, parallaxStart, parallaxEnd) : false
4139
4081
  };
4140
4082
  },
4141
4083
  write({ columns, scrolled, scrollColumns, translates }) {
@@ -4223,9 +4165,7 @@
4223
4165
  events: {
4224
4166
  // Hidden elements may change height when fonts load
4225
4167
  name: "loadingdone",
4226
- el() {
4227
- return document.fonts;
4228
- },
4168
+ el: () => document.fonts,
4229
4169
  handler() {
4230
4170
  this.$emit("resize");
4231
4171
  }
@@ -4257,7 +4197,7 @@
4257
4197
  }
4258
4198
  function getHeight(element) {
4259
4199
  const style = pick(element.style, ["display", "minHeight"]);
4260
- if (!isVisible$1(element)) {
4200
+ if (!isVisible(element)) {
4261
4201
  css(element, "display", "block", "important");
4262
4202
  }
4263
4203
  css(element, "minHeight", "");
@@ -4312,7 +4252,7 @@
4312
4252
  ],
4313
4253
  update: {
4314
4254
  read() {
4315
- if (!isVisible$1(this.$el)) {
4255
+ if (!isVisible(this.$el)) {
4316
4256
  return false;
4317
4257
  }
4318
4258
  let minHeight = "";
@@ -4854,14 +4794,15 @@
4854
4794
  };
4855
4795
  function findTargetColor(target) {
4856
4796
  const { left, top, height, width } = dimensions(target);
4797
+ const viewport = dimensions(window);
4857
4798
  let last;
4858
4799
  for (const percent of [0.25, 0.5, 0.75]) {
4859
4800
  const elements = target.ownerDocument.elementsFromPoint(
4860
- Math.max(0, left + width * percent),
4861
- Math.max(0, top + height / 2)
4801
+ Math.max(0, Math.min(left + width * percent, viewport.width - 1)),
4802
+ Math.max(0, Math.min(top + height / 2, viewport.height - 1))
4862
4803
  );
4863
4804
  for (const element of elements) {
4864
- if (target.contains(element) || !isVisible(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
4805
+ if (target.contains(element) || !checkVisibility(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
4865
4806
  continue;
4866
4807
  }
4867
4808
  const color = css(element, "--uk-inverse");
@@ -4876,7 +4817,7 @@
4876
4817
  }
4877
4818
  return last ? `uk-${last}` : "";
4878
4819
  }
4879
- function isVisible(element) {
4820
+ function checkVisibility(element) {
4880
4821
  if (css(element, "visibility") !== "visible") {
4881
4822
  return false;
4882
4823
  }
@@ -5008,9 +4949,7 @@
5008
4949
  events: [
5009
4950
  {
5010
4951
  name: "click",
5011
- delegate() {
5012
- return `${this.selClose},a[href*="#"]`;
5013
- },
4952
+ delegate: ({ selClose }) => `${selClose},a[href*="#"]`,
5014
4953
  handler(e) {
5015
4954
  const { current, defaultPrevented } = e;
5016
4955
  const { hash } = current;
@@ -5328,9 +5267,7 @@
5328
5267
  events: [
5329
5268
  {
5330
5269
  name: "show",
5331
- el() {
5332
- return this.dropContainer;
5333
- },
5270
+ el: ({ dropContainer }) => dropContainer,
5334
5271
  handler({ target }) {
5335
5272
  if (this.getTransparentMode(target) === "remove" && hasClass(this.navbarContainer, clsNavbarTransparent)) {
5336
5273
  removeClass(this.navbarContainer, clsNavbarTransparent);
@@ -5340,9 +5277,7 @@
5340
5277
  },
5341
5278
  {
5342
5279
  name: "hide",
5343
- el() {
5344
- return this.dropContainer;
5345
- },
5280
+ el: ({ dropContainer }) => dropContainer,
5346
5281
  async handler() {
5347
5282
  await awaitMacroTask();
5348
5283
  if (!this.getActive() && this._transparent) {
@@ -5413,7 +5348,7 @@
5413
5348
  observe: swipe({ filter: ({ swiping }) => swiping }),
5414
5349
  update: {
5415
5350
  read() {
5416
- if (this.isToggled() && !isVisible$1(this.$el)) {
5351
+ if (this.isToggled() && !isVisible(this.$el)) {
5417
5352
  this.hide();
5418
5353
  }
5419
5354
  },
@@ -5424,9 +5359,7 @@
5424
5359
  name: "touchmove",
5425
5360
  self: true,
5426
5361
  passive: false,
5427
- filter() {
5428
- return this.overlay;
5429
- },
5362
+ filter: ({ overlay }) => overlay,
5430
5363
  handler(e) {
5431
5364
  e.cancelable && e.preventDefault();
5432
5365
  }
@@ -5520,7 +5453,7 @@
5520
5453
  }),
5521
5454
  update: {
5522
5455
  read() {
5523
- if (!this.content || !this.container || !isVisible$1(this.$el)) {
5456
+ if (!this.content || !this.container || !isVisible(this.$el)) {
5524
5457
  return false;
5525
5458
  }
5526
5459
  return {
@@ -5677,12 +5610,12 @@
5677
5610
  ],
5678
5611
  methods: {
5679
5612
  toggle(el, inview) {
5680
- var _a;
5681
- const state = this.elementData.get(el);
5613
+ var _a, _b;
5614
+ const state = (_a = this.elementData) == null ? void 0 : _a.get(el);
5682
5615
  if (!state) {
5683
5616
  return;
5684
5617
  }
5685
- (_a = state.off) == null ? void 0 : _a.call(state);
5618
+ (_b = state.off) == null ? void 0 : _b.call(state);
5686
5619
  css(el, "opacity", !inview && this.hidden ? 0 : "");
5687
5620
  toggleClass(el, this.inViewClass, inview);
5688
5621
  toggleClass(el, state.cls);
@@ -5736,7 +5669,7 @@
5736
5669
  read() {
5737
5670
  const targets = this.links.map(getTargetedElement).filter(Boolean);
5738
5671
  const { length } = targets;
5739
- if (!length || !isVisible$1(this.$el)) {
5672
+ if (!length || !isVisible(this.$el)) {
5740
5673
  return false;
5741
5674
  }
5742
5675
  const scrollElement = scrollParent(targets, true);
@@ -5747,9 +5680,8 @@
5747
5680
  if (scrollTop === max) {
5748
5681
  active = length - 1;
5749
5682
  } else {
5683
+ const offsetBy = this.offset + offset(getCoveringElement()).height;
5750
5684
  for (let i = 0; i < targets.length; i++) {
5751
- const fixedEl = getCoveringElement(targets[i]);
5752
- const offsetBy = this.offset + (fixedEl ? offset(fixedEl).height : 0);
5753
5685
  if (offset(targets[i]).top - viewport.top - offsetBy > 0) {
5754
5686
  break;
5755
5687
  }
@@ -5832,25 +5764,23 @@
5832
5764
  this.placeholder = null;
5833
5765
  },
5834
5766
  observe: [
5835
- viewport({
5836
- handler() {
5837
- if (toPx("100vh", "height") !== this._data.viewport) {
5838
- this.$emit("resize");
5839
- }
5840
- }
5841
- }),
5767
+ viewport(),
5842
5768
  scroll$1({ target: () => document.scrollingElement }),
5843
- resize({ target: ({ $el }) => [$el, document.scrollingElement] })
5769
+ resize({
5770
+ target: ({ $el }) => [$el, parent($el), document.scrollingElement],
5771
+ handler(entries) {
5772
+ this.$emit(
5773
+ this._data.resized && entries.some(({ target }) => target === parent(this.$el)) ? "update" : "resize"
5774
+ );
5775
+ this._data.resized = true;
5776
+ }
5777
+ })
5844
5778
  ],
5845
5779
  events: [
5846
5780
  {
5847
5781
  name: "load hashchange popstate",
5848
- el() {
5849
- return window;
5850
- },
5851
- filter() {
5852
- return this.targetOffset !== false;
5853
- },
5782
+ el: () => window,
5783
+ filter: ({ targetOffset }) => targetOffset !== false,
5854
5784
  handler() {
5855
5785
  const { scrollingElement } = document;
5856
5786
  if (!location.hash || scrollingElement.scrollTop === 0) {
@@ -5866,26 +5796,16 @@
5866
5796
  }
5867
5797
  });
5868
5798
  }
5869
- },
5870
- {
5871
- name: "transitionstart",
5872
- handler() {
5873
- this.transitionInProgress = once(
5874
- this.$el,
5875
- "transitionend transitioncancel",
5876
- () => this.transitionInProgress = null
5877
- );
5878
- }
5879
5799
  }
5880
5800
  ],
5881
5801
  update: [
5882
5802
  {
5883
- read({ height: height$1, width, margin, sticky }) {
5884
- this.inactive = !this.matchMedia || !isVisible$1(this.$el);
5803
+ read({ height: height$1, width, margin, sticky }, types) {
5804
+ this.inactive = !this.matchMedia || !isVisible(this.$el);
5885
5805
  if (this.inactive) {
5886
5806
  return;
5887
5807
  }
5888
- const hide = this.isFixed && !this.transitionInProgress;
5808
+ const hide = this.isFixed && types.has("update");
5889
5809
  if (hide) {
5890
5810
  preventTransition(this.target);
5891
5811
  this.hide();
@@ -5935,7 +5855,8 @@
5935
5855
  margin,
5936
5856
  top: offsetPosition(referenceElement)[0],
5937
5857
  sticky,
5938
- viewport: viewport2
5858
+ viewport: viewport2,
5859
+ maxScrollHeight
5939
5860
  };
5940
5861
  },
5941
5862
  write({ height, width, margin, offset, sticky }) {
@@ -5968,9 +5889,10 @@
5968
5889
  end,
5969
5890
  elHeight,
5970
5891
  height,
5971
- sticky
5892
+ sticky,
5893
+ maxScrollHeight
5972
5894
  }) {
5973
- const scroll2 = document.scrollingElement.scrollTop;
5895
+ const scroll2 = Math.min(document.scrollingElement.scrollTop, maxScrollHeight);
5974
5896
  const dir = prevScroll <= scroll2 ? "down" : "up";
5975
5897
  const referenceElement = this.isFixed ? this.placeholder : this.$el;
5976
5898
  return {
@@ -6136,7 +6058,7 @@
6136
6058
  }
6137
6059
 
6138
6060
  function getMaxPathLength(el) {
6139
- return isVisible$1(el) ? Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => stroke.getTotalLength()))) : 0;
6061
+ return isVisible(el) ? Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => stroke.getTotalLength()))) : 0;
6140
6062
  }
6141
6063
 
6142
6064
  var svg = {
@@ -6304,9 +6226,7 @@
6304
6226
  events: [
6305
6227
  {
6306
6228
  name: "click keydown",
6307
- delegate() {
6308
- return this.toggle;
6309
- },
6229
+ delegate: ({ toggle }) => toggle,
6310
6230
  handler(e) {
6311
6231
  if (!matches(e.current, selDisabled) && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
6312
6232
  e.preventDefault();
@@ -6316,9 +6236,7 @@
6316
6236
  },
6317
6237
  {
6318
6238
  name: "keydown",
6319
- delegate() {
6320
- return this.toggle;
6321
- },
6239
+ delegate: ({ toggle }) => toggle,
6322
6240
  handler(e) {
6323
6241
  const { current, keyCode } = e;
6324
6242
  const isVertical = matches(this.$el, this.selVertical);
@@ -6336,12 +6254,8 @@
6336
6254
  },
6337
6255
  {
6338
6256
  name: "click",
6339
- el() {
6340
- return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);
6341
- },
6342
- delegate() {
6343
- return `[${this.attrItem}],[data-${this.attrItem}]`;
6344
- },
6257
+ el: ({ $el, connects, itemNav }) => connects.concat(itemNav ? queryAll(itemNav, $el) : []),
6258
+ delegate: ({ attrItem }) => `[${attrItem}],[data-${attrItem}]`,
6345
6259
  handler(e) {
6346
6260
  if (e.target.closest("a,button")) {
6347
6261
  e.preventDefault();
@@ -6351,12 +6265,8 @@
6351
6265
  },
6352
6266
  {
6353
6267
  name: "swipeRight swipeLeft",
6354
- filter() {
6355
- return this.swiping;
6356
- },
6357
- el() {
6358
- return this.connects;
6359
- },
6268
+ filter: ({ swiping }) => swiping,
6269
+ el: ({ connects }) => connects,
6360
6270
  handler({ type }) {
6361
6271
  this.show(endsWith(type, "Left") ? "next" : "previous");
6362
6272
  }
@@ -6475,9 +6385,7 @@
6475
6385
  events: [
6476
6386
  {
6477
6387
  name: pointerDown,
6478
- filter() {
6479
- return includes(this.mode, "hover");
6480
- },
6388
+ filter: ({ mode }) => includes(mode, "hover"),
6481
6389
  handler(e) {
6482
6390
  this._preventClick = null;
6483
6391
  if (!isTouch(e) || isBoolean(this._showState) || this.$el.disabled) {
@@ -6500,9 +6408,7 @@
6500
6408
  // mouseenter mouseleave are added because of Firefox bug,
6501
6409
  // where pointerleave is triggered immediately after pointerenter on scroll
6502
6410
  name: `mouseenter mouseleave ${pointerEnter} ${pointerLeave} focus blur`,
6503
- filter() {
6504
- return includes(this.mode, "hover");
6505
- },
6411
+ filter: ({ mode }) => includes(mode, "hover"),
6506
6412
  handler(e) {
6507
6413
  if (isTouch(e) || this.$el.disabled) {
6508
6414
  return;
@@ -6524,9 +6430,7 @@
6524
6430
  },
6525
6431
  {
6526
6432
  name: "keydown",
6527
- filter() {
6528
- return includes(this.mode, "click") && !isTag(this.$el, "input");
6529
- },
6433
+ filter: ({ $el, mode }) => includes(mode, "click") && !isTag($el, "input"),
6530
6434
  handler(e) {
6531
6435
  if (e.keyCode === KEY_SPACE) {
6532
6436
  e.preventDefault();
@@ -6536,9 +6440,7 @@
6536
6440
  },
6537
6441
  {
6538
6442
  name: "click",
6539
- filter() {
6540
- return ["click", "hover"].some((mode) => includes(this.mode, mode));
6541
- },
6443
+ filter: ({ mode }) => ["click", "hover"].some((m) => includes(mode, m)),
6542
6444
  handler(e) {
6543
6445
  let link;
6544
6446
  if (this._preventClick || e.target.closest('a[href="#"], a[href=""]') || (link = e.target.closest("a[href]")) && (!this.isToggled(this.target) || link.hash && matches(this.target, link.hash))) {
@@ -6551,12 +6453,8 @@
6551
6453
  },
6552
6454
  {
6553
6455
  name: "mediachange",
6554
- filter() {
6555
- return includes(this.mode, "media");
6556
- },
6557
- el() {
6558
- return this.target;
6559
- },
6456
+ filter: ({ mode }) => includes(mode, "media"),
6457
+ el: ({ target }) => target,
6560
6458
  handler(e, mediaObj) {
6561
6459
  if (mediaObj.matches ^ this.isToggled(this.target)) {
6562
6460
  this.toggle();