uikit 3.25.23-dev.0ea1d51 → 3.25.23-dev.9ebc131

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 (51) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/scss.js +83 -54
  3. package/dist/css/uikit-core-rtl.css +1 -1
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +1 -1
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +1 -1
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +1 -1
  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 +191 -191
  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 +1 -1
  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 +100 -85
  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 +97 -80
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +1 -1
  44. package/src/js/api/component.js +12 -8
  45. package/src/js/components/tooltip.js +4 -2
  46. package/src/js/core/accordion.js +11 -7
  47. package/src/js/core/drop.js +10 -32
  48. package/src/js/core/dropnav.js +1 -1
  49. package/src/js/core/overflow-fade.js +6 -5
  50. package/src/js/mixin/event.js +31 -0
  51. package/src/js/mixin/modal.js +26 -34
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.23-dev.0ea1d51 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.23-dev.9ebc131 | 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() :
@@ -2329,12 +2329,6 @@
2329
2329
  }
2330
2330
  };
2331
2331
 
2332
- function maybeDefaultPreventClick(e) {
2333
- if (e.target.closest('a[href="#"],a[href=""]')) {
2334
- e.preventDefault();
2335
- }
2336
- }
2337
-
2338
2332
  const keyMap = {
2339
2333
  TAB: 9,
2340
2334
  ENTER: 13,
@@ -2348,6 +2342,36 @@
2348
2342
  DOWN: 40
2349
2343
  };
2350
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
+
2351
2375
  var filter = {
2352
2376
  mixins: [Animate],
2353
2377
  args: "target",
@@ -2858,6 +2882,7 @@
2858
2882
  }
2859
2883
 
2860
2884
  const active$1 = [];
2885
+ const pendingReject = /* @__PURE__ */ new WeakMap();
2861
2886
  var Modal = {
2862
2887
  mixins: [Class, Container, Togglable],
2863
2888
  props: {
@@ -3012,11 +3037,13 @@
3012
3037
  }
3013
3038
  };
3014
3039
  function animate$1(el, show, { transitionElement, _toggle }) {
3040
+ let rejectAnimation;
3015
3041
  return new Promise(
3016
3042
  (resolve, reject) => once(el, "show hide", () => {
3017
3043
  var _a;
3018
- (_a = el._reject) == null ? void 0 : _a.call(el);
3019
- el._reject = reject;
3044
+ (_a = pendingReject.get(el)) == null ? void 0 : _a();
3045
+ rejectAnimation = reject;
3046
+ pendingReject.set(el, reject);
3020
3047
  _toggle(el, show);
3021
3048
  const off = once(
3022
3049
  transitionElement,
@@ -3037,10 +3064,14 @@
3037
3064
  toMs(css(transitionElement, "transitionDuration"))
3038
3065
  );
3039
3066
  })
3040
- ).then(() => delete el._reject);
3067
+ ).then(() => {
3068
+ if (pendingReject.get(el) === rejectAnimation) {
3069
+ pendingReject.delete(el);
3070
+ }
3071
+ });
3041
3072
  }
3042
3073
  function toMs(time) {
3043
- return time ? endsWith(time, "ms") ? toFloat(time) : toFloat(time) * 1e3 : 0;
3074
+ return toFloat(time) * (endsWith(time, "ms") ? 1 : 1e3);
3044
3075
  }
3045
3076
  function preventBackgroundFocus(modal) {
3046
3077
  return on(document, "focusin", (e) => {
@@ -3056,28 +3087,17 @@
3056
3087
  });
3057
3088
  }
3058
3089
  function listenForBackgroundClose$1(modal) {
3059
- return on(document, pointerDown$1, ({ target }) => {
3060
- if (last(active$1) !== modal || modal.overlay && !modal.$el.contains(target) || !modal.panel || modal.panel.contains(target)) {
3061
- return;
3062
- }
3063
- once(
3064
- document,
3065
- `${pointerUp$1} ${pointerCancel} scroll`,
3066
- ({ defaultPrevented, type, target: newTarget }) => {
3067
- if (!defaultPrevented && type === pointerUp$1 && target === newTarget) {
3068
- modal.hide();
3069
- }
3070
- },
3071
- true
3072
- );
3073
- });
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
+ );
3074
3095
  }
3075
3096
  function listenForEscClose$1(modal) {
3076
- return on(document, "keydown", (e) => {
3077
- if (e.keyCode === 27 && last(active$1) === modal) {
3078
- modal.hide();
3079
- }
3080
- });
3097
+ return onEscape(
3098
+ () => modal.hide(),
3099
+ () => last(active$1) === modal
3100
+ );
3081
3101
  }
3082
3102
  function setAriaExpanded(el, toggled) {
3083
3103
  if (el == null ? void 0 : el.ariaExpanded) {
@@ -3391,7 +3411,7 @@
3391
3411
  return Math.atan2(Math.abs(pos2.y - pos1.y), Math.abs(pos2.x - pos1.x)) * 180 / Math.PI;
3392
3412
  }
3393
3413
 
3394
- var VERSION = '3.25.23-dev.0ea1d51';
3414
+ var VERSION = '3.25.23-dev.9ebc131';
3395
3415
 
3396
3416
  function initWatches(instance) {
3397
3417
  instance._watches = [];
@@ -3717,7 +3737,7 @@
3717
3737
  App.version = VERSION;
3718
3738
 
3719
3739
  const PREFIX = "uk-";
3720
- const DATA = "__uikit__";
3740
+ const elementComponents = /* @__PURE__ */ new WeakMap();
3721
3741
  const components$2 = {};
3722
3742
  function component(name, options) {
3723
3743
  var _a, _b;
@@ -3755,22 +3775,24 @@
3755
3775
  }
3756
3776
  }
3757
3777
  function getComponents(element) {
3758
- return (element == null ? void 0 : element[DATA]) || {};
3778
+ return elementComponents.get(element) || {};
3759
3779
  }
3760
3780
  function getComponent(element, name) {
3761
3781
  return getComponents(element)[name];
3762
3782
  }
3763
3783
  function attachToElement(element, instance) {
3764
- if (!element[DATA]) {
3765
- element[DATA] = {};
3784
+ let components2 = elementComponents.get(element);
3785
+ if (!components2) {
3786
+ components2 = {};
3787
+ elementComponents.set(element, components2);
3766
3788
  }
3767
- element[DATA][instance.$options.name] = instance;
3789
+ components2[instance.$options.name] = instance;
3768
3790
  }
3769
3791
  function detachFromElement(element, instance) {
3770
- var _a;
3771
- (_a = element[DATA]) == null ? true : delete _a[instance.$options.name];
3772
- if (isEmpty(element[DATA])) {
3773
- 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);
3774
3796
  }
3775
3797
  }
3776
3798
 
@@ -6411,10 +6433,12 @@
6411
6433
  }
6412
6434
  function parseProps(options) {
6413
6435
  const { el, id, data: data$1 } = options;
6414
- return ["delay", "title"].reduce((obj, key) => ({ [key]: data(el, key), ...obj }), {
6436
+ return {
6437
+ title: data(el, "title"),
6438
+ delay: data(el, "delay"),
6415
6439
  ...parseOptions(data(el, id), ["title"]),
6416
6440
  ...data$1
6417
- });
6441
+ };
6418
6442
  }
6419
6443
 
6420
6444
  var upload = {
@@ -6716,6 +6740,7 @@
6716
6740
  globalApi(App);
6717
6741
  instanceApi(App);
6718
6742
 
6743
+ const wrappers = /* @__PURE__ */ new WeakMap();
6719
6744
  var Accordion = {
6720
6745
  mixins: [Class, Togglable],
6721
6746
  props: {
@@ -6745,10 +6770,12 @@
6745
6770
  return this.items.map((item) => $(toggle, item));
6746
6771
  },
6747
6772
  contents({ content }) {
6748
- return this.items.map((item) => {
6749
- var _a;
6750
- return ((_a = item._wrapper) == null ? void 0 : _a.firstElementChild) || $(content, item);
6751
- });
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
+ );
6752
6779
  }
6753
6780
  },
6754
6781
  watch: {
@@ -6855,12 +6882,12 @@
6855
6882
  el && (el.hidden = hide2);
6856
6883
  }
6857
6884
  async function transition(el, show, { content, duration, velocity, transition: transition2 }) {
6858
- var _a;
6859
- content = ((_a = el._wrapper) == null ? void 0 : _a.firstElementChild) || $(content, el);
6860
- if (!el._wrapper) {
6861
- 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);
6862
6890
  }
6863
- const wrapper = el._wrapper;
6864
6891
  css(wrapper, "overflow", "hidden");
6865
6892
  const currentHeight = toFloat(css(wrapper, "height"));
6866
6893
  await Transition.cancel(wrapper);
@@ -6871,7 +6898,7 @@
6871
6898
  css(wrapper, "height", currentHeight);
6872
6899
  await Transition.start(wrapper, { height: show ? endHeight : 0 }, duration, transition2);
6873
6900
  unwrap(content);
6874
- delete el._wrapper;
6901
+ wrappers.delete(el);
6875
6902
  if (!show) {
6876
6903
  hide(content, true);
6877
6904
  }
@@ -7432,32 +7459,21 @@
7432
7459
  });
7433
7460
  }
7434
7461
  function listenForEscClose(drop) {
7435
- return on(document, "keydown", (e) => {
7436
- if (e.keyCode === keyMap.ESC) {
7437
- drop.hide(false);
7438
- }
7439
- });
7462
+ return onEscape(() => drop.hide(false));
7440
7463
  }
7441
7464
  function listenForScrollClose(drop) {
7442
7465
  return listenForScroll(drop, () => drop.hide(false));
7443
7466
  }
7444
7467
  function listenForBackgroundClose(drop) {
7445
- return on(document, pointerDown$1, ({ target }) => {
7446
- if (drop.$el.contains(target)) {
7447
- return;
7448
- }
7449
- once(
7450
- document,
7451
- `${pointerUp$1} ${pointerCancel} scroll`,
7452
- ({ defaultPrevented, type, target: newTarget }) => {
7453
- var _a;
7454
- if (!defaultPrevented && type === pointerUp$1 && target === newTarget && !((_a = drop.targetEl) == null ? void 0 : _a.contains(target))) {
7455
- drop.hide(false);
7456
- }
7457
- },
7458
- true
7459
- );
7460
- });
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
+ );
7461
7477
  }
7462
7478
 
7463
7479
  var Dropnav = {
@@ -7500,7 +7516,7 @@
7500
7516
  return null;
7501
7517
  }
7502
7518
  dropbar = this._dropbar || query(dropbar, this.$el) || $(`+ .${this.clsDropbar}`, this.$el);
7503
- return dropbar ? dropbar : this._dropbar = $("<div>");
7519
+ return dropbar || (this._dropbar = $("<div>"));
7504
7520
  },
7505
7521
  dropContainer(_, $el) {
7506
7522
  return this.container || $el;
@@ -9013,11 +9029,12 @@
9013
9029
  ],
9014
9030
  update: {
9015
9031
  read() {
9016
- const overflow = [];
9017
- for (const prop of ["Width", "Height"]) {
9018
- overflow.push(this.$el[`scroll${prop}`] - this.$el[`client${prop}`]);
9019
- }
9020
- return { overflow };
9032
+ return {
9033
+ overflow: [
9034
+ this.$el.scrollWidth - this.$el.clientWidth,
9035
+ this.$el.scrollHeight - this.$el.clientHeight
9036
+ ]
9037
+ };
9021
9038
  },
9022
9039
  write({ overflow }) {
9023
9040
  for (let i = 0; i < 2; i++) {