uikit 3.20.9-dev.b50e1953b → 3.20.9-dev.e2e1b058d

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 (76) hide show
  1. package/CHANGELOG.md +2 -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 +2 -4
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +13 -28
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +18 -33
  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 +4 -10
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +18 -26
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +4 -10
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +17 -25
  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 +125 -214
  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 +155 -259
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/component.js +1 -1
  44. package/src/js/api/events.js +1 -1
  45. package/src/js/components/filter.js +1 -3
  46. package/src/js/components/internal/slider-transitioner.js +4 -0
  47. package/src/js/components/lightbox-panel.js +1 -3
  48. package/src/js/components/lightbox.js +5 -5
  49. package/src/js/components/slider-parallax.js +3 -9
  50. package/src/js/components/slider.js +1 -1
  51. package/src/js/core/accordion.js +2 -6
  52. package/src/js/core/alert.js +1 -3
  53. package/src/js/core/cover.js +6 -12
  54. package/src/js/core/drop.js +5 -13
  55. package/src/js/core/dropnav.js +14 -42
  56. package/src/js/core/form-custom.js +1 -3
  57. package/src/js/core/grid.js +4 -7
  58. package/src/js/core/height-match.js +1 -3
  59. package/src/js/core/inverse.js +31 -3
  60. package/src/js/core/modal.js +2 -1
  61. package/src/js/core/navbar.js +2 -6
  62. package/src/js/core/offcanvas.js +1 -3
  63. package/src/js/core/scrollspy-nav.js +2 -2
  64. package/src/js/core/scrollspy.js +1 -1
  65. package/src/js/core/sticky.js +18 -28
  66. package/src/js/core/switcher.js +7 -18
  67. package/src/js/core/toggle.js +6 -18
  68. package/src/js/core/video.js +6 -6
  69. package/src/js/mixin/internal/slideshow-transitioner.js +4 -0
  70. package/src/js/mixin/modal.js +1 -3
  71. package/src/js/mixin/slider-autoplay.js +1 -3
  72. package/src/js/mixin/slider-drag.js +2 -6
  73. package/src/js/mixin/slider-nav.js +4 -12
  74. package/src/js/mixin/slider-parallax.js +7 -3
  75. package/src/js/util/fastdom.js +24 -25
  76. package/src/js/util/viewport.js +8 -8
@@ -104,9 +104,7 @@ export default {
104
104
  {
105
105
  name: 'click keydown',
106
106
 
107
- delegate() {
108
- return this.toggle;
109
- },
107
+ delegate: ({ toggle }) => toggle,
110
108
 
111
109
  handler(e) {
112
110
  if (
@@ -122,9 +120,7 @@ export default {
122
120
  {
123
121
  name: 'keydown',
124
122
 
125
- delegate() {
126
- return this.toggle;
127
- },
123
+ delegate: ({ toggle }) => toggle,
128
124
 
129
125
  handler(e) {
130
126
  const { current, keyCode } = e;
@@ -158,13 +154,10 @@ export default {
158
154
  {
159
155
  name: 'click',
160
156
 
161
- el() {
162
- return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);
163
- },
157
+ el: ({ $el, connects, itemNav }) =>
158
+ connects.concat(itemNav ? queryAll(itemNav, $el) : []),
164
159
 
165
- delegate() {
166
- return `[${this.attrItem}],[data-${this.attrItem}]`;
167
- },
160
+ delegate: ({ attrItem }) => `[${attrItem}],[data-${attrItem}]`,
168
161
 
169
162
  handler(e) {
170
163
  if (e.target.closest('a,button')) {
@@ -177,13 +170,9 @@ export default {
177
170
  {
178
171
  name: 'swipeRight swipeLeft',
179
172
 
180
- filter() {
181
- return this.swiping;
182
- },
173
+ filter: ({ swiping }) => swiping,
183
174
 
184
- el() {
185
- return this.connects;
186
- },
175
+ el: ({ connects }) => connects,
187
176
 
188
177
  handler({ type }) {
189
178
  this.show(endsWith(type, 'Left') ? 'next' : 'previous');
@@ -67,9 +67,7 @@ export default {
67
67
  {
68
68
  name: pointerDown,
69
69
 
70
- filter() {
71
- return includes(this.mode, 'hover');
72
- },
70
+ filter: ({ mode }) => includes(mode, 'hover'),
73
71
 
74
72
  handler(e) {
75
73
  this._preventClick = null;
@@ -101,9 +99,7 @@ export default {
101
99
  // where pointerleave is triggered immediately after pointerenter on scroll
102
100
  name: `mouseenter mouseleave ${pointerEnter} ${pointerLeave} focus blur`,
103
101
 
104
- filter() {
105
- return includes(this.mode, 'hover');
106
- },
102
+ filter: ({ mode }) => includes(mode, 'hover'),
107
103
 
108
104
  handler(e) {
109
105
  if (isTouch(e) || this.$el.disabled) {
@@ -141,9 +137,7 @@ export default {
141
137
  {
142
138
  name: 'keydown',
143
139
 
144
- filter() {
145
- return includes(this.mode, 'click') && !isTag(this.$el, 'input');
146
- },
140
+ filter: ({ $el, mode }) => includes(mode, 'click') && !isTag($el, 'input'),
147
141
 
148
142
  handler(e) {
149
143
  if (e.keyCode === KEY_SPACE) {
@@ -156,9 +150,7 @@ export default {
156
150
  {
157
151
  name: 'click',
158
152
 
159
- filter() {
160
- return ['click', 'hover'].some((mode) => includes(this.mode, mode));
161
- },
153
+ filter: ({ mode }) => ['click', 'hover'].some((m) => includes(mode, m)),
162
154
 
163
155
  handler(e) {
164
156
  let link;
@@ -181,13 +173,9 @@ export default {
181
173
  {
182
174
  name: 'mediachange',
183
175
 
184
- filter() {
185
- return includes(this.mode, 'media');
186
- },
176
+ filter: ({ mode }) => includes(mode, 'media'),
187
177
 
188
- el() {
189
- return this.target;
190
- },
178
+ el: ({ target }) => target,
191
179
 
192
180
  handler(e, mediaObj) {
193
181
  if (mediaObj.matches ^ this.isToggled(this.target)) {
@@ -51,9 +51,9 @@ export default {
51
51
  events: [
52
52
  {
53
53
  name: `${pointerEnter} focusin`,
54
- filter() {
55
- return includes(this.autoplay, 'hover');
56
- },
54
+
55
+ filter: ({ autoplay }) => includes(autoplay, 'hover'),
56
+
57
57
  handler(e) {
58
58
  if (!isTouch(e) || !isPlaying(this.$el)) {
59
59
  play(this.$el);
@@ -65,9 +65,9 @@ export default {
65
65
 
66
66
  {
67
67
  name: `${pointerLeave} focusout`,
68
- filter() {
69
- return includes(this.autoplay, 'hover');
70
- },
68
+
69
+ filter: ({ autoplay }) => includes(autoplay, 'hover'),
70
+
71
71
  handler(e) {
72
72
  if (!isTouch(e)) {
73
73
  pause(this.$el);
@@ -46,6 +46,10 @@ export default function Transitioner(prev, next, dir, { animation, easing }) {
46
46
  },
47
47
 
48
48
  translate(percent) {
49
+ if (percent === this.percent()) {
50
+ return;
51
+ }
52
+
49
53
  this.reset();
50
54
 
51
55
  const props = translate(percent, dir);
@@ -77,9 +77,7 @@ export default {
77
77
  {
78
78
  name: 'click',
79
79
 
80
- delegate() {
81
- return `${this.selClose},a[href*="#"]`;
82
- },
80
+ delegate: ({ selClose }) => `${selClose},a[href*="#"]`,
83
81
 
84
82
  handler(e) {
85
83
  const { current, defaultPrevented } = e;
@@ -32,9 +32,7 @@ export default {
32
32
 
33
33
  el: () => document,
34
34
 
35
- filter() {
36
- return this.autoplay;
37
- },
35
+ filter: ({ autoplay }) => autoplay,
38
36
 
39
37
  handler() {
40
38
  if (document.hidden) {
@@ -48,9 +48,7 @@ export default {
48
48
 
49
49
  passive: true,
50
50
 
51
- delegate() {
52
- return `${this.selList} > *`;
53
- },
51
+ delegate: ({ selList }) => `${selList} > *`,
54
52
 
55
53
  handler(e) {
56
54
  if (
@@ -79,9 +77,7 @@ export default {
79
77
  {
80
78
  // iOS workaround for slider stopping if swiping fast
81
79
  name: pointerMove,
82
- el() {
83
- return this.list;
84
- },
80
+ el: ({ list }) => list,
85
81
  handler: noop,
86
82
  ...pointerOptions,
87
83
  },
@@ -147,13 +147,9 @@ export default {
147
147
  {
148
148
  name: 'click keydown',
149
149
 
150
- delegate() {
151
- return this.selNavItem;
152
- },
150
+ delegate: ({ selNavItem }) => selNavItem,
153
151
 
154
- filter() {
155
- return !this.parallax;
156
- },
152
+ filter: ({ parallax }) => !parallax,
157
153
 
158
154
  handler(e) {
159
155
  if (
@@ -174,13 +170,9 @@ export default {
174
170
  {
175
171
  name: 'keydown',
176
172
 
177
- delegate() {
178
- return this.selNavItem;
179
- },
173
+ delegate: ({ selNavItem }) => selNavItem,
180
174
 
181
- filter() {
182
- return !this.parallax;
183
- },
175
+ filter: ({ parallax }) => !parallax,
184
176
 
185
177
  handler(e) {
186
178
  const { current, keyCode } = e;
@@ -34,9 +34,9 @@ export default {
34
34
  },
35
35
 
36
36
  update: {
37
- write() {
37
+ read() {
38
38
  if (!this.parallax) {
39
- return;
39
+ return false;
40
40
  }
41
41
 
42
42
  const target = this.parallaxTarget;
@@ -44,7 +44,11 @@ export default {
44
44
  const end = toPx(this.parallaxEnd, 'height', target, true);
45
45
  const percent = ease(scrolledOver(target, start, end), this.parallaxEasing);
46
46
 
47
- const [prevIndex, slidePercent] = this.getIndexAt(percent);
47
+ return { parallax: this.getIndexAt(percent) };
48
+ },
49
+
50
+ write({ parallax }) {
51
+ const [prevIndex, slidePercent] = parallax;
48
52
 
49
53
  const nextIndex = this.getValidIndex(prevIndex + Math.ceil(slidePercent));
50
54
 
@@ -4,44 +4,43 @@
4
4
  https://github.com/wilsonpage/fastdom
5
5
  */
6
6
 
7
- export const fastdom = {
8
- reads: [],
9
- writes: [],
7
+ export const fastdom = { read, write, clear, flush };
10
8
 
11
- read(task) {
12
- this.reads.push(task);
13
- scheduleFlush();
14
- return task;
15
- },
9
+ const reads = [];
10
+ const writes = [];
16
11
 
17
- write(task) {
18
- this.writes.push(task);
19
- scheduleFlush();
20
- return task;
21
- },
12
+ function read(task) {
13
+ reads.push(task);
14
+ scheduleFlush();
15
+ return task;
16
+ }
22
17
 
23
- clear(task) {
24
- remove(this.reads, task);
25
- remove(this.writes, task);
26
- },
18
+ function write(task) {
19
+ writes.push(task);
20
+ scheduleFlush();
21
+ return task;
22
+ }
27
23
 
28
- flush,
29
- };
24
+ function clear(task) {
25
+ remove(reads, task);
26
+ remove(writes, task);
27
+ }
30
28
 
29
+ let scheduled = false;
31
30
  function flush() {
32
- runTasks(fastdom.reads);
33
- runTasks(fastdom.writes.splice(0));
31
+ runTasks(reads);
32
+ runTasks(writes.splice(0));
34
33
 
35
- fastdom.scheduled = false;
34
+ scheduled = false;
36
35
 
37
- if (fastdom.reads.length || fastdom.writes.length) {
36
+ if (reads.length || writes.length) {
38
37
  scheduleFlush();
39
38
  }
40
39
  }
41
40
 
42
41
  function scheduleFlush() {
43
- if (!fastdom.scheduled) {
44
- fastdom.scheduled = true;
42
+ if (!scheduled) {
43
+ scheduled = true;
45
44
  queueMicrotask(flush);
46
45
  }
47
46
  }
@@ -184,7 +184,7 @@ export function offsetViewport(scrollElement) {
184
184
  ]) {
185
185
  if (isWindow(viewportElement)) {
186
186
  // iOS 12 returns <body> as scrollingElement
187
- viewportElement = scrollElement.ownerDocument;
187
+ viewportElement = viewportElement.document;
188
188
  } else {
189
189
  rect[start] += toFloat(css(viewportElement, `border-${start}-width`));
190
190
  }
@@ -199,9 +199,9 @@ export function offsetViewport(scrollElement) {
199
199
 
200
200
  export function getCoveringElement(target) {
201
201
  const { left, width, top } = dimensions(target);
202
- for (const topPosition of [0, top]) {
203
- const coverEl = target.ownerDocument.elementsFromPoint(left + width / 2, topPosition).find(
204
- (el) =>
202
+ for (const position of top ? [0, top] : [0]) {
203
+ for (const el of toWindow(target).document.elementsFromPoint(left + width / 2, position)) {
204
+ if (
205
205
  !el.contains(target) &&
206
206
  // If e.g. Offcanvas is not yet closed
207
207
  !hasClass(el, 'uk-togglable-leave') &&
@@ -213,10 +213,10 @@ export function getCoveringElement(target) {
213
213
  (parent) => !parent.contains(el) && !hasPosition(parent, 'static'),
214
214
  ),
215
215
  ) < zIndex(el)) ||
216
- (hasPosition(el, 'sticky') && parent(el).contains(target))),
217
- );
218
- if (coverEl) {
219
- return coverEl;
216
+ (hasPosition(el, 'sticky') && parent(el).contains(target)))
217
+ ) {
218
+ return el;
219
+ }
220
220
  }
221
221
  }
222
222
  }