uikit 3.15.3-dev.e9711b588 → 3.15.4-dev.c21737f52

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 (63) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/css/uikit-core-rtl.css +2 -2
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +2 -2
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +2 -2
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +2 -2
  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 +102 -109
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +2 -4
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +2 -4
  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 +2 -2
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +2 -2
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +2 -2
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +2 -2
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +2 -2
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +90 -96
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -3
  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 +13 -12
  37. package/dist/js/uikit-core.min.js +2 -2
  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 +117 -123
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/api/boot.js +2 -2
  44. package/src/js/api/component.js +2 -2
  45. package/src/js/api/state.js +1 -1
  46. package/src/js/components/filter.js +12 -14
  47. package/src/js/core/accordion.js +1 -2
  48. package/src/js/core/grid.js +7 -2
  49. package/src/js/core/scrollspy.js +0 -2
  50. package/src/js/mixin/internal/animate-fade.js +50 -51
  51. package/src/js/mixin/internal/animate-slide.js +52 -57
  52. package/src/js/mixin/parallax.js +1 -1
  53. package/src/js/mixin/scroll.js +2 -2
  54. package/src/js/mixin/slider.js +1 -2
  55. package/src/js/mixin/togglable.js +0 -2
  56. package/src/js/util/observer.js +1 -2
  57. package/src/less/components/nav.less +1 -1
  58. package/src/less/components/navbar.less +2 -1
  59. package/src/scss/components/nav.scss +1 -1
  60. package/src/scss/components/navbar.scss +2 -1
  61. package/src/scss/variables-theme.scss +1 -0
  62. package/src/scss/variables.scss +1 -0
  63. package/tests/js/index.js +2 -2
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.15.3-dev.e9711b588 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.15.4-dev.c21737f52 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1492,7 +1492,7 @@
1492
1492
  return;
1493
1493
  }
1494
1494
  pendingResize = true;
1495
- fastdom.read(() => pendingResize = false);
1495
+ requestAnimationFrame(() => pendingResize = false);
1496
1496
  for (const listener of listeners) {
1497
1497
  listener();
1498
1498
  }
@@ -2730,7 +2730,7 @@
2730
2730
  function initChildListObserver(component) {
2731
2731
  const { el } = component.$options;
2732
2732
 
2733
- const observer = new MutationObserver(() => component.$emit());
2733
+ const observer = new MutationObserver(() => component._callWatches());
2734
2734
  observer.observe(el, {
2735
2735
  childList: true,
2736
2736
  subtree: true });
@@ -2899,7 +2899,7 @@
2899
2899
  opt.install == null ? void 0 : opt.install(UIkit, opt, name);
2900
2900
 
2901
2901
  if (UIkit._initialized && !opt.functional) {
2902
- fastdom.read(() => UIkit[name]("[uk-" + id + "],[data-uk-" + id + "]"));
2902
+ requestAnimationFrame(() => UIkit[name]("[uk-" + id + "],[data-uk-" + id + "]"));
2903
2903
  }
2904
2904
 
2905
2905
  return components[name] = isPlainObject(options) ? opt : options;
@@ -2945,7 +2945,7 @@
2945
2945
  UIkit.data = '__uikit__';
2946
2946
  UIkit.prefix = 'uk-';
2947
2947
  UIkit.options = {};
2948
- UIkit.version = '3.15.3-dev.e9711b588';
2948
+ UIkit.version = '3.15.4-dev.c21737f52';
2949
2949
 
2950
2950
  globalAPI(UIkit);
2951
2951
  hooksAPI(UIkit);
@@ -2960,7 +2960,7 @@
2960
2960
  return;
2961
2961
  }
2962
2962
 
2963
- fastdom.read(function () {
2963
+ requestAnimationFrame(function () {
2964
2964
  if (document.body) {
2965
2965
  apply(document.body, connect);
2966
2966
  }
@@ -3100,7 +3100,6 @@
3100
3100
  const done = () => {
3101
3101
  removeClass(el, cls);
3102
3102
  trigger(el, show ? 'shown' : 'hidden', [this]);
3103
- this.$update(el);
3104
3103
  };
3105
3104
 
3106
3105
  return promise ?
@@ -3145,7 +3144,6 @@
3145
3144
 
3146
3145
  if (changed) {
3147
3146
  trigger(el, 'toggled', [toggled, this]);
3148
- this.$update(el);
3149
3147
  }
3150
3148
  } } };
3151
3149
 
@@ -3407,7 +3405,7 @@
3407
3405
 
3408
3406
  if (show) {
3409
3407
  const toggle = $(this.$props.toggle, el);
3410
- fastdom.read(() => {
3408
+ requestAnimationFrame(() => {
3411
3409
  if (!isInView(toggle)) {
3412
3410
  scrollIntoView(toggle, { offset: this.offset });
3413
3411
  }
@@ -4753,7 +4751,7 @@
4753
4751
  var grid = {
4754
4752
  extends: Margin,
4755
4753
 
4756
- mixins: [Class, Scroll],
4754
+ mixins: [Class],
4757
4755
 
4758
4756
  name: 'grid',
4759
4757
 
@@ -4771,6 +4769,11 @@
4771
4769
 
4772
4770
  connected() {
4773
4771
  this.masonry && addClass(this.$el, 'uk-flex-top uk-flex-wrap-top');
4772
+ this.parallax && registerScrollListener(this._uid, () => this.$emit('scroll'));
4773
+ },
4774
+
4775
+ disconnected() {
4776
+ unregisterScrollListener(this._uid);
4774
4777
  },
4775
4778
 
4776
4779
  update: [
@@ -6826,8 +6829,6 @@
6826
6829
  trigger(el, inview ? 'inview' : 'outview');
6827
6830
 
6828
6831
  state.inview = inview;
6829
-
6830
- this.$update(el);
6831
6832
  } } };
6832
6833
 
6833
6834
  var scrollspyNav = {
@@ -7875,10 +7876,10 @@
7875
7876
 
7876
7877
  const wrapIndexFn = (fn) => () => index === transitionIndex(target) ? fn() : Promise.reject();
7877
7878
 
7878
- const leaveFn = wrapIndexFn(() => {
7879
+ const leaveFn = wrapIndexFn(async () => {
7879
7880
  addClass(target, clsLeave);
7880
7881
 
7881
- return Promise.all(
7882
+ await Promise.all(
7882
7883
  getTransitionNodes(target).map(
7883
7884
  (child, i) =>
7884
7885
  new Promise((resolve) =>
@@ -7887,14 +7888,16 @@
7887
7888
  Transition.start(child, propsOut, duration / 2, 'ease').then(
7888
7889
  resolve),
7889
7890
 
7890
- i * stagger)))).
7891
+ i * stagger))));
7891
7892
 
7892
7893
 
7893
7894
 
7894
- then(() => removeClass(target, clsLeave));
7895
+
7896
+
7897
+ removeClass(target, clsLeave);
7895
7898
  });
7896
7899
 
7897
- const enterFn = wrapIndexFn(() => {
7900
+ const enterFn = wrapIndexFn(async () => {
7898
7901
  const oldHeight = height(target);
7899
7902
 
7900
7903
  addClass(target, clsEnter);
@@ -7903,53 +7906,42 @@
7903
7906
  css(children(target), { opacity: 0 });
7904
7907
 
7905
7908
  // Ensure UIkit updates have propagated
7906
- return new Promise((resolve) =>
7907
- requestAnimationFrame(() => {
7908
- const nodes = children(target);
7909
- const newHeight = height(target);
7910
-
7911
- // Ensure Grid cells do not stretch when height is applied
7912
- css(target, 'alignContent', 'flex-start');
7913
- height(target, oldHeight);
7914
-
7915
- const transitionNodes = getTransitionNodes(target);
7916
- css(nodes, propsOut);
7917
-
7918
- const transitions = transitionNodes.map(
7919
- (child, i) =>
7920
- new Promise((resolve) =>
7921
- setTimeout(
7922
- () =>
7923
- Transition.start(child, propsIn, duration / 2, 'ease').then(
7924
- resolve),
7909
+ await awaitFrame$1();
7925
7910
 
7926
- i * stagger)));
7911
+ const nodes = children(target);
7912
+ const newHeight = height(target);
7927
7913
 
7914
+ // Ensure Grid cells do not stretch when height is applied
7915
+ css(target, 'alignContent', 'flex-start');
7916
+ height(target, oldHeight);
7928
7917
 
7918
+ const transitionNodes = getTransitionNodes(target);
7919
+ css(nodes, propsOut);
7929
7920
 
7921
+ const transitions = transitionNodes.map(async (child, i) => {
7922
+ await awaitTimeout(i * stagger);
7923
+ await Transition.start(child, propsIn, duration / 2, 'ease');
7924
+ });
7930
7925
 
7931
- if (oldHeight !== newHeight) {
7932
- transitions.push(
7933
- Transition.start(
7934
- target,
7935
- { height: newHeight },
7936
- duration / 2 + transitionNodes.length * stagger,
7937
- 'ease'));
7938
-
7926
+ if (oldHeight !== newHeight) {
7927
+ transitions.push(
7928
+ Transition.start(
7929
+ target,
7930
+ { height: newHeight },
7931
+ duration / 2 + transitionNodes.length * stagger,
7932
+ 'ease'));
7939
7933
 
7940
- }
7941
7934
 
7942
- Promise.all(transitions).then(() => {
7943
- removeClass(target, clsEnter);
7944
- if (index === transitionIndex(target)) {
7945
- css(target, { height: '', alignContent: '' });
7946
- css(nodes, { opacity: '' });
7947
- delete target.dataset.transition;
7948
- }
7949
- resolve();
7950
- });
7951
- }));
7935
+ }
7952
7936
 
7937
+ await Promise.all(transitions).then(() => {
7938
+ removeClass(target, clsEnter);
7939
+ if (index === transitionIndex(target)) {
7940
+ css(target, { height: '', alignContent: '' });
7941
+ css(nodes, { opacity: '' });
7942
+ delete target.dataset.transition;
7943
+ }
7944
+ });
7953
7945
  });
7954
7946
 
7955
7947
  return hasClass(target, clsLeave) ?
@@ -7991,63 +7983,62 @@
7991
7983
 
7992
7984
  }
7993
7985
 
7994
- function slide (action, target, duration) {
7995
- return new Promise((resolve) =>
7996
- requestAnimationFrame(() => {
7997
- let nodes = children(target);
7986
+ function awaitFrame$1() {
7987
+ return new Promise((resolve) => requestAnimationFrame(resolve));
7988
+ }
7998
7989
 
7999
- // Get current state
8000
- const currentProps = nodes.map((el) => getProps(el, true));
8001
- const targetProps = css(target, ['height', 'padding']);
7990
+ function awaitTimeout(timeout) {
7991
+ return new Promise((resolve) => setTimeout(resolve, timeout));
7992
+ }
8002
7993
 
8003
- // Cancel previous animations
8004
- Transition.cancel(target);
8005
- nodes.forEach(Transition.cancel);
8006
- reset(target);
7994
+ async function slide (action, target, duration) {
7995
+ await awaitFrame();
8007
7996
 
8008
- // Adding, sorting, removing nodes
8009
- action();
7997
+ let nodes = children(target);
8010
7998
 
8011
- // Find new nodes
8012
- nodes = nodes.concat(children(target).filter((el) => !includes(nodes, el)));
8013
-
8014
- // Wait for update to propagate
8015
- Promise.resolve().then(() => {
8016
- // Force update
8017
- fastdom.flush();
8018
-
8019
- // Get new state
8020
- const targetPropsTo = css(target, ['height', 'padding']);
8021
- const [propsTo, propsFrom] = getTransitionProps(target, nodes, currentProps);
8022
-
8023
- // Reset to previous state
8024
- nodes.forEach((el, i) => propsFrom[i] && css(el, propsFrom[i]));
8025
- css(target, { display: 'block', ...targetProps });
8026
-
8027
- // Start transitions on next frame
8028
- requestAnimationFrame(() => {
8029
- const transitions = nodes.
8030
- map(
8031
- (el, i) =>
8032
- parent(el) === target &&
8033
- Transition.start(el, propsTo[i], duration, 'ease')).
8034
-
8035
- concat(Transition.start(target, targetPropsTo, duration, 'ease'));
8036
-
8037
- Promise.all(transitions).
8038
- then(() => {
8039
- nodes.forEach(
8040
- (el, i) =>
8041
- parent(el) === target &&
8042
- css(el, 'display', propsTo[i].opacity === 0 ? 'none' : ''));
8043
-
8044
- reset(target);
8045
- }, noop).
8046
- then(resolve);
8047
- });
8048
- });
8049
- }));
7999
+ // Get current state
8000
+ const currentProps = nodes.map((el) => getProps(el, true));
8001
+ const targetProps = css(target, ['height', 'padding']);
8002
+
8003
+ // Cancel previous animations
8004
+ Transition.cancel(target);
8005
+ nodes.forEach(Transition.cancel);
8006
+ reset(target);
8007
+
8008
+ // Adding, sorting, removing nodes
8009
+ action();
8010
+
8011
+ // Find new nodes
8012
+ nodes = nodes.concat(children(target).filter((el) => !includes(nodes, el)));
8013
+
8014
+ // Wait for update to propagate
8015
+ await Promise.resolve();
8016
+
8017
+ // Force update
8018
+ fastdom.flush();
8050
8019
 
8020
+ // Get new state
8021
+ const targetPropsTo = css(target, ['height', 'padding']);
8022
+ const [propsTo, propsFrom] = getTransitionProps(target, nodes, currentProps);
8023
+
8024
+ // Reset to previous state
8025
+ nodes.forEach((el, i) => propsFrom[i] && css(el, propsFrom[i]));
8026
+ css(target, { display: 'block', ...targetProps });
8027
+
8028
+ // Start transitions on next frame
8029
+ await awaitFrame();
8030
+
8031
+ const transitions = nodes.
8032
+ map((el, i) => parent(el) === target && Transition.start(el, propsTo[i], duration, 'ease')).
8033
+ concat(Transition.start(target, targetPropsTo, duration, 'ease'));
8034
+
8035
+ await Promise.all(transitions).then(() => {
8036
+ nodes.forEach(
8037
+ (el, i) =>
8038
+ parent(el) === target && css(el, 'display', propsTo[i].opacity === 0 ? 'none' : ''));
8039
+
8040
+ reset(target);
8041
+ }, noop);
8051
8042
  }
8052
8043
 
8053
8044
  function getProps(el, opacity) {
@@ -8126,6 +8117,10 @@
8126
8117
  return { top, left, height, width, marginLeft, marginTop, transform: '' };
8127
8118
  }
8128
8119
 
8120
+ function awaitFrame() {
8121
+ return new Promise((resolve) => requestAnimationFrame(resolve));
8122
+ }
8123
+
8129
8124
  var Animate = {
8130
8125
  props: {
8131
8126
  duration: Number,
@@ -8183,7 +8178,7 @@
8183
8178
  },
8184
8179
 
8185
8180
  watch() {
8186
- this.updateState();
8181
+ this.$emit();
8187
8182
 
8188
8183
  if (this.selActive !== false) {
8189
8184
  const actives = $$(this.selActive, this.$el);
@@ -8201,7 +8196,7 @@
8201
8196
 
8202
8197
  watch(list, old) {
8203
8198
  if (old && !isEqualList(list, old)) {
8204
- this.updateState();
8199
+ this.$emit();
8205
8200
  }
8206
8201
  },
8207
8202
 
@@ -8209,6 +8204,12 @@
8209
8204
 
8210
8205
 
8211
8206
 
8207
+ update: {
8208
+ write() {
8209
+ this.setState(this.getState(), false);
8210
+ } },
8211
+
8212
+
8212
8213
  events: [
8213
8214
  {
8214
8215
  name: 'click',
@@ -8248,25 +8249,18 @@
8248
8249
 
8249
8250
  trigger(this.$el, 'beforeFilter', [this, state]);
8250
8251
 
8251
- this.toggles.forEach((el) =>
8252
- toggleClass(el, this.cls, !!matchFilter(el, this.attrItem, state)));
8253
-
8252
+ for (const el of this.toggles) {
8253
+ toggleClass(el, this.cls, !!matchFilter(el, this.attrItem, state));
8254
+ }
8254
8255
 
8255
8256
  await Promise.all(
8256
8257
  $$(this.target, this.$el).map((target) => {
8257
- const filterFn = () => {
8258
- applyState(state, target, children(target));
8259
- this.$update(this.$el);
8260
- };
8258
+ const filterFn = () => applyState(state, target, children(target));
8261
8259
  return animate ? this.animate(filterFn, target) : filterFn();
8262
8260
  }));
8263
8261
 
8264
8262
 
8265
8263
  trigger(this.$el, 'afterFilter', [this]);
8266
- },
8267
-
8268
- updateState() {
8269
- fastdom.write(() => this.setState(this.getState(), false));
8270
8264
  } } };
8271
8265
 
8272
8266
 
@@ -8961,7 +8955,7 @@
8961
8955
  trigger(next, 'itemshown', [this]);
8962
8956
 
8963
8957
  return new Promise((resolve) => {
8964
- fastdom.write(() => {
8958
+ requestAnimationFrame(() => {
8965
8959
  stack.shift();
8966
8960
  if (stack.length) {
8967
8961
  this.show(stack.shift(), true);
@@ -9951,7 +9945,7 @@
9951
9945
  return isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;
9952
9946
  }
9953
9947
 
9954
- const unitRe = /^-?\d+(\S*)/;
9948
+ const unitRe = /^-?\d+(\S+)/;
9955
9949
  function getUnit(stops, defaultUnit) {
9956
9950
  for (const stop of stops) {
9957
9951
  const match = stop.match == null ? void 0 : stop.match(unitRe);