uikit 3.13.8-dev.e0d437090 → 3.13.8-dev.eab90fc4f

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 (75) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/css/uikit-core-rtl.css +14 -8
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +14 -8
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +17 -11
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +17 -11
  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 +11 -4
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +11 -4
  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 +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 +110 -78
  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 +114 -79
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/hooks.js +1 -1
  44. package/src/js/components/lightbox-panel.js +4 -1
  45. package/src/js/core/height-match.js +1 -2
  46. package/src/js/core/margin.js +1 -1
  47. package/src/js/core/navbar.js +17 -7
  48. package/src/js/core/scrollspy.js +45 -26
  49. package/src/js/core/toggle.js +1 -1
  50. package/src/js/mixin/modal.js +6 -2
  51. package/src/js/uikit-core.js +0 -4
  52. package/src/js/util/lang.js +0 -4
  53. package/src/js/util/position.js +34 -1
  54. package/src/less/components/drop.less +0 -1
  55. package/src/less/components/icon.less +3 -0
  56. package/src/less/components/navbar.less +11 -7
  57. package/src/less/components/search.less +2 -0
  58. package/src/less/theme/dropdown.less +2 -0
  59. package/src/less/theme/nav.less +2 -0
  60. package/src/less/theme/navbar.less +2 -0
  61. package/src/less/theme/search.less +6 -0
  62. package/src/scss/components/drop.scss +0 -1
  63. package/src/scss/components/icon.scss +3 -0
  64. package/src/scss/components/navbar.scss +11 -7
  65. package/src/scss/components/search.scss +2 -0
  66. package/src/scss/mixins-theme.scss +1 -0
  67. package/src/scss/mixins.scss +1 -0
  68. package/src/scss/theme/dropdown.scss +2 -0
  69. package/src/scss/theme/nav.scss +2 -0
  70. package/src/scss/theme/navbar.scss +2 -0
  71. package/src/scss/theme/search.scss +6 -0
  72. package/src/scss/variables-theme.scss +3 -3
  73. package/tests/animation.html +216 -214
  74. package/tests/navbar.html +37 -0
  75. package/src/js/core/core.js +0 -25
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.13.8-dev.e0d437090 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.13.8-dev.eab90fc4f | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -141,10 +141,6 @@
141
141
  return (document == null ? void 0 : document.defaultView) || window;
142
142
  }
143
143
 
144
- function toMs(time) {
145
- return time ? endsWith(time, 'ms') ? toFloat(time) : toFloat(time) * 1000 : 0;
146
- }
147
-
148
144
  function isEqual(value, other) {
149
145
  return (
150
146
  value === other ||
@@ -1740,11 +1736,11 @@
1740
1736
  }
1741
1737
  }
1742
1738
 
1743
- const stateKey$1 = '_ukPlayer';
1739
+ const stateKey = '_ukPlayer';
1744
1740
  let counter = 0;
1745
1741
  function enableApi(el) {
1746
- if (el[stateKey$1]) {
1747
- return el[stateKey$1];
1742
+ if (el[stateKey]) {
1743
+ return el[stateKey];
1748
1744
  }
1749
1745
 
1750
1746
  const youtube = isYoutube(el);
@@ -1753,7 +1749,7 @@
1753
1749
  const id = ++counter;
1754
1750
  let poller;
1755
1751
 
1756
- return el[stateKey$1] = new Promise((resolve) => {
1752
+ return el[stateKey] = new Promise((resolve) => {
1757
1753
  youtube &&
1758
1754
  once(el, 'load', () => {
1759
1755
  const listener = () => post(el, { event: 'listening', id });
@@ -1982,7 +1978,7 @@
1982
1978
  }
1983
1979
 
1984
1980
  function attachToWithFlip(element, target, options) {
1985
- const position = attachTo(element, target, options);
1981
+ let position = attachTo(element, target, options);
1986
1982
  const targetDim = offset(target);
1987
1983
  const viewports = scrollParents(element).map(getViewport$1);
1988
1984
 
@@ -1991,7 +1987,8 @@
1991
1987
  attach: { element: elAttach, target: targetAttach },
1992
1988
  offset: elOffset,
1993
1989
  boundary,
1994
- viewport } =
1990
+ viewport,
1991
+ recursion = 0 } =
1995
1992
  options;
1996
1993
 
1997
1994
  viewports.push(viewport);
@@ -2041,6 +2038,29 @@
2041
2038
  0) -
2042
2039
  elOffset[i] * 2;
2043
2040
 
2041
+ if (
2042
+ position[start] + offsetBy < viewport[start] ||
2043
+ position[end] + offsetBy > viewport[end])
2044
+ {
2045
+ if (recursion < 1) {
2046
+ position =
2047
+ attachToWithFlip(element, target, {
2048
+ ...options,
2049
+ attach: {
2050
+ element: elAttach.map(flipDir).reverse(),
2051
+ target: targetAttach.map(flipDir).reverse() },
2052
+
2053
+ offset: elOffset.reverse(),
2054
+ flip: flip === true ? flip : [...flip, dirs[1 - i][1]],
2055
+ recursion: recursion + 1 }) ||
2056
+ position;
2057
+
2058
+ continue;
2059
+ } else {
2060
+ return false;
2061
+ }
2062
+ }
2063
+
2044
2064
  // Move
2045
2065
  } else {
2046
2066
  offsetBy =
@@ -2085,6 +2105,15 @@
2085
2105
  return dimA[end] > dimB[start] && dimB[end] > dimA[start];
2086
2106
  }
2087
2107
 
2108
+ function flipDir(prop) {
2109
+ for (const i in dirs) {
2110
+ const index = dirs[i].indexOf(prop);
2111
+ if (~index) {
2112
+ return dirs[1 - i][index % 2 + 2];
2113
+ }
2114
+ }
2115
+ }
2116
+
2088
2117
  var util = /*#__PURE__*/Object.freeze({
2089
2118
  __proto__: null,
2090
2119
  ajax: ajax,
@@ -2191,7 +2220,6 @@
2191
2220
  toNode: toNode,
2192
2221
  toNodes: toNodes,
2193
2222
  toWindow: toWindow,
2194
- toMs: toMs,
2195
2223
  isEqual: isEqual,
2196
2224
  swap: swap,
2197
2225
  last: last,
@@ -2411,7 +2439,7 @@
2411
2439
  const {
2412
2440
  $options: { computed } } =
2413
2441
  this;
2414
- const values = { ...this._computed };
2442
+ const values = { ...(initial ? {} : this._computed) };
2415
2443
  this._computed = {};
2416
2444
 
2417
2445
  for (const key in computed) {
@@ -2891,7 +2919,7 @@
2891
2919
  UIkit.data = '__uikit__';
2892
2920
  UIkit.prefix = 'uk-';
2893
2921
  UIkit.options = {};
2894
- UIkit.version = '3.13.8-dev.e0d437090';
2922
+ UIkit.version = '3.13.8-dev.eab90fc4f';
2895
2923
 
2896
2924
  globalAPI(UIkit);
2897
2925
  hooksAPI(UIkit);
@@ -2899,30 +2927,6 @@
2899
2927
  componentAPI(UIkit);
2900
2928
  instanceAPI(UIkit);
2901
2929
 
2902
- function Core () {
2903
- if (!inBrowser) {
2904
- return;
2905
- }
2906
-
2907
- let started = 0;
2908
- on(
2909
- document,
2910
- 'animationstart',
2911
- (_ref) => {let { target } = _ref;
2912
- if ((css(target, 'animationName') || '').match(/^uk-.*(left|right)/)) {
2913
- started++;
2914
- css(document.documentElement, 'overflowX', 'hidden');
2915
- setTimeout(() => {
2916
- if (! --started) {
2917
- css(document.documentElement, 'overflowX', '');
2918
- }
2919
- }, toMs(css(target, 'animationDuration')) + 100);
2920
- }
2921
- },
2922
- true);
2923
-
2924
- }
2925
-
2926
2930
  function boot (UIkit) {
2927
2931
  const { connect, disconnect } = UIkit;
2928
2932
 
@@ -3987,7 +3991,7 @@
3987
3991
 
3988
3992
 
3989
3993
  resizeTargets() {
3990
- return this.$el.children;
3994
+ return [this.$el, this.$el.children];
3991
3995
  },
3992
3996
 
3993
3997
  connected() {
@@ -4288,8 +4292,7 @@
4288
4292
 
4289
4293
  data: {
4290
4294
  target: '> *',
4291
- row: true,
4292
- forceHeight: true },
4295
+ row: true },
4293
4296
 
4294
4297
 
4295
4298
  computed: {
@@ -4305,7 +4308,7 @@
4305
4308
 
4306
4309
 
4307
4310
  resizeTargets() {
4308
- return this.elements;
4311
+ return [this.$el, this.elements];
4309
4312
  },
4310
4313
 
4311
4314
  update: {
@@ -5295,7 +5298,7 @@
5295
5298
  return (el, show) =>
5296
5299
  new Promise((resolve, reject) =>
5297
5300
  once(el, 'show hide', () => {
5298
- el._reject && el._reject();
5301
+ el._reject == null ? void 0 : el._reject();
5299
5302
  el._reject = reject;
5300
5303
 
5301
5304
  _toggle(el, show);
@@ -5320,6 +5323,10 @@
5320
5323
  then(() => delete el._reject);
5321
5324
  }
5322
5325
 
5326
+ function toMs(time) {
5327
+ return time ? endsWith(time, 'ms') ? toFloat(time) : toFloat(time) * 1000 : 0;
5328
+ }
5329
+
5323
5330
  var modal = {
5324
5331
  install: install$2,
5325
5332
 
@@ -5473,8 +5480,6 @@
5473
5480
  toggle: '> a',
5474
5481
  content: '> ul' } };
5475
5482
 
5476
- const navItem = '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle';
5477
-
5478
5483
  var navbar = {
5479
5484
  mixins: [Class, Container],
5480
5485
 
@@ -5494,7 +5499,7 @@
5494
5499
 
5495
5500
 
5496
5501
  data: {
5497
- dropdown: navItem,
5502
+ dropdown: '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle',
5498
5503
  align: isRtl ? 'right' : 'left',
5499
5504
  clsDrop: 'uk-navbar-dropdown',
5500
5505
  mode: undefined,
@@ -5507,8 +5512,6 @@
5507
5512
  dropbar: false,
5508
5513
  dropbarAnchor: false,
5509
5514
  duration: 200,
5510
- forceHeight: true,
5511
- selMinHeight: navItem,
5512
5515
  container: false },
5513
5516
 
5514
5517
 
@@ -5582,9 +5585,23 @@
5582
5585
  immediate: true },
5583
5586
 
5584
5587
 
5585
- toggles(_ref6, $el) {let { dropdown } = _ref6;
5586
- return $$(dropdown, $el);
5587
- } },
5588
+ toggles: {
5589
+ get(_ref6, $el) {let { dropdown } = _ref6;
5590
+ return $$(dropdown, $el);
5591
+ },
5592
+
5593
+ watch() {
5594
+ const justify = hasClass(this.$el, 'uk-navbar-justify');
5595
+ for (const container of $$(
5596
+ '.uk-navbar-nav, .uk-navbar-left, .uk-navbar-right',
5597
+ this.$el))
5598
+ {
5599
+ css(container, 'flexGrow', justify ? $$(this.dropdown, container).length : '');
5600
+ }
5601
+ },
5602
+
5603
+ immediate: true } },
5604
+
5588
5605
 
5589
5606
 
5590
5607
  disconnected() {
@@ -6290,7 +6307,6 @@
6290
6307
  return document.getElementById(decodeURIComponent(el.hash).substring(1));
6291
6308
  }
6292
6309
 
6293
- const stateKey = '_ukScrollspy';
6294
6310
  var scrollspy = {
6295
6311
  mixins: [Scroll],
6296
6312
 
@@ -6323,43 +6339,64 @@
6323
6339
  return target ? $$(target, $el) : [$el];
6324
6340
  },
6325
6341
 
6326
- watch(elements) {
6342
+ watch(elements, prev) {
6327
6343
  if (this.hidden) {
6328
6344
  css(filter$1(elements, ":not(." + this.inViewClass + ")"), 'visibility', 'hidden');
6329
6345
  }
6346
+
6347
+ if (prev) {
6348
+ this.$reset();
6349
+ }
6330
6350
  },
6331
6351
 
6332
6352
  immediate: true } },
6333
6353
 
6334
6354
 
6335
6355
 
6336
- disconnected() {
6337
- for (const el of this.elements) {var _el$stateKey;
6338
- removeClass(el, this.inViewClass, ((_el$stateKey = el[stateKey]) == null ? void 0 : _el$stateKey.cls) || '');
6339
- delete el[stateKey];
6340
- }
6341
- },
6356
+ connected() {
6357
+ this._data.elements = new Map();
6358
+ this.registerObserver(
6359
+ observeIntersection(
6360
+ this.elements,
6361
+ (records) => {
6362
+ const elements = this._data.elements;
6363
+ for (const { target: el, isIntersecting } of records) {
6364
+ if (!elements.has(el)) {
6365
+ elements.set(el, {
6366
+ cls: data(el, 'uk-scrollspy-class') || this.cls });
6342
6367
 
6343
- update: [
6344
- {
6345
- read() {
6346
- for (const el of this.elements) {
6347
- if (!el[stateKey]) {
6348
- el[stateKey] = { cls: data(el, 'uk-scrollspy-class') || this.cls };
6349
6368
  }
6350
6369
 
6351
- if (!this.repeat && el[stateKey].show) {
6370
+ const state = elements.get(el);
6371
+ if (!this.repeat && state.show) {
6352
6372
  continue;
6353
6373
  }
6354
6374
 
6355
- el[stateKey].show = isInView(el, this.offsetTop, this.offsetLeft);
6375
+ state.show = isIntersecting;
6356
6376
  }
6377
+
6378
+ this.$emit();
6357
6379
  },
6380
+ {
6381
+ rootMargin: toPx(this.offsetTop, 'height') - 1 + "px " + (
6382
+ toPx(this.offsetLeft, 'width') - 1) + "px" },
6358
6383
 
6359
- write(data) {
6360
- for (const el of this.elements) {
6361
- const state = el[stateKey];
6362
6384
 
6385
+ false));
6386
+
6387
+
6388
+ },
6389
+
6390
+ disconnected() {
6391
+ for (const [el, state] of this._data.elements.entries()) {
6392
+ removeClass(el, this.inViewClass, (state == null ? void 0 : state.cls) || '');
6393
+ }
6394
+ },
6395
+
6396
+ update: [
6397
+ {
6398
+ write(data) {
6399
+ for (const [el, state] of data.elements.entries()) {
6363
6400
  if (state.show && !state.inview && !state.queued) {
6364
6401
  state.queued = true;
6365
6402
 
@@ -6376,15 +6413,13 @@
6376
6413
  this.toggle(el, false);
6377
6414
  }
6378
6415
  }
6379
- },
6380
-
6381
- events: ['scroll', 'resize'] }],
6416
+ } }],
6382
6417
 
6383
6418
 
6384
6419
 
6385
6420
  methods: {
6386
6421
  toggle(el, inview) {
6387
- const state = el[stateKey];
6422
+ const state = this._data.elements.get(el);
6388
6423
 
6389
6424
  state.off == null ? void 0 : state.off();
6390
6425
 
@@ -7135,7 +7170,7 @@
7135
7170
  }
7136
7171
 
7137
7172
  // Skip if state does not change e.g. hover + focus received
7138
- if (this._showState && show === (expanded !== this._showState)) {
7173
+ if (this._showState && show && expanded !== this._showState) {
7139
7174
  // Ensure reset if state has changed through click
7140
7175
  if (!show) {
7141
7176
  this._showState = null;
@@ -7311,9 +7346,6 @@
7311
7346
  // register components
7312
7347
  each(components$1, (component, name) => UIkit.component(name, component));
7313
7348
 
7314
- // core functionality
7315
- UIkit.use(Core);
7316
-
7317
7349
  boot(UIkit);
7318
7350
 
7319
7351
  const units = ['days', 'hours', 'minutes', 'seconds'];
@@ -8808,7 +8840,10 @@
8808
8840
 
8809
8841
 
8810
8842
  // Image
8811
- if (type === 'image' || src.match(/\.(avif|jpe?g|a?png|gif|svg|webp)($|\?)/i)) {
8843
+ if (
8844
+ type === 'image' ||
8845
+ src.match(/\.(avif|jpe?g|jfif|a?png|gif|svg|webp)($|\?)/i))
8846
+ {
8812
8847
  try {
8813
8848
  const { width, height } = await getImage(src, attrs.srcset, attrs.size);
8814
8849
  this.setItem(item, createEl('img', { src, width, height, alt, ...attrs }));