uikit 3.17.10 → 3.17.12-dev.a7c73679a

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 (50) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/icons.js +2 -2
  3. package/dist/css/uikit-core-rtl.css +1 -1
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +1 -1
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +1 -1
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +1 -1
  10. package/dist/css/uikit.min.css +1 -1
  11. package/dist/js/components/countdown.js +1 -1
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +1 -1
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +6 -14
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +6 -14
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +1 -1
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +1 -1
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +1 -1
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +6 -14
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +1 -1
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +6 -14
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +2 -2
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +18 -22
  34. package/dist/js/components/tooltip.min.js +1 -1
  35. package/dist/js/components/upload.js +1 -1
  36. package/dist/js/components/upload.min.js +1 -1
  37. package/dist/js/uikit-core.js +10 -20
  38. package/dist/js/uikit-core.min.js +1 -1
  39. package/dist/js/uikit-icons.js +1 -1
  40. package/dist/js/uikit-icons.min.js +1 -1
  41. package/dist/js/uikit.js +27 -33
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +1 -1
  44. package/src/js/api/instance.js +3 -15
  45. package/src/js/components/sortable.js +1 -2
  46. package/src/js/components/tooltip.js +15 -11
  47. package/src/js/core/accordion.js +2 -2
  48. package/src/js/core/svg.js +1 -3
  49. package/src/js/core/switcher.js +2 -2
  50. package/src/js/mixin/slider-nav.js +2 -2
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.17.10",
5
+ "version": "3.17.12-dev.a7c73679a",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -60,19 +60,7 @@ export default function (App) {
60
60
  });
61
61
  }
62
62
 
63
- const ids = Object.create(null);
64
- export function generateId(instance, el = instance.$el, postfix = '') {
65
- if (el.id) {
66
- return el.id;
67
- }
68
-
69
- let id = `${instance.$options.id}-${instance._uid}${postfix}`;
70
-
71
- if (ids[id]) {
72
- id = generateId(instance, el, `${postfix}-2`);
73
- }
74
-
75
- ids[id] = true;
76
-
77
- return id;
63
+ let id = 1;
64
+ export function generateId(instance, el = null) {
65
+ return el?.id || `${instance.$options.id}-${id++}`;
78
66
  }
@@ -13,7 +13,6 @@ import {
13
13
  hasTouch,
14
14
  height,
15
15
  index,
16
- isEmpty,
17
16
  isInput,
18
17
  isTag,
19
18
  off,
@@ -90,7 +89,7 @@ export default {
90
89
  },
91
90
 
92
91
  isEmpty() {
93
- return isEmpty(this.items);
92
+ return !this.items.length;
94
93
  },
95
94
 
96
95
  handles({ handle }, $el) {
@@ -3,7 +3,6 @@ import {
3
3
  attr,
4
4
  flipPosition,
5
5
  data as getData,
6
- hasAttr,
7
6
  includes,
8
7
  isFocusable,
9
8
  isTouch,
@@ -54,13 +53,19 @@ export default {
54
53
  return;
55
54
  }
56
55
 
57
- this.title = title;
58
- this.id ||= generateId(this, {});
59
- this._hasTitle = hasAttr(this.$el, 'title');
60
- attr(this.$el, { title: null, 'aria-describedby': this.id });
56
+ const titleAttr = attr(this.$el, 'title');
57
+ const off = on(this.$el, ['blur', pointerLeave], (e) => !isTouch(e) && this.hide());
58
+
59
+ this.reset = () => {
60
+ attr(this.$el, { title: titleAttr, 'aria-describedby': null });
61
+ off();
62
+ };
63
+
64
+ const id = generateId(this);
65
+ attr(this.$el, { title: null, 'aria-describedby': id });
61
66
 
62
67
  clearTimeout(this.showTimer);
63
- this.showTimer = setTimeout(this._show, delay);
68
+ this.showTimer = setTimeout(() => this._show(title, id), delay);
64
69
  },
65
70
 
66
71
  async hide() {
@@ -74,16 +79,16 @@ export default {
74
79
  await this.toggleElement(this.tooltip, false, false);
75
80
  }
76
81
 
77
- attr(this.$el, { title: this._hasTitle ? this.title : null, 'aria-describedby': null });
82
+ this.reset?.();
78
83
  remove(this.tooltip);
79
84
  this.tooltip = null;
80
85
  },
81
86
 
82
- async _show() {
87
+ async _show(title, id) {
83
88
  this.tooltip = append(
84
89
  this.container,
85
- `<div id="${this.id}" class="uk-${this.$options.name}" role="tooltip">
86
- <div class="uk-${this.$options.name}-inner">${this.title}</div>
90
+ `<div id="${id}" class="uk-${this.$options.name}" role="tooltip">
91
+ <div class="uk-${this.$options.name}-inner">${title}</div>
87
92
  </div>`,
88
93
  );
89
94
 
@@ -115,7 +120,6 @@ export default {
115
120
  on([document, ...overflowParents(this.$el)], 'scroll', update, {
116
121
  passive: true,
117
122
  }),
118
- on(this.$el, ['blur', pointerLeave], (e) => !isTouch(e) && this.hide()),
119
123
  ];
120
124
  once(this.tooltip, 'hide', () => handlers.forEach((handler) => handler()), {
121
125
  self: true,
@@ -144,8 +144,8 @@ export default {
144
144
  continue;
145
145
  }
146
146
 
147
- toggle.id = generateId(this, toggle, `-title-${index}`);
148
- content.id = generateId(this, content, `-content-${index}`);
147
+ toggle.id = generateId(this, toggle);
148
+ content.id = generateId(this, content);
149
149
 
150
150
  const active = includes(activeItems, this.items[index]);
151
151
  attr(toggle, {
@@ -62,9 +62,7 @@ export default {
62
62
  methods: {
63
63
  async getSvg() {
64
64
  if (isTag(this.$el, 'img') && !this.$el.complete && this.$el.loading === 'lazy') {
65
- return new Promise((resolve) =>
66
- once(this.$el, 'load', () => resolve(this.getSvg())),
67
- );
65
+ await new Promise((resolve) => once(this.$el, 'load', resolve));
68
66
  }
69
67
 
70
68
  return parseSVG(await loadSVG(this.src), this.icon) || Promise.reject('SVG not found.');
@@ -201,8 +201,8 @@ export default {
201
201
  continue;
202
202
  }
203
203
 
204
- toggle.id = generateId(this, toggle, `-tab-${index}`);
205
- item.id = generateId(this, item, `-tabpanel-${index}`);
204
+ toggle.id = generateId(this, toggle);
205
+ item.id = generateId(this, item);
206
206
 
207
207
  attr(toggle, 'aria-controls', item.id);
208
208
  attr(item, { role: 'tabpanel', 'aria-labelledby': toggle.id });
@@ -74,7 +74,7 @@ export default {
74
74
 
75
75
  if (slide) {
76
76
  if (!slide.id) {
77
- slide.id = generateId(this, slide, `-item-${cmd}`);
77
+ slide.id = generateId(this, slide);
78
78
  }
79
79
  ariaControls = slide.id;
80
80
  }
@@ -85,7 +85,7 @@ export default {
85
85
  } else {
86
86
  if (this.list) {
87
87
  if (!this.list.id) {
88
- this.list.id = generateId(this, this.list, '-items');
88
+ this.list.id = generateId(this, this.list);
89
89
  }
90
90
 
91
91
  ariaControls = this.list.id;