uikit 3.14.3 → 3.14.4-dev.07daf8fb8

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 (145) hide show
  1. package/CHANGELOG.md +54 -3
  2. package/build/util.js +1 -0
  3. package/dist/css/uikit-core-rtl.css +428 -95
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +428 -95
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +444 -108
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +444 -108
  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 +7 -5
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +203 -76
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +203 -76
  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 +4 -5
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +4 -5
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +22 -7
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +4 -5
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +22 -7
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +3 -3
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +138 -76
  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 +1801 -1573
  38. package/dist/js/uikit-core.min.js +14 -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 +1081 -836
  42. package/dist/js/uikit.min.js +14 -1
  43. package/package.json +1 -1
  44. package/src/images/{backgrounds/nav-parent-open.svg → components/nav-parent-icon-large.svg} +0 -0
  45. package/src/images/components/nav-parent-icon.svg +3 -0
  46. package/src/images/components/navbar-parent-icon.svg +3 -0
  47. package/src/images/components/navbar-toggle-icon.svg +22 -3
  48. package/src/js/api/state.js +2 -2
  49. package/src/js/components/filter.js +5 -3
  50. package/src/js/components/sortable.js +2 -3
  51. package/src/js/core/accordion.js +9 -17
  52. package/src/js/core/alert.js +35 -14
  53. package/src/js/core/drop.js +102 -48
  54. package/src/js/core/height-viewport.js +22 -9
  55. package/src/js/core/icon.js +16 -0
  56. package/src/js/core/index.js +2 -0
  57. package/src/js/core/leader.js +2 -2
  58. package/src/js/core/navbar.js +47 -33
  59. package/src/js/core/offcanvas.js +1 -47
  60. package/src/js/core/scroll.js +37 -10
  61. package/src/js/core/sticky.js +8 -9
  62. package/src/js/core/switcher.js +1 -1
  63. package/src/js/mixin/media.js +4 -5
  64. package/src/js/mixin/modal.js +97 -8
  65. package/src/js/mixin/position.js +59 -14
  66. package/src/js/mixin/slider-drag.js +20 -8
  67. package/src/js/mixin/style.js +11 -0
  68. package/src/js/mixin/togglable.js +100 -72
  69. package/src/js/util/animation.js +5 -3
  70. package/src/js/util/dimensions.js +6 -6
  71. package/src/js/util/filter.js +3 -7
  72. package/src/js/util/position.js +43 -47
  73. package/src/js/util/style.js +4 -13
  74. package/src/js/util/viewport.js +21 -37
  75. package/src/less/components/_import.less +1 -0
  76. package/src/less/components/drop.less +3 -6
  77. package/src/less/components/dropbar.less +115 -0
  78. package/src/less/components/dropdown.less +22 -6
  79. package/src/less/components/leader.less +1 -1
  80. package/src/less/components/margin.less +13 -14
  81. package/src/less/components/modal.less +19 -4
  82. package/src/less/components/nav.less +241 -64
  83. package/src/less/components/navbar.less +111 -35
  84. package/src/less/components/offcanvas.less +21 -21
  85. package/src/less/components/position.less +1 -1
  86. package/src/less/components/utility.less +21 -5
  87. package/src/less/theme/_import.less +1 -0
  88. package/src/less/theme/dropbar.less +44 -0
  89. package/src/less/theme/nav.less +43 -9
  90. package/src/less/theme/navbar.less +9 -15
  91. package/src/scss/components/_import.scss +1 -0
  92. package/src/scss/components/drop.scss +3 -6
  93. package/src/scss/components/dropbar.scss +115 -0
  94. package/src/scss/components/dropdown.scss +22 -6
  95. package/src/scss/components/leader.scss +1 -1
  96. package/src/scss/components/margin.scss +13 -14
  97. package/src/scss/components/modal.scss +19 -4
  98. package/src/scss/components/nav.scss +190 -52
  99. package/src/scss/components/navbar.scss +88 -24
  100. package/src/scss/components/offcanvas.scss +21 -21
  101. package/src/scss/components/position.scss +1 -1
  102. package/src/scss/components/utility.scss +19 -4
  103. package/src/scss/mixins-theme.scss +93 -29
  104. package/src/scss/mixins.scss +89 -15
  105. package/src/scss/theme/_import.scss +1 -0
  106. package/src/scss/theme/dropbar.scss +44 -0
  107. package/src/scss/theme/nav.scss +41 -9
  108. package/src/scss/theme/navbar.scss +9 -3
  109. package/src/scss/variables-theme.scss +93 -25
  110. package/src/scss/variables.scss +82 -23
  111. package/tests/accordion.html +2 -2
  112. package/tests/alert.html +2 -2
  113. package/tests/countdown.html +1 -1
  114. package/tests/drop.html +484 -255
  115. package/tests/dropbar.html +456 -0
  116. package/tests/dropdown.html +29 -189
  117. package/tests/filter.html +9 -12
  118. package/tests/form.html +1 -1
  119. package/tests/height-viewport.html +62 -0
  120. package/tests/index.html +126 -107
  121. package/tests/js/index.js +1 -4
  122. package/tests/lightbox.html +5 -5
  123. package/tests/list.html +8 -8
  124. package/tests/modal.html +13 -13
  125. package/tests/nav.html +117 -75
  126. package/tests/navbar.html +2270 -1104
  127. package/tests/offcanvas.html +25 -29
  128. package/tests/parallax.html +1 -1
  129. package/tests/position.html +13 -24
  130. package/tests/progress.html +9 -9
  131. package/tests/scroll.html +7 -10
  132. package/tests/search.html +5 -5
  133. package/tests/slider.html +6 -5
  134. package/tests/slideshow.html +8 -8
  135. package/tests/sortable.html +6 -8
  136. package/tests/sticky-navbar.html +132 -0
  137. package/tests/sticky.html +8 -8
  138. package/tests/switcher.html +1 -1
  139. package/tests/tab.html +1 -1
  140. package/tests/table.html +7 -7
  141. package/tests/toggle.html +2 -2
  142. package/tests/tooltip.html +1 -1
  143. package/tests/upload.html +11 -11
  144. package/tests/utility.html +19 -0
  145. package/src/images/backgrounds/nav-parent-close.svg +0 -3
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.3 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.4-dev.07daf8fb8 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -38,27 +38,7 @@
38
38
  origin: false,
39
39
  transition: 'ease',
40
40
  clsEnter: 'uk-togglabe-enter',
41
- clsLeave: 'uk-togglabe-leave',
42
-
43
- initProps: {
44
- overflow: '',
45
- height: '',
46
- paddingTop: '',
47
- paddingBottom: '',
48
- marginTop: '',
49
- marginBottom: '',
50
- boxShadow: '' },
51
-
52
-
53
- hideProps: {
54
- overflow: 'hidden',
55
- height: 0,
56
- paddingTop: 0,
57
- paddingBottom: 0,
58
- marginTop: 0,
59
- marginBottom: 0,
60
- boxShadow: 'none' } },
61
-
41
+ clsLeave: 'uk-togglabe-leave' },
62
42
 
63
43
 
64
44
  computed: {
@@ -67,7 +47,7 @@
67
47
  },
68
48
 
69
49
  hasTransition(_ref2) {let { animation } = _ref2;
70
- return this.hasAnimation && animation[0] === true;
50
+ return ['slide', 'reveal'].some((transition) => uikitUtil.startsWith(animation[0], transition));
71
51
  } },
72
52
 
73
53
 
@@ -82,18 +62,13 @@
82
62
  return Promise.reject();
83
63
  }
84
64
 
85
- if (!animate) {
86
- uikitUtil.Animation.cancel(el);
87
- uikitUtil.Transition.cancel(el);
88
- }
89
-
90
65
  const promise = (
91
66
  uikitUtil.isFunction(animate) ?
92
67
  animate :
93
68
  animate === false || !this.hasAnimation ?
94
- this._toggle :
69
+ toggleInstant(this) :
95
70
  this.hasTransition ?
96
- toggleHeight(this) :
71
+ toggleTransition(this) :
97
72
  toggleAnimation(this))(
98
73
  el, show);
99
74
 
@@ -157,54 +132,105 @@
157
132
 
158
133
 
159
134
 
160
- function toggleHeight(_ref3)
161
-
135
+ function toggleInstant(_ref3) {let { _toggle } = _ref3;
136
+ return (el, show) => {
137
+ uikitUtil.Animation.cancel(el);
138
+ uikitUtil.Transition.cancel(el);
139
+ return _toggle(el, show);
140
+ };
141
+ }
162
142
 
143
+ function toggleTransition(cmp) {var _cmp$animation$;
144
+ const [mode = 'reveal', startProp = 'top'] = ((_cmp$animation$ = cmp.animation[0]) == null ? void 0 : _cmp$animation$.split('-')) || [];
163
145
 
146
+ const dirs = [
147
+ ['left', 'right'],
148
+ ['top', 'bottom']];
164
149
 
150
+ const dir = dirs[uikitUtil.includes(dirs[0], startProp) ? 0 : 1];
151
+ const end = dir[1] === startProp;
152
+ const props = ['width', 'height'];
153
+ const dimProp = props[dirs.indexOf(dir)];
154
+ const marginProp = "margin-" + dir[0];
155
+ const marginStartProp = "margin-" + startProp;
165
156
 
157
+ return async (el, show) => {
158
+ let { duration, velocity, transition, _toggle } = cmp;
166
159
 
160
+ let currentDim = uikitUtil.dimensions(el)[dimProp];
167
161
 
168
- {let { isToggled, duration, velocity, initProps, hideProps, transition, _toggle } = _ref3;
169
- return (el, show) => {
170
162
  const inProgress = uikitUtil.Transition.inProgress(el);
171
- const inner = el.hasChildNodes() ?
172
- uikitUtil.toFloat(uikitUtil.css(el.firstElementChild, 'marginTop')) +
173
- uikitUtil.toFloat(uikitUtil.css(el.lastElementChild, 'marginBottom')) :
174
- 0;
175
- const currentHeight = uikitUtil.isVisible(el) ? uikitUtil.height(el) + (inProgress ? 0 : inner) : 0;
163
+ await uikitUtil.Transition.cancel(el);
176
164
 
177
- uikitUtil.Transition.cancel(el);
178
-
179
- if (!isToggled(el)) {
165
+ if (show) {
180
166
  _toggle(el, true);
181
167
  }
182
168
 
183
- uikitUtil.height(el, '');
169
+ const prevProps = Object.fromEntries(
170
+ ['padding', 'border', 'width', 'height', 'overflow', marginProp, marginStartProp].map(
171
+ (key) => [key, el.style[key]]));
172
+
173
+
174
+
175
+ const dim = uikitUtil.dimensions(el);
176
+ const currentMargin = uikitUtil.toFloat(uikitUtil.css(el, marginProp));
177
+ const marginStart = uikitUtil.toFloat(uikitUtil.css(el, marginStartProp));
178
+ const endDim = dim[dimProp] + marginStart;
179
+
180
+ if (!inProgress && !show) {
181
+ currentDim += marginStart;
182
+ }
183
+
184
+ const [wrapper] = uikitUtil.wrapInner(el, '<div>');
185
+ uikitUtil.css(wrapper, {
186
+ boxSizing: 'border-box',
187
+ height: dim.height,
188
+ width: dim.width,
189
+ ...uikitUtil.css(el, [
190
+ 'padding',
191
+ 'borderTop',
192
+ 'borderRight',
193
+ 'borderBottom',
194
+ 'borderLeft',
195
+ 'borderImage',
196
+ marginStartProp]) });
197
+
198
+
199
+
200
+ uikitUtil.css(el, {
201
+ padding: 0,
202
+ border: 0,
203
+ [marginStartProp]: 0,
204
+ width: dim.width,
205
+ height: dim.height,
206
+ overflow: 'hidden',
207
+ [dimProp]: currentDim });
184
208
 
185
- // Update child components first
186
- uikitUtil.fastdom.flush();
187
209
 
188
- const endHeight = uikitUtil.height(el) + (inProgress ? 0 : inner);
189
- duration = velocity * el.offsetHeight + duration;
210
+ const percent = currentDim / endDim;
211
+ duration = (velocity * endDim + duration) * (show ? 1 - percent : percent);
212
+ const endProps = { [dimProp]: show ? endDim : 0 };
190
213
 
191
- uikitUtil.height(el, currentHeight);
214
+ if (end) {
215
+ uikitUtil.css(el, marginProp, endDim - currentDim + currentMargin);
216
+ endProps[marginProp] = show ? currentMargin : endDim + currentMargin;
217
+ }
192
218
 
193
- return (
194
- show ?
195
- uikitUtil.Transition.start(
196
- el,
197
- { ...initProps, overflow: 'hidden', height: endHeight },
198
- Math.round(duration * (1 - currentHeight / endHeight)),
199
- transition) :
219
+ if (!end ^ mode === 'reveal') {
220
+ uikitUtil.css(wrapper, marginProp, -endDim + currentDim);
221
+ uikitUtil.Transition.start(wrapper, { [marginProp]: show ? 0 : -endDim }, duration, transition);
222
+ }
200
223
 
201
- uikitUtil.Transition.start(
202
- el,
203
- hideProps,
204
- Math.round(duration * (currentHeight / endHeight)),
205
- transition).
206
- then(() => _toggle(el, false))).
207
- then(() => uikitUtil.css(el, initProps));
224
+ try {
225
+ await uikitUtil.Transition.start(el, endProps, duration, transition);
226
+ } finally {
227
+ uikitUtil.css(el, prevProps);
228
+ uikitUtil.unwrap(wrapper.firstChild);
229
+
230
+ if (!show) {
231
+ _toggle(el, false);
232
+ }
233
+ }
208
234
  };
209
235
  }
210
236
 
@@ -229,34 +255,32 @@
229
255
  props: {
230
256
  pos: String,
231
257
  offset: null,
232
- flip: Boolean },
258
+ flip: Boolean,
259
+ shift: Boolean,
260
+ inset: Boolean },
233
261
 
234
262
 
235
263
  data: {
236
264
  pos: "bottom-" + (uikitUtil.isRtl ? 'right' : 'left'),
265
+ offset: false,
237
266
  flip: true,
238
- offset: false },
267
+ shift: true,
268
+ inset: false },
239
269
 
240
270
 
241
271
  connected() {
242
272
  this.pos = this.$props.pos.split('-').concat('center').slice(0, 2);
243
- this.axis = uikitUtil.includes(['top', 'bottom'], this.pos[0]) ? 'y' : 'x';
273
+ [this.dir, this.align] = this.pos;
274
+ this.axis = uikitUtil.includes(['top', 'bottom'], this.dir) ? 'y' : 'x';
244
275
  },
245
276
 
246
277
  methods: {
247
278
  positionAt(element, target, boundary) {
248
- const [dir, align] = this.pos;
249
-
250
- let offset = uikitUtil.toPx(
251
- this.offset === false ? uikitUtil.getCssVar('position-offset', element) : this.offset,
252
- this.axis === 'x' ? 'width' : 'height',
253
- element);
254
-
255
- offset = [uikitUtil.includes(['left', 'top'], dir) ? -offset : +offset, 0];
279
+ let offset = [this.getPositionOffset(element), this.getShiftOffset(element)];
256
280
 
257
281
  const attach = {
258
- element: [uikitUtil.flipPosition(dir), align],
259
- target: [dir, align] };
282
+ element: [this.inset ? this.dir : uikitUtil.flipPosition(this.dir), this.align],
283
+ target: [this.dir, this.align] };
260
284
 
261
285
 
262
286
  if (this.axis === 'y') {
@@ -266,13 +290,51 @@
266
290
  offset = offset.reverse();
267
291
  }
268
292
 
293
+ const [scrollElement] = uikitUtil.scrollParents(element, /auto|scroll/);
294
+ const { scrollTop, scrollLeft } = scrollElement;
295
+
296
+ // Ensure none positioned element does not generate scrollbars
297
+ const elDim = uikitUtil.dimensions(element);
298
+ uikitUtil.css(element, { top: -elDim.height, left: -elDim.width });
299
+
269
300
  uikitUtil.positionAt(element, target, {
270
301
  attach,
271
302
  offset,
272
303
  boundary,
273
304
  flip: this.flip,
274
- viewportOffset: uikitUtil.toPx(uikitUtil.getCssVar('position-viewport-offset', element)) });
305
+ shift: this.shift,
306
+ viewportOffset: this.getViewportOffset(element) });
307
+
308
+
309
+ // Restore scroll position
310
+ scrollElement.scrollTop = scrollTop;
311
+ scrollElement.scrollLeft = scrollLeft;
312
+ },
313
+
314
+ getPositionOffset(element) {
315
+ return (
316
+ uikitUtil.toPx(
317
+ this.offset === false ? uikitUtil.css(element, '--uk-position-offset') : this.offset,
318
+ this.axis === 'x' ? 'width' : 'height',
319
+ element) * (
320
+
321
+ uikitUtil.includes(['left', 'top'], this.dir) ? -1 : 1) * (
322
+ this.inset ? -1 : 1));
323
+
324
+ },
325
+
326
+ getShiftOffset(element) {
327
+ return this.align === 'center' ?
328
+ 0 :
329
+ uikitUtil.toPx(
330
+ uikitUtil.css(element, '--uk-position-shift-offset'),
331
+ this.axis === 'y' ? 'width' : 'height',
332
+ element) * (
333
+ uikitUtil.includes(['left', 'top'], this.align) ? 1 : -1);
334
+ },
275
335
 
336
+ getViewportOffset(element) {
337
+ return uikitUtil.toPx(uikitUtil.css(element, '--uk-position-viewport-offset'));
276
338
  } } };
277
339
 
278
340
  var Component = {
@@ -1 +1 @@
1
- /*! UIkit 3.14.3 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(s,f){typeof exports=="object"&&typeof module<"u"?module.exports=f(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],f):(s=typeof globalThis<"u"?globalThis:s||self,s.UIkitTooltip=f(s.UIkit.util))})(this,function(s){"use strict";var f={props:{container:Boolean},data:{container:!0},computed:{container(o){let{container:t}=o;return t===!0&&this.$container||t&&s.$(t)}}},T={props:{cls:Boolean,animation:"list",duration:Number,velocity:Number,origin:String,transition:String},data:{cls:!1,animation:[!1],duration:200,velocity:.2,origin:!1,transition:"ease",clsEnter:"uk-togglabe-enter",clsLeave:"uk-togglabe-leave",initProps:{overflow:"",height:"",paddingTop:"",paddingBottom:"",marginTop:"",marginBottom:"",boxShadow:""},hideProps:{overflow:"hidden",height:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0,boxShadow:"none"}},computed:{hasAnimation(o){let{animation:t}=o;return!!t[0]},hasTransition(o){let{animation:t}=o;return this.hasAnimation&&t[0]===!0}},methods:{toggleElement(o,t,r){return new Promise(a=>Promise.all(s.toNodes(o).map(n=>{const i=s.isBoolean(t)?t:!this.isToggled(n);if(!s.trigger(n,"before"+(i?"show":"hide"),[this]))return Promise.reject();r||(s.Animation.cancel(n),s.Transition.cancel(n));const h=(s.isFunction(r)?r:r===!1||!this.hasAnimation?this._toggle:this.hasTransition?u(this):v(this))(n,i),d=i?this.clsEnter:this.clsLeave;s.addClass(n,d),s.trigger(n,i?"show":"hide",[this]);const e=()=>{s.removeClass(n,d),s.trigger(n,i?"shown":"hidden",[this]),this.$update(n)};return h?h.then(e,()=>(s.removeClass(n,d),Promise.reject())):e()})).then(a,s.noop))},isToggled(o){return o===void 0&&(o=this.$el),[o]=s.toNodes(o),s.hasClass(o,this.clsEnter)?!0:s.hasClass(o,this.clsLeave)?!1:this.cls?s.hasClass(o,this.cls.split(" ")[0]):s.isVisible(o)},_toggle(o,t){if(!o)return;t=Boolean(t);let r;this.cls?(r=s.includes(this.cls," ")||t!==s.hasClass(o,this.cls),r&&s.toggleClass(o,this.cls,s.includes(this.cls," ")?void 0:t)):(r=t===o.hidden,r&&(o.hidden=!t)),s.$$("[autofocus]",o).some(a=>s.isVisible(a)?a.focus()||!0:a.blur()),r&&(s.trigger(o,"toggled",[t,this]),this.$update(o))}}};function u(o){let{isToggled:t,duration:r,velocity:a,initProps:n,hideProps:i,transition:h,_toggle:d}=o;return(e,p)=>{const l=s.Transition.inProgress(e),w=e.hasChildNodes()?s.toFloat(s.css(e.firstElementChild,"marginTop"))+s.toFloat(s.css(e.lastElementChild,"marginBottom")):0,c=s.isVisible(e)?s.height(e)+(l?0:w):0;s.Transition.cancel(e),t(e)||d(e,!0),s.height(e,""),s.fastdom.flush();const g=s.height(e)+(l?0:w);return r=a*e.offsetHeight+r,s.height(e,c),(p?s.Transition.start(e,{...n,overflow:"hidden",height:g},Math.round(r*(1-c/g)),h):s.Transition.start(e,i,Math.round(r*(c/g)),h).then(()=>d(e,!1))).then(()=>s.css(e,n))}}function v(o){return(t,r)=>{s.Animation.cancel(t);const{animation:a,duration:n,_toggle:i}=o;return r?(i(t,!0),s.Animation.in(t,a[0],n,o.origin)):s.Animation.out(t,a[1]||a[0],n,o.origin).then(()=>i(t,!1))}}var b={props:{pos:String,offset:null,flip:Boolean},data:{pos:"bottom-"+(s.isRtl?"right":"left"),flip:!0,offset:!1},connected(){this.pos=this.$props.pos.split("-").concat("center").slice(0,2),this.axis=s.includes(["top","bottom"],this.pos[0])?"y":"x"},methods:{positionAt(o,t,r){const[a,n]=this.pos;let i=s.toPx(this.offset===!1?s.getCssVar("position-offset",o):this.offset,this.axis==="x"?"width":"height",o);i=[s.includes(["left","top"],a)?-i:+i,0];const h={element:[s.flipPosition(a),n],target:[a,n]};if(this.axis==="y"){for(const d in h)h[d]=h[d].reverse();i=i.reverse()}s.positionAt(o,t,{attach:h,offset:i,boundary:r,flip:this.flip,viewportOffset:s.toPx(s.getCssVar("position-viewport-offset",o))})}}},m={mixins:[f,T,b],args:"title",props:{delay:Number,title:String},data:{pos:"top",title:"",delay:0,animation:["uk-animation-scale-up"],duration:100,cls:"uk-active"},beforeConnect(){this._hasTitle=s.hasAttr(this.$el,"title"),s.attr(this.$el,"title",""),this.updateAria(!1),$(this.$el)},disconnected(){this.hide(),s.attr(this.$el,"title",this._hasTitle?this.title:null)},methods:{show(){this.isToggled(this.tooltip||null)||!this.title||(this._unbind=s.once(document,"show keydown "+s.pointerDown,this.hide,!1,o=>o.type===s.pointerDown&&!s.within(o.target,this.$el)||o.type==="keydown"&&o.keyCode===27||o.type==="show"&&o.detail[0]!==this&&o.detail[0].$name===this.$name),clearTimeout(this.showTimer),this.showTimer=setTimeout(this._show,this.delay))},async hide(){s.matches(this.$el,"input:focus")||(clearTimeout(this.showTimer),this.isToggled(this.tooltip||null)&&(await this.toggleElement(this.tooltip,!1,!1),s.remove(this.tooltip),this.tooltip=null,this._unbind()))},_show(){this.tooltip=s.append(this.container,'<div class="uk-'+this.$options.name+'"> <div class="uk-'+this.$options.name+'-inner">'+this.title+"</div> </div>"),s.on(this.tooltip,"toggled",(o,t)=>{if(this.updateAria(t),!t)return;this.positionAt(this.tooltip,this.$el);const[r,a]=y(this.tooltip,this.$el,this.pos);this.origin=this.axis==="y"?s.flipPosition(r)+"-"+a:a+"-"+s.flipPosition(r)}),this.toggleElement(this.tooltip,!0)},updateAria(o){s.attr(this.$el,"aria-expanded",o)}},events:{focus:"show",blur:"hide",[s.pointerEnter+" "+s.pointerLeave](o){s.isTouch(o)||this[o.type===s.pointerEnter?"show":"hide"]()},[s.pointerDown](o){s.isTouch(o)&&this.show()}}};function $(o){s.isFocusable(o)||s.attr(o,"tabindex","0")}function y(o,t,r){let[a,n]=r;const i=s.offset(o),h=s.offset(t),d=[["left","right"],["top","bottom"]];for(const p of d){if(i[p[0]]>=h[p[1]]){a=p[1];break}if(i[p[1]]<=h[p[0]]){a=p[0];break}}const e=s.includes(d[0],a)?d[1]:d[0];return i[e[0]]===h[e[0]]?n=e[0]:i[e[1]]===h[e[1]]?n=e[1]:n="center",[a,n]}return typeof window<"u"&&window.UIkit&&window.UIkit.component("tooltip",m),m});
1
+ /*! UIkit 3.14.4-dev.07daf8fb8 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(s,l){typeof exports=="object"&&typeof module<"u"?module.exports=l(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],l):(s=typeof globalThis<"u"?globalThis:s||self,s.UIkitTooltip=l(s.UIkit.util))})(this,function(s){"use strict";var l={props:{container:Boolean},data:{container:!0},computed:{container(t){let{container:o}=t;return o===!0&&this.$container||o&&s.$(o)}}},_={props:{cls:Boolean,animation:"list",duration:Number,velocity:Number,origin:String,transition:String},data:{cls:!1,animation:[!1],duration:200,velocity:.2,origin:!1,transition:"ease",clsEnter:"uk-togglabe-enter",clsLeave:"uk-togglabe-leave"},computed:{hasAnimation(t){let{animation:o}=t;return!!o[0]},hasTransition(t){let{animation:o}=t;return["slide","reveal"].some(n=>s.startsWith(o[0],n))}},methods:{toggleElement(t,o,n){return new Promise(e=>Promise.all(s.toNodes(t).map(r=>{const i=s.isBoolean(o)?o:!this.isToggled(r);if(!s.trigger(r,"before"+(i?"show":"hide"),[this]))return Promise.reject();const d=(s.isFunction(n)?n:n===!1||!this.hasAnimation?E(this):this.hasTransition?S(this):B(this))(r,i),f=i?this.clsEnter:this.clsLeave;s.addClass(r,f),s.trigger(r,i?"show":"hide",[this]);const a=()=>{s.removeClass(r,f),s.trigger(r,i?"shown":"hidden",[this]),this.$update(r)};return d?d.then(a,()=>(s.removeClass(r,f),Promise.reject())):a()})).then(e,s.noop))},isToggled(t){return t===void 0&&(t=this.$el),[t]=s.toNodes(t),s.hasClass(t,this.clsEnter)?!0:s.hasClass(t,this.clsLeave)?!1:this.cls?s.hasClass(t,this.cls.split(" ")[0]):s.isVisible(t)},_toggle(t,o){if(!t)return;o=Boolean(o);let n;this.cls?(n=s.includes(this.cls," ")||o!==s.hasClass(t,this.cls),n&&s.toggleClass(t,this.cls,s.includes(this.cls," ")?void 0:o)):(n=o===t.hidden,n&&(t.hidden=!o)),s.$$("[autofocus]",t).some(e=>s.isVisible(e)?e.focus()||!0:e.blur()),n&&(s.trigger(t,"toggled",[o,this]),this.$update(t))}}};function E(t){let{_toggle:o}=t;return(n,e)=>(s.Animation.cancel(n),s.Transition.cancel(n),o(n,e))}function S(t){var o;const[n="reveal",e="top"]=((o=t.animation[0])==null?void 0:o.split("-"))||[],r=[["left","right"],["top","bottom"]],i=r[s.includes(r[0],e)?0:1],d=i[1]===e,a=["width","height"][r.indexOf(i)],h="margin-"+i[0],v="margin-"+e;return async(c,p)=>{let{duration:b,velocity:F,transition:$,_toggle:P}=t,m=s.dimensions(c)[a];const N=s.Transition.inProgress(c);await s.Transition.cancel(c),p&&P(c,!0);const j=Object.fromEntries(["padding","border","width","height","overflow",h,v].map(O=>[O,c.style[O]])),w=s.dimensions(c),T=s.toFloat(s.css(c,h)),x=s.toFloat(s.css(c,v)),g=w[a]+x;!N&&!p&&(m+=x);const[u]=s.wrapInner(c,"<div>");s.css(u,{boxSizing:"border-box",height:w.height,width:w.width,...s.css(c,["padding","borderTop","borderRight","borderBottom","borderLeft","borderImage",v])}),s.css(c,{padding:0,border:0,[v]:0,width:w.width,height:w.height,overflow:"hidden",[a]:m});const A=m/g;b=(F*g+b)*(p?1-A:A);const C={[a]:p?g:0};d&&(s.css(c,h,g-m+T),C[h]=p?T:g+T),!d^n==="reveal"&&(s.css(u,h,-g+m),s.Transition.start(u,{[h]:p?0:-g},b,$));try{await s.Transition.start(c,C,b,$)}finally{s.css(c,j),s.unwrap(u.firstChild),p||P(c,!1)}}}function B(t){return(o,n)=>{s.Animation.cancel(o);const{animation:e,duration:r,_toggle:i}=t;return n?(i(o,!0),s.Animation.in(o,e[0],r,t.origin)):s.Animation.out(o,e[1]||e[0],r,t.origin).then(()=>i(o,!1))}}var I={props:{pos:String,offset:null,flip:Boolean,shift:Boolean,inset:Boolean},data:{pos:"bottom-"+(s.isRtl?"right":"left"),offset:!1,flip:!0,shift:!0,inset:!1},connected(){this.pos=this.$props.pos.split("-").concat("center").slice(0,2),[this.dir,this.align]=this.pos,this.axis=s.includes(["top","bottom"],this.dir)?"y":"x"},methods:{positionAt(t,o,n){let e=[this.getPositionOffset(t),this.getShiftOffset(t)];const r={element:[this.inset?this.dir:s.flipPosition(this.dir),this.align],target:[this.dir,this.align]};if(this.axis==="y"){for(const h in r)r[h]=r[h].reverse();e=e.reverse()}const[i]=s.scrollParents(t,/auto|scroll/),{scrollTop:d,scrollLeft:f}=i,a=s.dimensions(t);s.css(t,{top:-a.height,left:-a.width}),s.positionAt(t,o,{attach:r,offset:e,boundary:n,flip:this.flip,shift:this.shift,viewportOffset:this.getViewportOffset(t)}),i.scrollTop=d,i.scrollLeft=f},getPositionOffset(t){return s.toPx(this.offset===!1?s.css(t,"--uk-position-offset"):this.offset,this.axis==="x"?"width":"height",t)*(s.includes(["left","top"],this.dir)?-1:1)*(this.inset?-1:1)},getShiftOffset(t){return this.align==="center"?0:s.toPx(s.css(t,"--uk-position-shift-offset"),this.axis==="y"?"width":"height",t)*(s.includes(["left","top"],this.align)?1:-1)},getViewportOffset(t){return s.toPx(s.css(t,"--uk-position-viewport-offset"))}}},y={mixins:[l,_,I],args:"title",props:{delay:Number,title:String},data:{pos:"top",title:"",delay:0,animation:["uk-animation-scale-up"],duration:100,cls:"uk-active"},beforeConnect(){this._hasTitle=s.hasAttr(this.$el,"title"),s.attr(this.$el,"title",""),this.updateAria(!1),L(this.$el)},disconnected(){this.hide(),s.attr(this.$el,"title",this._hasTitle?this.title:null)},methods:{show(){this.isToggled(this.tooltip||null)||!this.title||(this._unbind=s.once(document,"show keydown "+s.pointerDown,this.hide,!1,t=>t.type===s.pointerDown&&!s.within(t.target,this.$el)||t.type==="keydown"&&t.keyCode===27||t.type==="show"&&t.detail[0]!==this&&t.detail[0].$name===this.$name),clearTimeout(this.showTimer),this.showTimer=setTimeout(this._show,this.delay))},async hide(){s.matches(this.$el,"input:focus")||(clearTimeout(this.showTimer),this.isToggled(this.tooltip||null)&&(await this.toggleElement(this.tooltip,!1,!1),s.remove(this.tooltip),this.tooltip=null,this._unbind()))},_show(){this.tooltip=s.append(this.container,'<div class="uk-'+this.$options.name+'"> <div class="uk-'+this.$options.name+'-inner">'+this.title+"</div> </div>"),s.on(this.tooltip,"toggled",(t,o)=>{if(this.updateAria(o),!o)return;this.positionAt(this.tooltip,this.$el);const[n,e]=D(this.tooltip,this.$el,this.pos);this.origin=this.axis==="y"?s.flipPosition(n)+"-"+e:e+"-"+s.flipPosition(n)}),this.toggleElement(this.tooltip,!0)},updateAria(t){s.attr(this.$el,"aria-expanded",t)}},events:{focus:"show",blur:"hide",[s.pointerEnter+" "+s.pointerLeave](t){s.isTouch(t)||this[t.type===s.pointerEnter?"show":"hide"]()},[s.pointerDown](t){s.isTouch(t)&&this.show()}}};function L(t){s.isFocusable(t)||s.attr(t,"tabindex","0")}function D(t,o,n){let[e,r]=n;const i=s.offset(t),d=s.offset(o),f=[["left","right"],["top","bottom"]];for(const h of f){if(i[h[0]]>=d[h[1]]){e=h[1];break}if(i[h[1]]<=d[h[0]]){e=h[0];break}}const a=s.includes(f[0],e)?f[1]:f[0];return i[a[0]]===d[a[0]]?r=a[0]:i[a[1]]===d[a[1]]?r=a[1]:r="center",[e,r]}return typeof window<"u"&&window.UIkit&&window.UIkit.component("tooltip",y),y});
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.3 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.4-dev.07daf8fb8 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -1 +1 @@
1
- /*! UIkit 3.14.3 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(o,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitupload",["uikit-util"],n):(o=typeof globalThis<"u"?globalThis:o||self,o.UIkitUpload=n(o.UIkit.util))})(this,function(o){"use strict";var n={props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime:String,msgInvalidMime:String,msgInvalidName:String,msgInvalidSize:String,multiple:Boolean,name:String,params:Object,type:String,url:String},data:{allow:!1,clsDragover:"uk-dragover",concurrent:1,maxSize:0,method:"POST",mime:!1,msgInvalidMime:"Invalid File Type: %s",msgInvalidName:"Invalid File Name: %s",msgInvalidSize:"Invalid File Size: %s Kilobytes Max",multiple:!1,name:"files[]",params:{},type:"",url:"",abort:o.noop,beforeAll:o.noop,beforeSend:o.noop,complete:o.noop,completeAll:o.noop,error:o.noop,fail:o.noop,load:o.noop,loadEnd:o.noop,loadStart:o.noop,progress:o.noop},events:{change(e){!o.matches(e.target,'input[type="file"]')||(e.preventDefault(),e.target.files&&this.upload(e.target.files),e.target.value="")},drop(e){i(e);const t=e.dataTransfer;!(t!=null&&t.files)||(o.removeClass(this.$el,this.clsDragover),this.upload(t.files))},dragenter(e){i(e)},dragover(e){i(e),o.addClass(this.$el,this.clsDragover)},dragleave(e){i(e),o.removeClass(this.$el,this.clsDragover)}},methods:{async upload(e){if(e=o.toArray(e),!e.length)return;o.trigger(this.$el,"upload",[e]);for(const a of e){if(this.maxSize&&this.maxSize*1e3<a.size){this.fail(this.msgInvalidSize.replace("%s",this.maxSize));return}if(this.allow&&!d(this.allow,a.name)){this.fail(this.msgInvalidName.replace("%s",this.allow));return}if(this.mime&&!d(this.mime,a.type)){this.fail(this.msgInvalidMime.replace("%s",this.mime));return}}this.multiple||(e=e.slice(0,1)),this.beforeAll(this,e);const t=c(e,this.concurrent),s=async a=>{const l=new FormData;a.forEach(r=>l.append(this.name,r));for(const r in this.params)l.append(r,this.params[r]);try{const r=await o.ajax(this.url,{data:l,method:this.method,responseType:this.type,beforeSend:h=>{const{xhr:p}=h;p.upload&&o.on(p.upload,"progress",this.progress);for(const m of["loadStart","load","loadEnd","abort"])o.on(p,m.toLowerCase(),this[m]);return this.beforeSend(h)}});this.complete(r),t.length?await s(t.shift()):this.completeAll(r)}catch(r){this.error(r)}};await s(t.shift())}}};function d(e,t){return t.match(new RegExp("^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$","i"))}function c(e,t){const s=[];for(let a=0;a<e.length;a+=t)s.push(e.slice(a,a+t));return s}function i(e){e.preventDefault(),e.stopPropagation()}return typeof window<"u"&&window.UIkit&&window.UIkit.component("upload",n),n});
1
+ /*! UIkit 3.14.4-dev.07daf8fb8 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(o,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitupload",["uikit-util"],n):(o=typeof globalThis<"u"?globalThis:o||self,o.UIkitUpload=n(o.UIkit.util))})(this,function(o){"use strict";var n={props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime:String,msgInvalidMime:String,msgInvalidName:String,msgInvalidSize:String,multiple:Boolean,name:String,params:Object,type:String,url:String},data:{allow:!1,clsDragover:"uk-dragover",concurrent:1,maxSize:0,method:"POST",mime:!1,msgInvalidMime:"Invalid File Type: %s",msgInvalidName:"Invalid File Name: %s",msgInvalidSize:"Invalid File Size: %s Kilobytes Max",multiple:!1,name:"files[]",params:{},type:"",url:"",abort:o.noop,beforeAll:o.noop,beforeSend:o.noop,complete:o.noop,completeAll:o.noop,error:o.noop,fail:o.noop,load:o.noop,loadEnd:o.noop,loadStart:o.noop,progress:o.noop},events:{change(e){!o.matches(e.target,'input[type="file"]')||(e.preventDefault(),e.target.files&&this.upload(e.target.files),e.target.value="")},drop(e){i(e);const t=e.dataTransfer;!(t!=null&&t.files)||(o.removeClass(this.$el,this.clsDragover),this.upload(t.files))},dragenter(e){i(e)},dragover(e){i(e),o.addClass(this.$el,this.clsDragover)},dragleave(e){i(e),o.removeClass(this.$el,this.clsDragover)}},methods:{async upload(e){if(e=o.toArray(e),!e.length)return;o.trigger(this.$el,"upload",[e]);for(const a of e){if(this.maxSize&&this.maxSize*1e3<a.size){this.fail(this.msgInvalidSize.replace("%s",this.maxSize));return}if(this.allow&&!d(this.allow,a.name)){this.fail(this.msgInvalidName.replace("%s",this.allow));return}if(this.mime&&!d(this.mime,a.type)){this.fail(this.msgInvalidMime.replace("%s",this.mime));return}}this.multiple||(e=e.slice(0,1)),this.beforeAll(this,e);const t=c(e,this.concurrent),s=async a=>{const l=new FormData;a.forEach(r=>l.append(this.name,r));for(const r in this.params)l.append(r,this.params[r]);try{const r=await o.ajax(this.url,{data:l,method:this.method,responseType:this.type,beforeSend:h=>{const{xhr:p}=h;p.upload&&o.on(p.upload,"progress",this.progress);for(const m of["loadStart","load","loadEnd","abort"])o.on(p,m.toLowerCase(),this[m]);return this.beforeSend(h)}});this.complete(r),t.length?await s(t.shift()):this.completeAll(r)}catch(r){this.error(r)}};await s(t.shift())}}};function d(e,t){return t.match(new RegExp("^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$","i"))}function c(e,t){const s=[];for(let a=0;a<e.length;a+=t)s.push(e.slice(a,a+t));return s}function i(e){e.preventDefault(),e.stopPropagation()}return typeof window<"u"&&window.UIkit&&window.UIkit.component("upload",n),n});