uikit 3.25.29-dev.7b0f736 → 3.25.29-dev.a0b5ca8
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 +23 -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 +3 -3
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +17 -13
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +17 -13
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +5 -2
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +11 -15
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +11 -15
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +12 -16
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +11 -15
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +12 -16
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +2 -2
- 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 +73 -66
- 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 +76 -69
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/js/components/lightbox-panel.js +3 -3
- package/src/js/core/alert.js +6 -3
- package/src/js/core/dropnav.js +1 -1
- package/src/js/core/grid.js +1 -1
- package/src/js/core/icon.js +6 -12
- package/src/js/core/img.js +3 -3
- package/src/js/core/inverse.js +4 -2
- package/src/js/core/margin.js +1 -1
- package/src/js/core/modal.js +1 -1
- package/src/js/core/overflow-fade.js +6 -2
- package/src/js/core/svg.js +5 -1
- package/src/js/core/switcher.js +1 -0
- package/src/js/mixin/event.js +4 -1
- package/src/js/util/filter.js +6 -1
- package/src/js/util/lang.js +8 -33
- package/src/js/util/scroll.js +14 -9
- package/src/js/util/svg.js +7 -6
- package/tests/alert.html +2 -2
- package/tests/overflow-fade.test.mjs +69 -0
package/dist/js/uikit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! UIkit 3.25.29-dev.
|
|
1
|
+
/*! UIkit 3.25.29-dev.a0b5ca8 | 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() :
|
|
@@ -156,28 +156,17 @@
|
|
|
156
156
|
function pointInRect(point, rect) {
|
|
157
157
|
return point.x <= rect.right && point.x >= rect.left && point.y <= rect.bottom && point.y >= rect.top;
|
|
158
158
|
}
|
|
159
|
-
function
|
|
160
|
-
const
|
|
159
|
+
function cover$1(dimensions, maxDimensions) {
|
|
160
|
+
const scale = Math.max(
|
|
161
|
+
dimensions.width ? maxDimensions.width / dimensions.width : 0,
|
|
162
|
+
dimensions.height ? maxDimensions.height / dimensions.height : 0
|
|
163
|
+
);
|
|
161
164
|
return {
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
width: Math.round(dimensions.width * scale),
|
|
166
|
+
height: Math.round(dimensions.height * scale)
|
|
164
167
|
};
|
|
165
168
|
}
|
|
166
|
-
|
|
167
|
-
dimensions = { ...dimensions };
|
|
168
|
-
for (const prop in dimensions) {
|
|
169
|
-
dimensions = dimensions[prop] > maxDimensions[prop] ? ratio(dimensions, prop, maxDimensions[prop]) : dimensions;
|
|
170
|
-
}
|
|
171
|
-
return dimensions;
|
|
172
|
-
}
|
|
173
|
-
function cover$1(dimensions, maxDimensions) {
|
|
174
|
-
dimensions = contain(dimensions, maxDimensions);
|
|
175
|
-
for (const prop in dimensions) {
|
|
176
|
-
dimensions = dimensions[prop] < maxDimensions[prop] ? ratio(dimensions, prop, maxDimensions[prop]) : dimensions;
|
|
177
|
-
}
|
|
178
|
-
return dimensions;
|
|
179
|
-
}
|
|
180
|
-
const Dimensions = { ratio, contain, cover: cover$1 };
|
|
169
|
+
const Dimensions = { cover: cover$1 };
|
|
181
170
|
function getIndex(i, elements, current = 0, finite = false) {
|
|
182
171
|
elements = toNodes(elements);
|
|
183
172
|
const { length } = elements;
|
|
@@ -350,7 +339,11 @@
|
|
|
350
339
|
function getTargetedElement(el) {
|
|
351
340
|
if (isSameSiteAnchor(el)) {
|
|
352
341
|
const { hash, ownerDocument } = toNode(el);
|
|
353
|
-
|
|
342
|
+
let id = hash.slice(1);
|
|
343
|
+
try {
|
|
344
|
+
id = decodeURIComponent(id);
|
|
345
|
+
} catch {
|
|
346
|
+
}
|
|
354
347
|
return id ? ownerDocument.getElementById(id) || ownerDocument.getElementsByName(id)[0] : ownerDocument.documentElement;
|
|
355
348
|
}
|
|
356
349
|
}
|
|
@@ -2109,7 +2102,7 @@
|
|
|
2109
2102
|
}
|
|
2110
2103
|
const offsetCurrent = getOffset(current[0], withOffset);
|
|
2111
2104
|
if (offset.top >= offsetCurrent.bottom - 1 && offset.top !== offsetCurrent.top) {
|
|
2112
|
-
sorted.
|
|
2105
|
+
sorted.splice(i + 1, 0, [el]);
|
|
2113
2106
|
break;
|
|
2114
2107
|
}
|
|
2115
2108
|
if (offset.bottom - 1 > offsetCurrent.top || offset.top === offsetCurrent.top) {
|
|
@@ -2373,7 +2366,7 @@
|
|
|
2373
2366
|
}
|
|
2374
2367
|
|
|
2375
2368
|
function maybeDefaultPreventClick(e) {
|
|
2376
|
-
if (e.target.closest('a[href="#"],a[href=""]')) {
|
|
2369
|
+
if (e.type === "keydown" && e.keyCode === keyMap.SPACE || e.target.closest('a[href="#"],a[href=""]')) {
|
|
2377
2370
|
e.preventDefault();
|
|
2378
2371
|
}
|
|
2379
2372
|
}
|
|
@@ -2612,8 +2605,9 @@
|
|
|
2612
2605
|
const elements = isTag(parentNode, "picture") ? children(parentNode) : [el];
|
|
2613
2606
|
elements.forEach((el2) => setSourceProps(el2, el2));
|
|
2614
2607
|
} else if (src) {
|
|
2615
|
-
|
|
2616
|
-
|
|
2608
|
+
const previousBackground = el.style.backgroundImage;
|
|
2609
|
+
css(el, "backgroundImage", `url(${escape(src)})`);
|
|
2610
|
+
if (el.style.backgroundImage !== previousBackground) {
|
|
2617
2611
|
trigger(el, createEvent("load", false));
|
|
2618
2612
|
}
|
|
2619
2613
|
}
|
|
@@ -2666,7 +2660,7 @@
|
|
|
2666
2660
|
return isTag(el, "img");
|
|
2667
2661
|
}
|
|
2668
2662
|
|
|
2669
|
-
let
|
|
2663
|
+
let scrollLocks = 0;
|
|
2670
2664
|
function preventBackgroundScroll(el) {
|
|
2671
2665
|
const off = on(
|
|
2672
2666
|
el,
|
|
@@ -2701,21 +2695,25 @@
|
|
|
2701
2695
|
},
|
|
2702
2696
|
{ passive: true }
|
|
2703
2697
|
);
|
|
2704
|
-
if (prevented) {
|
|
2705
|
-
return off;
|
|
2706
|
-
}
|
|
2707
|
-
prevented = true;
|
|
2708
2698
|
const { scrollingElement } = document;
|
|
2709
2699
|
const props = {
|
|
2710
2700
|
overflowY: CSS.supports("overflow", "clip") ? "clip" : "hidden",
|
|
2711
2701
|
touchAction: "none",
|
|
2712
2702
|
scrollbarGutter: width(window) - scrollingElement.clientWidth ? "stable" : ""
|
|
2713
2703
|
};
|
|
2714
|
-
|
|
2704
|
+
if (!scrollLocks++) {
|
|
2705
|
+
css(scrollingElement, props);
|
|
2706
|
+
}
|
|
2707
|
+
let released = false;
|
|
2715
2708
|
return () => {
|
|
2716
|
-
|
|
2709
|
+
if (released) {
|
|
2710
|
+
return;
|
|
2711
|
+
}
|
|
2712
|
+
released = true;
|
|
2717
2713
|
off();
|
|
2718
|
-
|
|
2714
|
+
if (!--scrollLocks) {
|
|
2715
|
+
resetProps(scrollingElement, props);
|
|
2716
|
+
}
|
|
2719
2717
|
};
|
|
2720
2718
|
}
|
|
2721
2719
|
|
|
@@ -3423,7 +3421,7 @@
|
|
|
3423
3421
|
return Math.atan2(Math.abs(pos2.y - pos1.y), Math.abs(pos2.x - pos1.x)) * 180 / Math.PI;
|
|
3424
3422
|
}
|
|
3425
3423
|
|
|
3426
|
-
var VERSION = '3.25.29-dev.
|
|
3424
|
+
var VERSION = '3.25.29-dev.a0b5ca8';
|
|
3427
3425
|
|
|
3428
3426
|
function initWatches(instance) {
|
|
3429
3427
|
instance._watches = [];
|
|
@@ -4615,7 +4613,7 @@
|
|
|
4615
4613
|
} else if (matches2 = src.match(/\/\/.*?vimeo\.[a-z]+\/(\d+)[&?]?(.*)?/)) {
|
|
4616
4614
|
try {
|
|
4617
4615
|
const { height, width } = await (await fetch(
|
|
4618
|
-
`https://vimeo.com/api/oembed.json?maxwidth=1920&url=${
|
|
4616
|
+
`https://vimeo.com/api/oembed.json?maxwidth=1920&url=${encodeURIComponent(
|
|
4619
4617
|
src
|
|
4620
4618
|
)}`,
|
|
4621
4619
|
{ credentials: "omit" }
|
|
@@ -4706,10 +4704,10 @@
|
|
|
4706
4704
|
return el;
|
|
4707
4705
|
}
|
|
4708
4706
|
function isImage(src) {
|
|
4709
|
-
return src == null ? void 0 : src.match(/\.(avif|jpe?g|jfif|a?png|gif|svg|webp)(
|
|
4707
|
+
return src == null ? void 0 : src.match(/\.(avif|jpe?g|jfif|a?png|gif|svg|webp)($|[?#])/i);
|
|
4710
4708
|
}
|
|
4711
4709
|
function isVideo(src) {
|
|
4712
|
-
return src == null ? void 0 : src.match(/\.(mp4|webm|ogv)(
|
|
4710
|
+
return src == null ? void 0 : src.match(/\.(mp4|webm|ogv)($|[?#])/i);
|
|
4713
4711
|
}
|
|
4714
4712
|
|
|
4715
4713
|
const selDisabled$1 = ".uk-disabled *, .uk-disabled, [disabled]";
|
|
@@ -4932,12 +4930,16 @@
|
|
|
4932
4930
|
}
|
|
4933
4931
|
|
|
4934
4932
|
function getMaxPathLength(el) {
|
|
4935
|
-
|
|
4936
|
-
Math.
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4933
|
+
try {
|
|
4934
|
+
return Math.ceil(
|
|
4935
|
+
Math.max(0, ...$$("[stroke]", el).map((stroke) => {
|
|
4936
|
+
var _a;
|
|
4937
|
+
return ((_a = stroke.getTotalLength) == null ? void 0 : _a.call(stroke)) || 0;
|
|
4938
|
+
}))
|
|
4939
|
+
);
|
|
4940
|
+
} catch {
|
|
4941
|
+
return 0;
|
|
4942
|
+
}
|
|
4941
4943
|
}
|
|
4942
4944
|
|
|
4943
4945
|
const props = {
|
|
@@ -6913,11 +6915,10 @@
|
|
|
6913
6915
|
mixins: [Class, Togglable],
|
|
6914
6916
|
args: "animation",
|
|
6915
6917
|
props: {
|
|
6916
|
-
animation: Boolean,
|
|
6917
6918
|
close: String
|
|
6918
6919
|
},
|
|
6919
6920
|
data: {
|
|
6920
|
-
animation: true,
|
|
6921
|
+
animation: [true],
|
|
6921
6922
|
selClose: ".uk-alert-close",
|
|
6922
6923
|
duration: 150
|
|
6923
6924
|
},
|
|
@@ -6931,7 +6932,11 @@
|
|
|
6931
6932
|
},
|
|
6932
6933
|
methods: {
|
|
6933
6934
|
async close() {
|
|
6934
|
-
await this.toggleElement(
|
|
6935
|
+
await this.toggleElement(
|
|
6936
|
+
this.$el,
|
|
6937
|
+
false,
|
|
6938
|
+
this.animation[0] === true || this.animation[0] === 1 ? animate : true
|
|
6939
|
+
);
|
|
6935
6940
|
this.$destroy(true);
|
|
6936
6941
|
}
|
|
6937
6942
|
}
|
|
@@ -7595,7 +7600,7 @@
|
|
|
7595
7600
|
el: ({ dropContainer }) => dropContainer,
|
|
7596
7601
|
delegate: ({ clsDrop }) => `.${clsDrop}`,
|
|
7597
7602
|
handler(e) {
|
|
7598
|
-
var _a;
|
|
7603
|
+
var _a, _b;
|
|
7599
7604
|
const { current, keyCode, target } = e;
|
|
7600
7605
|
if (isInput(target) || !includes(this.dropdowns, current)) {
|
|
7601
7606
|
return;
|
|
@@ -7605,15 +7610,15 @@
|
|
|
7605
7610
|
if (~next) {
|
|
7606
7611
|
e.preventDefault();
|
|
7607
7612
|
const elements = $$(selFocusable, current);
|
|
7608
|
-
elements[getIndex(
|
|
7613
|
+
(_a = elements[getIndex(
|
|
7609
7614
|
next,
|
|
7610
7615
|
elements,
|
|
7611
7616
|
findIndex(elements, (el) => matches(el, ":focus"))
|
|
7612
|
-
)].focus();
|
|
7617
|
+
)]) == null ? void 0 : _a.focus();
|
|
7613
7618
|
return;
|
|
7614
7619
|
}
|
|
7615
7620
|
if (keyCode === keyMap.ESC) {
|
|
7616
|
-
(
|
|
7621
|
+
(_b = active2.targetEl) == null ? void 0 : _b.focus();
|
|
7617
7622
|
}
|
|
7618
7623
|
handleNavItemNavigation(e, this.items, active2);
|
|
7619
7624
|
}
|
|
@@ -7912,7 +7917,7 @@
|
|
|
7912
7917
|
};
|
|
7913
7918
|
},
|
|
7914
7919
|
write({ columns, scrolled, scrollColumns, translates }) {
|
|
7915
|
-
if (
|
|
7920
|
+
if (scrolled === false && !translates) {
|
|
7916
7921
|
return;
|
|
7917
7922
|
}
|
|
7918
7923
|
columns.forEach(
|
|
@@ -8331,16 +8336,9 @@
|
|
|
8331
8336
|
beforeConnect() {
|
|
8332
8337
|
const isToggle = hasClass(this.$el, "uk-search-toggle") || hasClass(this.$el, "uk-navbar-toggle");
|
|
8333
8338
|
this.icon = isToggle ? "search-toggle-icon" : hasClass(this.$el, "uk-search-icon") && this.$el.closest(".uk-search-large") ? "search-large" : this.$el.closest(".uk-search-medium") ? "search-medium" : this.$props.icon;
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
|
|
8337
|
-
if (isToggle) {
|
|
8338
|
-
this.$el.ariaLabel = this.t("toggle");
|
|
8339
|
-
} else {
|
|
8340
|
-
const button = this.$el.closest("a,button");
|
|
8341
|
-
if (button) {
|
|
8342
|
-
button.ariaLabel = this.t("submit");
|
|
8343
|
-
}
|
|
8339
|
+
const target = isToggle ? this.$el : this.$el.closest("a,button");
|
|
8340
|
+
if (target && !hasAttr(target, "aria-label")) {
|
|
8341
|
+
target.ariaLabel = this.t(isToggle ? "toggle" : "submit");
|
|
8344
8342
|
}
|
|
8345
8343
|
}
|
|
8346
8344
|
};
|
|
@@ -8426,7 +8424,7 @@
|
|
|
8426
8424
|
apply(
|
|
8427
8425
|
document.body,
|
|
8428
8426
|
(el) => each(UIkit.getComponents(el), (cmp) => {
|
|
8429
|
-
cmp.$options.isIcon && cmp.icon in added && cmp.$reset();
|
|
8427
|
+
cmp.$options.isIcon && (aliases[cmp.icon] || cmp.icon) in added && cmp.$reset();
|
|
8430
8428
|
})
|
|
8431
8429
|
);
|
|
8432
8430
|
}
|
|
@@ -8493,6 +8491,7 @@
|
|
|
8493
8491
|
[...toNodes(target), document.documentElement],
|
|
8494
8492
|
handler
|
|
8495
8493
|
);
|
|
8494
|
+
const transitionObserver = observeResize([], handler);
|
|
8496
8495
|
const listener = [
|
|
8497
8496
|
on(document, "scroll itemshown itemhidden", handler, {
|
|
8498
8497
|
passive: true,
|
|
@@ -8500,11 +8499,11 @@
|
|
|
8500
8499
|
}),
|
|
8501
8500
|
on(document, "show hide transitionstart", (e) => {
|
|
8502
8501
|
handler();
|
|
8503
|
-
return
|
|
8502
|
+
return transitionObserver.observe(e.target);
|
|
8504
8503
|
}),
|
|
8505
8504
|
on(document, "shown hidden transitionend transitioncancel", (e) => {
|
|
8506
8505
|
handler();
|
|
8507
|
-
return
|
|
8506
|
+
return transitionObserver.unobserve(e.target);
|
|
8508
8507
|
})
|
|
8509
8508
|
];
|
|
8510
8509
|
return {
|
|
@@ -8512,6 +8511,7 @@
|
|
|
8512
8511
|
unobserve: observer.unobserve.bind(observer),
|
|
8513
8512
|
disconnect() {
|
|
8514
8513
|
observer.disconnect();
|
|
8514
|
+
transitionObserver.disconnect();
|
|
8515
8515
|
listener.forEach((off) => off());
|
|
8516
8516
|
}
|
|
8517
8517
|
};
|
|
@@ -8714,7 +8714,7 @@
|
|
|
8714
8714
|
const dialog = modal.dialog(tmpl(options), options);
|
|
8715
8715
|
return assign(
|
|
8716
8716
|
new Promise((resolve) => {
|
|
8717
|
-
const off = on(dialog.$el, "hide", () => resolve(hideFn()));
|
|
8717
|
+
const off = on(dialog.$el, "hide", () => resolve(hideFn()), { self: true });
|
|
8718
8718
|
on(dialog.$el, "submit", "form", (e) => {
|
|
8719
8719
|
e.preventDefault();
|
|
8720
8720
|
resolve(submitFn(dialog));
|
|
@@ -9017,7 +9017,8 @@
|
|
|
9017
9017
|
);
|
|
9018
9018
|
if (!overflow[i - 1]) {
|
|
9019
9019
|
const dir = i ? "Top" : "Left";
|
|
9020
|
-
const
|
|
9020
|
+
const position = this.$el[`scroll${dir}`] + (!i && isRtl ? overflow[i] : 0);
|
|
9021
|
+
const percent = overflow[i] ? position / overflow[i] : 0;
|
|
9021
9022
|
const toValue = (value) => overflow[i] ? clamp((this.fadeDuration - value) / this.fadeDuration) : 1;
|
|
9022
9023
|
css(this.$el, {
|
|
9023
9024
|
"--uk-overflow-fade-start-opacity": toValue(percent),
|
|
@@ -9039,7 +9040,7 @@
|
|
|
9039
9040
|
const { $el: el, threshold, $options } = this;
|
|
9040
9041
|
let started;
|
|
9041
9042
|
const off = on(document, pointerMove$1, move(e), pointerOptions);
|
|
9042
|
-
|
|
9043
|
+
once(document, [pointerUp$1, pointerCancel], end, true);
|
|
9043
9044
|
function move(e2) {
|
|
9044
9045
|
let origin = getEventPos(e2);
|
|
9045
9046
|
let pos = origin;
|
|
@@ -9713,7 +9714,13 @@
|
|
|
9713
9714
|
methods: {
|
|
9714
9715
|
async getSvg() {
|
|
9715
9716
|
if (isTag(this.$el, "img") && !this.$el.complete && this.$el.loading === "lazy") {
|
|
9716
|
-
await new Promise(
|
|
9717
|
+
await new Promise(
|
|
9718
|
+
(resolve, reject) => once(
|
|
9719
|
+
this.$el,
|
|
9720
|
+
"load error",
|
|
9721
|
+
(event) => event.type === "load" ? resolve() : reject(event)
|
|
9722
|
+
)
|
|
9723
|
+
);
|
|
9717
9724
|
}
|
|
9718
9725
|
return parseSVG(await loadSVG(this.src), this.icon) || Promise.reject("SVG not found.");
|
|
9719
9726
|
}
|
|
@@ -9821,7 +9828,7 @@
|
|
|
9821
9828
|
name: "click keydown",
|
|
9822
9829
|
delegate: ({ toggle }) => toggle,
|
|
9823
9830
|
handler(e) {
|
|
9824
|
-
if (!matches(e.current, selDisabled) && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
|
|
9831
|
+
if (!e.defaultPrevented && !matches(e.current, selDisabled) && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
|
|
9825
9832
|
maybeDefaultPreventClick(e);
|
|
9826
9833
|
this.show(e.current);
|
|
9827
9834
|
}
|