uikit 3.25.15 → 3.25.16-dev.03f5a77

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 (56) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/build.js +1 -1
  3. package/build/less.js +7 -7
  4. package/build/prefix.js +3 -3
  5. package/build/release.js +13 -9
  6. package/build/scss.js +13 -7
  7. package/build/util.js +17 -19
  8. package/build/watch.js +21 -0
  9. package/dist/css/uikit-core-rtl.css +1 -1
  10. package/dist/css/uikit-core-rtl.min.css +1 -1
  11. package/dist/css/uikit-core.css +1 -1
  12. package/dist/css/uikit-core.min.css +1 -1
  13. package/dist/css/uikit-rtl.css +1 -1
  14. package/dist/css/uikit-rtl.min.css +1 -1
  15. package/dist/css/uikit.css +1 -1
  16. package/dist/css/uikit.min.css +1 -1
  17. package/dist/js/components/countdown.js +7 -1
  18. package/dist/js/components/countdown.min.js +1 -1
  19. package/dist/js/components/filter.js +7 -4
  20. package/dist/js/components/filter.min.js +1 -1
  21. package/dist/js/components/lightbox-panel.js +39 -31
  22. package/dist/js/components/lightbox-panel.min.js +1 -1
  23. package/dist/js/components/lightbox.js +39 -31
  24. package/dist/js/components/lightbox.min.js +1 -1
  25. package/dist/js/components/notification.js +1 -1
  26. package/dist/js/components/notification.min.js +1 -1
  27. package/dist/js/components/parallax.js +1 -1
  28. package/dist/js/components/parallax.min.js +1 -1
  29. package/dist/js/components/slider-parallax.js +1 -1
  30. package/dist/js/components/slider-parallax.min.js +1 -1
  31. package/dist/js/components/slider.js +7 -1
  32. package/dist/js/components/slider.min.js +1 -1
  33. package/dist/js/components/slideshow-parallax.js +1 -1
  34. package/dist/js/components/slideshow-parallax.min.js +1 -1
  35. package/dist/js/components/slideshow.js +7 -1
  36. package/dist/js/components/slideshow.min.js +1 -1
  37. package/dist/js/components/sortable.js +7 -1
  38. package/dist/js/components/sortable.min.js +1 -1
  39. package/dist/js/components/tooltip.js +25 -29
  40. package/dist/js/components/tooltip.min.js +1 -1
  41. package/dist/js/components/upload.js +1 -1
  42. package/dist/js/components/upload.min.js +1 -1
  43. package/dist/js/uikit-core.js +47 -39
  44. package/dist/js/uikit-core.min.js +1 -1
  45. package/dist/js/uikit-icons.js +1 -1
  46. package/dist/js/uikit-icons.min.js +1 -1
  47. package/dist/js/uikit.js +53 -42
  48. package/dist/js/uikit.min.js +1 -1
  49. package/package.json +3 -8
  50. package/src/js/components/filter.js +10 -5
  51. package/src/js/core/drop.js +7 -6
  52. package/src/js/mixin/class.js +8 -1
  53. package/src/js/mixin/modal.js +12 -2
  54. package/src/js/mixin/togglable.js +7 -8
  55. package/src/js/util/viewport.js +1 -1
  56. package/tests/upload.html +1 -1
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.25.15",
5
+ "version": "3.25.16-dev.03f5a77",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -20,7 +20,7 @@
20
20
  "prefix": "node build/prefix",
21
21
  "scope": "node build/scope",
22
22
  "release": "node build/release",
23
- "watch": "chokidar \"**/*.less\" --initial -i \"node_modules\" -c \"node build/less\""
23
+ "watch": "node build/watch.js"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",
@@ -31,26 +31,21 @@
31
31
  "url": "https://github.com/uikit/uikit/issues"
32
32
  },
33
33
  "homepage": "https://getuikit.com",
34
- "packageManager": "pnpm@10.29.2",
34
+ "packageManager": "pnpm@10.33.0",
35
35
  "devDependencies": {
36
36
  "@eslint/js": "^10.0.1",
37
37
  "@rollup/plugin-alias": "^6.0.0",
38
38
  "archiver": "^7.0.1",
39
39
  "camelcase": "^9.0.0",
40
- "chokidar-cli": "^3.0.0",
41
40
  "clean-css": "^5.3.3",
42
- "date-fns": "^4.1.0",
43
41
  "esbuild": "^0.28.0",
44
42
  "eslint": "^10.0.0",
45
43
  "eslint-config-prettier": "^10.1.8",
46
44
  "execa": "^9.6.1",
47
- "fs-extra": "^11.3.2",
48
45
  "glob": "^13.0.0",
49
46
  "globals": "^17.0.0",
50
47
  "inquirer": "^13.1.0",
51
48
  "less": "^4.5.1",
52
- "minimist": "^1.2.8",
53
- "number-precision": "^1.6.0",
54
49
  "p-limit": "^7.2.0",
55
50
  "prettier": "^3.7.4",
56
51
  "prettier-plugin-organize-imports": "^4.3.0",
@@ -10,6 +10,7 @@ import {
10
10
  includes,
11
11
  isEmpty,
12
12
  isEqual,
13
+ isNumeric,
13
14
  isTag,
14
15
  isUndefined,
15
16
  matches,
@@ -199,11 +200,15 @@ function matchFilter(
199
200
  }
200
201
 
201
202
  function sortItems(nodes, sort, order) {
202
- return [...nodes].sort(
203
- (a, b) =>
204
- (data(a, sort) || '').localeCompare(data(b, sort), undefined, { numeric: true }) *
205
- (order === 'asc' || -1),
206
- );
203
+ return [...nodes].sort((a, b) => {
204
+ const valA = data(a, sort) || '';
205
+ const valB = data(b, sort) || '';
206
+ const cmp =
207
+ isNumeric(valA) && isNumeric(valB)
208
+ ? valA - valB
209
+ : valA.localeCompare(valB, undefined, { numeric: true });
210
+ return cmp * (order === 'asc' || -1);
211
+ });
207
212
  }
208
213
 
209
214
  function findButton(el) {
@@ -460,13 +460,14 @@ function getViewport(el, target) {
460
460
  }
461
461
 
462
462
  function createToggleComponent(drop) {
463
- const { $el } = drop.$create('toggle', query(drop.toggle, drop.$el), {
464
- target: drop.$el,
465
- mode: drop.mode,
466
- });
467
- $el.ariaHasPopup = true;
463
+ const el = query(drop.toggle, drop.$el);
464
+
465
+ if (el) {
466
+ drop.$create('toggle', el, { target: drop.$el, mode: drop.mode });
467
+ el.ariaHasPopup = true;
468
+ }
468
469
 
469
- return $el;
470
+ return el;
470
471
  }
471
472
 
472
473
  function listenForResize(drop) {
@@ -1,7 +1,14 @@
1
- import { addClass } from 'uikit-util';
1
+ import { addClass, hasClass, removeClass } from 'uikit-util';
2
2
 
3
3
  export default {
4
4
  connected() {
5
+ this._cmpCls = hasClass(this.$el, this.$options.id);
5
6
  addClass(this.$el, this.$options.id);
6
7
  },
8
+
9
+ disconnected() {
10
+ if (!this._cmpCls) {
11
+ removeClass(this.$el, this.$options.id);
12
+ }
13
+ },
7
14
  };
@@ -3,6 +3,7 @@ import {
3
3
  addClass,
4
4
  append,
5
5
  css,
6
+ dimensions,
6
7
  endsWith,
7
8
  includes,
8
9
  isFocusable,
@@ -265,9 +266,18 @@ function toMs(time) {
265
266
 
266
267
  function preventBackgroundFocus(modal) {
267
268
  return on(document, 'focusin', (e) => {
268
- if (last(active) === modal && !modal.$el.contains(e.target)) {
269
- modal.$el.focus();
269
+ if (last(active) !== modal || modal.$el.contains(e.target)) {
270
+ return;
271
+ }
272
+
273
+ const { left, top, width, height } = dimensions(e.target);
274
+ const topEl = document.elementFromPoint(left + width / 2, top + height / 2);
275
+
276
+ if (topEl && (e.target.contains(topEl) || topEl.contains(e.target))) {
277
+ return;
270
278
  }
279
+
280
+ modal.$el.focus();
271
281
  });
272
282
  }
273
283
 
@@ -51,13 +51,15 @@ export default {
51
51
 
52
52
  methods: {
53
53
  async toggleElement(targets, toggle, animate) {
54
- try {
54
+ const CANCELLED = {};
55
+
56
+ return (
55
57
  await Promise.all(
56
58
  toNodes(targets).map((el) => {
57
59
  const show = isBoolean(toggle) ? toggle : !this.isToggled(el);
58
60
 
59
61
  if (!trigger(el, `before${show ? 'show' : 'hide'}`, [this])) {
60
- return Promise.reject();
62
+ return CANCELLED;
61
63
  }
62
64
 
63
65
  const promise = (
@@ -90,15 +92,12 @@ export default {
90
92
  return promise
91
93
  ? promise.then(done, () => {
92
94
  removeClass(el, cls);
93
- return Promise.reject();
95
+ return CANCELLED;
94
96
  })
95
97
  : done();
96
98
  }),
97
- );
98
- return true;
99
- } catch {
100
- return false;
101
- }
99
+ )
100
+ ).every((r) => r !== CANCELLED);
102
101
  },
103
102
 
104
103
  isToggled(el = this.$el) {
@@ -140,7 +140,7 @@ export function scrollParents(element, scrollable = false, props = []) {
140
140
  let ancestors = parents(element).reverse();
141
141
  ancestors = ancestors.slice(ancestors.indexOf(scrollEl) + 1);
142
142
 
143
- const fixedIndex = findIndex(ancestors, (el) => css(el, 'position') === 'fixed');
143
+ const fixedIndex = findIndex(ancestors, (el) => hasPosition(el, 'fixed'));
144
144
  if (~fixedIndex) {
145
145
  ancestors = ancestors.slice(fixedIndex);
146
146
  }
package/tests/upload.html CHANGED
@@ -130,7 +130,7 @@
130
130
  <td>The name parameter.</td>
131
131
  </tr>
132
132
  <tr>
133
- <td><code>type</code></td>
133
+ <td><code>method</code></td>
134
134
  <td>String</td>
135
135
  <td>POST</td>
136
136
  <td>The request type.</td>