uikit 3.20.9-dev.50e5c71c4 → 3.20.9-dev.76ecfef9e
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.
- package/CHANGELOG.md +2 -0
- package/dist/css/uikit-core-rtl.css +1 -1
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +1 -1
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +1 -1
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +1 -1
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +1 -1
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +1 -1
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +4 -1
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +4 -1
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +1 -1
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +1 -1
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +1 -1
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +11 -5
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +1 -1
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +10 -4
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +1 -1
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +1 -1
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +1 -1
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +63 -62
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +81 -71
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/js/api/component.js +1 -1
- package/src/js/components/internal/slider-transitioner.js +4 -0
- package/src/js/components/slider.js +1 -1
- package/src/js/core/grid.js +4 -7
- package/src/js/core/inverse.js +30 -3
- package/src/js/core/modal.js +1 -1
- package/src/js/core/scrollspy-nav.js +2 -2
- package/src/js/core/scrollspy.js +1 -1
- package/src/js/core/sticky.js +16 -22
- package/src/js/mixin/internal/slideshow-transitioner.js +4 -0
- package/src/js/mixin/slider-parallax.js +7 -3
- package/src/js/util/viewport.js +8 -8
- package/tests/modal.html +1 -1
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.20.9-dev.
|
|
5
|
+
"version": "3.20.9-dev.76ecfef9e",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
package/src/js/api/component.js
CHANGED
|
@@ -78,7 +78,7 @@ export function attachToElement(element, instance) {
|
|
|
78
78
|
export function detachFromElement(element, instance) {
|
|
79
79
|
delete element[DATA]?.[instance.$options.name];
|
|
80
80
|
|
|
81
|
-
if (
|
|
81
|
+
if (isEmpty(element[DATA])) {
|
|
82
82
|
delete element[DATA];
|
|
83
83
|
}
|
|
84
84
|
}
|
package/src/js/core/grid.js
CHANGED
|
@@ -123,14 +123,11 @@ export default {
|
|
|
123
123
|
|
|
124
124
|
{
|
|
125
125
|
read({ rows, scrollColumns, parallaxStart, parallaxEnd }) {
|
|
126
|
-
if (scrollColumns && positionedAbsolute(rows)) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
126
|
return {
|
|
131
|
-
scrolled:
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
scrolled:
|
|
128
|
+
scrollColumns && !positionedAbsolute(rows)
|
|
129
|
+
? scrolledOver(this.$el, parallaxStart, parallaxEnd)
|
|
130
|
+
: false,
|
|
134
131
|
};
|
|
135
132
|
},
|
|
136
133
|
|
package/src/js/core/inverse.js
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
$$,
|
|
3
|
+
css,
|
|
4
|
+
dimensions,
|
|
5
|
+
matches,
|
|
6
|
+
observeResize,
|
|
7
|
+
on,
|
|
8
|
+
parent,
|
|
9
|
+
replaceClass,
|
|
10
|
+
toNodes,
|
|
11
|
+
} from 'uikit-util';
|
|
2
12
|
import { intersection, mutation } from '../api/observables';
|
|
3
13
|
|
|
4
14
|
export default {
|
|
@@ -91,13 +101,14 @@ function findTargetColor(target) {
|
|
|
91
101
|
let last;
|
|
92
102
|
for (const percent of [0.25, 0.5, 0.75]) {
|
|
93
103
|
const elements = target.ownerDocument.elementsFromPoint(
|
|
94
|
-
Math.max(0, left
|
|
95
|
-
Math.max(0, top
|
|
104
|
+
Math.max(0, left + width * percent),
|
|
105
|
+
Math.max(0, top + height / 2),
|
|
96
106
|
);
|
|
97
107
|
|
|
98
108
|
for (const element of elements) {
|
|
99
109
|
if (
|
|
100
110
|
target.contains(element) ||
|
|
111
|
+
!isVisible(element) ||
|
|
101
112
|
(element.closest('[class*="-leave"]') &&
|
|
102
113
|
elements.some((el) => element !== el && matches(el, '[class*="-enter"]')))
|
|
103
114
|
) {
|
|
@@ -118,3 +129,19 @@ function findTargetColor(target) {
|
|
|
118
129
|
|
|
119
130
|
return last ? `uk-${last}` : '';
|
|
120
131
|
}
|
|
132
|
+
|
|
133
|
+
// TODO: once it becomes Baseline `element.checkVisibility({ opacityProperty: true, visibilityProperty: true })`
|
|
134
|
+
function isVisible(element) {
|
|
135
|
+
if (css(element, 'visibility') !== 'visible') {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
while (element) {
|
|
140
|
+
if (css(element, 'opacity') === '0') {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
element = parent(element);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return true;
|
|
147
|
+
}
|
package/src/js/core/modal.js
CHANGED
|
@@ -126,7 +126,7 @@ function install({ modal }) {
|
|
|
126
126
|
({ i18n }) => `<form class="uk-form-stacked">
|
|
127
127
|
<div class="uk-modal-body">
|
|
128
128
|
<label>${isString(message) ? message : html(message)}</label>
|
|
129
|
-
<input class="uk-input"
|
|
129
|
+
<input class="uk-input" autofocus>
|
|
130
130
|
</div>
|
|
131
131
|
<div class="uk-modal-footer uk-text-right">
|
|
132
132
|
<button class="uk-button uk-button-default uk-modal-close" type="button">${
|
|
@@ -68,9 +68,9 @@ export default {
|
|
|
68
68
|
if (scrollTop === max) {
|
|
69
69
|
active = length - 1;
|
|
70
70
|
} else {
|
|
71
|
+
const offsetBy = this.offset + offset(getCoveringElement()).height;
|
|
72
|
+
|
|
71
73
|
for (let i = 0; i < targets.length; i++) {
|
|
72
|
-
const fixedEl = getCoveringElement(targets[i]);
|
|
73
|
-
const offsetBy = this.offset + (fixedEl ? offset(fixedEl).height : 0);
|
|
74
74
|
if (offset(targets[i]).top - viewport.top - offsetBy > 0) {
|
|
75
75
|
break;
|
|
76
76
|
}
|
package/src/js/core/scrollspy.js
CHANGED
package/src/js/core/sticky.js
CHANGED
|
@@ -16,7 +16,6 @@ import {
|
|
|
16
16
|
isVisible,
|
|
17
17
|
noop,
|
|
18
18
|
offsetPosition,
|
|
19
|
-
once,
|
|
20
19
|
parent,
|
|
21
20
|
query,
|
|
22
21
|
remove,
|
|
@@ -97,15 +96,19 @@ export default {
|
|
|
97
96
|
},
|
|
98
97
|
|
|
99
98
|
observe: [
|
|
100
|
-
viewport(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
viewport(),
|
|
100
|
+
scroll({ target: () => document.scrollingElement }),
|
|
101
|
+
resize({
|
|
102
|
+
target: ({ $el }) => [$el, parent($el), document.scrollingElement],
|
|
103
|
+
handler(entries) {
|
|
104
|
+
this.$emit(
|
|
105
|
+
this._data.resized && entries.some(({ target }) => target === parent(this.$el))
|
|
106
|
+
? 'update'
|
|
107
|
+
: 'resize',
|
|
108
|
+
);
|
|
109
|
+
this._data.resized = true;
|
|
105
110
|
},
|
|
106
111
|
}),
|
|
107
|
-
scroll({ target: () => document.scrollingElement }),
|
|
108
|
-
resize({ target: ({ $el }) => [$el, document.scrollingElement] }),
|
|
109
112
|
],
|
|
110
113
|
|
|
111
114
|
events: [
|
|
@@ -142,29 +145,18 @@ export default {
|
|
|
142
145
|
});
|
|
143
146
|
},
|
|
144
147
|
},
|
|
145
|
-
{
|
|
146
|
-
name: 'transitionstart',
|
|
147
|
-
|
|
148
|
-
handler() {
|
|
149
|
-
this.transitionInProgress = once(
|
|
150
|
-
this.$el,
|
|
151
|
-
'transitionend transitioncancel',
|
|
152
|
-
() => (this.transitionInProgress = null),
|
|
153
|
-
);
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
148
|
],
|
|
157
149
|
|
|
158
150
|
update: [
|
|
159
151
|
{
|
|
160
|
-
read({ height, width, margin, sticky }) {
|
|
152
|
+
read({ height, width, margin, sticky }, types) {
|
|
161
153
|
this.inactive = !this.matchMedia || !isVisible(this.$el);
|
|
162
154
|
|
|
163
155
|
if (this.inactive) {
|
|
164
156
|
return;
|
|
165
157
|
}
|
|
166
158
|
|
|
167
|
-
const hide = this.isFixed &&
|
|
159
|
+
const hide = this.isFixed && types.has('update');
|
|
168
160
|
if (hide) {
|
|
169
161
|
preventTransition(this.target);
|
|
170
162
|
this.hide();
|
|
@@ -239,6 +231,7 @@ export default {
|
|
|
239
231
|
top: offsetPosition(referenceElement)[0],
|
|
240
232
|
sticky,
|
|
241
233
|
viewport,
|
|
234
|
+
maxScrollHeight,
|
|
242
235
|
};
|
|
243
236
|
},
|
|
244
237
|
|
|
@@ -283,8 +276,9 @@ export default {
|
|
|
283
276
|
elHeight,
|
|
284
277
|
height,
|
|
285
278
|
sticky,
|
|
279
|
+
maxScrollHeight,
|
|
286
280
|
}) {
|
|
287
|
-
const scroll = document.scrollingElement.scrollTop;
|
|
281
|
+
const scroll = Math.min(document.scrollingElement.scrollTop, maxScrollHeight);
|
|
288
282
|
const dir = prevScroll <= scroll ? 'down' : 'up';
|
|
289
283
|
const referenceElement = this.isFixed ? this.placeholder : this.$el;
|
|
290
284
|
|
|
@@ -34,9 +34,9 @@ export default {
|
|
|
34
34
|
},
|
|
35
35
|
|
|
36
36
|
update: {
|
|
37
|
-
|
|
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
|
-
|
|
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
|
|
package/src/js/util/viewport.js
CHANGED
|
@@ -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 =
|
|
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
|
|
203
|
-
const
|
|
204
|
-
(
|
|
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
|
-
|
|
219
|
-
|
|
216
|
+
(hasPosition(el, 'sticky') && parent(el).contains(target)))
|
|
217
|
+
) {
|
|
218
|
+
return el;
|
|
219
|
+
}
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
222
|
}
|
package/tests/modal.html
CHANGED
|
@@ -487,7 +487,7 @@
|
|
|
487
487
|
on('#js-modal-prompt', 'click', async e => {
|
|
488
488
|
e.preventDefault();
|
|
489
489
|
e.target.blur();
|
|
490
|
-
const name = await modal.prompt('Name:', 'Your
|
|
490
|
+
const name = await modal.prompt('Name:', 'Your name');
|
|
491
491
|
console.log('Prompted:', name);
|
|
492
492
|
});
|
|
493
493
|
|