uikit 3.15.11-dev.08224920a → 3.15.11-dev.536b75ef2

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 +3 -0
  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 +1 -1
  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 +2 -2
  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 +5 -2
  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 +46 -38
  37. package/dist/js/uikit-core.min.js +2 -2
  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 +51 -40
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/api/state.js +13 -6
  44. package/src/js/components/lightbox.js +1 -1
  45. package/src/js/components/tooltip.js +4 -1
  46. package/src/js/core/drop.js +5 -1
  47. package/src/js/core/switcher.js +16 -23
  48. package/src/js/core/toggle.js +1 -4
  49. package/src/js/util/position.js +11 -6
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit",
3
3
  "title": "UIkit",
4
4
  "description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
5
- "version": "3.15.11-dev.08224920a",
5
+ "version": "3.15.11-dev.536b75ef2",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -108,11 +108,7 @@ export default function (UIkit) {
108
108
  };
109
109
 
110
110
  UIkit.prototype._initObservers = function () {
111
- this._observers = [initPropsObserver(this)];
112
-
113
- if (this.$options.computed) {
114
- this.registerObserver(initChildListObserver(this));
115
- }
111
+ this._observers = [initPropsObserver(this), initChildListObserver(this)];
116
112
  };
117
113
 
118
114
  UIkit.prototype.registerObserver = function (...observer) {
@@ -265,7 +261,18 @@ function normalizeData({ data = {} }, { args = [], props = {} }) {
265
261
  }
266
262
 
267
263
  function initChildListObserver(component) {
268
- const { el } = component.$options;
264
+ let { el, computed } = component.$options;
265
+
266
+ if (!computed) {
267
+ return;
268
+ }
269
+
270
+ for (const key in computed) {
271
+ if (computed[key].document) {
272
+ el = el.ownerDocument;
273
+ break;
274
+ }
275
+ }
269
276
 
270
277
  const observer = new MutationObserver(() => component._callWatches());
271
278
  observer.observe(el, {
@@ -50,7 +50,7 @@ export default {
50
50
 
51
51
  this.panel = this.panel || this.$create('lightboxPanel', { ...this.$props, items });
52
52
 
53
- on(this.panel.$el, 'hidden', () => (this.panel = false));
53
+ on(this.panel.$el, 'hidden', () => (this.panel = null));
54
54
 
55
55
  return this.panel.show(index);
56
56
  },
@@ -51,7 +51,10 @@ export default {
51
51
 
52
52
  disconnected() {
53
53
  this.hide();
54
- attr(this.$el, 'title', this._hasTitle ? this.title : null);
54
+
55
+ if (!attr(this.$el, 'title')) {
56
+ attr(this.$el, 'title', this._hasTitle ? this.title : null);
57
+ }
55
58
  },
56
59
 
57
60
  methods: {
@@ -429,7 +429,7 @@ export default {
429
429
  // Ensure none positioned element does not generate scrollbars
430
430
  this.$el.hidden = true;
431
431
 
432
- const viewports = this.target.map((target) => offsetViewport(scrollParents(target)[0]));
432
+ const viewports = this.target.map((target) => getViewport(this.$el, target));
433
433
  const viewportOffset = this.getViewportOffset(this.$el);
434
434
 
435
435
  const dirs = [
@@ -494,3 +494,7 @@ function getPositionedElements(el) {
494
494
  apply(el, (el) => css(el, 'position') !== 'static' && result.push(el));
495
495
  return result;
496
496
  }
497
+
498
+ function getViewport(el, target) {
499
+ return offsetViewport(scrollParents(target).find((parent) => within(el, parent)));
500
+ }
@@ -12,9 +12,7 @@ import {
12
12
  getIndex,
13
13
  hasClass,
14
14
  matches,
15
- observeMutation,
16
15
  queryAll,
17
- ready,
18
16
  toggleClass,
19
17
  toNodes,
20
18
  within,
@@ -51,23 +49,23 @@ export default {
51
49
  if (this.swiping) {
52
50
  css(connects, 'touchAction', 'pan-y pinch-zoom');
53
51
  }
52
+ },
54
53
 
55
- this._observer?.disconnect();
56
- this.registerObserver(
57
- (this._observer = observeMutation(
58
- connects,
59
- (records) => {
60
- const index = this.index();
61
- for (const { target: el } of records) {
62
- children(el).forEach((child, i) =>
63
- toggleClass(child, this.cls, i === index)
64
- );
65
- this.lazyload(this.$el, children(el));
66
- }
67
- },
68
- { childList: true }
69
- ))
70
- );
54
+ document: true,
55
+ immediate: true,
56
+ },
57
+
58
+ connectChildren: {
59
+ get() {
60
+ return this.connects.map((el) => children(el)).flat();
61
+ },
62
+
63
+ watch() {
64
+ const index = this.index();
65
+ for (const el of this.connects) {
66
+ children(el).forEach((child, i) => toggleClass(child, this.cls, i === index));
67
+ this.lazyload(this.$el, children(el));
68
+ }
71
69
  },
72
70
 
73
71
  immediate: true,
@@ -99,11 +97,6 @@ export default {
99
97
  },
100
98
  },
101
99
 
102
- connected() {
103
- // check for connects
104
- ready(() => this.$emit());
105
- },
106
-
107
100
  events: [
108
101
  {
109
102
  name: 'click',
@@ -16,7 +16,6 @@ import {
16
16
  pointerEnter,
17
17
  pointerLeave,
18
18
  queryAll,
19
- ready,
20
19
  trigger,
21
20
  within,
22
21
  } from 'uikit-util';
@@ -54,6 +53,7 @@ export default {
54
53
  this.lazyload(this.$el, this.target);
55
54
  },
56
55
 
56
+ document: true,
57
57
  immediate: true,
58
58
  },
59
59
  },
@@ -62,9 +62,6 @@ export default {
62
62
  if (!includes(this.mode, 'media') && !isFocusable(this.$el)) {
63
63
  attr(this.$el, 'tabindex', '0');
64
64
  }
65
-
66
- // check for target
67
- ready(() => this.$emit());
68
65
  },
69
66
 
70
67
  events: [
@@ -1,3 +1,4 @@
1
+ import { within } from './filter';
1
2
  import { offset } from './dimensions';
2
3
  import { clamp, isArray, ucfirst } from './lang';
3
4
  import { offsetViewport, scrollParents } from './viewport';
@@ -32,7 +33,7 @@ function getPosition(element, target, options) {
32
33
 
33
34
  let offsetPosition = position;
34
35
  for (const [i, [prop, , start, end]] of Object.entries(dirs)) {
35
- const viewport = getViewport(target[i], viewportOffset, boundary, i);
36
+ const viewport = getViewport(element, target[i], viewportOffset, boundary, i);
36
37
 
37
38
  if (isWithin(position, viewport, i)) {
38
39
  continue;
@@ -52,7 +53,7 @@ function getPosition(element, target, options) {
52
53
 
53
54
  offsetBy = flip(element, target, options, i)[start] - position[start];
54
55
 
55
- const scrollArea = getScrollArea(target[i], viewportOffset, i);
56
+ const scrollArea = getScrollArea(element, target[i], viewportOffset, i);
56
57
 
57
58
  if (!isWithin(applyOffset(position, offsetBy, i), scrollArea, i)) {
58
59
  if (isWithin(position, scrollArea, i)) {
@@ -132,8 +133,8 @@ function moveBy(attach, end, dim) {
132
133
  return attach === 'center' ? dim / 2 : attach === end ? dim : 0;
133
134
  }
134
135
 
135
- function getViewport(element, viewportOffset, boundary, i) {
136
- let viewport = getIntersectionArea(...scrollParents(element).map(offsetViewport));
136
+ function getViewport(element, target, viewportOffset, boundary, i) {
137
+ let viewport = getIntersectionArea(...commonScrollParents(element, target).map(offsetViewport));
137
138
 
138
139
  if (viewportOffset) {
139
140
  viewport[dirs[i][2]] += viewportOffset;
@@ -150,15 +151,19 @@ function getViewport(element, viewportOffset, boundary, i) {
150
151
  return viewport;
151
152
  }
152
153
 
153
- function getScrollArea(element, viewportOffset, i) {
154
+ function getScrollArea(element, target, viewportOffset, i) {
154
155
  const [prop, , start, end] = dirs[i];
155
- const [scrollElement] = scrollParents(element);
156
+ const [scrollElement] = commonScrollParents(element, target);
156
157
  const viewport = offsetViewport(scrollElement);
157
158
  viewport[start] -= scrollElement[`scroll${ucfirst(start)}`] - viewportOffset;
158
159
  viewport[end] = viewport[start] + scrollElement[`scroll${ucfirst(prop)}`] - viewportOffset;
159
160
  return viewport;
160
161
  }
161
162
 
163
+ function commonScrollParents(element, target) {
164
+ return scrollParents(target).filter((parent) => within(element, parent));
165
+ }
166
+
162
167
  function getIntersectionArea(...rects) {
163
168
  let area = {};
164
169
  for (const rect of rects) {