uikit 3.19.5-dev.68a7ed8e1 → 3.19.5-dev.74c343fa4

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 (49) hide show
  1. package/CHANGELOG.md +2 -1
  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 +87 -87
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +1 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +1 -1
  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 +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +1 -1
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +1 -1
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +87 -87
  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 +13 -15
  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 +94 -101
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/margin.js +5 -0
  44. package/src/js/core/scrollspy.js +0 -3
  45. package/src/js/mixin/internal/animate-fade.js +1 -4
  46. package/src/js/mixin/internal/animate-slide.js +2 -7
  47. package/src/js/util/fastdom.js +6 -13
  48. package/tests/base.html +1 -1
  49. package/tests/switcher.html +86 -86
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.19.5-dev.68a7ed8e1 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
1
+ /*! UIkit 3.19.5-dev.74c343fa4 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -999,24 +999,18 @@
999
999
  },
1000
1000
  flush
1001
1001
  };
1002
- function flush(recursion) {
1002
+ function flush() {
1003
1003
  runTasks(fastdom.reads);
1004
1004
  runTasks(fastdom.writes.splice(0));
1005
1005
  fastdom.scheduled = false;
1006
1006
  if (fastdom.reads.length || fastdom.writes.length) {
1007
- scheduleFlush(recursion + 1);
1007
+ scheduleFlush();
1008
1008
  }
1009
1009
  }
1010
- const RECURSION_LIMIT = 4;
1011
- function scheduleFlush(recursion) {
1012
- if (fastdom.scheduled) {
1013
- return;
1014
- }
1015
- fastdom.scheduled = true;
1016
- if (recursion && recursion < RECURSION_LIMIT) {
1017
- Promise.resolve().then(() => flush(recursion));
1018
- } else {
1019
- requestAnimationFrame(() => flush(1));
1010
+ function scheduleFlush() {
1011
+ if (!fastdom.scheduled) {
1012
+ fastdom.scheduled = true;
1013
+ queueMicrotask(flush);
1020
1014
  }
1021
1015
  }
1022
1016
  function runTasks(tasks) {
@@ -2033,6 +2027,11 @@
2033
2027
  firstColumn: "uk-first-column"
2034
2028
  },
2035
2029
  observe: [
2030
+ mutation({
2031
+ options: {
2032
+ childList: true
2033
+ }
2034
+ }),
2036
2035
  mutation({
2037
2036
  options: {
2038
2037
  attributes: true,
@@ -2114,99 +2113,15 @@
2114
2113
  };
2115
2114
  }
2116
2115
 
2117
- const clsLeave = "uk-transition-leave";
2118
- const clsEnter = "uk-transition-enter";
2119
- function fade(action, target, duration, stagger = 0) {
2120
- const index = transitionIndex(target, true);
2121
- const propsIn = { opacity: 1 };
2122
- const propsOut = { opacity: 0 };
2123
- const wrapIndexFn = (fn) => () => index === transitionIndex(target) ? fn() : Promise.reject();
2124
- const leaveFn = wrapIndexFn(async () => {
2125
- addClass(target, clsLeave);
2126
- await Promise.all(
2127
- getTransitionNodes(target).map(
2128
- (child, i) => new Promise(
2129
- (resolve) => setTimeout(
2130
- () => Transition.start(child, propsOut, duration / 2, "ease").then(
2131
- resolve
2132
- ),
2133
- i * stagger
2134
- )
2135
- )
2136
- )
2137
- );
2138
- removeClass(target, clsLeave);
2139
- });
2140
- const enterFn = wrapIndexFn(async () => {
2141
- const oldHeight = height(target);
2142
- addClass(target, clsEnter);
2143
- action();
2144
- css(children(target), { opacity: 0 });
2145
- await awaitFrame$1();
2146
- const nodes = children(target);
2147
- const newHeight = height(target);
2148
- css(target, "alignContent", "flex-start");
2149
- height(target, oldHeight);
2150
- const transitionNodes = getTransitionNodes(target);
2151
- css(nodes, propsOut);
2152
- const transitions = transitionNodes.map(async (child, i) => {
2153
- await awaitTimeout(i * stagger);
2154
- await Transition.start(child, propsIn, duration / 2, "ease");
2155
- });
2156
- if (oldHeight !== newHeight) {
2157
- transitions.push(
2158
- Transition.start(
2159
- target,
2160
- { height: newHeight },
2161
- duration / 2 + transitionNodes.length * stagger,
2162
- "ease"
2163
- )
2164
- );
2165
- }
2166
- await Promise.all(transitions).then(() => {
2167
- removeClass(target, clsEnter);
2168
- if (index === transitionIndex(target)) {
2169
- css(target, { height: "", alignContent: "" });
2170
- css(nodes, { opacity: "" });
2171
- delete target.dataset.transition;
2172
- }
2173
- });
2174
- });
2175
- return hasClass(target, clsLeave) ? waitTransitionend(target).then(enterFn) : hasClass(target, clsEnter) ? waitTransitionend(target).then(leaveFn).then(enterFn) : leaveFn().then(enterFn);
2176
- }
2177
- function transitionIndex(target, next) {
2178
- if (next) {
2179
- target.dataset.transition = 1 + transitionIndex(target);
2180
- }
2181
- return toNumber(target.dataset.transition) || 0;
2182
- }
2183
- function waitTransitionend(target) {
2184
- return Promise.all(
2185
- children(target).filter(Transition.inProgress).map(
2186
- (el) => new Promise((resolve) => once(el, "transitionend transitioncanceled", resolve))
2187
- )
2188
- );
2189
- }
2190
- function getTransitionNodes(target) {
2191
- return getRows(children(target)).flat().filter(isVisible);
2192
- }
2193
- function awaitFrame$1() {
2194
- return new Promise((resolve) => requestAnimationFrame(resolve));
2195
- }
2196
- function awaitTimeout(timeout) {
2197
- return new Promise((resolve) => setTimeout(resolve, timeout));
2198
- }
2199
-
2200
2116
  async function slide(action, target, duration) {
2201
2117
  await awaitFrame();
2202
2118
  let nodes = children(target);
2203
2119
  const currentProps = nodes.map((el) => getProps$1(el, true));
2204
2120
  const targetProps = { ...css(target, ["height", "padding"]), display: "block" };
2205
2121
  await Promise.all(nodes.concat(target).map(Transition.cancel));
2206
- action();
2122
+ await action();
2207
2123
  nodes = nodes.concat(children(target).filter((el) => !includes(nodes, el)));
2208
2124
  await Promise.resolve();
2209
- fastdom.flush();
2210
2125
  const targetStyle = attr(target, "style");
2211
2126
  const targetPropsTo = css(target, ["height", "padding"]);
2212
2127
  const [propsTo, propsFrom] = getTransitionProps(target, nodes, currentProps);
@@ -2214,7 +2129,6 @@
2214
2129
  nodes.forEach((el, i) => propsFrom[i] && css(el, propsFrom[i]));
2215
2130
  css(target, targetProps);
2216
2131
  trigger(target, "scroll");
2217
- fastdom.flush();
2218
2132
  await awaitFrame();
2219
2133
  const transitions = nodes.map((el, i) => parent(el) === target && Transition.start(el, propsTo[i], duration, "ease")).concat(Transition.start(target, targetPropsTo, duration, "ease"));
2220
2134
  try {
@@ -2284,6 +2198,86 @@
2284
2198
  return new Promise((resolve) => requestAnimationFrame(resolve));
2285
2199
  }
2286
2200
 
2201
+ const clsLeave = "uk-transition-leave";
2202
+ const clsEnter = "uk-transition-enter";
2203
+ function fade(action, target, duration, stagger = 0) {
2204
+ const index = transitionIndex(target, true);
2205
+ const propsIn = { opacity: 1 };
2206
+ const propsOut = { opacity: 0 };
2207
+ const wrapIndexFn = (fn) => () => index === transitionIndex(target) ? fn() : Promise.reject();
2208
+ const leaveFn = wrapIndexFn(async () => {
2209
+ addClass(target, clsLeave);
2210
+ await Promise.all(
2211
+ getTransitionNodes(target).map(
2212
+ (child, i) => new Promise(
2213
+ (resolve) => setTimeout(
2214
+ () => Transition.start(child, propsOut, duration / 2, "ease").then(
2215
+ resolve
2216
+ ),
2217
+ i * stagger
2218
+ )
2219
+ )
2220
+ )
2221
+ );
2222
+ removeClass(target, clsLeave);
2223
+ });
2224
+ const enterFn = wrapIndexFn(async () => {
2225
+ const oldHeight = height(target);
2226
+ addClass(target, clsEnter);
2227
+ action();
2228
+ css(children(target), { opacity: 0 });
2229
+ await awaitFrame();
2230
+ const nodes = children(target);
2231
+ const newHeight = height(target);
2232
+ css(target, "alignContent", "flex-start");
2233
+ height(target, oldHeight);
2234
+ const transitionNodes = getTransitionNodes(target);
2235
+ css(nodes, propsOut);
2236
+ const transitions = transitionNodes.map(async (child, i) => {
2237
+ await awaitTimeout(i * stagger);
2238
+ await Transition.start(child, propsIn, duration / 2, "ease");
2239
+ });
2240
+ if (oldHeight !== newHeight) {
2241
+ transitions.push(
2242
+ Transition.start(
2243
+ target,
2244
+ { height: newHeight },
2245
+ duration / 2 + transitionNodes.length * stagger,
2246
+ "ease"
2247
+ )
2248
+ );
2249
+ }
2250
+ await Promise.all(transitions).then(() => {
2251
+ removeClass(target, clsEnter);
2252
+ if (index === transitionIndex(target)) {
2253
+ css(target, { height: "", alignContent: "" });
2254
+ css(nodes, { opacity: "" });
2255
+ delete target.dataset.transition;
2256
+ }
2257
+ });
2258
+ });
2259
+ return hasClass(target, clsLeave) ? waitTransitionend(target).then(enterFn) : hasClass(target, clsEnter) ? waitTransitionend(target).then(leaveFn).then(enterFn) : leaveFn().then(enterFn);
2260
+ }
2261
+ function transitionIndex(target, next) {
2262
+ if (next) {
2263
+ target.dataset.transition = 1 + transitionIndex(target);
2264
+ }
2265
+ return toNumber(target.dataset.transition) || 0;
2266
+ }
2267
+ function waitTransitionend(target) {
2268
+ return Promise.all(
2269
+ children(target).filter(Transition.inProgress).map(
2270
+ (el) => new Promise((resolve) => once(el, "transitionend transitioncanceled", resolve))
2271
+ )
2272
+ );
2273
+ }
2274
+ function getTransitionNodes(target) {
2275
+ return getRows(children(target)).flat().filter(isVisible);
2276
+ }
2277
+ function awaitTimeout(timeout) {
2278
+ return new Promise((resolve) => setTimeout(resolve, timeout));
2279
+ }
2280
+
2287
2281
  var Animate = {
2288
2282
  props: {
2289
2283
  duration: Number,
@@ -3565,7 +3559,7 @@
3565
3559
  };
3566
3560
  App.util = util;
3567
3561
  App.options = {};
3568
- App.version = "3.19.5-dev.68a7ed8e1";
3562
+ App.version = "3.19.5-dev.74c343fa4";
3569
3563
 
3570
3564
  const PREFIX = "uk-";
3571
3565
  const DATA = "__uikit__";
@@ -8924,7 +8918,6 @@
8924
8918
  }
8925
8919
  trigger(el, inview ? "inview" : "outview");
8926
8920
  state.inview = inview;
8927
- this.$update(el);
8928
8921
  }
8929
8922
  }
8930
8923
  };