uikit 3.25.29-dev.3bc1304 → 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 +20 -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 +2 -2
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +16 -12
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +16 -12
- 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 +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 +11 -15
- 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 +11 -15
- 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 +63 -52
- 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 +66 -55
- 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/dropnav.js +1 -1
- package/src/js/core/grid.js +1 -1
- package/src/js/core/icon.js +3 -1
- 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/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/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) {
|
|
@@ -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 = {
|
|
@@ -7598,7 +7600,7 @@
|
|
|
7598
7600
|
el: ({ dropContainer }) => dropContainer,
|
|
7599
7601
|
delegate: ({ clsDrop }) => `.${clsDrop}`,
|
|
7600
7602
|
handler(e) {
|
|
7601
|
-
var _a;
|
|
7603
|
+
var _a, _b;
|
|
7602
7604
|
const { current, keyCode, target } = e;
|
|
7603
7605
|
if (isInput(target) || !includes(this.dropdowns, current)) {
|
|
7604
7606
|
return;
|
|
@@ -7608,15 +7610,15 @@
|
|
|
7608
7610
|
if (~next) {
|
|
7609
7611
|
e.preventDefault();
|
|
7610
7612
|
const elements = $$(selFocusable, current);
|
|
7611
|
-
elements[getIndex(
|
|
7613
|
+
(_a = elements[getIndex(
|
|
7612
7614
|
next,
|
|
7613
7615
|
elements,
|
|
7614
7616
|
findIndex(elements, (el) => matches(el, ":focus"))
|
|
7615
|
-
)].focus();
|
|
7617
|
+
)]) == null ? void 0 : _a.focus();
|
|
7616
7618
|
return;
|
|
7617
7619
|
}
|
|
7618
7620
|
if (keyCode === keyMap.ESC) {
|
|
7619
|
-
(
|
|
7621
|
+
(_b = active2.targetEl) == null ? void 0 : _b.focus();
|
|
7620
7622
|
}
|
|
7621
7623
|
handleNavItemNavigation(e, this.items, active2);
|
|
7622
7624
|
}
|
|
@@ -7915,7 +7917,7 @@
|
|
|
7915
7917
|
};
|
|
7916
7918
|
},
|
|
7917
7919
|
write({ columns, scrolled, scrollColumns, translates }) {
|
|
7918
|
-
if (
|
|
7920
|
+
if (scrolled === false && !translates) {
|
|
7919
7921
|
return;
|
|
7920
7922
|
}
|
|
7921
7923
|
columns.forEach(
|
|
@@ -8422,7 +8424,7 @@
|
|
|
8422
8424
|
apply(
|
|
8423
8425
|
document.body,
|
|
8424
8426
|
(el) => each(UIkit.getComponents(el), (cmp) => {
|
|
8425
|
-
cmp.$options.isIcon && cmp.icon in added && cmp.$reset();
|
|
8427
|
+
cmp.$options.isIcon && (aliases[cmp.icon] || cmp.icon) in added && cmp.$reset();
|
|
8426
8428
|
})
|
|
8427
8429
|
);
|
|
8428
8430
|
}
|
|
@@ -8489,6 +8491,7 @@
|
|
|
8489
8491
|
[...toNodes(target), document.documentElement],
|
|
8490
8492
|
handler
|
|
8491
8493
|
);
|
|
8494
|
+
const transitionObserver = observeResize([], handler);
|
|
8492
8495
|
const listener = [
|
|
8493
8496
|
on(document, "scroll itemshown itemhidden", handler, {
|
|
8494
8497
|
passive: true,
|
|
@@ -8496,11 +8499,11 @@
|
|
|
8496
8499
|
}),
|
|
8497
8500
|
on(document, "show hide transitionstart", (e) => {
|
|
8498
8501
|
handler();
|
|
8499
|
-
return
|
|
8502
|
+
return transitionObserver.observe(e.target);
|
|
8500
8503
|
}),
|
|
8501
8504
|
on(document, "shown hidden transitionend transitioncancel", (e) => {
|
|
8502
8505
|
handler();
|
|
8503
|
-
return
|
|
8506
|
+
return transitionObserver.unobserve(e.target);
|
|
8504
8507
|
})
|
|
8505
8508
|
];
|
|
8506
8509
|
return {
|
|
@@ -8508,6 +8511,7 @@
|
|
|
8508
8511
|
unobserve: observer.unobserve.bind(observer),
|
|
8509
8512
|
disconnect() {
|
|
8510
8513
|
observer.disconnect();
|
|
8514
|
+
transitionObserver.disconnect();
|
|
8511
8515
|
listener.forEach((off) => off());
|
|
8512
8516
|
}
|
|
8513
8517
|
};
|
|
@@ -8710,7 +8714,7 @@
|
|
|
8710
8714
|
const dialog = modal.dialog(tmpl(options), options);
|
|
8711
8715
|
return assign(
|
|
8712
8716
|
new Promise((resolve) => {
|
|
8713
|
-
const off = on(dialog.$el, "hide", () => resolve(hideFn()));
|
|
8717
|
+
const off = on(dialog.$el, "hide", () => resolve(hideFn()), { self: true });
|
|
8714
8718
|
on(dialog.$el, "submit", "form", (e) => {
|
|
8715
8719
|
e.preventDefault();
|
|
8716
8720
|
resolve(submitFn(dialog));
|
|
@@ -9013,7 +9017,8 @@
|
|
|
9013
9017
|
);
|
|
9014
9018
|
if (!overflow[i - 1]) {
|
|
9015
9019
|
const dir = i ? "Top" : "Left";
|
|
9016
|
-
const
|
|
9020
|
+
const position = this.$el[`scroll${dir}`] + (!i && isRtl ? overflow[i] : 0);
|
|
9021
|
+
const percent = overflow[i] ? position / overflow[i] : 0;
|
|
9017
9022
|
const toValue = (value) => overflow[i] ? clamp((this.fadeDuration - value) / this.fadeDuration) : 1;
|
|
9018
9023
|
css(this.$el, {
|
|
9019
9024
|
"--uk-overflow-fade-start-opacity": toValue(percent),
|
|
@@ -9035,7 +9040,7 @@
|
|
|
9035
9040
|
const { $el: el, threshold, $options } = this;
|
|
9036
9041
|
let started;
|
|
9037
9042
|
const off = on(document, pointerMove$1, move(e), pointerOptions);
|
|
9038
|
-
|
|
9043
|
+
once(document, [pointerUp$1, pointerCancel], end, true);
|
|
9039
9044
|
function move(e2) {
|
|
9040
9045
|
let origin = getEventPos(e2);
|
|
9041
9046
|
let pos = origin;
|
|
@@ -9709,7 +9714,13 @@
|
|
|
9709
9714
|
methods: {
|
|
9710
9715
|
async getSvg() {
|
|
9711
9716
|
if (isTag(this.$el, "img") && !this.$el.complete && this.$el.loading === "lazy") {
|
|
9712
|
-
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
|
+
);
|
|
9713
9724
|
}
|
|
9714
9725
|
return parseSVG(await loadSVG(this.src), this.icon) || Promise.reject("SVG not found.");
|
|
9715
9726
|
}
|
|
@@ -9817,7 +9828,7 @@
|
|
|
9817
9828
|
name: "click keydown",
|
|
9818
9829
|
delegate: ({ toggle }) => toggle,
|
|
9819
9830
|
handler(e) {
|
|
9820
|
-
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)) {
|
|
9821
9832
|
maybeDefaultPreventClick(e);
|
|
9822
9833
|
this.show(e.current);
|
|
9823
9834
|
}
|