uikit 3.19.4 → 3.19.5-dev.3a146179f

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 +14 -0
  2. package/dist/css/uikit-core-rtl.css +2 -2
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +2 -2
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +2 -2
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +2 -2
  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 +7 -8
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +55 -55
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +55 -55
  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 +69 -48
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +70 -49
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +71 -51
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +70 -49
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +70 -49
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +3 -3
  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 +169 -116
  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 +181 -127
  41. package/dist/js/uikit.min.js +1 -1
  42. package/eslint.config.js +8 -5
  43. package/package.json +3 -4
  44. package/src/js/api/boot.js +6 -7
  45. package/src/js/api/component.js +4 -4
  46. package/src/js/api/computed.js +24 -23
  47. package/src/js/api/observer.js +17 -5
  48. package/src/js/components/filter.js +4 -5
  49. package/src/js/components/slider-parallax.js +2 -2
  50. package/src/js/components/slider.js +1 -1
  51. package/src/js/core/drop.js +1 -8
  52. package/src/js/core/height-placeholder.js +5 -2
  53. package/src/js/core/height-viewport.js +1 -1
  54. package/src/js/core/icon.js +2 -3
  55. package/src/js/core/img.js +1 -1
  56. package/src/js/core/inverse.js +22 -5
  57. package/src/js/core/margin.js +1 -1
  58. package/src/js/core/modal.js +5 -6
  59. package/src/js/core/switcher.js +11 -2
  60. package/src/js/core/toggle.js +8 -4
  61. package/src/js/mixin/parallax.js +7 -3
  62. package/src/js/mixin/slider.js +0 -3
  63. package/src/js/mixin/slideshow.js +3 -0
  64. package/src/js/util/filter.js +1 -11
  65. package/src/js/util/lang.js +1 -1
  66. package/src/js/util/selector.js +66 -38
  67. package/src/js/util/svg.js +1 -12
  68. package/src/less/components/utility.less +1 -1
  69. package/src/scss/components/utility.scss +1 -1
  70. package/tests/modal.html +2 -2
  71. package/build/package.json +0 -4
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.19.4 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
1
+ /*! UIkit 3.19.5-dev.3a146179f | 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() :
@@ -88,7 +88,7 @@
88
88
  return parseFloat(value) || 0;
89
89
  }
90
90
  function toNode(element) {
91
- return toNodes(element)[0];
91
+ return element && toNodes(element)[0];
92
92
  }
93
93
  function toNodes(element) {
94
94
  return isNode(element) ? [element] : Array.from(element || []).filter(isNode);
@@ -319,13 +319,6 @@
319
319
  function matches(element, selector) {
320
320
  return toNodes(element).some((element2) => element2.matches(selector));
321
321
  }
322
- function closest(element, selector) {
323
- var _a;
324
- return (_a = toNode(element)) == null ? void 0 : _a.closest(startsWith(selector, ">") ? selector.slice(1) : selector);
325
- }
326
- function within(element, selector) {
327
- return isString(selector) ? !!closest(element, selector) : toNode(selector).contains(toNode(element));
328
- }
329
322
  function parents(element, selector) {
330
323
  const elements = [];
331
324
  while (element = parent(element)) {
@@ -367,55 +360,82 @@
367
360
  function findAll(selector, context) {
368
361
  return toNodes(_query(selector, toNode(context), "querySelectorAll"));
369
362
  }
370
- const contextSelectorRe = /(^|[^\\],)\s*[!>+~-]/;
371
- const isContextSelector = memoize((selector) => selector.match(contextSelectorRe));
372
363
  function getContext(selector, context = document) {
373
- return isString(selector) && isContextSelector(selector) || isDocument(context) ? context : context.ownerDocument;
364
+ return isString(selector) && parseSelector(selector).isContextSelector || isDocument(context) ? context : context.ownerDocument;
374
365
  }
375
- const contextSanitizeRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g;
376
- const sanatize = memoize((selector) => selector.replace(contextSanitizeRe, "$1 *"));
366
+ const addStarRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g;
367
+ const splitSelectorRe = /.*?[^\\](?![^(]*\))(?:,|$)/g;
368
+ const trailingCommaRe = /\s*,$/;
369
+ const parseSelector = memoize((selector) => {
370
+ var _a;
371
+ selector = selector.replace(addStarRe, "$1 *");
372
+ let isContextSelector = false;
373
+ const selectors = [];
374
+ for (let sel of (_a = selector.match(splitSelectorRe)) != null ? _a : []) {
375
+ sel = sel.replace(trailingCommaRe, "").trim();
376
+ if (sel[0] === ">") {
377
+ sel = `:scope ${sel}`;
378
+ }
379
+ isContextSelector || (isContextSelector = ["!", "+", "~", "-"].includes(sel[0]));
380
+ selectors.push(sel);
381
+ }
382
+ return {
383
+ selector: selectors.join(","),
384
+ selectors,
385
+ isContextSelector
386
+ };
387
+ });
377
388
  function _query(selector, context = document, queryFn) {
378
389
  if (!selector || !isString(selector)) {
379
390
  return selector;
380
391
  }
381
- selector = sanatize(selector);
382
- if (isContextSelector(selector)) {
383
- const split = splitSelector(selector);
384
- selector = "";
385
- for (let sel of split) {
386
- let ctx = context;
387
- if (sel[0] === "!") {
388
- const selectors = sel.substr(1).trim().split(" ");
389
- ctx = parent(context).closest(selectors[0]);
390
- sel = selectors.slice(1).join(" ").trim();
391
- if (!sel.length && split.length === 1) {
392
- return ctx;
393
- }
394
- }
395
- if (sel[0] === "-") {
396
- const selectors = sel.substr(1).trim().split(" ");
397
- const prev = (ctx || context).previousElementSibling;
398
- ctx = matches(prev, sel.substr(1)) ? prev : null;
399
- sel = selectors.slice(1).join(" ");
400
- }
401
- if (ctx) {
402
- selector += `${selector ? "," : ""}${domPath(ctx)} ${sel}`;
403
- }
392
+ const parsed = parseSelector(selector);
393
+ if (!parsed.isContextSelector) {
394
+ return _doQuery(context, queryFn, parsed.selector);
395
+ }
396
+ selector = "";
397
+ const isSingle = parsed.selectors.length === 1;
398
+ for (let sel of parsed.selectors) {
399
+ let ctx = context;
400
+ if (sel[0] === "!") {
401
+ const selectors = sel.substr(1).trim().split(" ");
402
+ ctx = context.parentElement.closest(selectors[0]);
403
+ sel = selectors.slice(1).join(" ").trim();
404
+ if (!sel.length && isSingle) {
405
+ return ctx;
406
+ }
407
+ }
408
+ if (sel[0] === "-") {
409
+ const selectors = sel.substr(1).trim().split(" ");
410
+ const prev = (ctx || context).previousElementSibling;
411
+ ctx = matches(prev, sel.substr(1)) ? prev : null;
412
+ sel = selectors.slice(1).join(" ");
413
+ if (!sel.length && isSingle) {
414
+ return ctx;
415
+ }
416
+ } else if (sel[0] === "~" || sel[0] === "+" && isSingle) {
417
+ return _doQuery(
418
+ ctx.parentElement,
419
+ queryFn,
420
+ `:scope :nth-child(${index(ctx) + 1}) ${sel}`
421
+ );
404
422
  }
405
- if (!isDocument(context)) {
406
- context = context.ownerDocument;
423
+ if (ctx) {
424
+ selector += `${selector ? "," : ""}${domPath(ctx)} ${sel}`;
407
425
  }
408
426
  }
427
+ if (!isDocument(context)) {
428
+ context = context.ownerDocument;
429
+ }
430
+ return _doQuery(context, queryFn, selector);
431
+ }
432
+ function _doQuery(context, queryFn, selector) {
409
433
  try {
410
434
  return context[queryFn](selector);
411
435
  } catch (e) {
412
436
  return null;
413
437
  }
414
438
  }
415
- const selectorRe = /.*?[^\\](?![^(]*\))(?:,|$)/g;
416
- const splitSelector = memoize(
417
- (selector) => selector.match(selectorRe).map((selector2) => selector2.replace(/,$/, "").trim())
418
- );
419
439
  function domPath(element) {
420
440
  const names = [];
421
441
  while (element.parentNode) {
@@ -1540,7 +1560,6 @@
1540
1560
  camelize: camelize,
1541
1561
  children: children,
1542
1562
  clamp: clamp,
1543
- closest: closest,
1544
1563
  createEvent: createEvent,
1545
1564
  css: css,
1546
1565
  data: data,
@@ -1661,7 +1680,6 @@
1661
1680
  uniqueBy: uniqueBy,
1662
1681
  unwrap: unwrap,
1663
1682
  width: width,
1664
- within: within,
1665
1683
  wrapAll: wrapAll,
1666
1684
  wrapInner: wrapInner
1667
1685
  });
@@ -2011,10 +2029,10 @@
2011
2029
  observe: [
2012
2030
  mutation({
2013
2031
  options: {
2014
- childList: true,
2015
2032
  attributes: true,
2016
2033
  attributeFilter: ["style"]
2017
- }
2034
+ },
2035
+ target: ({ $el }) => [$el, ...children($el)]
2018
2036
  }),
2019
2037
  resize({
2020
2038
  target: ({ $el }) => [$el, ...children($el)]
@@ -2368,10 +2386,7 @@
2368
2386
  }
2369
2387
  await Promise.all(
2370
2388
  $$(this.target, this.$el).map((target) => {
2371
- const filterFn = () => {
2372
- applyState(state, target, children(target));
2373
- this.$update(this.$el);
2374
- };
2389
+ const filterFn = () => applyState(state, target, children(target));
2375
2390
  return animate ? this.animate(filterFn, target) : filterFn();
2376
2391
  })
2377
2392
  );
@@ -2390,7 +2405,9 @@
2390
2405
  }
2391
2406
  function applyState(state, target, children) {
2392
2407
  const selector = getSelector(state);
2393
- children.forEach((el) => css(el, "display", selector && !matches(el, selector) ? "none" : ""));
2408
+ for (const el of children) {
2409
+ css(el, "display", selector && !matches(el, selector) ? "none" : "");
2410
+ }
2394
2411
  const [sort, order] = state.sort;
2395
2412
  if (sort) {
2396
2413
  const sorted = sortItems(children, sort, order);
@@ -3237,6 +3254,7 @@
3237
3254
  }
3238
3255
  }
3239
3256
  }
3257
+ const mutationOptions = { subtree: true, childList: true };
3240
3258
  function registerComputed(instance, key, cb) {
3241
3259
  instance._hasComputed = true;
3242
3260
  Object.defineProperty(instance, key, {
@@ -3245,6 +3263,15 @@
3245
3263
  const { _computed, $props, $el } = instance;
3246
3264
  if (!hasOwn(_computed, key)) {
3247
3265
  _computed[key] = (cb.get || cb).call(instance, $props, $el);
3266
+ if (cb.observe && instance._computedObserver) {
3267
+ const observeEl = cb.observe.call(instance, _computed[key]);
3268
+ if (observeEl && observeEl !== $el) {
3269
+ instance._computedObserver.observe(
3270
+ findClosestCommonParent(observeEl, $el),
3271
+ mutationOptions
3272
+ );
3273
+ }
3274
+ }
3248
3275
  }
3249
3276
  return _computed[key];
3250
3277
  },
@@ -3265,11 +3292,16 @@
3265
3292
  read: () => runWatches(instance, resetComputed(instance)),
3266
3293
  events: ["resize", "computed"]
3267
3294
  });
3268
- registerComputedObserver();
3269
- instances$1.add(instance);
3295
+ instance._computedObserver = observeMutation(
3296
+ instance.$el,
3297
+ () => callUpdate(instance, "computed"),
3298
+ mutationOptions
3299
+ );
3270
3300
  }
3271
3301
  function disconnectComputedUpdates(instance) {
3272
- instances$1 == null ? void 0 : instances$1.delete(instance);
3302
+ var _a;
3303
+ (_a = instance._computedObserver) == null ? void 0 : _a.disconnect();
3304
+ delete instance._computedObserver;
3273
3305
  resetComputed(instance);
3274
3306
  }
3275
3307
  function resetComputed(instance) {
@@ -3277,22 +3309,11 @@
3277
3309
  instance._computed = {};
3278
3310
  return values;
3279
3311
  }
3280
- let observer;
3281
- let instances$1;
3282
- function registerComputedObserver() {
3283
- if (observer) {
3284
- return;
3312
+ function findClosestCommonParent(el1, el2) {
3313
+ while (el1 && !el1.contains(el2)) {
3314
+ el1 = el1.parentNode;
3285
3315
  }
3286
- instances$1 = /* @__PURE__ */ new Set();
3287
- observer = new MutationObserver(() => {
3288
- for (const instance of instances$1) {
3289
- callUpdate(instance, "computed");
3290
- }
3291
- });
3292
- observer.observe(document, {
3293
- subtree: true,
3294
- childList: true
3295
- });
3316
+ return el1;
3296
3317
  }
3297
3318
 
3298
3319
  function initEvents(instance) {
@@ -3363,18 +3384,30 @@
3363
3384
  }
3364
3385
  const targets = hasOwn(instance, key) ? instance[key] : target;
3365
3386
  const observer = observe(targets, handler, options, args);
3366
- if (isFunction(target) && isArray(instance[key]) && observer.unobserve) {
3367
- registerWatch(instance, { handler: updateTargets(observer), immediate: false }, key);
3387
+ if (isFunction(target) && isArray(instance[key])) {
3388
+ registerWatch(
3389
+ instance,
3390
+ { handler: updateTargets(observer, options), immediate: false },
3391
+ key
3392
+ );
3368
3393
  }
3369
3394
  registerObserver(instance, observer);
3370
3395
  }
3371
- function updateTargets(observer) {
3396
+ function updateTargets(observer, options) {
3372
3397
  return (targets, prev) => {
3373
3398
  for (const target of prev) {
3374
- !includes(targets, target) && observer.unobserve(target);
3399
+ if (!includes(targets, target)) {
3400
+ if (observer.unobserve) {
3401
+ observer.unobserve(target);
3402
+ } else if (observer.observe) {
3403
+ observer.disconnect();
3404
+ }
3405
+ }
3375
3406
  }
3376
3407
  for (const target of targets) {
3377
- !includes(prev, target) && observer.observe(target);
3408
+ if (!includes(prev, target) || !observer.unobserve) {
3409
+ observer.observe(target, options);
3410
+ }
3378
3411
  }
3379
3412
  };
3380
3413
  }
@@ -3534,26 +3567,26 @@
3534
3567
  };
3535
3568
  App.util = util;
3536
3569
  App.options = {};
3537
- App.version = "3.19.4";
3570
+ App.version = "3.19.5-dev.3a146179f";
3538
3571
 
3539
3572
  const PREFIX = "uk-";
3540
3573
  const DATA = "__uikit__";
3541
3574
  const components$2 = {};
3542
3575
  function component(name, options) {
3543
- var _a;
3576
+ var _a, _b;
3544
3577
  const id = PREFIX + hyphenate(name);
3545
3578
  if (!options) {
3546
- if (isPlainObject(components$2[id])) {
3579
+ if (!components$2[id].options) {
3547
3580
  components$2[id] = App.extend(components$2[id]);
3548
3581
  }
3549
3582
  return components$2[id];
3550
3583
  }
3551
3584
  name = camelize(name);
3552
3585
  App[name] = (element, data) => createComponent(name, element, data);
3553
- const opt = isPlainObject(options) ? { ...options } : options.options;
3586
+ const opt = (_a = options.options) != null ? _a : { ...options };
3554
3587
  opt.id = id;
3555
3588
  opt.name = name;
3556
- (_a = opt.install) == null ? void 0 : _a.call(opt, App, opt, name);
3589
+ (_b = opt.install) == null ? void 0 : _b.call(opt, App, opt, name);
3557
3590
  if (App._initialized && !opt.functional) {
3558
3591
  requestAnimationFrame(() => createComponent(name, `[${id}],[data-${id}]`));
3559
3592
  }
@@ -3561,7 +3594,7 @@
3561
3594
  }
3562
3595
  function createComponent(name, element, data, ...args) {
3563
3596
  const Component = component(name);
3564
- return Component.options.functional ? new Component({ data: isPlainObject(element) ? element : [element, data, ...args] }) : element ? $$(element).map(init)[0] : init();
3597
+ return Component.options.functional ? new Component({ data: isPlainObject(element) ? element : [element, data, ...args] }) : element ? findAll(element).map(init)[0] : init();
3565
3598
  function init(element2) {
3566
3599
  const instance = getComponent(element2, name);
3567
3600
  if (instance) {
@@ -3923,7 +3956,6 @@
3923
3956
  }
3924
3957
  }
3925
3958
  },
3926
- observe: resize(),
3927
3959
  events: {
3928
3960
  itemshow({ target }) {
3929
3961
  addClass(target, this.clsEnter, this.clsSlideActive);
@@ -4052,6 +4084,7 @@
4052
4084
  return { animation: this.animation };
4053
4085
  }
4054
4086
  },
4087
+ observe: resize(),
4055
4088
  events: {
4056
4089
  beforeitemshow({ target }) {
4057
4090
  addClass(target, this.clsActive);
@@ -4534,18 +4567,10 @@
4534
4567
  }
4535
4568
 
4536
4569
  function getMaxPathLength(el) {
4537
- return Math.ceil(
4538
- Math.max(
4539
- 0,
4540
- ...$$("[stroke]", el).map((stroke) => {
4541
- try {
4542
- return stroke.getTotalLength();
4543
- } catch (e) {
4544
- return 0;
4545
- }
4546
- })
4547
- )
4548
- );
4570
+ return Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => {
4571
+ var _a;
4572
+ return (_a = stroke.getTotalLength) == null ? void 0 : _a.call(stroke);
4573
+ })));
4549
4574
  }
4550
4575
 
4551
4576
  const props = {
@@ -4749,6 +4774,7 @@
4749
4774
  }
4750
4775
  };
4751
4776
  }
4777
+ const loading = {};
4752
4778
  const dimensions = {};
4753
4779
  function getBackgroundImageDimensions(el) {
4754
4780
  const src = css(el, "backgroundImage").replace(/^none|url\(["']?(.+?)["']?\)$/, "$1");
@@ -4758,11 +4784,12 @@
4758
4784
  const image = new Image();
4759
4785
  if (src) {
4760
4786
  image.src = src;
4761
- if (!image.naturalWidth) {
4762
- image.onload = () => {
4787
+ if (!image.naturalWidth && !loading[src]) {
4788
+ once(image, "error load", () => {
4763
4789
  dimensions[src] = toDimensions(image);
4764
4790
  trigger(el, createEvent("load", false));
4765
- };
4791
+ });
4792
+ loading[src] = true;
4766
4793
  return toDimensions(image);
4767
4794
  }
4768
4795
  }
@@ -5252,7 +5279,7 @@
5252
5279
  toggleClass(this.$el, this.clsContainer, !$(`.${this.clsContainer}`, this.$el));
5253
5280
  },
5254
5281
  observe: resize({
5255
- target: ({ slides }) => slides
5282
+ target: ({ slides, $el }) => [$el, ...slides]
5256
5283
  }),
5257
5284
  update: {
5258
5285
  write() {
@@ -5440,7 +5467,7 @@
5440
5467
  var sliderParallax = {
5441
5468
  mixins: [Parallax],
5442
5469
  beforeConnect() {
5443
- this.item = closest(this.$el, `.${this.$options.id.replace("parallax", "items")} > *`);
5470
+ this.item = this.$el.closest(`.${this.$options.id.replace("parallax", "items")} > *`);
5444
5471
  },
5445
5472
  disconnected() {
5446
5473
  this.item = null;
@@ -6377,14 +6404,14 @@
6377
6404
  if (name) {
6378
6405
  if (hasAttr(target, attributeName)) {
6379
6406
  createComponent(name, target);
6380
- return;
6407
+ } else {
6408
+ (_a = getComponent(target, name)) == null ? void 0 : _a.$destroy();
6381
6409
  }
6382
- (_a = getComponent(target, name)) == null ? void 0 : _a.$destroy();
6383
6410
  }
6384
6411
  }
6385
6412
  function connect(node) {
6386
6413
  const components2 = getComponents(node);
6387
- for (const name in getComponents(node)) {
6414
+ for (const name in components2) {
6388
6415
  callConnected(components2[name]);
6389
6416
  }
6390
6417
  for (const attributeName of node.getAttributeNames()) {
@@ -6394,7 +6421,7 @@
6394
6421
  }
6395
6422
  function disconnect(node) {
6396
6423
  const components2 = getComponents(node);
6397
- for (const name in getComponents(node)) {
6424
+ for (const name in components2) {
6398
6425
  callDisconnected(components2[name]);
6399
6426
  }
6400
6427
  }
@@ -6403,7 +6430,7 @@
6403
6430
  attribute = attribute.slice(5);
6404
6431
  }
6405
6432
  const cmp = components$2[attribute];
6406
- return cmp && (isPlainObject(cmp) ? cmp : cmp.options).name;
6433
+ return cmp && (cmp.options || cmp).name;
6407
6434
  }
6408
6435
 
6409
6436
  globalApi(App);
@@ -6856,10 +6883,6 @@
6856
6883
  }
6857
6884
  css(this.$el, this._style);
6858
6885
  },
6859
- observe: lazyload({
6860
- target: ({ toggle, $el }) => query(toggle, $el),
6861
- targets: ({ $el }) => $el
6862
- }),
6863
6886
  events: [
6864
6887
  {
6865
6888
  name: "click",
@@ -7150,7 +7173,8 @@
7150
7173
  document,
7151
7174
  `${pointerUp$1} ${pointerCancel} scroll`,
7152
7175
  ({ defaultPrevented, type, target: newTarget }) => {
7153
- if (!defaultPrevented && type === pointerUp$1 && target === newTarget && !(drop.targetEl && within(target, drop.targetEl))) {
7176
+ var _a;
7177
+ if (!defaultPrevented && type === pointerUp$1 && target === newTarget && !((_a = drop.targetEl) == null ? void 0 : _a.contains(target))) {
7154
7178
  drop.hide(false);
7155
7179
  }
7156
7180
  },
@@ -7766,7 +7790,10 @@
7766
7790
  target: ""
7767
7791
  },
7768
7792
  computed: {
7769
- target: ({ target }, $el) => query(target, $el)
7793
+ target: {
7794
+ get: ({ target }, $el) => query(target, $el),
7795
+ observe: (target) => parent(target)
7796
+ }
7770
7797
  },
7771
7798
  observe: resize({ target: ({ target }) => target }),
7772
7799
  update: {
@@ -7822,7 +7849,7 @@
7822
7849
  const top = offsetPosition(offsetTopEl)[0] - offsetPosition(scrollElement)[0];
7823
7850
  minHeight += top > 0 && top < viewportHeight / 2 ? ` - ${top}px` : "";
7824
7851
  } else {
7825
- minHeight += ` - ${css(scrollElement, "paddingTop")}`;
7852
+ minHeight += ` - ${boxModelAdjust(scrollElement, "height", css(scrollElement, "boxSizing"))}px`;
7826
7853
  }
7827
7854
  }
7828
7855
  if (this.offsetBottom === true) {
@@ -8016,7 +8043,7 @@
8016
8043
  i18n: { toggle: "Open Search", submit: "Submit Search" },
8017
8044
  beforeConnect() {
8018
8045
  const isToggle = hasClass(this.$el, "uk-search-toggle") || hasClass(this.$el, "uk-navbar-toggle");
8019
- this.icon = isToggle ? "search-toggle-icon" : hasClass(this.$el, "uk-search-icon") && closest(this.$el, ".uk-search-large") ? "search-large" : closest(this.$el, ".uk-search-navbar") ? "search-navbar" : this.$props.icon;
8046
+ 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-navbar") ? "search-navbar" : this.$props.icon;
8020
8047
  if (hasAttr(this.$el, "aria-label")) {
8021
8048
  return;
8022
8049
  }
@@ -8160,13 +8187,13 @@
8160
8187
  delete this.img;
8161
8188
  },
8162
8189
  observe: intersection({
8163
- target: ({ $el, $props }) => [$el, ...queryAll($props.target, $el)],
8164
8190
  handler(entries, observer) {
8165
8191
  this.load();
8166
8192
  observer.disconnect();
8167
8193
  },
8168
8194
  options: ({ margin }) => ({ rootMargin: margin }),
8169
- filter: ({ loading }) => loading === "lazy"
8195
+ filter: ({ loading }) => loading === "lazy",
8196
+ target: ({ $el, $props }) => $props.target ? [$el, ...queryAll($props.target, $el)] : $el
8170
8197
  }),
8171
8198
  methods: {
8172
8199
  load() {
@@ -8256,9 +8283,17 @@
8256
8283
  selActive: false
8257
8284
  },
8258
8285
  computed: {
8259
- target: ({ target }, $el) => target ? $$(target, $el) : [$el]
8286
+ target: ({ target }, $el) => target ? $$(target, $el) : $el
8260
8287
  },
8261
8288
  observe: [
8289
+ intersection({
8290
+ handler(entries) {
8291
+ this.isIntersecting = entries.some(({ isIntersecting }) => isIntersecting);
8292
+ this.$emit();
8293
+ },
8294
+ target: ({ target }) => target,
8295
+ args: { intersecting: false }
8296
+ }),
8262
8297
  mutation({
8263
8298
  target: ({ target }) => target,
8264
8299
  options: { attributes: true, attributeFilter: ["class"], attributeOldValue: true }
@@ -8266,7 +8301,10 @@
8266
8301
  {
8267
8302
  target: ({ target }) => target,
8268
8303
  observe: (target, handler) => {
8269
- const observer = observeResize([...target, document.documentElement], handler);
8304
+ const observer = observeResize(
8305
+ [...toNodes(target), document.documentElement],
8306
+ handler
8307
+ );
8270
8308
  const listener = [
8271
8309
  on(document, "scroll itemshown itemhidden", handler, {
8272
8310
  passive: true,
@@ -8282,6 +8320,8 @@
8282
8320
  })
8283
8321
  ];
8284
8322
  return {
8323
+ observe: observer.observe.bind(observer),
8324
+ unobserve: observer.unobserve.bind(observer),
8285
8325
  disconnect() {
8286
8326
  observer.disconnect();
8287
8327
  listener.map((off) => off());
@@ -8295,7 +8335,10 @@
8295
8335
  ],
8296
8336
  update: {
8297
8337
  read() {
8298
- for (const target of this.target) {
8338
+ if (!this.isIntersecting) {
8339
+ return false;
8340
+ }
8341
+ for (const target of toNodes(this.target)) {
8299
8342
  replaceClass(
8300
8343
  target,
8301
8344
  "uk-light,uk-dark",
@@ -8410,10 +8453,11 @@
8410
8453
  };
8411
8454
  function install({ modal }) {
8412
8455
  modal.dialog = function(content, options) {
8413
- const dialog = modal(
8414
- `<div class="uk-modal"> <div class="uk-modal-dialog">${content}</div> </div>`,
8415
- { stack: true, role: "alertdialog", ...options }
8416
- );
8456
+ const dialog = modal($(`<div><div class="uk-modal-dialog">${content}</div></div>`), {
8457
+ stack: true,
8458
+ role: "alertdialog",
8459
+ ...options
8460
+ });
8417
8461
  dialog.show();
8418
8462
  on(
8419
8463
  dialog.$el,
@@ -9445,7 +9489,10 @@
9445
9489
  swiping: true
9446
9490
  },
9447
9491
  computed: {
9448
- connects: ({ connect }, $el) => queryAll(connect, $el),
9492
+ connects: {
9493
+ get: ({ connect }, $el) => queryAll(connect, $el),
9494
+ observe: (connects) => parent(connects[0])
9495
+ },
9449
9496
  connectChildren() {
9450
9497
  return this.connects.map((el) => children(el)).flat();
9451
9498
  },
@@ -9546,7 +9593,11 @@
9546
9593
  ],
9547
9594
  update() {
9548
9595
  var _a;
9549
- attr(this.connects, "role", "presentation");
9596
+ for (const el of this.connects) {
9597
+ if (isTag(el, "ul")) {
9598
+ attr(el, "role", "presentation");
9599
+ }
9600
+ }
9550
9601
  attr(children(this.$el), "role", "presentation");
9551
9602
  for (const index in this.toggles) {
9552
9603
  const toggle = this.toggles[index];
@@ -9630,9 +9681,12 @@
9630
9681
  queued: true
9631
9682
  },
9632
9683
  computed: {
9633
- target({ target }, $el) {
9634
- target = queryAll(target || $el.hash, $el);
9635
- return target.length ? target : [$el];
9684
+ target: {
9685
+ get: ({ target }, $el) => {
9686
+ target = queryAll(target || $el.hash, $el);
9687
+ return target.length ? target : [$el];
9688
+ },
9689
+ observe: (target) => parent(target[0])
9636
9690
  }
9637
9691
  },
9638
9692
  connected() {
@@ -9645,7 +9699,7 @@
9645
9699
  }
9646
9700
  }
9647
9701
  },
9648
- observe: lazyload({ target: ({ target }) => target }),
9702
+ observe: lazyload({ targets: ({ target }) => target }),
9649
9703
  events: [
9650
9704
  {
9651
9705
  name: pointerDown$1,