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
@@ -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() :
@@ -2158,7 +2158,7 @@
2158
2158
  };
2159
2159
  App.util = util;
2160
2160
  App.options = {};
2161
- App.version = "3.23.8-dev.ff7a25595";
2161
+ App.version = "3.23.9-dev.0064d7d94";
2162
2162
 
2163
2163
  const PREFIX = "uk-";
2164
2164
  const DATA = "__uikit__";
@@ -3250,6 +3250,7 @@
3250
3250
  if (this.toggle && !this.targetEl) {
3251
3251
  this.targetEl = createToggleComponent(this);
3252
3252
  }
3253
+ attr(this.targetEl, "aria-expanded", false);
3253
3254
  this._style = pick(this.$el.style, ["width", "height"]);
3254
3255
  },
3255
3256
  disconnected() {
@@ -3380,7 +3381,7 @@
3380
3381
  }
3381
3382
  active$1 = this.isActive() ? null : active$1;
3382
3383
  this.tracker.cancel();
3383
- attr(this.targetEl, "aria-expanded", null);
3384
+ attr(this.targetEl, "aria-expanded", false);
3384
3385
  }
3385
3386
  }
3386
3387
  ],
@@ -3504,7 +3505,7 @@
3504
3505
  target: drop.$el,
3505
3506
  mode: drop.mode
3506
3507
  });
3507
- attr($el, "aria-haspopup", true);
3508
+ $el.ariaHasPopup = true;
3508
3509
  return $el;
3509
3510
  }
3510
3511
  function listenForResize(drop) {
@@ -3577,6 +3578,7 @@
3577
3578
  boundary: true,
3578
3579
  dropbar: false,
3579
3580
  dropbarAnchor: false,
3581
+ delayShow: 160,
3580
3582
  duration: 200,
3581
3583
  container: false,
3582
3584
  selNavItem: "> li > a, > ul > li > a"
@@ -3626,6 +3628,7 @@
3626
3628
  },
3627
3629
  connected() {
3628
3630
  this.initializeDropdowns();
3631
+ preventInitialPointerEnter(this.$el);
3629
3632
  },
3630
3633
  disconnected() {
3631
3634
  remove$1(this._dropbar);
@@ -3864,6 +3867,14 @@
3864
3867
  toggles[getIndex(next, toggles, toggles.indexOf(active2.targetEl || current))].focus();
3865
3868
  }
3866
3869
  }
3870
+ function preventInitialPointerEnter(el) {
3871
+ const off = () => handlers.forEach((handler) => handler());
3872
+ const handlers = [
3873
+ once(el.ownerDocument, pointerMove, (e) => el.contains(e.target) || off()),
3874
+ on(el, `mouseenter ${pointerEnter}`, (e) => e.stopPropagation(), { capture: true }),
3875
+ on(el, `mouseleave ${pointerLeave}`, off, { capture: true })
3876
+ ];
3877
+ }
3867
3878
 
3868
3879
  var formCustom = {
3869
3880
  mixins: [Class],
@@ -4461,7 +4472,6 @@
4461
4472
  const symbolRe = /<symbol([^]*?id=(['"])(.+?)\2[^]*?<\/)symbol>/g;
4462
4473
  const parseSymbols = memoize(function(svg) {
4463
4474
  const symbols = {};
4464
- symbolRe.lastIndex = 0;
4465
4475
  let match;
4466
4476
  while (match = symbolRe.exec(svg)) {
4467
4477
  symbols[match[3]] = `<svg ${match[1]}svg>`;
@@ -4519,6 +4529,12 @@
4519
4529
  }),
4520
4530
  beforeConnect() {
4521
4531
  addClass(this.$el, this.$options.id);
4532
+ },
4533
+ async connected() {
4534
+ const svg = await this.svg;
4535
+ if (svg) {
4536
+ svg.ariaHidden = true;
4537
+ }
4522
4538
  }
4523
4539
  };
4524
4540
  const NavParentIcon = {
@@ -4585,7 +4601,10 @@
4585
4601
  };
4586
4602
  const NavbarToggleIcon = {
4587
4603
  extends: ButtonComponent,
4588
- i18n: { label: "Open menu" }
4604
+ i18n: { label: "Open menu" },
4605
+ beforeConnect() {
4606
+ this.$el.ariaExpanded = false;
4607
+ }
4589
4608
  };
4590
4609
  const Close = {
4591
4610
  extends: ButtonComponent,
@@ -5022,11 +5041,12 @@
5022
5041
  {
5023
5042
  name: "toggle",
5024
5043
  self: true,
5025
- handler(e) {
5044
+ handler(e, toggle) {
5026
5045
  if (e.defaultPrevented) {
5027
5046
  return;
5028
5047
  }
5029
5048
  e.preventDefault();
5049
+ this.target = toggle == null ? void 0 : toggle.$el;
5030
5050
  if (this.isToggled() === includes(active, this)) {
5031
5051
  this.toggle();
5032
5052
  }
@@ -5067,6 +5087,7 @@
5067
5087
  { self: true }
5068
5088
  );
5069
5089
  addClass(document.documentElement, this.clsPage);
5090
+ setAriaExpanded(this.target, true);
5070
5091
  }
5071
5092
  },
5072
5093
  {
@@ -5092,6 +5113,11 @@
5092
5113
  if (!active.some((modal) => modal.clsPage === this.clsPage)) {
5093
5114
  removeClass(document.documentElement, this.clsPage);
5094
5115
  }
5116
+ if (isFocusable(this.target)) {
5117
+ this.target.focus();
5118
+ }
5119
+ setAriaExpanded(this.target, false);
5120
+ this.target = null;
5095
5121
  }
5096
5122
  }
5097
5123
  ],
@@ -5175,6 +5201,11 @@
5175
5201
  }
5176
5202
  });
5177
5203
  }
5204
+ function setAriaExpanded(el, toggled) {
5205
+ if (el == null ? void 0 : el.ariaExpanded) {
5206
+ el.ariaExpanded = toggled;
5207
+ }
5208
+ }
5178
5209
 
5179
5210
  var modal = {
5180
5211
  install,
@@ -5304,6 +5335,7 @@
5304
5335
  dropbarTransparentMode: Boolean
5305
5336
  },
5306
5337
  data: {
5338
+ delayShow: 200,
5307
5339
  clsDrop: "uk-navbar-dropdown",
5308
5340
  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",
5309
5341
  // Simplify with :where() selector once browser target is Safari 14+
@@ -5709,7 +5741,7 @@
5709
5741
  offset: 0
5710
5742
  },
5711
5743
  computed: {
5712
- links: ({ target }, $el) => $$(target, $el).filter((el) => isSameSiteAnchor(el)),
5744
+ links: ({ target }, $el) => $$(target, $el).filter((el) => getTargetedElement(el)),
5713
5745
  elements({ closest }) {
5714
5746
  return this.links.map((el) => el.closest(closest || "*"));
5715
5747
  }
@@ -5725,7 +5757,7 @@
5725
5757
  update: [
5726
5758
  {
5727
5759
  read() {
5728
- const targets = this.links.map((el) => getTargetedElement(el)).filter(Boolean);
5760
+ const targets = this.links.map(getTargetedElement);
5729
5761
  const { length } = targets;
5730
5762
  if (!length || !isVisible(this.$el)) {
5731
5763
  return false;
@@ -6500,11 +6532,15 @@
6500
6532
  name: "click",
6501
6533
  filter: ({ mode }) => ["click", "hover"].some((m) => includes(mode, m)),
6502
6534
  handler(e) {
6503
- let link;
6504
- 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))) {
6535
+ if (e.defaultPrevented) {
6536
+ return;
6537
+ }
6538
+ const link = e.target.closest("a");
6539
+ const isButtonLike = isSameSiteAnchor(link) && (!link.hash || matches(this.target, link.hash));
6540
+ if (this._preventClick || isButtonLike || link && !this.isToggled(this.target)) {
6505
6541
  e.preventDefault();
6506
6542
  }
6507
- if (!this._preventClick && includes(this.mode, "click")) {
6543
+ if (!this._preventClick && includes(this.mode, "click") && (!link || isButtonLike || e.defaultPrevented)) {
6508
6544
  this.toggle();
6509
6545
  }
6510
6546
  }