uikit 3.20.9-dev.449143287 → 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.
Files changed (71) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/css/uikit-core-rtl.css +18 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +18 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +18 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +18 -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 +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +4 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +4 -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 +11 -5
  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 +10 -4
  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 +70 -69
  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 +88 -78
  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/components/internal/slider-transitioner.js +4 -0
  45. package/src/js/components/slider.js +1 -1
  46. package/src/js/core/grid.js +4 -7
  47. package/src/js/core/height-placeholder.js +1 -1
  48. package/src/js/core/inverse.js +30 -3
  49. package/src/js/core/modal.js +2 -1
  50. package/src/js/core/scrollspy-nav.js +2 -2
  51. package/src/js/core/scrollspy.js +1 -1
  52. package/src/js/core/sticky.js +21 -28
  53. package/src/js/mixin/internal/slideshow-transitioner.js +4 -0
  54. package/src/js/mixin/slider-parallax.js +7 -3
  55. package/src/js/util/viewport.js +8 -8
  56. package/src/less/components/card.less +3 -0
  57. package/src/less/components/dropbar.less +1 -0
  58. package/src/less/components/dropdown.less +1 -0
  59. package/src/less/components/navbar.less +1 -0
  60. package/src/less/components/offcanvas.less +1 -0
  61. package/src/less/components/overlay.less +2 -0
  62. package/src/less/components/section.less +5 -0
  63. package/src/less/components/tile.less +4 -0
  64. package/src/scss/components/card.scss +3 -0
  65. package/src/scss/components/dropbar.scss +1 -0
  66. package/src/scss/components/dropdown.scss +1 -0
  67. package/src/scss/components/navbar.scss +1 -0
  68. package/src/scss/components/offcanvas.scss +1 -0
  69. package/src/scss/components/overlay.scss +2 -0
  70. package/src/scss/components/section.scss +5 -0
  71. package/src/scss/components/tile.scss +4 -0
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.20.9-dev.449143287 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
1
+ /*! UIkit 3.20.9-dev.76ecfef9e | 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() :
@@ -310,7 +310,7 @@
310
310
  const isVisibleFn = inBrowser && Element.prototype.checkVisibility || function() {
311
311
  return this.offsetWidth || this.offsetHeight || this.getClientRects().length;
312
312
  };
313
- function isVisible(element) {
313
+ function isVisible$1(element) {
314
314
  return toNodes(element).some((element2) => isVisibleFn.call(element2));
315
315
  }
316
316
  const selInput = "input,select,textarea,button";
@@ -1199,7 +1199,7 @@
1199
1199
  }
1200
1200
 
1201
1201
  function isInView(element, offsetTop = 0, offsetLeft = 0) {
1202
- if (!isVisible(element)) {
1202
+ if (!isVisible$1(element)) {
1203
1203
  return false;
1204
1204
  }
1205
1205
  return intersectRect(
@@ -1215,7 +1215,7 @@
1215
1215
  );
1216
1216
  }
1217
1217
  function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
1218
- const parents2 = isVisible(element) ? scrollParents(element, false, ["hidden"]) : [];
1218
+ const parents2 = isVisible$1(element) ? scrollParents(element, false, ["hidden"]) : [];
1219
1219
  return parents2.reduce(
1220
1220
  (fn, scrollElement, i) => {
1221
1221
  const { scrollTop, scrollHeight, offsetHeight } = scrollElement;
@@ -1274,7 +1274,7 @@
1274
1274
  }
1275
1275
  }
1276
1276
  function scrolledOver(element, startOffset = 0, endOffset = 0) {
1277
- if (!isVisible(element)) {
1277
+ if (!isVisible$1(element)) {
1278
1278
  return 0;
1279
1279
  }
1280
1280
  const scrollElement = scrollParent(element, true);
@@ -1324,7 +1324,7 @@
1324
1324
  ["height", "y", "top", "bottom"]
1325
1325
  ]) {
1326
1326
  if (isWindow(viewportElement)) {
1327
- viewportElement = scrollElement.ownerDocument;
1327
+ viewportElement = viewportElement.document;
1328
1328
  } else {
1329
1329
  rect[start] += toFloat(css(viewportElement, `border-${start}-width`));
1330
1330
  }
@@ -1336,17 +1336,16 @@
1336
1336
  }
1337
1337
  function getCoveringElement(target) {
1338
1338
  const { left, width, top } = dimensions(target);
1339
- for (const topPosition of [0, top]) {
1340
- const coverEl = target.ownerDocument.elementsFromPoint(left + width / 2, topPosition).find(
1341
- (el) => !el.contains(target) && // If e.g. Offcanvas is not yet closed
1339
+ for (const position of top ? [0, top] : [0]) {
1340
+ for (const el of toWindow(target).document.elementsFromPoint(left + width / 2, position)) {
1341
+ if (!el.contains(target) && // If e.g. Offcanvas is not yet closed
1342
1342
  !hasClass(el, "uk-togglable-leave") && (hasPosition(el, "fixed") && zIndex(
1343
1343
  parents(target).reverse().find(
1344
1344
  (parent2) => !parent2.contains(el) && !hasPosition(parent2, "static")
1345
1345
  )
1346
- ) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))
1347
- );
1348
- if (coverEl) {
1349
- return coverEl;
1346
+ ) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))) {
1347
+ return el;
1348
+ }
1350
1349
  }
1351
1350
  }
1352
1351
  }
@@ -1611,7 +1610,7 @@
1611
1610
  isTouch: isTouch,
1612
1611
  isUndefined: isUndefined,
1613
1612
  isVideo: isVideo,
1614
- isVisible: isVisible,
1613
+ isVisible: isVisible$1,
1615
1614
  isVoidElement: isVoidElement,
1616
1615
  isWindow: isWindow,
1617
1616
  last: last,
@@ -2172,7 +2171,7 @@
2172
2171
  };
2173
2172
  App.util = util;
2174
2173
  App.options = {};
2175
- App.version = "3.20.9-dev.449143287";
2174
+ App.version = "3.20.9-dev.76ecfef9e";
2176
2175
 
2177
2176
  const PREFIX = "uk-";
2178
2177
  const DATA = "__uikit__";
@@ -2227,7 +2226,7 @@
2227
2226
  function detachFromElement(element, instance) {
2228
2227
  var _a;
2229
2228
  (_a = element[DATA]) == null ? true : delete _a[instance.$options.name];
2230
- if (!isEmpty(element[DATA])) {
2229
+ if (isEmpty(element[DATA])) {
2231
2230
  delete element[DATA];
2232
2231
  }
2233
2232
  }
@@ -2550,7 +2549,7 @@
2550
2549
  },
2551
2550
  isToggled(el = this.$el) {
2552
2551
  el = toNode(el);
2553
- return hasClass(el, this.clsEnter) ? true : hasClass(el, this.clsLeave) ? false : this.cls ? hasClass(el, this.cls.split(" ")[0]) : isVisible(el);
2552
+ return hasClass(el, this.clsEnter) ? true : hasClass(el, this.clsLeave) ? false : this.cls ? hasClass(el, this.cls.split(" ")[0]) : isVisible$1(el);
2554
2553
  },
2555
2554
  _toggle(el, toggled) {
2556
2555
  if (!el) {
@@ -2565,7 +2564,7 @@
2565
2564
  changed = toggled === el.hidden;
2566
2565
  changed && (el.hidden = !toggled);
2567
2566
  }
2568
- $$("[autofocus]", el).some((el2) => isVisible(el2) ? el2.focus() || true : el2.blur());
2567
+ $$("[autofocus]", el).some((el2) => isVisible$1(el2) ? el2.focus() || true : el2.blur());
2569
2568
  if (changed) {
2570
2569
  trigger(el, "toggled", [toggled, this]);
2571
2570
  }
@@ -3998,7 +3997,7 @@
3998
3997
  (el, i) => i && elements[i - 1].offsetParent !== el.offsetParent
3999
3998
  );
4000
3999
  for (const el of elements) {
4001
- if (!isVisible(el)) {
4000
+ if (!isVisible$1(el)) {
4002
4001
  continue;
4003
4002
  }
4004
4003
  const offset = getOffset(el, withOffset);
@@ -4131,11 +4130,8 @@
4131
4130
  },
4132
4131
  {
4133
4132
  read({ rows, scrollColumns, parallaxStart, parallaxEnd }) {
4134
- if (scrollColumns && positionedAbsolute(rows)) {
4135
- return false;
4136
- }
4137
4133
  return {
4138
- scrolled: scrollColumns ? scrolledOver(this.$el, parallaxStart, parallaxEnd) : false
4134
+ scrolled: scrollColumns && !positionedAbsolute(rows) ? scrolledOver(this.$el, parallaxStart, parallaxEnd) : false
4139
4135
  };
4140
4136
  },
4141
4137
  write({ columns, scrolled, scrollColumns, translates }) {
@@ -4257,7 +4253,7 @@
4257
4253
  }
4258
4254
  function getHeight(element) {
4259
4255
  const style = pick(element.style, ["display", "minHeight"]);
4260
- if (!isVisible(element)) {
4256
+ if (!isVisible$1(element)) {
4261
4257
  css(element, "display", "block", "important");
4262
4258
  }
4263
4259
  css(element, "minHeight", "");
@@ -4283,7 +4279,7 @@
4283
4279
  observe: resize({ target: ({ target }) => target }),
4284
4280
  update: {
4285
4281
  read() {
4286
- return { height: this.target.offsetHeight };
4282
+ return this.target ? { height: this.target.offsetHeight } : false;
4287
4283
  },
4288
4284
  write({ height }) {
4289
4285
  css(this.$el, { minHeight: height });
@@ -4312,7 +4308,7 @@
4312
4308
  ],
4313
4309
  update: {
4314
4310
  read() {
4315
- if (!isVisible(this.$el)) {
4311
+ if (!isVisible$1(this.$el)) {
4316
4312
  return false;
4317
4313
  }
4318
4314
  let minHeight = "";
@@ -4857,11 +4853,11 @@
4857
4853
  let last;
4858
4854
  for (const percent of [0.25, 0.5, 0.75]) {
4859
4855
  const elements = target.ownerDocument.elementsFromPoint(
4860
- Math.max(0, left) + width * percent,
4861
- Math.max(0, top) + height / 2
4856
+ Math.max(0, left + width * percent),
4857
+ Math.max(0, top + height / 2)
4862
4858
  );
4863
4859
  for (const element of elements) {
4864
- if (target.contains(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
4860
+ if (target.contains(element) || !isVisible(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
4865
4861
  continue;
4866
4862
  }
4867
4863
  const color = css(element, "--uk-inverse");
@@ -4876,6 +4872,18 @@
4876
4872
  }
4877
4873
  return last ? `uk-${last}` : "";
4878
4874
  }
4875
+ function isVisible(element) {
4876
+ if (css(element, "visibility") !== "visible") {
4877
+ return false;
4878
+ }
4879
+ while (element) {
4880
+ if (css(element, "opacity") === "0") {
4881
+ return false;
4882
+ }
4883
+ element = parent(element);
4884
+ }
4885
+ return true;
4886
+ }
4879
4887
 
4880
4888
  var Media = {
4881
4889
  props: {
@@ -5241,13 +5249,14 @@
5241
5249
  };
5242
5250
  modal.prompt = function(message, value, options) {
5243
5251
  const promise = openDialog(
5244
- ({ i18n }) => `<form class="uk-form-stacked"> <div class="uk-modal-body"> <label>${isString(message) ? message : html(message)}</label> <input class="uk-input" value="${value || ""}" autofocus> </div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-default uk-modal-close" type="button">${i18n.cancel}</button> <button class="uk-button uk-button-primary">${i18n.ok}</button> </div> </form>`,
5252
+ ({ i18n }) => `<form class="uk-form-stacked"> <div class="uk-modal-body"> <label>${isString(message) ? message : html(message)}</label> <input class="uk-input" autofocus> </div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-default uk-modal-close" type="button">${i18n.cancel}</button> <button class="uk-button uk-button-primary">${i18n.ok}</button> </div> </form>`,
5245
5253
  options,
5246
5254
  () => null,
5247
5255
  () => input.value
5248
5256
  );
5249
5257
  const { $el } = promise.dialog;
5250
5258
  const input = $("input", $el);
5259
+ input.value = value || "";
5251
5260
  on($el, "show", () => input.select());
5252
5261
  return promise;
5253
5262
  };
@@ -5400,7 +5409,7 @@
5400
5409
  observe: swipe({ filter: ({ swiping }) => swiping }),
5401
5410
  update: {
5402
5411
  read() {
5403
- if (this.isToggled() && !isVisible(this.$el)) {
5412
+ if (this.isToggled() && !isVisible$1(this.$el)) {
5404
5413
  this.hide();
5405
5414
  }
5406
5415
  },
@@ -5507,7 +5516,7 @@
5507
5516
  }),
5508
5517
  update: {
5509
5518
  read() {
5510
- if (!this.content || !this.container || !isVisible(this.$el)) {
5519
+ if (!this.content || !this.container || !isVisible$1(this.$el)) {
5511
5520
  return false;
5512
5521
  }
5513
5522
  return {
@@ -5664,12 +5673,12 @@
5664
5673
  ],
5665
5674
  methods: {
5666
5675
  toggle(el, inview) {
5667
- var _a;
5668
- const state = this.elementData.get(el);
5676
+ var _a, _b;
5677
+ const state = (_a = this.elementData) == null ? void 0 : _a.get(el);
5669
5678
  if (!state) {
5670
5679
  return;
5671
5680
  }
5672
- (_a = state.off) == null ? void 0 : _a.call(state);
5681
+ (_b = state.off) == null ? void 0 : _b.call(state);
5673
5682
  css(el, "opacity", !inview && this.hidden ? 0 : "");
5674
5683
  toggleClass(el, this.inViewClass, inview);
5675
5684
  toggleClass(el, state.cls);
@@ -5723,7 +5732,7 @@
5723
5732
  read() {
5724
5733
  const targets = this.links.map(getTargetedElement).filter(Boolean);
5725
5734
  const { length } = targets;
5726
- if (!length || !isVisible(this.$el)) {
5735
+ if (!length || !isVisible$1(this.$el)) {
5727
5736
  return false;
5728
5737
  }
5729
5738
  const scrollElement = scrollParent(targets, true);
@@ -5734,9 +5743,8 @@
5734
5743
  if (scrollTop === max) {
5735
5744
  active = length - 1;
5736
5745
  } else {
5746
+ const offsetBy = this.offset + offset(getCoveringElement()).height;
5737
5747
  for (let i = 0; i < targets.length; i++) {
5738
- const fixedEl = getCoveringElement(targets[i]);
5739
- const offsetBy = this.offset + (fixedEl ? offset(fixedEl).height : 0);
5740
5748
  if (offset(targets[i]).top - viewport.top - offsetBy > 0) {
5741
5749
  break;
5742
5750
  }
@@ -5819,19 +5827,17 @@
5819
5827
  this.placeholder = null;
5820
5828
  },
5821
5829
  observe: [
5822
- viewport({
5823
- handler() {
5824
- if (toPx("100vh", "height") !== this._data.viewport) {
5825
- this.$emit("resize");
5826
- }
5827
- }
5828
- }),
5830
+ viewport(),
5829
5831
  scroll$1({ target: () => document.scrollingElement }),
5830
5832
  resize({
5831
- target: () => document.scrollingElement,
5832
- options: { box: "content-box" }
5833
- }),
5834
- resize()
5833
+ target: ({ $el }) => [$el, parent($el), document.scrollingElement],
5834
+ handler(entries) {
5835
+ this.$emit(
5836
+ this._data.resized && entries.some(({ target }) => target === parent(this.$el)) ? "update" : "resize"
5837
+ );
5838
+ this._data.resized = true;
5839
+ }
5840
+ })
5835
5841
  ],
5836
5842
  events: [
5837
5843
  {
@@ -5857,26 +5863,16 @@
5857
5863
  }
5858
5864
  });
5859
5865
  }
5860
- },
5861
- {
5862
- name: "transitionstart",
5863
- handler() {
5864
- this.transitionInProgress = once(
5865
- this.$el,
5866
- "transitionend transitioncancel",
5867
- () => this.transitionInProgress = null
5868
- );
5869
- }
5870
5866
  }
5871
5867
  ],
5872
5868
  update: [
5873
5869
  {
5874
- read({ height: height$1, width, margin, sticky }) {
5875
- this.inactive = !this.matchMedia || !isVisible(this.$el);
5870
+ read({ height: height$1, width, margin, sticky }, types) {
5871
+ this.inactive = !this.matchMedia || !isVisible$1(this.$el);
5876
5872
  if (this.inactive) {
5877
5873
  return;
5878
5874
  }
5879
- const hide = this.isFixed && !this.transitionInProgress;
5875
+ const hide = this.isFixed && types.has("update");
5880
5876
  if (hide) {
5881
5877
  preventTransition(this.target);
5882
5878
  this.hide();
@@ -5926,7 +5922,8 @@
5926
5922
  margin,
5927
5923
  top: offsetPosition(referenceElement)[0],
5928
5924
  sticky,
5929
- viewport: viewport2
5925
+ viewport: viewport2,
5926
+ maxScrollHeight
5930
5927
  };
5931
5928
  },
5932
5929
  write({ height, width, margin, offset, sticky }) {
@@ -5959,9 +5956,10 @@
5959
5956
  end,
5960
5957
  elHeight,
5961
5958
  height,
5962
- sticky
5959
+ sticky,
5960
+ maxScrollHeight
5963
5961
  }) {
5964
- const scroll2 = document.scrollingElement.scrollTop;
5962
+ const scroll2 = Math.min(document.scrollingElement.scrollTop, maxScrollHeight);
5965
5963
  const dir = prevScroll <= scroll2 ? "down" : "up";
5966
5964
  const referenceElement = this.isFixed ? this.placeholder : this.$el;
5967
5965
  return {
@@ -6118,13 +6116,16 @@
6118
6116
  function reset(el) {
6119
6117
  css(el, { position: "", top: "", marginTop: "", width: "" });
6120
6118
  }
6121
- function preventTransition(el) {
6122
- addClass(el, "uk-transition-disable");
6123
- requestAnimationFrame(() => removeClass(el, "uk-transition-disable"));
6119
+ const clsTransitionDisable = "uk-transition-disable";
6120
+ function preventTransition(element) {
6121
+ if (!hasClass(element, clsTransitionDisable)) {
6122
+ addClass(element, clsTransitionDisable);
6123
+ requestAnimationFrame(() => removeClass(element, clsTransitionDisable));
6124
+ }
6124
6125
  }
6125
6126
 
6126
6127
  function getMaxPathLength(el) {
6127
- return isVisible(el) ? Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => stroke.getTotalLength()))) : 0;
6128
+ return isVisible$1(el) ? Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => stroke.getTotalLength()))) : 0;
6128
6129
  }
6129
6130
 
6130
6131
  var svg = {