uikit 3.25.23-dev.c3eec68 → 3.25.23

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 (64) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/scss.js +83 -54
  3. package/dist/css/uikit-core-rtl.css +5 -64
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +5 -64
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +5 -64
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +5 -64
  10. package/dist/css/uikit.min.css +1 -1
  11. package/dist/js/components/countdown.js +1 -1
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +4 -4
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +324 -32
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +324 -32
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +1 -1
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +1 -1
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +1 -1
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +194 -192
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +1 -1
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +4 -2
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +1 -1
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +5 -3
  34. package/dist/js/components/tooltip.min.js +1 -1
  35. package/dist/js/components/upload.js +1 -1
  36. package/dist/js/components/upload.min.js +1 -1
  37. package/dist/js/uikit-core.js +103 -86
  38. package/dist/js/uikit-core.min.js +1 -1
  39. package/dist/js/uikit-icons.js +1 -1
  40. package/dist/js/uikit-icons.min.js +1 -1
  41. package/dist/js/uikit.js +100 -81
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +2 -2
  44. package/src/js/api/component.js +12 -8
  45. package/src/js/api/observables.js +3 -3
  46. package/src/js/components/tooltip.js +4 -2
  47. package/src/js/core/accordion.js +11 -7
  48. package/src/js/core/drop.js +10 -32
  49. package/src/js/core/dropnav.js +1 -1
  50. package/src/js/core/overflow-fade.js +6 -5
  51. package/src/js/mixin/event.js +31 -0
  52. package/src/js/mixin/modal.js +26 -34
  53. package/src/less/components/base.less +2 -35
  54. package/src/less/components/button.less +0 -8
  55. package/src/less/components/form.less +0 -6
  56. package/src/less/components/icon.less +0 -8
  57. package/src/less/components/search.less +0 -5
  58. package/src/less/components/utility.less +3 -7
  59. package/src/scss/components/base.scss +2 -35
  60. package/src/scss/components/button.scss +0 -8
  61. package/src/scss/components/form.scss +0 -6
  62. package/src/scss/components/icon.scss +0 -8
  63. package/src/scss/components/search.scss +0 -5
  64. package/src/scss/components/utility.scss +3 -7
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.23-dev.c3eec68 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.23 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1955,7 +1955,9 @@
1955
1955
  for (const el of toNodes(isFunction(targets) ? targets(this) : targets)) {
1956
1956
  $$('[loading="lazy"]', el).slice(0, preload - 1).forEach((el2) => removeAttr(el2, "loading"));
1957
1957
  }
1958
- entries.filter(({ isIntersecting }) => isIntersecting).forEach(({ target }) => observer.unobserve(target));
1958
+ for (const { isIntersecting, target } of entries) {
1959
+ isIntersecting && observer.unobserve(target);
1960
+ }
1959
1961
  },
1960
1962
  ...options
1961
1963
  });
@@ -2327,12 +2329,6 @@
2327
2329
  }
2328
2330
  };
2329
2331
 
2330
- function maybeDefaultPreventClick(e) {
2331
- if (e.target.closest('a[href="#"],a[href=""]')) {
2332
- e.preventDefault();
2333
- }
2334
- }
2335
-
2336
2332
  const keyMap = {
2337
2333
  TAB: 9,
2338
2334
  ENTER: 13,
@@ -2346,6 +2342,36 @@
2346
2342
  DOWN: 40
2347
2343
  };
2348
2344
 
2345
+ function maybeDefaultPreventClick(e) {
2346
+ if (e.target.closest('a[href="#"],a[href=""]')) {
2347
+ e.preventDefault();
2348
+ }
2349
+ }
2350
+ function onEscape(handler, isEligible = () => true) {
2351
+ return on(document, "keydown", (e) => {
2352
+ if (e.keyCode === keyMap.ESC && isEligible()) {
2353
+ handler(e);
2354
+ }
2355
+ });
2356
+ }
2357
+ function onOutsidePointer(handler, isOutside, isEligible) {
2358
+ return on(document, pointerDown$1, ({ target }) => {
2359
+ if (!isOutside(target) || isEligible && !isEligible()) {
2360
+ return;
2361
+ }
2362
+ once(
2363
+ document,
2364
+ `${pointerUp$1} ${pointerCancel} scroll`,
2365
+ ({ defaultPrevented, type, target: newTarget }) => {
2366
+ if (!defaultPrevented && type === pointerUp$1 && target === newTarget) {
2367
+ handler(target);
2368
+ }
2369
+ },
2370
+ true
2371
+ );
2372
+ });
2373
+ }
2374
+
2349
2375
  var filter = {
2350
2376
  mixins: [Animate],
2351
2377
  args: "target",
@@ -2856,6 +2882,7 @@
2856
2882
  }
2857
2883
 
2858
2884
  const active$1 = [];
2885
+ const pendingReject = /* @__PURE__ */ new WeakMap();
2859
2886
  var Modal = {
2860
2887
  mixins: [Class, Container, Togglable],
2861
2888
  props: {
@@ -3010,11 +3037,13 @@
3010
3037
  }
3011
3038
  };
3012
3039
  function animate$1(el, show, { transitionElement, _toggle }) {
3040
+ let rejectAnimation;
3013
3041
  return new Promise(
3014
3042
  (resolve, reject) => once(el, "show hide", () => {
3015
3043
  var _a;
3016
- (_a = el._reject) == null ? void 0 : _a.call(el);
3017
- el._reject = reject;
3044
+ (_a = pendingReject.get(el)) == null ? void 0 : _a();
3045
+ rejectAnimation = reject;
3046
+ pendingReject.set(el, reject);
3018
3047
  _toggle(el, show);
3019
3048
  const off = once(
3020
3049
  transitionElement,
@@ -3035,10 +3064,14 @@
3035
3064
  toMs(css(transitionElement, "transitionDuration"))
3036
3065
  );
3037
3066
  })
3038
- ).then(() => delete el._reject);
3067
+ ).then(() => {
3068
+ if (pendingReject.get(el) === rejectAnimation) {
3069
+ pendingReject.delete(el);
3070
+ }
3071
+ });
3039
3072
  }
3040
3073
  function toMs(time) {
3041
- return time ? endsWith(time, "ms") ? toFloat(time) : toFloat(time) * 1e3 : 0;
3074
+ return toFloat(time) * (endsWith(time, "ms") ? 1 : 1e3);
3042
3075
  }
3043
3076
  function preventBackgroundFocus(modal) {
3044
3077
  return on(document, "focusin", (e) => {
@@ -3054,28 +3087,17 @@
3054
3087
  });
3055
3088
  }
3056
3089
  function listenForBackgroundClose$1(modal) {
3057
- return on(document, pointerDown$1, ({ target }) => {
3058
- if (last(active$1) !== modal || modal.overlay && !modal.$el.contains(target) || !modal.panel || modal.panel.contains(target)) {
3059
- return;
3060
- }
3061
- once(
3062
- document,
3063
- `${pointerUp$1} ${pointerCancel} scroll`,
3064
- ({ defaultPrevented, type, target: newTarget }) => {
3065
- if (!defaultPrevented && type === pointerUp$1 && target === newTarget) {
3066
- modal.hide();
3067
- }
3068
- },
3069
- true
3070
- );
3071
- });
3090
+ return onOutsidePointer(
3091
+ () => modal.hide(),
3092
+ (target) => (!modal.overlay || modal.$el.contains(target)) && Boolean(modal.panel) && !modal.panel.contains(target),
3093
+ () => last(active$1) === modal
3094
+ );
3072
3095
  }
3073
3096
  function listenForEscClose$1(modal) {
3074
- return on(document, "keydown", (e) => {
3075
- if (e.keyCode === 27 && last(active$1) === modal) {
3076
- modal.hide();
3077
- }
3078
- });
3097
+ return onEscape(
3098
+ () => modal.hide(),
3099
+ () => last(active$1) === modal
3100
+ );
3079
3101
  }
3080
3102
  function setAriaExpanded(el, toggled) {
3081
3103
  if (el == null ? void 0 : el.ariaExpanded) {
@@ -3389,7 +3411,7 @@
3389
3411
  return Math.atan2(Math.abs(pos2.y - pos1.y), Math.abs(pos2.x - pos1.x)) * 180 / Math.PI;
3390
3412
  }
3391
3413
 
3392
- var VERSION = '3.25.23-dev.c3eec68';
3414
+ var VERSION = '3.25.23';
3393
3415
 
3394
3416
  function initWatches(instance) {
3395
3417
  instance._watches = [];
@@ -3715,7 +3737,7 @@
3715
3737
  App.version = VERSION;
3716
3738
 
3717
3739
  const PREFIX = "uk-";
3718
- const DATA = "__uikit__";
3740
+ const elementComponents = /* @__PURE__ */ new WeakMap();
3719
3741
  const components$2 = {};
3720
3742
  function component(name, options) {
3721
3743
  var _a, _b;
@@ -3753,22 +3775,24 @@
3753
3775
  }
3754
3776
  }
3755
3777
  function getComponents(element) {
3756
- return (element == null ? void 0 : element[DATA]) || {};
3778
+ return elementComponents.get(element) || {};
3757
3779
  }
3758
3780
  function getComponent(element, name) {
3759
3781
  return getComponents(element)[name];
3760
3782
  }
3761
3783
  function attachToElement(element, instance) {
3762
- if (!element[DATA]) {
3763
- element[DATA] = {};
3784
+ let components2 = elementComponents.get(element);
3785
+ if (!components2) {
3786
+ components2 = {};
3787
+ elementComponents.set(element, components2);
3764
3788
  }
3765
- element[DATA][instance.$options.name] = instance;
3789
+ components2[instance.$options.name] = instance;
3766
3790
  }
3767
3791
  function detachFromElement(element, instance) {
3768
- var _a;
3769
- (_a = element[DATA]) == null ? true : delete _a[instance.$options.name];
3770
- if (isEmpty(element[DATA])) {
3771
- delete element[DATA];
3792
+ const components2 = elementComponents.get(element);
3793
+ components2 == null ? true : delete components2[instance.$options.name];
3794
+ if (isEmpty(components2)) {
3795
+ elementComponents.delete(element);
3772
3796
  }
3773
3797
  }
3774
3798
 
@@ -6409,10 +6433,12 @@
6409
6433
  }
6410
6434
  function parseProps(options) {
6411
6435
  const { el, id, data: data$1 } = options;
6412
- return ["delay", "title"].reduce((obj, key) => ({ [key]: data(el, key), ...obj }), {
6436
+ return {
6437
+ title: data(el, "title"),
6438
+ delay: data(el, "delay"),
6413
6439
  ...parseOptions(data(el, id), ["title"]),
6414
6440
  ...data$1
6415
- });
6441
+ };
6416
6442
  }
6417
6443
 
6418
6444
  var upload = {
@@ -6714,6 +6740,7 @@
6714
6740
  globalApi(App);
6715
6741
  instanceApi(App);
6716
6742
 
6743
+ const wrappers = /* @__PURE__ */ new WeakMap();
6717
6744
  var Accordion = {
6718
6745
  mixins: [Class, Togglable],
6719
6746
  props: {
@@ -6743,10 +6770,12 @@
6743
6770
  return this.items.map((item) => $(toggle, item));
6744
6771
  },
6745
6772
  contents({ content }) {
6746
- return this.items.map((item) => {
6747
- var _a;
6748
- return ((_a = item._wrapper) == null ? void 0 : _a.firstElementChild) || $(content, item);
6749
- });
6773
+ return this.items.map(
6774
+ (item) => {
6775
+ var _a;
6776
+ return ((_a = wrappers.get(item)) == null ? void 0 : _a.firstElementChild) || $(content, item);
6777
+ }
6778
+ );
6750
6779
  }
6751
6780
  },
6752
6781
  watch: {
@@ -6853,12 +6882,12 @@
6853
6882
  el && (el.hidden = hide2);
6854
6883
  }
6855
6884
  async function transition(el, show, { content, duration, velocity, transition: transition2 }) {
6856
- var _a;
6857
- content = ((_a = el._wrapper) == null ? void 0 : _a.firstElementChild) || $(content, el);
6858
- if (!el._wrapper) {
6859
- el._wrapper = wrapAll(content, "<div>");
6885
+ let wrapper = wrappers.get(el);
6886
+ content = (wrapper == null ? void 0 : wrapper.firstElementChild) || $(content, el);
6887
+ if (!wrapper) {
6888
+ wrapper = wrapAll(content, "<div>");
6889
+ wrappers.set(el, wrapper);
6860
6890
  }
6861
- const wrapper = el._wrapper;
6862
6891
  css(wrapper, "overflow", "hidden");
6863
6892
  const currentHeight = toFloat(css(wrapper, "height"));
6864
6893
  await Transition.cancel(wrapper);
@@ -6869,7 +6898,7 @@
6869
6898
  css(wrapper, "height", currentHeight);
6870
6899
  await Transition.start(wrapper, { height: show ? endHeight : 0 }, duration, transition2);
6871
6900
  unwrap(content);
6872
- delete el._wrapper;
6901
+ wrappers.delete(el);
6873
6902
  if (!show) {
6874
6903
  hide(content, true);
6875
6904
  }
@@ -7430,32 +7459,21 @@
7430
7459
  });
7431
7460
  }
7432
7461
  function listenForEscClose(drop) {
7433
- return on(document, "keydown", (e) => {
7434
- if (e.keyCode === keyMap.ESC) {
7435
- drop.hide(false);
7436
- }
7437
- });
7462
+ return onEscape(() => drop.hide(false));
7438
7463
  }
7439
7464
  function listenForScrollClose(drop) {
7440
7465
  return listenForScroll(drop, () => drop.hide(false));
7441
7466
  }
7442
7467
  function listenForBackgroundClose(drop) {
7443
- return on(document, pointerDown$1, ({ target }) => {
7444
- if (drop.$el.contains(target)) {
7445
- return;
7446
- }
7447
- once(
7448
- document,
7449
- `${pointerUp$1} ${pointerCancel} scroll`,
7450
- ({ defaultPrevented, type, target: newTarget }) => {
7451
- var _a;
7452
- if (!defaultPrevented && type === pointerUp$1 && target === newTarget && !((_a = drop.targetEl) == null ? void 0 : _a.contains(target))) {
7453
- drop.hide(false);
7454
- }
7455
- },
7456
- true
7457
- );
7458
- });
7468
+ return onOutsidePointer(
7469
+ (target) => {
7470
+ var _a;
7471
+ if (!((_a = drop.targetEl) == null ? void 0 : _a.contains(target))) {
7472
+ drop.hide(false);
7473
+ }
7474
+ },
7475
+ (target) => !drop.$el.contains(target)
7476
+ );
7459
7477
  }
7460
7478
 
7461
7479
  var Dropnav = {
@@ -7498,7 +7516,7 @@
7498
7516
  return null;
7499
7517
  }
7500
7518
  dropbar = this._dropbar || query(dropbar, this.$el) || $(`+ .${this.clsDropbar}`, this.$el);
7501
- return dropbar ? dropbar : this._dropbar = $("<div>");
7519
+ return dropbar || (this._dropbar = $("<div>"));
7502
7520
  },
7503
7521
  dropContainer(_, $el) {
7504
7522
  return this.container || $el;
@@ -9011,11 +9029,12 @@
9011
9029
  ],
9012
9030
  update: {
9013
9031
  read() {
9014
- const overflow = [];
9015
- for (const prop of ["Width", "Height"]) {
9016
- overflow.push(this.$el[`scroll${prop}`] - this.$el[`client${prop}`]);
9017
- }
9018
- return { overflow };
9032
+ return {
9033
+ overflow: [
9034
+ this.$el.scrollWidth - this.$el.clientWidth,
9035
+ this.$el.scrollHeight - this.$el.clientHeight
9036
+ ]
9037
+ };
9019
9038
  },
9020
9039
  write({ overflow }) {
9021
9040
  for (let i = 0; i < 2; i++) {