uikit 3.17.1 → 3.17.2-dev.a0d91caa0

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 (68) hide show
  1. package/CHANGELOG.md +7 -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 +44 -8
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +50 -26
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +51 -29
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +2 -4
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +43 -5
  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 +46 -14
  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 +46 -14
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +45 -7
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +3 -7
  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 +37 -83
  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 +100 -168
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +4 -4
  43. package/src/js/api/observables.js +2 -1
  44. package/src/js/components/filter.js +2 -6
  45. package/src/js/components/lightbox-panel.js +1 -3
  46. package/src/js/components/lightbox.js +1 -3
  47. package/src/js/components/notification.js +1 -4
  48. package/src/js/components/parallax.js +1 -3
  49. package/src/js/components/sortable.js +3 -5
  50. package/src/js/core/accordion.js +1 -3
  51. package/src/js/core/cover.js +6 -6
  52. package/src/js/core/dropnav.js +1 -3
  53. package/src/js/core/form-custom.js +1 -3
  54. package/src/js/core/height-match.js +3 -4
  55. package/src/js/core/leader.js +1 -3
  56. package/src/js/core/navbar.js +4 -9
  57. package/src/js/core/offcanvas.js +7 -15
  58. package/src/js/core/overflow-auto.js +2 -6
  59. package/src/js/core/scrollspy-nav.js +2 -4
  60. package/src/js/core/scrollspy.js +1 -3
  61. package/src/js/core/sticky.js +1 -3
  62. package/src/js/core/switcher.js +4 -8
  63. package/src/js/core/toggle.js +1 -1
  64. package/src/js/mixin/modal.js +1 -3
  65. package/src/js/mixin/slider-nav.js +2 -6
  66. package/src/js/mixin/slider.js +2 -6
  67. package/src/js/mixin/togglable.js +3 -6
  68. package/src/js/util/viewport.js +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.17.1",
5
+ "version": "3.17.2-dev.a0d91caa0",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -21,8 +21,8 @@
21
21
  "homepage": "https://getuikit.com",
22
22
  "packageManager": "pnpm@8.8.0",
23
23
  "devDependencies": {
24
- "@rollup/plugin-alias": "^5.0.0",
25
- "@rollup/plugin-replace": "^5.0.2",
24
+ "@rollup/plugin-alias": "^5.0.1",
25
+ "@rollup/plugin-replace": "^5.0.3",
26
26
  "archiver": "^6.0.0",
27
27
  "camelcase": "^8.0.0",
28
28
  "chokidar-cli": "^3.0.0",
@@ -41,7 +41,7 @@
41
41
  "p-limit": "^4.0.0",
42
42
  "prettier": "^3.0.2",
43
43
  "prettier-plugin-organize-imports": "^3.2.3",
44
- "rollup": "^3.28.1",
44
+ "rollup": "^4.0.0",
45
45
  "rollup-plugin-esbuild": "^6.0.1",
46
46
  "rollup-plugin-modify": "^3.0.0",
47
47
  "rtlcss": "^4.1.0",
@@ -19,6 +19,7 @@ import {
19
19
  toNodes,
20
20
  trigger,
21
21
  } from 'uikit-util';
22
+ import { callUpdate } from './update';
22
23
 
23
24
  export function resize(options) {
24
25
  return observe(observeResize, options, 'resize');
@@ -106,7 +107,7 @@ function observe(observe, options, emit) {
106
107
  return {
107
108
  observe,
108
109
  handler() {
109
- this.$emit(emit);
110
+ callUpdate(this, emit);
110
111
  },
111
112
  ...options,
112
113
  };
@@ -42,13 +42,9 @@ export default {
42
42
  },
43
43
 
44
44
  computed: {
45
- toggles({ attrItem }, $el) {
46
- return $$(`[${attrItem}],[data-${attrItem}]`, $el);
47
- },
45
+ children: ({ target }, $el) => $$(`${target} > *`, $el),
48
46
 
49
- children({ target }, $el) {
50
- return $$(`${target} > *`, $el);
51
- },
47
+ toggles: ({ attrItem }, $el) => $$(`[${attrItem}],[data-${attrItem}]`, $el),
52
48
  },
53
49
 
54
50
  watch: {
@@ -70,9 +70,7 @@ export default {
70
70
  },
71
71
 
72
72
  computed: {
73
- caption({ selCaption }, $el) {
74
- return $(selCaption, $el);
75
- },
73
+ caption: ({ selCaption }, $el) => $(selCaption, $el),
76
74
  },
77
75
 
78
76
  events: [
@@ -10,9 +10,7 @@ export default {
10
10
  data: { toggle: 'a' },
11
11
 
12
12
  computed: {
13
- toggles({ toggle }, $el) {
14
- return $$(toggle, $el);
15
- },
13
+ toggles: ({ toggle }, $el) => $$(toggle, $el),
16
14
  },
17
15
 
18
16
  watch: {
@@ -9,7 +9,6 @@ import {
9
9
  pointerEnter,
10
10
  pointerLeave,
11
11
  remove,
12
- startsWith,
13
12
  toFloat,
14
13
  Transition,
15
14
  trigger,
@@ -37,9 +36,7 @@ export default {
37
36
  install,
38
37
 
39
38
  computed: {
40
- marginProp({ pos }) {
41
- return `margin${startsWith(pos, 'top') ? 'Top' : 'Bottom'}`;
42
- },
39
+ marginProp: ({ pos }) => `margin-${pos.match(/[a-z]+(?=-)/)[0]}`,
43
40
 
44
41
  startProps() {
45
42
  return { opacity: 0, [this.marginProp]: -this.$el.offsetHeight };
@@ -22,9 +22,7 @@ export default {
22
22
  },
23
23
 
24
24
  computed: {
25
- target({ target }, $el) {
26
- return getOffsetElement((target && query(target, $el)) || $el);
27
- },
25
+ target: ({ target }, $el) => getOffsetElement((target && query(target, $el)) || $el),
28
26
 
29
27
  start({ start }) {
30
28
  return toPx(start, 'height', this.target, true);
@@ -84,9 +84,7 @@ export default {
84
84
  },
85
85
 
86
86
  computed: {
87
- target() {
88
- return (this.$el.tBodies || [this.$el])[0];
89
- },
87
+ target: (_, $el) => ($el.tBodies || [$el])[0],
90
88
 
91
89
  items() {
92
90
  return children(this.target);
@@ -96,8 +94,8 @@ export default {
96
94
  return isEmpty(this.items);
97
95
  },
98
96
 
99
- handles({ handle }, el) {
100
- return handle ? $$(handle, el) : this.items;
97
+ handles({ handle }, $el) {
98
+ return handle ? $$(handle, $el) : this.items;
101
99
  },
102
100
  },
103
101
 
@@ -53,9 +53,7 @@ export default {
53
53
  },
54
54
 
55
55
  computed: {
56
- items({ targets }, $el) {
57
- return $$(targets, $el);
58
- },
56
+ items: ({ targets }, $el) => $$(targets, $el),
59
57
 
60
58
  toggles({ toggle }) {
61
59
  return this.items.map((item) => $(toggle, item));
@@ -22,16 +22,12 @@ export default {
22
22
 
23
23
  observe: resize({
24
24
  target: ({ $el }) => [getPositionedParent($el) || parent($el)],
25
- filter: ({ _useObjectFit }) => !_useObjectFit,
25
+ filter: ({ $el }) => !useObjectFit($el),
26
26
  }),
27
27
 
28
- connected() {
29
- this._useObjectFit = isTag(this.$el, 'img', 'video');
30
- },
31
-
32
28
  update: {
33
29
  read() {
34
- if (this._useObjectFit) {
30
+ if (useObjectFit(this.$el)) {
35
31
  return;
36
32
  }
37
33
 
@@ -84,3 +80,7 @@ function getPositionedParent(el) {
84
80
  }
85
81
  }
86
82
  }
83
+
84
+ function useObjectFit(el) {
85
+ return isTag(el, 'img', 'video');
86
+ }
@@ -63,9 +63,7 @@ export default {
63
63
  },
64
64
 
65
65
  computed: {
66
- dropbarAnchor({ dropbarAnchor }, $el) {
67
- return query(dropbarAnchor, $el) || $el;
68
- },
66
+ dropbarAnchor: ({ dropbarAnchor }, $el) => query(dropbarAnchor, $el) || $el,
69
67
 
70
68
  dropbar({ dropbar }) {
71
69
  if (!dropbar) {
@@ -15,9 +15,7 @@ export default {
15
15
  },
16
16
 
17
17
  computed: {
18
- input(_, $el) {
19
- return $(selInput, $el);
20
- },
18
+ input: (_, $el) => $(selInput, $el),
21
19
 
22
20
  state() {
23
21
  return this.input.nextElementSibling;
@@ -16,13 +16,12 @@ export default {
16
16
  },
17
17
 
18
18
  computed: {
19
- elements({ target }, $el) {
20
- return $$(target, $el);
21
- },
19
+ elements: ({ target }, $el) => $$(target, $el),
22
20
  },
23
21
 
24
22
  observe: resize({
25
- target: ({ $el, elements }) => [$el, ...elements],
23
+ target: ({ $el, elements }) =>
24
+ elements.reduce((elements, el) => elements.concat(el, ...el.children), [$el]),
26
25
  }),
27
26
 
28
27
  update: {
@@ -18,9 +18,7 @@ export default {
18
18
  },
19
19
 
20
20
  computed: {
21
- fill({ fill }) {
22
- return fill || css(this.$el, '--uk-leader-fill-content');
23
- },
21
+ fill: ({ fill }, $el) => fill || css($el, '--uk-leader-fill-content'),
24
22
  },
25
23
 
26
24
  connected() {
@@ -32,13 +32,10 @@ export default {
32
32
  },
33
33
 
34
34
  computed: {
35
- dropbarOffset() {
36
- return this.dropbarTransparentMode === 'behind' ? this.$el.offsetHeight : 0;
37
- },
35
+ navbarContainer: (_, $el) => closest($el, '.uk-navbar-container'),
38
36
 
39
- navbarContainer() {
40
- return closest(this.$el, '.uk-navbar-container');
41
- },
37
+ dropbarOffset: ({ dropbarTransparentMode }, $el) =>
38
+ dropbarTransparentMode === 'behind' ? $el.offsetHeight : 0,
42
39
  },
43
40
 
44
41
  watch: {
@@ -69,9 +66,7 @@ export default {
69
66
  observe: [
70
67
  mutation({
71
68
  target: ({ navbarContainer }) => navbarContainer,
72
- handler() {
73
- this.registerColorListener();
74
- },
69
+ handler: 'registerColorListener',
75
70
  options: { attributes: true, attributeFilter: ['class'], attributeOldValue: true },
76
71
  }),
77
72
  intersection({
@@ -45,25 +45,17 @@ export default {
45
45
  },
46
46
 
47
47
  computed: {
48
- clsFlip({ flip, clsFlip }) {
49
- return flip ? clsFlip : '';
50
- },
48
+ clsFlip: ({ flip, clsFlip }) => (flip ? clsFlip : ''),
51
49
 
52
- clsOverlay({ overlay, clsOverlay }) {
53
- return overlay ? clsOverlay : '';
54
- },
50
+ clsOverlay: ({ overlay, clsOverlay }) => (overlay ? clsOverlay : ''),
55
51
 
56
- clsMode({ mode, clsMode }) {
57
- return `${clsMode}-${mode}`;
58
- },
52
+ clsMode: ({ mode, clsMode }) => `${clsMode}-${mode}`,
59
53
 
60
- clsSidebarAnimation({ mode, clsSidebarAnimation }) {
61
- return mode === 'none' || mode === 'reveal' ? '' : clsSidebarAnimation;
62
- },
54
+ clsSidebarAnimation: ({ mode, clsSidebarAnimation }) =>
55
+ mode === 'none' || mode === 'reveal' ? '' : clsSidebarAnimation,
63
56
 
64
- clsContainerAnimation({ mode, clsContainerAnimation }) {
65
- return mode !== 'push' && mode !== 'reveal' ? '' : clsContainerAnimation;
66
- },
57
+ clsContainerAnimation: ({ mode, clsContainerAnimation }) =>
58
+ mode !== 'push' && mode !== 'reveal' ? '' : clsContainerAnimation,
67
59
 
68
60
  transitionElement({ mode }) {
69
61
  return mode === 'reveal' ? parent(this.panel) : this.panel;
@@ -18,13 +18,9 @@ export default {
18
18
  },
19
19
 
20
20
  computed: {
21
- container({ selContainer }, $el) {
22
- return closest($el, selContainer);
23
- },
21
+ container: ({ selContainer }, $el) => closest($el, selContainer),
24
22
 
25
- content({ selContent }, $el) {
26
- return closest($el, selContent);
27
- },
23
+ content: ({ selContent }, $el) => closest($el, selContent),
28
24
  },
29
25
 
30
26
  observe: resize({
@@ -32,9 +32,7 @@ export default {
32
32
  },
33
33
 
34
34
  computed: {
35
- links(_, $el) {
36
- return $$('a[href*="#"]', $el).filter((el) => el.hash && isSameSiteAnchor(el));
37
- },
35
+ links: (_, $el) => $$('a[href*="#"]', $el).filter((el) => el.hash && isSameSiteAnchor(el)),
38
36
 
39
37
  elements({ closest: selector }) {
40
38
  return this.links.map((el) => closest(el, selector || '*'));
@@ -108,6 +106,6 @@ export default {
108
106
 
109
107
  function findFixedElement(target) {
110
108
  return target.ownerDocument
111
- .elementsFromPoint(1, 1)
109
+ .elementsFromPoint(offset(target).left, 1)
112
110
  .find((el) => ['fixed', 'sticky'].includes(css(el, 'position')) && !el.contains(target));
113
111
  }
@@ -34,9 +34,7 @@ export default {
34
34
  }),
35
35
 
36
36
  computed: {
37
- elements({ target }, $el) {
38
- return target ? $$(target, $el) : [$el];
39
- },
37
+ elements: ({ target }, $el) => (target ? $$(target, $el) : [$el]),
40
38
  },
41
39
 
42
40
  watch: {
@@ -71,9 +71,7 @@ export default {
71
71
  },
72
72
 
73
73
  computed: {
74
- selTarget({ selTarget }, $el) {
75
- return (selTarget && $(selTarget, $el)) || $el;
76
- },
74
+ selTarget: ({ selTarget }, $el) => (selTarget && $(selTarget, $el)) || $el,
77
75
  },
78
76
 
79
77
  connected() {
@@ -51,20 +51,16 @@ export default {
51
51
  },
52
52
 
53
53
  computed: {
54
- connects({ connect }, $el) {
55
- return queryAll(connect, $el);
56
- },
54
+ connects: ({ connect }, $el) => queryAll(connect, $el),
57
55
 
58
56
  connectChildren() {
59
57
  return this.connects.map((el) => children(el)).flat();
60
58
  },
61
59
 
62
- toggles({ toggle }, $el) {
63
- return $$(toggle, $el);
64
- },
60
+ toggles: ({ toggle }, $el) => $$(toggle, $el),
65
61
 
66
- children() {
67
- return children(this.$el).filter((child) =>
62
+ children(_, $el) {
63
+ return children($el).filter((child) =>
68
64
  this.toggles.some((toggle) => within(toggle, child)),
69
65
  );
70
66
  },
@@ -45,7 +45,7 @@ export default {
45
45
  computed: {
46
46
  target({ target }, $el) {
47
47
  target = queryAll(target || $el.hash, $el);
48
- return (target.length && target) || [$el];
48
+ return target.length ? target : [$el];
49
49
  },
50
50
  },
51
51
 
@@ -49,9 +49,7 @@ export default {
49
49
  },
50
50
 
51
51
  computed: {
52
- panel({ selPanel }, $el) {
53
- return $(selPanel, $el);
54
- },
52
+ panel: ({ selPanel }, $el) => $(selPanel, $el),
55
53
 
56
54
  transitionElement() {
57
55
  return this.panel;
@@ -32,17 +32,13 @@ export default {
32
32
  },
33
33
 
34
34
  computed: {
35
- nav({ selNav }, $el) {
36
- return $(selNav, $el);
37
- },
35
+ nav: ({ selNav }, $el) => $(selNav, $el),
38
36
 
39
37
  navChildren() {
40
38
  return children(this.nav);
41
39
  },
42
40
 
43
- selNavItem({ attrItem }) {
44
- return `[${attrItem}],[data-${attrItem}]`;
45
- },
41
+ selNavItem: ({ attrItem }) => `[${attrItem}],[data-${attrItem}]`,
46
42
 
47
43
  navItems(_, $el) {
48
44
  return $$(this.selNavItem, $el);
@@ -51,13 +51,9 @@ export default {
51
51
  },
52
52
 
53
53
  computed: {
54
- duration({ velocity }, $el) {
55
- return speedUp($el.offsetWidth / velocity);
56
- },
54
+ duration: ({ velocity }, $el) => speedUp($el.offsetWidth / velocity),
57
55
 
58
- list({ selList }, $el) {
59
- return $(selList, $el);
60
- },
56
+ list: ({ selList }, $el) => $(selList, $el),
61
57
 
62
58
  maxIndex() {
63
59
  return this.length - 1;
@@ -43,13 +43,10 @@ export default {
43
43
  },
44
44
 
45
45
  computed: {
46
- hasAnimation({ animation }) {
47
- return !!animation[0];
48
- },
46
+ hasAnimation: ({ animation }) => !!animation[0],
49
47
 
50
- hasTransition({ animation }) {
51
- return ['slide', 'reveal'].some((transition) => startsWith(animation[0], transition));
52
- },
48
+ hasTransition: ({ animation }) =>
49
+ ['slide', 'reveal'].some((transition) => startsWith(animation[0], transition)),
53
50
  },
54
51
 
55
52
  methods: {
@@ -110,7 +110,7 @@ export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
110
110
 
111
111
  function findFixedElement(target) {
112
112
  return target.ownerDocument
113
- .elementsFromPoint(0, 0)
113
+ .elementsFromPoint(offset(target).left, 0)
114
114
  .find(
115
115
  (el) => ['fixed', 'sticky'].includes(css(el, 'position')) && !el.contains(target),
116
116
  );