uikit 3.20.8 → 3.20.9-dev.2cb573699

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 (94) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/css/uikit-core-rtl.css +18 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +18 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +18 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +18 -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 +16 -29
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +17 -32
  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 +21 -27
  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 +20 -26
  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 +121 -211
  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 +155 -260
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/component.js +1 -1
  44. package/src/js/api/events.js +1 -1
  45. package/src/js/components/filter.js +1 -3
  46. package/src/js/components/internal/slider-transitioner.js +4 -0
  47. package/src/js/components/lightbox-panel.js +1 -3
  48. package/src/js/components/lightbox.js +1 -3
  49. package/src/js/components/slider-parallax.js +3 -9
  50. package/src/js/components/slider.js +1 -1
  51. package/src/js/core/accordion.js +2 -6
  52. package/src/js/core/alert.js +1 -3
  53. package/src/js/core/cover.js +6 -12
  54. package/src/js/core/drop.js +5 -13
  55. package/src/js/core/dropnav.js +14 -42
  56. package/src/js/core/form-custom.js +1 -3
  57. package/src/js/core/grid.js +4 -7
  58. package/src/js/core/height-match.js +1 -3
  59. package/src/js/core/height-placeholder.js +1 -1
  60. package/src/js/core/inverse.js +30 -3
  61. package/src/js/core/modal.js +2 -1
  62. package/src/js/core/navbar.js +2 -6
  63. package/src/js/core/offcanvas.js +1 -3
  64. package/src/js/core/scrollspy-nav.js +2 -2
  65. package/src/js/core/scrollspy.js +1 -1
  66. package/src/js/core/sticky.js +23 -34
  67. package/src/js/core/switcher.js +7 -18
  68. package/src/js/core/toggle.js +6 -18
  69. package/src/js/core/video.js +6 -6
  70. package/src/js/mixin/internal/animate-slide.js +1 -1
  71. package/src/js/mixin/internal/slideshow-transitioner.js +4 -0
  72. package/src/js/mixin/modal.js +1 -3
  73. package/src/js/mixin/slider-autoplay.js +1 -3
  74. package/src/js/mixin/slider-drag.js +2 -6
  75. package/src/js/mixin/slider-nav.js +4 -12
  76. package/src/js/mixin/slider-parallax.js +7 -3
  77. package/src/js/mixin/slider.js +3 -1
  78. package/src/js/util/viewport.js +8 -8
  79. package/src/less/components/card.less +3 -0
  80. package/src/less/components/dropbar.less +1 -0
  81. package/src/less/components/dropdown.less +1 -0
  82. package/src/less/components/navbar.less +1 -0
  83. package/src/less/components/offcanvas.less +1 -0
  84. package/src/less/components/overlay.less +2 -0
  85. package/src/less/components/section.less +5 -0
  86. package/src/less/components/tile.less +4 -0
  87. package/src/scss/components/card.scss +3 -0
  88. package/src/scss/components/dropbar.scss +1 -0
  89. package/src/scss/components/dropdown.scss +1 -0
  90. package/src/scss/components/navbar.scss +1 -0
  91. package/src/scss/components/offcanvas.scss +1 -0
  92. package/src/scss/components/overlay.scss +2 -0
  93. package/src/scss/components/section.scss +5 -0
  94. package/src/scss/components/tile.scss +4 -0
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.20.8 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
1
+ /*! UIkit 3.20.9-dev.2cb573699 | 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(element) {
313
+ function isVisible$1(element) {
314
314
  return toNodes(element).some((element2) => isVisibleFn.call(element2));
315
315
  }
316
316
  const selInput = "input,select,textarea,button";
@@ -1199,7 +1199,7 @@
1199
1199
  }
1200
1200
 
1201
1201
  function isInView(element, offsetTop = 0, offsetLeft = 0) {
1202
- if (!isVisible(element)) {
1202
+ if (!isVisible$1(element)) {
1203
1203
  return false;
1204
1204
  }
1205
1205
  return intersectRect(
@@ -1215,7 +1215,7 @@
1215
1215
  );
1216
1216
  }
1217
1217
  function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
1218
- const parents2 = isVisible(element) ? scrollParents(element, false, ["hidden"]) : [];
1218
+ const parents2 = isVisible$1(element) ? scrollParents(element, false, ["hidden"]) : [];
1219
1219
  return parents2.reduce(
1220
1220
  (fn, scrollElement, i) => {
1221
1221
  const { scrollTop, scrollHeight, offsetHeight } = scrollElement;
@@ -1274,7 +1274,7 @@
1274
1274
  }
1275
1275
  }
1276
1276
  function scrolledOver(element, startOffset = 0, endOffset = 0) {
1277
- if (!isVisible(element)) {
1277
+ if (!isVisible$1(element)) {
1278
1278
  return 0;
1279
1279
  }
1280
1280
  const scrollElement = scrollParent(element, true);
@@ -1324,7 +1324,7 @@
1324
1324
  ["height", "y", "top", "bottom"]
1325
1325
  ]) {
1326
1326
  if (isWindow(viewportElement)) {
1327
- viewportElement = scrollElement.ownerDocument;
1327
+ viewportElement = viewportElement.document;
1328
1328
  } else {
1329
1329
  rect[start] += toFloat(css(viewportElement, `border-${start}-width`));
1330
1330
  }
@@ -1336,17 +1336,16 @@
1336
1336
  }
1337
1337
  function getCoveringElement(target) {
1338
1338
  const { left, width, top } = dimensions$1(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
1339
+ for (const position of top ? [0, top] : [0]) {
1340
+ for (const el of toWindow(target).document.elementsFromPoint(left + width / 2, position)) {
1341
+ if (!el.contains(target) && // If e.g. Offcanvas is not yet closed
1342
1342
  !hasClass(el, "uk-togglable-leave") && (hasPosition(el, "fixed") && zIndex(
1343
1343
  parents(target).reverse().find(
1344
1344
  (parent2) => !parent2.contains(el) && !hasPosition(parent2, "static")
1345
1345
  )
1346
- ) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))
1347
- );
1348
- if (coverEl) {
1349
- return coverEl;
1346
+ ) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))) {
1347
+ return el;
1348
+ }
1350
1349
  }
1351
1350
  }
1352
1351
  }
@@ -1611,7 +1610,7 @@
1611
1610
  isTouch: isTouch,
1612
1611
  isUndefined: isUndefined,
1613
1612
  isVideo: isVideo,
1614
- isVisible: isVisible,
1613
+ isVisible: isVisible$1,
1615
1614
  isVoidElement: isVoidElement,
1616
1615
  isWindow: isWindow,
1617
1616
  last: last,
@@ -2065,7 +2064,7 @@
2065
2064
  (el, i) => i && elements[i - 1].offsetParent !== el.offsetParent
2066
2065
  );
2067
2066
  for (const el of elements) {
2068
- if (!isVisible(el)) {
2067
+ if (!isVisible$1(el)) {
2069
2068
  continue;
2070
2069
  }
2071
2070
  const offset = getOffset(el, withOffset);
@@ -2149,7 +2148,7 @@
2149
2148
  }
2150
2149
  function getProps$1(el, opacity) {
2151
2150
  const zIndex = css(el, "zIndex");
2152
- return isVisible(el) ? {
2151
+ return isVisible$1(el) ? {
2153
2152
  display: "",
2154
2153
  opacity: opacity ? css(el, "opacity") : "0",
2155
2154
  pointerEvents: "none",
@@ -2160,7 +2159,7 @@
2160
2159
  }
2161
2160
  function getTransitionProps(target, nodes, currentProps) {
2162
2161
  const propsTo = nodes.map(
2163
- (el, i) => parent(el) && i in currentProps ? currentProps[i] ? isVisible(el) ? getPositionWithMargin(el) : { opacity: 0 } : { opacity: isVisible(el) ? 1 : 0 } : false
2162
+ (el, i) => parent(el) && i in currentProps ? currentProps[i] ? isVisible$1(el) ? getPositionWithMargin(el) : { opacity: 0 } : { opacity: isVisible$1(el) ? 1 : 0 } : false
2164
2163
  );
2165
2164
  const propsFrom = propsTo.map((props, i) => {
2166
2165
  const from = parent(nodes[i]) === target && (currentProps[i] || getProps$1(nodes[i]));
@@ -2274,7 +2273,7 @@
2274
2273
  );
2275
2274
  }
2276
2275
  function getTransitionNodes(target) {
2277
- return getRows(children(target)).flat().filter(isVisible);
2276
+ return getRows(children(target)).flat().filter(isVisible$1);
2278
2277
  }
2279
2278
  function awaitTimeout(timeout) {
2280
2279
  return new Promise((resolve) => setTimeout(resolve, timeout));
@@ -2353,9 +2352,7 @@
2353
2352
  },
2354
2353
  events: {
2355
2354
  name: "click keydown",
2356
- delegate() {
2357
- return `[${this.attrItem}],[data-${this.attrItem}]`;
2358
- },
2355
+ delegate: ({ attrItem }) => `[${attrItem}],[data-${attrItem}]`,
2359
2356
  handler(e) {
2360
2357
  if (e.type === "keydown" && e.keyCode !== keyMap.SPACE) {
2361
2358
  return;
@@ -2572,7 +2569,7 @@
2572
2569
  },
2573
2570
  isToggled(el = this.$el) {
2574
2571
  el = toNode(el);
2575
- return hasClass(el, this.clsEnter) ? true : hasClass(el, this.clsLeave) ? false : this.cls ? hasClass(el, this.cls.split(" ")[0]) : isVisible(el);
2572
+ return hasClass(el, this.clsEnter) ? true : hasClass(el, this.clsLeave) ? false : this.cls ? hasClass(el, this.cls.split(" ")[0]) : isVisible$1(el);
2576
2573
  },
2577
2574
  _toggle(el, toggled) {
2578
2575
  if (!el) {
@@ -2587,7 +2584,7 @@
2587
2584
  changed = toggled === el.hidden;
2588
2585
  changed && (el.hidden = !toggled);
2589
2586
  }
2590
- $$("[autofocus]", el).some((el2) => isVisible(el2) ? el2.focus() || true : el2.blur());
2587
+ $$("[autofocus]", el).some((el2) => isVisible$1(el2) ? el2.focus() || true : el2.blur());
2591
2588
  if (changed) {
2592
2589
  trigger(el, "toggled", [toggled, this]);
2593
2590
  }
@@ -2740,9 +2737,7 @@
2740
2737
  events: [
2741
2738
  {
2742
2739
  name: "click",
2743
- delegate() {
2744
- return `${this.selClose},a[href*="#"]`;
2745
- },
2740
+ delegate: ({ selClose }) => `${selClose},a[href*="#"]`,
2746
2741
  handler(e) {
2747
2742
  const { current, defaultPrevented } = e;
2748
2743
  const { hash } = current;
@@ -2974,6 +2969,9 @@
2974
2969
  return this.show(duration, percent2, true);
2975
2970
  },
2976
2971
  translate(percent2) {
2972
+ if (percent2 === this.percent()) {
2973
+ return;
2974
+ }
2977
2975
  this.reset();
2978
2976
  const props2 = translate(percent2, dir);
2979
2977
  css(next, props2[1]);
@@ -3037,9 +3035,7 @@
3037
3035
  {
3038
3036
  name: "visibilitychange",
3039
3037
  el: () => document,
3040
- filter() {
3041
- return this.autoplay;
3042
- },
3038
+ filter: ({ autoplay }) => autoplay,
3043
3039
  handler() {
3044
3040
  if (document.hidden) {
3045
3041
  this.stopAutoplay();
@@ -3093,9 +3089,7 @@
3093
3089
  {
3094
3090
  name: pointerDown,
3095
3091
  passive: true,
3096
- delegate() {
3097
- return `${this.selList} > *`;
3098
- },
3092
+ delegate: ({ selList }) => `${selList} > *`,
3099
3093
  handler(e) {
3100
3094
  if (!this.draggable || this.parallax || !isTouch(e) && hasSelectableText(e.target) || e.target.closest(selInput) || e.button > 0 || this.length < 2) {
3101
3095
  return;
@@ -3112,9 +3106,7 @@
3112
3106
  {
3113
3107
  // iOS workaround for slider stopping if swiping fast
3114
3108
  name: pointerMove,
3115
- el() {
3116
- return this.list;
3117
- },
3109
+ el: ({ list }) => list,
3118
3110
  handler: noop,
3119
3111
  ...pointerOptions
3120
3112
  }
@@ -3329,7 +3321,7 @@
3329
3321
  function registerEvent(instance, event, key) {
3330
3322
  let { name, el, handler, capture, passive, delegate, filter, self } = isPlainObject(event) ? event : { name: key, handler: event };
3331
3323
  el = isFunction(el) ? el.call(instance, instance) : el || instance.$el;
3332
- if (!el || isArray(el) && !el.length || filter && !filter.call(instance)) {
3324
+ if (!el || isArray(el) && !el.length || filter && !filter.call(instance, instance)) {
3333
3325
  return;
3334
3326
  }
3335
3327
  instance._events.push(
@@ -3555,7 +3547,7 @@
3555
3547
  };
3556
3548
  App.util = util;
3557
3549
  App.options = {};
3558
- App.version = "3.20.8";
3550
+ App.version = "3.20.9-dev.2cb573699";
3559
3551
 
3560
3552
  const PREFIX = "uk-";
3561
3553
  const DATA = "__uikit__";
@@ -3610,7 +3602,7 @@
3610
3602
  function detachFromElement(element, instance) {
3611
3603
  var _a;
3612
3604
  (_a = element[DATA]) == null ? true : delete _a[instance.$options.name];
3613
- if (!isEmpty(element[DATA])) {
3605
+ if (isEmpty(element[DATA])) {
3614
3606
  delete element[DATA];
3615
3607
  }
3616
3608
  }
@@ -3822,12 +3814,8 @@
3822
3814
  events: [
3823
3815
  {
3824
3816
  name: "click keydown",
3825
- delegate() {
3826
- return this.selNavItem;
3827
- },
3828
- filter() {
3829
- return !this.parallax;
3830
- },
3817
+ delegate: ({ selNavItem }) => selNavItem,
3818
+ filter: ({ parallax }) => !parallax,
3831
3819
  handler(e) {
3832
3820
  if (e.target.closest("a,button") && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
3833
3821
  e.preventDefault();
@@ -3841,12 +3829,8 @@
3841
3829
  },
3842
3830
  {
3843
3831
  name: "keydown",
3844
- delegate() {
3845
- return this.selNavItem;
3846
- },
3847
- filter() {
3848
- return !this.parallax;
3849
- },
3832
+ delegate: ({ selNavItem }) => selNavItem,
3833
+ filter: ({ parallax }) => !parallax,
3850
3834
  handler(e) {
3851
3835
  const { current, keyCode } = e;
3852
3836
  const cmd = data(current, this.attrItem);
@@ -4000,7 +3984,9 @@
4000
3984
  trigger(next, "itemshown", [this]);
4001
3985
  stack.shift();
4002
3986
  this._transitioner = null;
4003
- requestAnimationFrame(() => stack.length && this.show(stack.shift(), true));
3987
+ if (stack.length) {
3988
+ requestAnimationFrame(() => stack.length && this.show(stack.shift(), true));
3989
+ }
4004
3990
  });
4005
3991
  prev && trigger(prev, "itemhide", [this]);
4006
3992
  trigger(next, "itemshow", [this]);
@@ -4165,9 +4151,7 @@
4165
4151
  {
4166
4152
  name: "click",
4167
4153
  self: true,
4168
- delegate() {
4169
- return `${this.selList} > *`;
4170
- },
4154
+ delegate: ({ selList }) => `${selList} > *`,
4171
4155
  handler(e) {
4172
4156
  if (!e.defaultPrevented) {
4173
4157
  this.hide();
@@ -4381,9 +4365,7 @@
4381
4365
  },
4382
4366
  events: {
4383
4367
  name: "click",
4384
- delegate() {
4385
- return `${this.toggle}:not(.uk-disabled)`;
4386
- },
4368
+ delegate: ({ toggle }) => `${toggle}:not(.uk-disabled)`,
4387
4369
  handler(e) {
4388
4370
  e.preventDefault();
4389
4371
  this.show(e.current);
@@ -4555,7 +4537,7 @@
4555
4537
  }
4556
4538
 
4557
4539
  function getMaxPathLength(el) {
4558
- return isVisible(el) ? Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => stroke.getTotalLength()))) : 0;
4540
+ return isVisible$1(el) ? Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => stroke.getTotalLength()))) : 0;
4559
4541
  }
4560
4542
 
4561
4543
  const props = {
@@ -4902,7 +4884,7 @@
4902
4884
  if (!types.has("scroll")) {
4903
4885
  percent = false;
4904
4886
  }
4905
- if (!isVisible(this.$el)) {
4887
+ if (!isVisible$1(this.$el)) {
4906
4888
  return false;
4907
4889
  }
4908
4890
  if (!this.matchMedia) {
@@ -4957,15 +4939,18 @@
4957
4939
  }
4958
4940
  },
4959
4941
  update: {
4960
- write() {
4942
+ read() {
4961
4943
  if (!this.parallax) {
4962
- return;
4944
+ return false;
4963
4945
  }
4964
4946
  const target = this.parallaxTarget;
4965
4947
  const start = toPx(this.parallaxStart, "height", target, true);
4966
4948
  const end = toPx(this.parallaxEnd, "height", target, true);
4967
4949
  const percent = ease(scrolledOver(target, start, end), this.parallaxEasing);
4968
- const [prevIndex, slidePercent] = this.getIndexAt(percent);
4950
+ return { parallax: this.getIndexAt(percent) };
4951
+ },
4952
+ write({ parallax }) {
4953
+ const [prevIndex, slidePercent] = parallax;
4969
4954
  const nextIndex = this.getValidIndex(prevIndex + Math.ceil(slidePercent));
4970
4955
  const prev = this.slides[prevIndex];
4971
4956
  const next = this.slides[nextIndex];
@@ -5105,6 +5090,9 @@
5105
5090
  return this.show(duration, percent, true);
5106
5091
  },
5107
5092
  translate(percent) {
5093
+ if (percent === this.percent()) {
5094
+ return;
5095
+ }
5108
5096
  const distance = this.getDistance() * dir * (isRtl ? -1 : 1);
5109
5097
  css(
5110
5098
  list,
@@ -5257,7 +5245,7 @@
5257
5245
  };
5258
5246
  },
5259
5247
  slides() {
5260
- return children(this.list).filter(isVisible);
5248
+ return children(this.list).filter(isVisible$1);
5261
5249
  }
5262
5250
  },
5263
5251
  connected() {
@@ -5323,7 +5311,7 @@
5323
5311
  this.dir > 0 && i < index ? 1 : this.dir < 0 && i >= this.index ? -1 : ""
5324
5312
  )
5325
5313
  );
5326
- if (!this.center) {
5314
+ if (!this.center || !this.length) {
5327
5315
  return;
5328
5316
  }
5329
5317
  const next = this.slides[index];
@@ -5461,9 +5449,7 @@
5461
5449
  {
5462
5450
  name: "itemin itemout",
5463
5451
  self: true,
5464
- el() {
5465
- return this.item;
5466
- },
5452
+ el: ({ item }) => item,
5467
5453
  handler({ type, detail: { percent, duration, timing, dir } }) {
5468
5454
  fastdom.read(() => {
5469
5455
  if (!this.matchMedia) {
@@ -5481,9 +5467,7 @@
5481
5467
  {
5482
5468
  name: "transitioncanceled transitionend",
5483
5469
  self: true,
5484
- el() {
5485
- return this.item;
5486
- },
5470
+ el: ({ item }) => item,
5487
5471
  handler() {
5488
5472
  Transition.cancel(this.$el);
5489
5473
  }
@@ -5491,9 +5475,7 @@
5491
5475
  {
5492
5476
  name: "itemtranslatein itemtranslateout",
5493
5477
  self: true,
5494
- el() {
5495
- return this.item;
5496
- },
5478
+ el: ({ item }) => item,
5497
5479
  handler({ type, detail: { percent, dir } }) {
5498
5480
  fastdom.read(() => {
5499
5481
  if (!this.matchMedia) {
@@ -6491,9 +6473,7 @@
6491
6473
  events: [
6492
6474
  {
6493
6475
  name: "click keydown",
6494
- delegate() {
6495
- return `${this.targets} ${this.$props.toggle}`;
6496
- },
6476
+ delegate: ({ targets, $props }) => `${targets} ${$props.toggle}`,
6497
6477
  async handler(e) {
6498
6478
  var _a;
6499
6479
  if (e.type === "keydown" && e.keyCode !== keyMap.SPACE) {
@@ -6509,9 +6489,7 @@
6509
6489
  {
6510
6490
  name: "shown hidden",
6511
6491
  self: true,
6512
- delegate() {
6513
- return this.targets;
6514
- },
6492
+ delegate: ({ targets }) => targets,
6515
6493
  handler() {
6516
6494
  this.$emit();
6517
6495
  }
@@ -6620,9 +6598,7 @@
6620
6598
  },
6621
6599
  events: {
6622
6600
  name: "click",
6623
- delegate() {
6624
- return this.selClose;
6625
- },
6601
+ delegate: ({ selClose }) => selClose,
6626
6602
  handler(e) {
6627
6603
  e.preventDefault();
6628
6604
  this.close();
@@ -6686,9 +6662,7 @@
6686
6662
  events: [
6687
6663
  {
6688
6664
  name: `${pointerEnter} focusin`,
6689
- filter() {
6690
- return includes(this.autoplay, "hover");
6691
- },
6665
+ filter: ({ autoplay }) => includes(autoplay, "hover"),
6692
6666
  handler(e) {
6693
6667
  if (!isTouch(e) || !isPlaying(this.$el)) {
6694
6668
  play(this.$el);
@@ -6699,9 +6673,7 @@
6699
6673
  },
6700
6674
  {
6701
6675
  name: `${pointerLeave} focusout`,
6702
- filter() {
6703
- return includes(this.autoplay, "hover");
6704
- },
6676
+ filter: ({ autoplay }) => includes(autoplay, "hover"),
6705
6677
  handler(e) {
6706
6678
  if (!isTouch(e)) {
6707
6679
  pause(this.$el);
@@ -6739,19 +6711,17 @@
6739
6711
  data: {
6740
6712
  automute: true
6741
6713
  },
6742
- events: {
6743
- "load loadedmetadata"() {
6744
- this.$emit("resize");
6745
- }
6714
+ created() {
6715
+ this.useObjectFit = isTag(this.$el, "img", "video");
6746
6716
  },
6747
6717
  observe: resize({
6748
- target: ({ $el }) => [getPositionedParent($el) || parent($el)],
6749
- filter: ({ $el }) => !useObjectFit($el)
6718
+ target: ({ $el }) => getPositionedParent($el) || parent($el),
6719
+ filter: ({ useObjectFit }) => !useObjectFit
6750
6720
  }),
6751
6721
  update: {
6752
6722
  read() {
6753
- if (useObjectFit(this.$el)) {
6754
- return;
6723
+ if (this.useObjectFit) {
6724
+ return false;
6755
6725
  }
6756
6726
  const { ratio, cover } = Dimensions;
6757
6727
  const { $el, width, height } = this;
@@ -6792,9 +6762,6 @@
6792
6762
  }
6793
6763
  }
6794
6764
  }
6795
- function useObjectFit(el) {
6796
- return isTag(el, "img", "video");
6797
- }
6798
6765
 
6799
6766
  let active;
6800
6767
  var drop = {
@@ -6859,7 +6826,7 @@
6859
6826
  this.tracker = new MouseTracker();
6860
6827
  },
6861
6828
  beforeConnect() {
6862
- this.clsDrop = this.$props.clsDrop || `uk-${this.$options.name}`;
6829
+ this.clsDrop = this.$props.clsDrop || this.$options.id;
6863
6830
  },
6864
6831
  connected() {
6865
6832
  addClass(this.$el, "uk-drop", this.clsDrop);
@@ -6878,9 +6845,7 @@
6878
6845
  events: [
6879
6846
  {
6880
6847
  name: "click",
6881
- delegate() {
6882
- return ".uk-drop-close";
6883
- },
6848
+ delegate: () => ".uk-drop-close",
6884
6849
  handler(e) {
6885
6850
  e.preventDefault();
6886
6851
  this.hide(false);
@@ -6888,9 +6853,7 @@
6888
6853
  },
6889
6854
  {
6890
6855
  name: "click",
6891
- delegate() {
6892
- return 'a[href*="#"]';
6893
- },
6856
+ delegate: () => 'a[href*="#"]',
6894
6857
  handler({ defaultPrevented, current }) {
6895
6858
  const { hash } = current;
6896
6859
  if (!defaultPrevented && hash && isSameSiteAnchor(current) && !this.$el.contains($(hash))) {
@@ -6936,9 +6899,7 @@
6936
6899
  },
6937
6900
  {
6938
6901
  name: `${pointerEnter} focusin`,
6939
- filter() {
6940
- return includes(this.mode, "hover");
6941
- },
6902
+ filter: ({ mode }) => includes(mode, "hover"),
6942
6903
  handler(e) {
6943
6904
  if (!isTouch(e)) {
6944
6905
  this.clearTimers();
@@ -6947,9 +6908,7 @@
6947
6908
  },
6948
6909
  {
6949
6910
  name: `${pointerLeave} focusout`,
6950
- filter() {
6951
- return includes(this.mode, "hover");
6952
- },
6911
+ filter: ({ mode }) => includes(mode, "hover"),
6953
6912
  handler(e) {
6954
6913
  if (!isTouch(e) && e.relatedTarget) {
6955
6914
  this.hide();
@@ -7260,9 +7219,7 @@
7260
7219
  events: [
7261
7220
  {
7262
7221
  name: "mouseover focusin",
7263
- delegate() {
7264
- return this.selNavItem;
7265
- },
7222
+ delegate: ({ selNavItem }) => selNavItem,
7266
7223
  handler({ current }) {
7267
7224
  const active2 = this.getActive();
7268
7225
  if (active2 && includes(active2.mode, "hover") && active2.targetEl && !current.contains(active2.targetEl) && !active2.isDelaying) {
@@ -7273,9 +7230,7 @@
7273
7230
  {
7274
7231
  name: "keydown",
7275
7232
  self: true,
7276
- delegate() {
7277
- return this.selNavItem;
7278
- },
7233
+ delegate: ({ selNavItem }) => selNavItem,
7279
7234
  handler(e) {
7280
7235
  var _a;
7281
7236
  const { current, keyCode } = e;
@@ -7289,12 +7244,8 @@
7289
7244
  },
7290
7245
  {
7291
7246
  name: "keydown",
7292
- el() {
7293
- return this.dropContainer;
7294
- },
7295
- delegate() {
7296
- return `.${this.clsDrop}`;
7297
- },
7247
+ el: ({ dropContainer }) => dropContainer,
7248
+ delegate: ({ clsDrop }) => `.${clsDrop}`,
7298
7249
  handler(e) {
7299
7250
  var _a;
7300
7251
  const { current, keyCode } = e;
@@ -7328,12 +7279,8 @@
7328
7279
  },
7329
7280
  {
7330
7281
  name: "mouseleave",
7331
- el() {
7332
- return this.dropbar;
7333
- },
7334
- filter() {
7335
- return this.dropbar;
7336
- },
7282
+ el: ({ dropbar }) => dropbar,
7283
+ filter: ({ dropbar }) => dropbar,
7337
7284
  handler() {
7338
7285
  const active2 = this.getActive();
7339
7286
  if (active2 && includes(active2.mode, "hover") && !this.dropdowns.some((el) => matches(el, ":hover"))) {
@@ -7343,12 +7290,8 @@
7343
7290
  },
7344
7291
  {
7345
7292
  name: "beforeshow",
7346
- el() {
7347
- return this.dropContainer;
7348
- },
7349
- filter() {
7350
- return this.dropbar;
7351
- },
7293
+ el: ({ dropContainer }) => dropContainer,
7294
+ filter: ({ dropbar }) => dropbar,
7352
7295
  handler({ target }) {
7353
7296
  if (!this.isDropbarDrop(target)) {
7354
7297
  return;
@@ -7361,12 +7304,8 @@
7361
7304
  },
7362
7305
  {
7363
7306
  name: "show",
7364
- el() {
7365
- return this.dropContainer;
7366
- },
7367
- filter() {
7368
- return this.dropbar;
7369
- },
7307
+ el: ({ dropContainer }) => dropContainer,
7308
+ filter: ({ dropbar }) => dropbar,
7370
7309
  handler({ target }) {
7371
7310
  if (!this.isDropbarDrop(target)) {
7372
7311
  return;
@@ -7391,12 +7330,8 @@
7391
7330
  },
7392
7331
  {
7393
7332
  name: "beforehide",
7394
- el() {
7395
- return this.dropContainer;
7396
- },
7397
- filter() {
7398
- return this.dropbar;
7399
- },
7333
+ el: ({ dropContainer }) => dropContainer,
7334
+ filter: ({ dropbar }) => dropbar,
7400
7335
  handler(e) {
7401
7336
  const active2 = this.getActive();
7402
7337
  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"))) {
@@ -7406,12 +7341,8 @@
7406
7341
  },
7407
7342
  {
7408
7343
  name: "hide",
7409
- el() {
7410
- return this.dropContainer;
7411
- },
7412
- filter() {
7413
- return this.dropbar;
7414
- },
7344
+ el: ({ dropContainer }) => dropContainer,
7345
+ filter: ({ dropbar }) => dropbar,
7415
7346
  handler({ target }) {
7416
7347
  var _a;
7417
7348
  if (!this.isDropbarDrop(target)) {
@@ -7542,9 +7473,7 @@
7542
7473
  },
7543
7474
  {
7544
7475
  name: "reset",
7545
- el() {
7546
- return this.$el.closest("form");
7547
- },
7476
+ el: ({ $el }) => $el.closest("form"),
7548
7477
  handler() {
7549
7478
  this.$emit();
7550
7479
  }
@@ -7638,11 +7567,8 @@
7638
7567
  },
7639
7568
  {
7640
7569
  read({ rows, scrollColumns, parallaxStart, parallaxEnd }) {
7641
- if (scrollColumns && positionedAbsolute(rows)) {
7642
- return false;
7643
- }
7644
7570
  return {
7645
- scrolled: scrollColumns ? scrolledOver(this.$el, parallaxStart, parallaxEnd) : false
7571
+ scrolled: scrollColumns && !positionedAbsolute(rows) ? scrolledOver(this.$el, parallaxStart, parallaxEnd) : false
7646
7572
  };
7647
7573
  },
7648
7574
  write({ columns, scrolled, scrollColumns, translates }) {
@@ -7730,9 +7656,7 @@
7730
7656
  events: {
7731
7657
  // Hidden elements may change height when fonts load
7732
7658
  name: "loadingdone",
7733
- el() {
7734
- return document.fonts;
7735
- },
7659
+ el: () => document.fonts,
7736
7660
  handler() {
7737
7661
  this.$emit("resize");
7738
7662
  }
@@ -7764,7 +7688,7 @@
7764
7688
  }
7765
7689
  function getHeight(element) {
7766
7690
  const style = pick(element.style, ["display", "minHeight"]);
7767
- if (!isVisible(element)) {
7691
+ if (!isVisible$1(element)) {
7768
7692
  css(element, "display", "block", "important");
7769
7693
  }
7770
7694
  css(element, "minHeight", "");
@@ -7790,7 +7714,7 @@
7790
7714
  observe: resize({ target: ({ target }) => target }),
7791
7715
  update: {
7792
7716
  read() {
7793
- return { height: this.target.offsetHeight };
7717
+ return this.target ? { height: this.target.offsetHeight } : false;
7794
7718
  },
7795
7719
  write({ height }) {
7796
7720
  css(this.$el, { minHeight: height });
@@ -7819,7 +7743,7 @@
7819
7743
  ],
7820
7744
  update: {
7821
7745
  read() {
7822
- if (!isVisible(this.$el)) {
7746
+ if (!isVisible$1(this.$el)) {
7823
7747
  return false;
7824
7748
  }
7825
7749
  let minHeight = "";
@@ -8345,11 +8269,11 @@
8345
8269
  let last;
8346
8270
  for (const percent of [0.25, 0.5, 0.75]) {
8347
8271
  const elements = target.ownerDocument.elementsFromPoint(
8348
- Math.max(0, left) + width * percent,
8349
- Math.max(0, top) + height / 2
8272
+ Math.max(0, left + width * percent),
8273
+ Math.max(0, top + height / 2)
8350
8274
  );
8351
8275
  for (const element of elements) {
8352
- if (target.contains(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
8276
+ if (target.contains(element) || !isVisible(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
8353
8277
  continue;
8354
8278
  }
8355
8279
  const color = css(element, "--uk-inverse");
@@ -8364,6 +8288,18 @@
8364
8288
  }
8365
8289
  return last ? `uk-${last}` : "";
8366
8290
  }
8291
+ function isVisible(element) {
8292
+ if (css(element, "visibility") !== "visible") {
8293
+ return false;
8294
+ }
8295
+ while (element) {
8296
+ if (css(element, "opacity") === "0") {
8297
+ return false;
8298
+ }
8299
+ element = parent(element);
8300
+ }
8301
+ return true;
8302
+ }
8367
8303
 
8368
8304
  var leader = {
8369
8305
  mixins: [Class, Media],
@@ -8477,13 +8413,14 @@
8477
8413
  };
8478
8414
  modal.prompt = function(message, value, options) {
8479
8415
  const promise = openDialog(
8480
- ({ i18n }) => `<form class="uk-form-stacked"> <div class="uk-modal-body"> <label>${isString(message) ? message : html(message)}</label> <input class="uk-input" value="${value || ""}" autofocus> </div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-default uk-modal-close" type="button">${i18n.cancel}</button> <button class="uk-button uk-button-primary">${i18n.ok}</button> </div> </form>`,
8416
+ ({ i18n }) => `<form class="uk-form-stacked"> <div class="uk-modal-body"> <label>${isString(message) ? message : html(message)}</label> <input class="uk-input" autofocus> </div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-default uk-modal-close" type="button">${i18n.cancel}</button> <button class="uk-button uk-button-primary">${i18n.ok}</button> </div> </form>`,
8481
8417
  options,
8482
8418
  () => null,
8483
8419
  () => input.value
8484
8420
  );
8485
8421
  const { $el } = promise.dialog;
8486
8422
  const input = $("input", $el);
8423
+ input.value = value || "";
8487
8424
  on($el, "show", () => input.select());
8488
8425
  return promise;
8489
8426
  };
@@ -8551,9 +8488,7 @@
8551
8488
  events: [
8552
8489
  {
8553
8490
  name: "show",
8554
- el() {
8555
- return this.dropContainer;
8556
- },
8491
+ el: ({ dropContainer }) => dropContainer,
8557
8492
  handler({ target }) {
8558
8493
  if (this.getTransparentMode(target) === "remove" && hasClass(this.navbarContainer, clsNavbarTransparent)) {
8559
8494
  removeClass(this.navbarContainer, clsNavbarTransparent);
@@ -8563,9 +8498,7 @@
8563
8498
  },
8564
8499
  {
8565
8500
  name: "hide",
8566
- el() {
8567
- return this.dropContainer;
8568
- },
8501
+ el: ({ dropContainer }) => dropContainer,
8569
8502
  async handler() {
8570
8503
  await awaitMacroTask();
8571
8504
  if (!this.getActive() && this._transparent) {
@@ -8636,7 +8569,7 @@
8636
8569
  observe: swipe({ filter: ({ swiping }) => swiping }),
8637
8570
  update: {
8638
8571
  read() {
8639
- if (this.isToggled() && !isVisible(this.$el)) {
8572
+ if (this.isToggled() && !isVisible$1(this.$el)) {
8640
8573
  this.hide();
8641
8574
  }
8642
8575
  },
@@ -8647,9 +8580,7 @@
8647
8580
  name: "touchmove",
8648
8581
  self: true,
8649
8582
  passive: false,
8650
- filter() {
8651
- return this.overlay;
8652
- },
8583
+ filter: ({ overlay }) => overlay,
8653
8584
  handler(e) {
8654
8585
  e.cancelable && e.preventDefault();
8655
8586
  }
@@ -8743,7 +8674,7 @@
8743
8674
  }),
8744
8675
  update: {
8745
8676
  read() {
8746
- if (!this.content || !this.container || !isVisible(this.$el)) {
8677
+ if (!this.content || !this.container || !isVisible$1(this.$el)) {
8747
8678
  return false;
8748
8679
  }
8749
8680
  return {
@@ -8900,12 +8831,12 @@
8900
8831
  ],
8901
8832
  methods: {
8902
8833
  toggle(el, inview) {
8903
- var _a;
8904
- const state = this.elementData.get(el);
8834
+ var _a, _b;
8835
+ const state = (_a = this.elementData) == null ? void 0 : _a.get(el);
8905
8836
  if (!state) {
8906
8837
  return;
8907
8838
  }
8908
- (_a = state.off) == null ? void 0 : _a.call(state);
8839
+ (_b = state.off) == null ? void 0 : _b.call(state);
8909
8840
  css(el, "opacity", !inview && this.hidden ? 0 : "");
8910
8841
  toggleClass(el, this.inViewClass, inview);
8911
8842
  toggleClass(el, state.cls);
@@ -8959,7 +8890,7 @@
8959
8890
  read() {
8960
8891
  const targets = this.links.map(getTargetedElement).filter(Boolean);
8961
8892
  const { length } = targets;
8962
- if (!length || !isVisible(this.$el)) {
8893
+ if (!length || !isVisible$1(this.$el)) {
8963
8894
  return false;
8964
8895
  }
8965
8896
  const scrollElement = scrollParent(targets, true);
@@ -8970,9 +8901,8 @@
8970
8901
  if (scrollTop === max) {
8971
8902
  active = length - 1;
8972
8903
  } else {
8904
+ const offsetBy = this.offset + offset(getCoveringElement()).height;
8973
8905
  for (let i = 0; i < targets.length; i++) {
8974
- const fixedEl = getCoveringElement(targets[i]);
8975
- const offsetBy = this.offset + (fixedEl ? offset(fixedEl).height : 0);
8976
8906
  if (offset(targets[i]).top - viewport.top - offsetBy > 0) {
8977
8907
  break;
8978
8908
  }
@@ -9055,29 +8985,23 @@
9055
8985
  this.placeholder = null;
9056
8986
  },
9057
8987
  observe: [
9058
- viewport({
9059
- handler() {
9060
- if (toPx("100vh", "height") !== this._data.viewport) {
9061
- this.$emit("resize");
9062
- }
9063
- }
9064
- }),
8988
+ viewport(),
9065
8989
  scroll$1({ target: () => document.scrollingElement }),
9066
8990
  resize({
9067
- target: () => document.scrollingElement,
9068
- options: { box: "content-box" }
9069
- }),
9070
- resize()
8991
+ target: ({ $el }) => [$el, parent($el), document.scrollingElement],
8992
+ handler(entries) {
8993
+ this.$emit(
8994
+ this._data.resized && entries.some(({ target }) => target === parent(this.$el)) ? "update" : "resize"
8995
+ );
8996
+ this._data.resized = true;
8997
+ }
8998
+ })
9071
8999
  ],
9072
9000
  events: [
9073
9001
  {
9074
9002
  name: "load hashchange popstate",
9075
- el() {
9076
- return window;
9077
- },
9078
- filter() {
9079
- return this.targetOffset !== false;
9080
- },
9003
+ el: () => window,
9004
+ filter: ({ targetOffset }) => targetOffset !== false,
9081
9005
  handler() {
9082
9006
  const { scrollingElement } = document;
9083
9007
  if (!location.hash || scrollingElement.scrollTop === 0) {
@@ -9093,26 +9017,16 @@
9093
9017
  }
9094
9018
  });
9095
9019
  }
9096
- },
9097
- {
9098
- name: "transitionstart",
9099
- handler() {
9100
- this.transitionInProgress = once(
9101
- this.$el,
9102
- "transitionend transitioncancel",
9103
- () => this.transitionInProgress = null
9104
- );
9105
- }
9106
9020
  }
9107
9021
  ],
9108
9022
  update: [
9109
9023
  {
9110
- read({ height: height$1, width, margin, sticky }) {
9111
- this.inactive = !this.matchMedia || !isVisible(this.$el);
9024
+ read({ height: height$1, width, margin, sticky }, types) {
9025
+ this.inactive = !this.matchMedia || !isVisible$1(this.$el);
9112
9026
  if (this.inactive) {
9113
9027
  return;
9114
9028
  }
9115
- const hide = this.isFixed && !this.transitionInProgress;
9029
+ const hide = this.isFixed && types.has("update");
9116
9030
  if (hide) {
9117
9031
  preventTransition(this.target);
9118
9032
  this.hide();
@@ -9162,7 +9076,8 @@
9162
9076
  margin,
9163
9077
  top: offsetPosition(referenceElement)[0],
9164
9078
  sticky,
9165
- viewport: viewport2
9079
+ viewport: viewport2,
9080
+ maxScrollHeight
9166
9081
  };
9167
9082
  },
9168
9083
  write({ height, width, margin, offset, sticky }) {
@@ -9195,9 +9110,10 @@
9195
9110
  end,
9196
9111
  elHeight,
9197
9112
  height,
9198
- sticky
9113
+ sticky,
9114
+ maxScrollHeight
9199
9115
  }) {
9200
- const scroll2 = document.scrollingElement.scrollTop;
9116
+ const scroll2 = Math.min(document.scrollingElement.scrollTop, maxScrollHeight);
9201
9117
  const dir = prevScroll <= scroll2 ? "down" : "up";
9202
9118
  const referenceElement = this.isFixed ? this.placeholder : this.$el;
9203
9119
  return {
@@ -9354,9 +9270,12 @@
9354
9270
  function reset(el) {
9355
9271
  css(el, { position: "", top: "", marginTop: "", width: "" });
9356
9272
  }
9357
- function preventTransition(el) {
9358
- addClass(el, "uk-transition-disable");
9359
- requestAnimationFrame(() => removeClass(el, "uk-transition-disable"));
9273
+ const clsTransitionDisable = "uk-transition-disable";
9274
+ function preventTransition(element) {
9275
+ if (!hasClass(element, clsTransitionDisable)) {
9276
+ addClass(element, clsTransitionDisable);
9277
+ requestAnimationFrame(() => removeClass(element, clsTransitionDisable));
9278
+ }
9360
9279
  }
9361
9280
 
9362
9281
  var svg = {
@@ -9524,9 +9443,7 @@
9524
9443
  events: [
9525
9444
  {
9526
9445
  name: "click keydown",
9527
- delegate() {
9528
- return this.toggle;
9529
- },
9446
+ delegate: ({ toggle }) => toggle,
9530
9447
  handler(e) {
9531
9448
  if (!matches(e.current, selDisabled) && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
9532
9449
  e.preventDefault();
@@ -9536,9 +9453,7 @@
9536
9453
  },
9537
9454
  {
9538
9455
  name: "keydown",
9539
- delegate() {
9540
- return this.toggle;
9541
- },
9456
+ delegate: ({ toggle }) => toggle,
9542
9457
  handler(e) {
9543
9458
  const { current, keyCode } = e;
9544
9459
  const isVertical = matches(this.$el, this.selVertical);
@@ -9556,12 +9471,8 @@
9556
9471
  },
9557
9472
  {
9558
9473
  name: "click",
9559
- el() {
9560
- return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);
9561
- },
9562
- delegate() {
9563
- return `[${this.attrItem}],[data-${this.attrItem}]`;
9564
- },
9474
+ el: ({ $el, connects, itemNav }) => connects.concat(itemNav ? queryAll(itemNav, $el) : []),
9475
+ delegate: ({ attrItem }) => `[${attrItem}],[data-${attrItem}]`,
9565
9476
  handler(e) {
9566
9477
  if (e.target.closest("a,button")) {
9567
9478
  e.preventDefault();
@@ -9571,12 +9482,8 @@
9571
9482
  },
9572
9483
  {
9573
9484
  name: "swipeRight swipeLeft",
9574
- filter() {
9575
- return this.swiping;
9576
- },
9577
- el() {
9578
- return this.connects;
9579
- },
9485
+ filter: ({ swiping }) => swiping,
9486
+ el: ({ connects }) => connects,
9580
9487
  handler({ type }) {
9581
9488
  this.show(endsWith(type, "Left") ? "next" : "previous");
9582
9489
  }
@@ -9695,9 +9602,7 @@
9695
9602
  events: [
9696
9603
  {
9697
9604
  name: pointerDown$1,
9698
- filter() {
9699
- return includes(this.mode, "hover");
9700
- },
9605
+ filter: ({ mode }) => includes(mode, "hover"),
9701
9606
  handler(e) {
9702
9607
  this._preventClick = null;
9703
9608
  if (!isTouch(e) || isBoolean(this._showState) || this.$el.disabled) {
@@ -9720,9 +9625,7 @@
9720
9625
  // mouseenter mouseleave are added because of Firefox bug,
9721
9626
  // where pointerleave is triggered immediately after pointerenter on scroll
9722
9627
  name: `mouseenter mouseleave ${pointerEnter} ${pointerLeave} focus blur`,
9723
- filter() {
9724
- return includes(this.mode, "hover");
9725
- },
9628
+ filter: ({ mode }) => includes(mode, "hover"),
9726
9629
  handler(e) {
9727
9630
  if (isTouch(e) || this.$el.disabled) {
9728
9631
  return;
@@ -9744,9 +9647,7 @@
9744
9647
  },
9745
9648
  {
9746
9649
  name: "keydown",
9747
- filter() {
9748
- return includes(this.mode, "click") && !isTag(this.$el, "input");
9749
- },
9650
+ filter: ({ $el, mode }) => includes(mode, "click") && !isTag($el, "input"),
9750
9651
  handler(e) {
9751
9652
  if (e.keyCode === KEY_SPACE) {
9752
9653
  e.preventDefault();
@@ -9756,9 +9657,7 @@
9756
9657
  },
9757
9658
  {
9758
9659
  name: "click",
9759
- filter() {
9760
- return ["click", "hover"].some((mode) => includes(this.mode, mode));
9761
- },
9660
+ filter: ({ mode }) => ["click", "hover"].some((m) => includes(mode, m)),
9762
9661
  handler(e) {
9763
9662
  let link;
9764
9663
  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))) {
@@ -9771,12 +9670,8 @@
9771
9670
  },
9772
9671
  {
9773
9672
  name: "mediachange",
9774
- filter() {
9775
- return includes(this.mode, "media");
9776
- },
9777
- el() {
9778
- return this.target;
9779
- },
9673
+ filter: ({ mode }) => includes(mode, "media"),
9674
+ el: ({ target }) => target,
9780
9675
  handler(e, mediaObj) {
9781
9676
  if (mediaObj.matches ^ this.isToggled(this.target)) {
9782
9677
  this.toggle();