uikit 3.16.25-dev.eeed10ecc → 3.16.25-dev.f69668a71

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 (48) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/prefix.js +5 -4
  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 +1 -1
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +1 -1
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +1 -1
  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 +16 -12
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +4 -4
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +1 -1
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +4 -4
  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 +1 -1
  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 +18 -12
  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 +24 -18
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +1 -1
  44. package/src/js/api/observables.js +11 -5
  45. package/src/js/components/parallax.js +2 -2
  46. package/src/js/core/sticky.js +2 -2
  47. package/src/js/core/toggle.js +5 -3
  48. package/src/js/mixin/parallax.js +3 -4
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit",
3
3
  "title": "UIkit",
4
4
  "description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
5
- "version": "3.16.25-dev.eeed10ecc",
5
+ "version": "3.16.25-dev.f69668a71",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -15,6 +15,7 @@ import {
15
15
  pointerDown,
16
16
  pointerUp,
17
17
  removeAttr,
18
+ scrollParent,
18
19
  toNodes,
19
20
  trigger,
20
21
  } from 'uikit-util';
@@ -58,15 +59,12 @@ export function viewport() {
58
59
  export function scroll(options) {
59
60
  return observe(
60
61
  (target, handler) => ({
61
- disconnect: on(target, 'scroll', handler, {
62
+ disconnect: on(toScrollTargets(target), 'scroll', handler, {
62
63
  passive: true,
63
64
  capture: true,
64
65
  }),
65
66
  }),
66
- {
67
- target: () => document,
68
- ...options,
69
- },
67
+ options,
70
68
  'scroll',
71
69
  );
72
70
  }
@@ -126,3 +124,11 @@ function swipeDirection(x1, y1, x2, y2) {
126
124
  ? 'Up'
127
125
  : 'Down';
128
126
  }
127
+
128
+ function toScrollTargets(elements) {
129
+ return toNodes(elements).map((node) => {
130
+ const { ownerDocument } = node;
131
+ const parent = scrollParent(node, true);
132
+ return parent === ownerDocument.scrollingElement ? ownerDocument : parent;
133
+ });
134
+ }
@@ -41,9 +41,9 @@ export default {
41
41
  },
42
42
 
43
43
  observe: [
44
- resize({ target: ({ $el, target }) => [$el, target, scrollParent(target, true)] }),
45
- scroll(),
46
44
  viewport(),
45
+ scroll({ target: ({ target }) => target }),
46
+ resize({ target: ({ $el, target }) => [$el, target, scrollParent(target, true)] }),
47
47
  ],
48
48
 
49
49
  update: {
@@ -98,9 +98,9 @@ export default {
98
98
  },
99
99
 
100
100
  observe: [
101
- resize({ target: ({ $el }) => [$el, document.scrollingElement] }),
102
101
  viewport(),
103
- scroll(),
102
+ scroll({ target: () => document.scrollingElement }),
103
+ resize({ target: ({ $el }) => [$el, document.scrollingElement] }),
104
104
  ],
105
105
 
106
106
  events: [
@@ -96,7 +96,9 @@ export default {
96
96
  },
97
97
 
98
98
  {
99
- name: `${pointerEnter} ${pointerLeave} focus blur`,
99
+ // mouseenter mouseleave are added because of Firefox bug,
100
+ // where pointerleave is triggered immediately after pointerenter on scroll
101
+ name: `mouseenter mouseleave ${pointerEnter} ${pointerLeave} focus blur`,
100
102
 
101
103
  filter() {
102
104
  return includes(this.mode, 'hover');
@@ -107,14 +109,14 @@ export default {
107
109
  return;
108
110
  }
109
111
 
110
- const show = includes([pointerEnter, 'focus'], e.type);
112
+ const show = includes(['mouseenter', pointerEnter, 'focus'], e.type);
111
113
  const expanded = this.isToggled(this.target);
112
114
 
113
115
  // Skip hide if still hovered or focused
114
116
  if (
115
117
  !show &&
116
118
  (!isBoolean(this._showState) ||
117
- (e.type === pointerLeave && matches(this.$el, ':focus')) ||
119
+ (e.type !== 'blur' && matches(this.$el, ':focus')) ||
118
120
  (e.type === 'blur' && matches(this.$el, ':hover')))
119
121
  ) {
120
122
  // Reset showState if already hidden
@@ -4,7 +4,6 @@ import {
4
4
  css,
5
5
  Dimensions,
6
6
  findIndex,
7
- isNumber,
8
7
  isString,
9
8
  isUndefined,
10
9
  noop,
@@ -100,7 +99,7 @@ function transformFn(prop, el, stops) {
100
99
  } else if (prop === 'scale') {
101
100
  unit = '';
102
101
  transformFn = (stop) =>
103
- getUnit([stop]) ? toPx(stop, 'width', el, true) / el.offsetWidth : stop;
102
+ getUnit([stop]) ? toPx(stop, 'width', el, true) / el.offsetWidth : toFloat(stop);
104
103
  }
105
104
 
106
105
  if (stops.length === 1) {
@@ -358,10 +357,10 @@ function getStop(stops, percent) {
358
357
 
359
358
  function getValue(stops, percent) {
360
359
  const [start, end, p] = getStop(stops, percent);
361
- return isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;
360
+ return start + Math.abs(start - end) * p * (start < end ? 1 : -1);
362
361
  }
363
362
 
364
- const unitRe = /^-?\d+(\S+)?/;
363
+ const unitRe = /^-?\d+(?:\.\d+)?(\S+)?/;
365
364
  function getUnit(stops, defaultUnit) {
366
365
  for (const stop of stops) {
367
366
  const match = stop.match?.(unitRe);