uikit 3.14.1 → 3.14.2-dev.dedde7cc1

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 (57) hide show
  1. package/CHANGELOG.md +10 -3
  2. package/dist/css/uikit-core-rtl.css +6 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +6 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +6 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +6 -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 +6 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +6 -1
  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 +9 -5
  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 +24 -26
  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 +24 -26
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/drop.js +5 -4
  44. package/src/js/core/height-viewport.js +1 -2
  45. package/src/js/mixin/position.js +1 -2
  46. package/src/js/mixin/togglable.js +5 -0
  47. package/src/js/util/position.js +9 -9
  48. package/src/js/util/viewport.js +2 -8
  49. package/src/less/components/drop.less +1 -0
  50. package/src/less/components/dropdown.less +1 -0
  51. package/src/less/components/navbar.less +2 -0
  52. package/src/less/components/tooltip.less +1 -0
  53. package/src/scss/components/drop.scss +1 -0
  54. package/src/scss/components/dropdown.scss +1 -0
  55. package/src/scss/components/navbar.scss +2 -0
  56. package/src/scss/components/tooltip.scss +1 -0
  57. package/tests/drop.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.14.1",
5
+ "version": "3.14.2-dev.dedde7cc1",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -8,6 +8,7 @@ import {
8
8
  apply,
9
9
  attr,
10
10
  css,
11
+ getCssVar,
11
12
  hasClass,
12
13
  includes,
13
14
  isTouch,
@@ -15,7 +16,6 @@ import {
15
16
  MouseTracker,
16
17
  observeResize,
17
18
  offset,
18
- offsetViewport,
19
19
  on,
20
20
  once,
21
21
  parent,
@@ -28,6 +28,7 @@ import {
28
28
  removeClass,
29
29
  scrollParents,
30
30
  toggleClass,
31
+ toPx,
31
32
  within,
32
33
  } from 'uikit-util';
33
34
 
@@ -378,13 +379,13 @@ export default {
378
379
  toggleClass(this.$el, `${this.clsDrop}-boundary`, this.boundaryAlign);
379
380
 
380
381
  const boundary = query(this.boundary, this.$el);
381
- const [scrollParent] = scrollParents(this.$el);
382
- const scrollParentOffset = offsetViewport(scrollParent);
382
+ const scrollParentOffset = offset(scrollParents(this.$el)[0]);
383
383
  const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
384
384
 
385
385
  css(this.$el, 'maxWidth', '');
386
386
  const maxWidth =
387
- scrollParentOffset.width - (this.boundaryAlign ? 0 : 2 * this.viewportPadding);
387
+ scrollParentOffset.width -
388
+ 2 * toPx(getCssVar('position-viewport-offset', this.$el));
388
389
 
389
390
  if (this.pos[1] === 'justify') {
390
391
  const prop = this.axis === 'y' ? 'width' : 'height';
@@ -1,4 +1,3 @@
1
- import Class from '../mixin/class';
2
1
  import Resize from '../mixin/resize';
3
2
  import {
4
3
  boxModelAdjust,
@@ -15,7 +14,7 @@ import {
15
14
  } from 'uikit-util';
16
15
 
17
16
  export default {
18
- mixins: [Class, Resize],
17
+ mixins: [Resize],
19
18
 
20
19
  props: {
21
20
  expand: Boolean,
@@ -21,7 +21,6 @@ export default {
21
21
  pos: `bottom-${isRtl ? 'right' : 'left'}`,
22
22
  flip: true,
23
23
  offset: false,
24
- viewportPadding: 10,
25
24
  },
26
25
 
27
26
  connected() {
@@ -60,8 +59,8 @@ export default {
60
59
  attach,
61
60
  offset,
62
61
  boundary,
63
- viewportPadding: this.boundaryAlign ? 0 : this.viewportPadding,
64
62
  flip: this.flip,
63
+ viewportOffset: toPx(getCssVar('position-viewport-offset', element)),
65
64
  });
66
65
  },
67
66
  },
@@ -81,6 +81,11 @@ export default {
81
81
  return Promise.reject();
82
82
  }
83
83
 
84
+ if (!animate) {
85
+ Animation.cancel(el);
86
+ Transition.cancel(el);
87
+ }
88
+
84
89
  const promise = (
85
90
  isFunction(animate)
86
91
  ? animate
@@ -49,6 +49,10 @@ function attachTo(element, target, options) {
49
49
  return position;
50
50
  }
51
51
 
52
+ function moveBy(start, end, dim) {
53
+ return start === 'center' ? dim / 2 : start === end ? dim : 0;
54
+ }
55
+
52
56
  function attachToWithFlip(element, target, options) {
53
57
  const position = attachTo(element, target, options);
54
58
  const targetDim = offset(target);
@@ -59,7 +63,7 @@ function attachToWithFlip(element, target, options) {
59
63
  offset: elOffset,
60
64
  boundary,
61
65
  viewport,
62
- viewportPadding,
66
+ viewportOffset,
63
67
  } = options;
64
68
 
65
69
  let viewports = scrollParents(element);
@@ -80,9 +84,9 @@ function attachToWithFlip(element, target, options) {
80
84
 
81
85
  viewport = getIntersectionArea(...viewports.filter(Boolean).map(offsetViewport));
82
86
 
83
- if (viewportPadding) {
84
- viewport[start] += viewportPadding;
85
- viewport[end] -= viewportPadding;
87
+ if (viewportOffset) {
88
+ viewport[start] += viewportOffset;
89
+ viewport[end] -= viewportOffset;
86
90
  }
87
91
 
88
92
  if (boundary && !willFlip && position[prop] <= offset(boundary)[prop]) {
@@ -172,10 +176,6 @@ function attachToWithFlip(element, target, options) {
172
176
  return offsetPosition;
173
177
  }
174
178
 
175
- function moveBy(start, end, dim) {
176
- return start === 'center' ? dim / 2 : start === end ? dim : 0;
177
- }
178
-
179
179
  function getIntersectionArea(...rects) {
180
180
  let area = {};
181
181
  for (const rect of rects) {
@@ -188,7 +188,7 @@ function getIntersectionArea(...rects) {
188
188
  }
189
189
 
190
190
  function isInScrollArea(position, scrollElement, dir) {
191
- const viewport = offsetViewport(scrollElement);
191
+ const viewport = offsetViewport(scrollElement, false);
192
192
  const [prop, , start, end] = dirs[dir];
193
193
  viewport[start] -= scrollElement[`scroll${ucfirst(start)}`];
194
194
  viewport[end] = viewport[start] + scrollElement[`scroll${ucfirst(prop)}`];
@@ -153,11 +153,6 @@ export function scrollParents(element, overflowRe = /auto|scroll|hidden/, scroll
153
153
  export function offsetViewport(scrollElement) {
154
154
  let viewportElement = getViewport(scrollElement);
155
155
 
156
- // iOS 12 returns <body> as scrollingElement
157
- if (viewportElement === scrollingElement(viewportElement)) {
158
- viewportElement = document.documentElement;
159
- }
160
-
161
156
  let rect = offset(viewportElement);
162
157
  for (let [prop, dir, start, end] of [
163
158
  ['width', 'x', 'left', 'right'],
@@ -166,9 +161,8 @@ export function offsetViewport(scrollElement) {
166
161
  if (!isWindow(getViewport(viewportElement))) {
167
162
  rect[start] += toFloat(css(viewportElement, `border${ucfirst(start)}Width`));
168
163
  }
169
- rect[prop] = rect[dir] = (
170
- isWindow(viewportElement) ? scrollingElement(viewportElement) : viewportElement
171
- )[`client${ucfirst(prop)}`];
164
+ rect[prop] = rect[dir] =
165
+ viewportElement[(isWindow(viewportElement) ? 'inner' : 'client') + ucfirst(prop)];
172
166
  rect[end] = rect[prop] + rect[start];
173
167
  }
174
168
  return rect;
@@ -42,6 +42,7 @@
42
42
  position: absolute;
43
43
  z-index: @drop-z-index;
44
44
  --uk-position-offset: @drop-margin;
45
+ --uk-position-viewport-offset: 10;
45
46
  /* 3 */
46
47
  box-sizing: border-box;
47
48
  width: @drop-width;
@@ -55,6 +55,7 @@
55
55
  position: absolute;
56
56
  z-index: @dropdown-z-index;
57
57
  --uk-position-offset: @dropdown-margin;
58
+ --uk-position-viewport-offset: 10;
58
59
  /* 3 */
59
60
  box-sizing: border-box;
60
61
  min-width: @dropdown-min-width;
@@ -362,6 +362,7 @@
362
362
  position: absolute;
363
363
  z-index: @navbar-dropdown-z-index;
364
364
  --uk-position-offset: @navbar-dropdown-margin;
365
+ --uk-position-viewport-offset: 10;
365
366
  /* 3 */
366
367
  box-sizing: border-box;
367
368
  width: @navbar-dropdown-width;
@@ -410,6 +411,7 @@
410
411
  .uk-navbar-dropdown-dropbar {
411
412
  /* 1 */
412
413
  --uk-position-offset: @navbar-dropdown-dropbar-margin-top;
414
+ --uk-position-viewport-offset: 0;
413
415
  /* 2 */
414
416
  margin-bottom: @navbar-dropdown-dropbar-margin-bottom;
415
417
  /* 3 */
@@ -51,6 +51,7 @@
51
51
  position: absolute;
52
52
  z-index: @tooltip-z-index;
53
53
  --uk-position-offset: @tooltip-margin;
54
+ --uk-position-viewport-offset: 10;
54
55
  /* 3 */
55
56
  top: 0;
56
57
  /* 4 */
@@ -42,6 +42,7 @@ $drop-width: 300px !default;
42
42
  position: absolute;
43
43
  z-index: $drop-z-index;
44
44
  --uk-position-offset: #{$drop-margin};
45
+ --uk-position-viewport-offset: 10;
45
46
  /* 3 */
46
47
  box-sizing: border-box;
47
48
  width: $drop-width;
@@ -55,6 +55,7 @@ $dropdown-nav-sublist-item-hover-color: $global-color !default;
55
55
  position: absolute;
56
56
  z-index: $dropdown-z-index;
57
57
  --uk-position-offset: #{$dropdown-margin};
58
+ --uk-position-viewport-offset: 10;
58
59
  /* 3 */
59
60
  box-sizing: border-box;
60
61
  min-width: $dropdown-min-width;
@@ -362,6 +362,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
362
362
  position: absolute;
363
363
  z-index: $navbar-dropdown-z-index;
364
364
  --uk-position-offset: #{$navbar-dropdown-margin};
365
+ --uk-position-viewport-offset: 10;
365
366
  /* 3 */
366
367
  box-sizing: border-box;
367
368
  width: $navbar-dropdown-width;
@@ -410,6 +411,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
410
411
  .uk-navbar-dropdown-dropbar {
411
412
  /* 1 */
412
413
  --uk-position-offset: #{$navbar-dropdown-dropbar-margin-top};
414
+ --uk-position-viewport-offset: 0;
413
415
  /* 2 */
414
416
  margin-bottom: $navbar-dropdown-dropbar-margin-bottom;
415
417
  /* 3 */
@@ -51,6 +51,7 @@ $tooltip-font-size: 12px !default;
51
51
  position: absolute;
52
52
  z-index: $tooltip-z-index;
53
53
  --uk-position-offset: #{$tooltip-margin};
54
+ --uk-position-viewport-offset: 10;
54
55
  /* 3 */
55
56
  top: 0;
56
57
  /* 4 */
package/tests/drop.html CHANGED
@@ -15,7 +15,7 @@
15
15
  -webkit-overflow-scrolling: touch;
16
16
  }
17
17
 
18
- .boundary-overflow { width: 200%; }
18
+ .boundary-overflow { width: 250%; }
19
19
 
20
20
  </style>
21
21
  </head>