uikit 3.23.8-dev.ff7a25595 → 3.23.9-dev.0064d7d94

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 (50) hide show
  1. package/CHANGELOG.md +18 -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 +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +14 -2
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +14 -2
  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 +1 -1
  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 +1 -1
  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 +48 -12
  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 +48 -12
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/drop.js +3 -2
  44. package/src/js/core/dropnav.js +17 -0
  45. package/src/js/core/icon.js +12 -0
  46. package/src/js/core/navbar.js +1 -0
  47. package/src/js/core/scrollspy-nav.js +2 -3
  48. package/src/js/core/toggle.js +15 -9
  49. package/src/js/mixin/modal.js +18 -1
  50. package/src/js/mixin/svg.js +0 -2
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.23.8-dev.ff7a25595 | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */
1
+ /*! UIkit 3.23.9-dev.0064d7d94 | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -2958,11 +2958,12 @@
2958
2958
  {
2959
2959
  name: "toggle",
2960
2960
  self: true,
2961
- handler(e) {
2961
+ handler(e, toggle) {
2962
2962
  if (e.defaultPrevented) {
2963
2963
  return;
2964
2964
  }
2965
2965
  e.preventDefault();
2966
+ this.target = toggle == null ? void 0 : toggle.$el;
2966
2967
  if (this.isToggled() === includes(active$1, this)) {
2967
2968
  this.toggle();
2968
2969
  }
@@ -3003,6 +3004,7 @@
3003
3004
  { self: true }
3004
3005
  );
3005
3006
  addClass(document.documentElement, this.clsPage);
3007
+ setAriaExpanded(this.target, true);
3006
3008
  }
3007
3009
  },
3008
3010
  {
@@ -3028,6 +3030,11 @@
3028
3030
  if (!active$1.some((modal) => modal.clsPage === this.clsPage)) {
3029
3031
  removeClass(document.documentElement, this.clsPage);
3030
3032
  }
3033
+ if (isFocusable(this.target)) {
3034
+ this.target.focus();
3035
+ }
3036
+ setAriaExpanded(this.target, false);
3037
+ this.target = null;
3031
3038
  }
3032
3039
  }
3033
3040
  ],
@@ -3111,6 +3118,11 @@
3111
3118
  }
3112
3119
  });
3113
3120
  }
3121
+ function setAriaExpanded(el, toggled) {
3122
+ if (el == null ? void 0 : el.ariaExpanded) {
3123
+ el.ariaExpanded = toggled;
3124
+ }
3125
+ }
3114
3126
 
3115
3127
  var Animations$2 = {
3116
3128
  slide: {
@@ -3733,7 +3745,7 @@
3733
3745
  };
3734
3746
  App.util = util;
3735
3747
  App.options = {};
3736
- App.version = "3.23.8-dev.ff7a25595";
3748
+ App.version = "3.23.9-dev.0064d7d94";
3737
3749
 
3738
3750
  const PREFIX = "uk-";
3739
3751
  const DATA = "__uikit__";
@@ -7073,6 +7085,7 @@
7073
7085
  if (this.toggle && !this.targetEl) {
7074
7086
  this.targetEl = createToggleComponent(this);
7075
7087
  }
7088
+ attr(this.targetEl, "aria-expanded", false);
7076
7089
  this._style = pick(this.$el.style, ["width", "height"]);
7077
7090
  },
7078
7091
  disconnected() {
@@ -7203,7 +7216,7 @@
7203
7216
  }
7204
7217
  active = this.isActive() ? null : active;
7205
7218
  this.tracker.cancel();
7206
- attr(this.targetEl, "aria-expanded", null);
7219
+ attr(this.targetEl, "aria-expanded", false);
7207
7220
  }
7208
7221
  }
7209
7222
  ],
@@ -7327,7 +7340,7 @@
7327
7340
  target: drop.$el,
7328
7341
  mode: drop.mode
7329
7342
  });
7330
- attr($el, "aria-haspopup", true);
7343
+ $el.ariaHasPopup = true;
7331
7344
  return $el;
7332
7345
  }
7333
7346
  function listenForResize(drop) {
@@ -7400,6 +7413,7 @@
7400
7413
  boundary: true,
7401
7414
  dropbar: false,
7402
7415
  dropbarAnchor: false,
7416
+ delayShow: 160,
7403
7417
  duration: 200,
7404
7418
  container: false,
7405
7419
  selNavItem: "> li > a, > ul > li > a"
@@ -7449,6 +7463,7 @@
7449
7463
  },
7450
7464
  connected() {
7451
7465
  this.initializeDropdowns();
7466
+ preventInitialPointerEnter(this.$el);
7452
7467
  },
7453
7468
  disconnected() {
7454
7469
  remove$1(this._dropbar);
@@ -7687,6 +7702,14 @@
7687
7702
  toggles[getIndex(next, toggles, toggles.indexOf(active2.targetEl || current))].focus();
7688
7703
  }
7689
7704
  }
7705
+ function preventInitialPointerEnter(el) {
7706
+ const off = () => handlers.forEach((handler) => handler());
7707
+ const handlers = [
7708
+ once(el.ownerDocument, pointerMove$1, (e) => el.contains(e.target) || off()),
7709
+ on(el, `mouseenter ${pointerEnter}`, (e) => e.stopPropagation(), { capture: true }),
7710
+ on(el, `mouseleave ${pointerLeave}`, off, { capture: true })
7711
+ ];
7712
+ }
7690
7713
 
7691
7714
  var formCustom = {
7692
7715
  mixins: [Class],
@@ -8160,7 +8183,6 @@
8160
8183
  const symbolRe = /<symbol([^]*?id=(['"])(.+?)\2[^]*?<\/)symbol>/g;
8161
8184
  const parseSymbols = memoize(function(svg) {
8162
8185
  const symbols = {};
8163
- symbolRe.lastIndex = 0;
8164
8186
  let match;
8165
8187
  while (match = symbolRe.exec(svg)) {
8166
8188
  symbols[match[3]] = `<svg ${match[1]}svg>`;
@@ -8218,6 +8240,12 @@
8218
8240
  }),
8219
8241
  beforeConnect() {
8220
8242
  addClass(this.$el, this.$options.id);
8243
+ },
8244
+ async connected() {
8245
+ const svg = await this.svg;
8246
+ if (svg) {
8247
+ svg.ariaHidden = true;
8248
+ }
8221
8249
  }
8222
8250
  };
8223
8251
  const NavParentIcon = {
@@ -8284,7 +8312,10 @@
8284
8312
  };
8285
8313
  const NavbarToggleIcon = {
8286
8314
  extends: ButtonComponent,
8287
- i18n: { label: "Open menu" }
8315
+ i18n: { label: "Open menu" },
8316
+ beforeConnect() {
8317
+ this.$el.ariaExpanded = false;
8318
+ }
8288
8319
  };
8289
8320
  const Close = {
8290
8321
  extends: ButtonComponent,
@@ -8640,6 +8671,7 @@
8640
8671
  dropbarTransparentMode: Boolean
8641
8672
  },
8642
8673
  data: {
8674
+ delayShow: 200,
8643
8675
  clsDrop: "uk-navbar-dropdown",
8644
8676
  selNavItem: ".uk-navbar-nav > li > a,a.uk-navbar-item,button.uk-navbar-item,.uk-navbar-item a,.uk-navbar-item button,.uk-navbar-toggle",
8645
8677
  // Simplify with :where() selector once browser target is Safari 14+
@@ -9045,7 +9077,7 @@
9045
9077
  offset: 0
9046
9078
  },
9047
9079
  computed: {
9048
- links: ({ target }, $el) => $$(target, $el).filter((el) => isSameSiteAnchor(el)),
9080
+ links: ({ target }, $el) => $$(target, $el).filter((el) => getTargetedElement(el)),
9049
9081
  elements({ closest }) {
9050
9082
  return this.links.map((el) => el.closest(closest || "*"));
9051
9083
  }
@@ -9061,7 +9093,7 @@
9061
9093
  update: [
9062
9094
  {
9063
9095
  read() {
9064
- const targets = this.links.map((el) => getTargetedElement(el)).filter(Boolean);
9096
+ const targets = this.links.map(getTargetedElement);
9065
9097
  const { length } = targets;
9066
9098
  if (!length || !isVisible(this.$el)) {
9067
9099
  return false;
@@ -9827,11 +9859,15 @@
9827
9859
  name: "click",
9828
9860
  filter: ({ mode }) => ["click", "hover"].some((m) => includes(mode, m)),
9829
9861
  handler(e) {
9830
- let link;
9831
- 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))) {
9862
+ if (e.defaultPrevented) {
9863
+ return;
9864
+ }
9865
+ const link = e.target.closest("a");
9866
+ const isButtonLike = isSameSiteAnchor(link) && (!link.hash || matches(this.target, link.hash));
9867
+ if (this._preventClick || isButtonLike || link && !this.isToggled(this.target)) {
9832
9868
  e.preventDefault();
9833
9869
  }
9834
- if (!this._preventClick && includes(this.mode, "click")) {
9870
+ if (!this._preventClick && includes(this.mode, "click") && (!link || isButtonLike || e.defaultPrevented)) {
9835
9871
  this.toggle();
9836
9872
  }
9837
9873
  }