uikit 3.15.11-dev.fd61e70ff → 3.15.12-dev.e4023717f

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 (47) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/build/util.js +26 -20
  3. package/dist/css/uikit-core-rtl.css +3 -3
  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 +3 -3
  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 +14 -13
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +32 -30
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +160 -148
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +168 -156
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +19 -17
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +37 -36
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +29 -29
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +84 -73
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +29 -29
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +95 -78
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +40 -37
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +43 -39
  34. package/dist/js/components/tooltip.min.js +1 -1
  35. package/dist/js/components/upload.js +12 -12
  36. package/dist/js/components/upload.min.js +1 -1
  37. package/dist/js/uikit-core.js +574 -527
  38. package/dist/js/uikit-core.min.js +1 -17
  39. package/dist/js/uikit-icons.js +3 -3
  40. package/dist/js/uikit-icons.min.js +1 -1
  41. package/dist/js/uikit.js +862 -798
  42. package/dist/js/uikit.min.js +1 -17
  43. package/package.json +14 -14
  44. package/src/js/core/drop.js +5 -1
  45. package/src/js/core/sticky.js +6 -7
  46. package/src/js/util/env.js +1 -3
  47. 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.fd61e70ff",
5
+ "version": "3.15.12-dev.e4023717f",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -34,33 +34,33 @@
34
34
  },
35
35
  "homepage": "https://getuikit.com",
36
36
  "devDependencies": {
37
- "@babel/core": "^7.19.1",
37
+ "@babel/core": "^7.19.6",
38
38
  "@babel/preset-env": "^7.19.1",
39
- "@rollup/plugin-alias": "^3.1.9",
40
- "@rollup/plugin-babel": "^5.3.1",
41
- "@rollup/plugin-replace": "^4.0.0",
39
+ "@rollup/plugin-alias": "^4.0.2",
40
+ "@rollup/plugin-babel": "^6.0.2",
41
+ "@rollup/plugin-replace": "^5.0.1",
42
42
  "archiver": "^5.3.1",
43
43
  "camelcase": "^7.0.0",
44
44
  "clean-css": "^5.3.1",
45
45
  "dateformat": "^5.0.3",
46
- "esbuild": "^0.15.8",
47
- "eslint": "^8.23.1",
46
+ "esbuild": "^0.15.12",
47
+ "eslint": "^8.26.0",
48
48
  "eslint-config-prettier": "^8.5.0",
49
49
  "fs-extra": "^10.1.0",
50
50
  "glob": "^8.0.3",
51
- "inquirer": "^9.1.2",
51
+ "inquirer": "^9.1.4",
52
52
  "less": "^4.1.3",
53
- "minimist": "^1.2.6",
54
- "number-precision": "^1.5.2",
53
+ "minimist": "^1.2.7",
54
+ "number-precision": "^1.6.0",
55
55
  "p-limit": "^4.0.0",
56
56
  "prettier": "^2.7.1",
57
- "rollup": "^2.79.0",
57
+ "rollup": "^3.2.3",
58
58
  "rollup-plugin-esbuild": "^4.10.1",
59
59
  "rollup-plugin-html": "^0.2.1",
60
60
  "rollup-plugin-modify": "^3.0.0",
61
- "rtlcss": "^3.5.0",
62
- "semver": "^7.3.7",
63
- "svgo": "^2.8.0",
61
+ "rtlcss": "^4.0.0",
62
+ "semver": "^7.3.8",
63
+ "svgo": "^3.0.0",
64
64
  "watch-run": "^1.2.5"
65
65
  }
66
66
  }
@@ -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
+ }
@@ -9,7 +9,6 @@ import {
9
9
  Animation,
10
10
  clamp,
11
11
  css,
12
- dimensions,
13
12
  height as getHeight,
14
13
  offset as getOffset,
15
14
  intersectRect,
@@ -148,7 +147,7 @@ export default {
148
147
 
149
148
  update: [
150
149
  {
151
- read({ height, margin }, types) {
150
+ read({ height, width, margin }, types) {
152
151
  this.inactive = !this.matchMedia || !isVisible(this.$el);
153
152
 
154
153
  if (this.inactive) {
@@ -162,7 +161,7 @@ export default {
162
161
  }
163
162
 
164
163
  if (!this.active) {
165
- height = getOffset(this.$el).height;
164
+ ({ height, width } = getOffset(this.$el));
166
165
  margin = css(this.$el, 'margin');
167
166
  }
168
167
 
@@ -171,7 +170,6 @@ export default {
171
170
  requestAnimationFrame(() => css(this.selTarget, 'transition', ''));
172
171
  }
173
172
 
174
- const referenceElement = this.isFixed ? this.placeholder : this.$el;
175
173
  const windowHeight = getHeight(window);
176
174
 
177
175
  let position = this.position;
@@ -179,6 +177,7 @@ export default {
179
177
  position = position === 'top' ? 'bottom' : 'top';
180
178
  }
181
179
 
180
+ const referenceElement = this.isFixed ? this.placeholder : this.$el;
182
181
  let offset = toPx(this.offset, 'height', referenceElement);
183
182
  if (position === 'bottom' && (height < windowHeight || this.overflowFlip)) {
184
183
  offset += windowHeight - height;
@@ -208,16 +207,16 @@ export default {
208
207
  overflow,
209
208
  topOffset,
210
209
  height,
210
+ width,
211
211
  margin,
212
- width: dimensions(referenceElement).width,
213
212
  top: offsetPosition(referenceElement)[0],
214
213
  };
215
214
  },
216
215
 
217
- write({ height, margin }) {
216
+ write({ height, width, margin }) {
218
217
  const { placeholder } = this;
219
218
 
220
- css(placeholder, { height, margin });
219
+ css(placeholder, { height, width, margin });
221
220
 
222
221
  if (!within(placeholder, document)) {
223
222
  after(this.$el, placeholder);
@@ -1,7 +1,5 @@
1
- import { attr } from './attr';
2
-
3
1
  export const inBrowser = typeof window !== 'undefined';
4
- export const isRtl = inBrowser && attr(document.documentElement, 'dir') === 'rtl';
2
+ export const isRtl = inBrowser && document.dir === 'rtl';
5
3
 
6
4
  export const hasTouch = inBrowser && 'ontouchstart' in window;
7
5
  const hasPointerEvents = inBrowser && window.PointerEvent;
@@ -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) {