uikit 3.14.1-dev.eeb4cd6ae → 3.14.2-dev.35b3deec9

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 (99) hide show
  1. package/CHANGELOG.md +45 -3
  2. package/build/util.js +8 -2
  3. package/dist/css/uikit-core-rtl.css +93 -21
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +93 -21
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +99 -33
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +99 -33
  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 +2 -2
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +111 -15
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +111 -15
  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 +18 -3
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +2 -2
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +1 -1
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +2 -2
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +1 -1
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +1 -1
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +147 -34
  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 +280 -132
  38. package/dist/js/uikit-core.min.js +1 -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 +298 -135
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +11 -11
  44. package/src/js/api/hooks.js +1 -1
  45. package/src/js/components/filter.js +1 -1
  46. package/src/js/components/parallax.js +16 -1
  47. package/src/js/core/accordion.js +3 -3
  48. package/src/js/core/alert.js +1 -1
  49. package/src/js/core/drop.js +47 -18
  50. package/src/js/core/height-viewport.js +15 -11
  51. package/src/js/core/margin.js +1 -1
  52. package/src/js/core/navbar.js +19 -18
  53. package/src/js/core/scrollspy.js +6 -1
  54. package/src/js/core/toggle.js +9 -8
  55. package/src/js/mixin/parallax.js +1 -1
  56. package/src/js/mixin/position.js +36 -20
  57. package/src/js/mixin/togglable.js +116 -18
  58. package/src/js/util/animation.js +1 -0
  59. package/src/js/util/position.js +24 -22
  60. package/src/js/util/viewport.js +7 -14
  61. package/src/less/components/drop.less +19 -4
  62. package/src/less/components/dropdown.less +21 -4
  63. package/src/less/components/margin.less +13 -14
  64. package/src/less/components/modal.less +19 -4
  65. package/src/less/components/nav.less +1 -1
  66. package/src/less/components/navbar.less +60 -19
  67. package/src/less/components/offcanvas.less +21 -21
  68. package/src/less/components/position.less +1 -1
  69. package/src/less/components/sticky.less +7 -0
  70. package/src/less/components/tooltip.less +1 -0
  71. package/src/less/components/utility.less +1 -2
  72. package/src/less/theme/dropdown.less +11 -0
  73. package/src/less/theme/navbar.less +10 -10
  74. package/src/scss/components/drop.scss +19 -4
  75. package/src/scss/components/dropdown.scss +21 -4
  76. package/src/scss/components/margin.scss +13 -14
  77. package/src/scss/components/modal.scss +19 -4
  78. package/src/scss/components/nav.scss +1 -1
  79. package/src/scss/components/navbar.scss +49 -8
  80. package/src/scss/components/offcanvas.scss +21 -21
  81. package/src/scss/components/position.scss +1 -1
  82. package/src/scss/components/sticky.scss +7 -0
  83. package/src/scss/components/tooltip.scss +1 -0
  84. package/src/scss/components/utility.scss +1 -2
  85. package/src/scss/mixins-theme.scss +8 -10
  86. package/src/scss/mixins.scss +2 -0
  87. package/src/scss/theme/dropdown.scss +8 -0
  88. package/src/scss/theme/navbar.scss +7 -0
  89. package/src/scss/variables-theme.scss +26 -11
  90. package/src/scss/variables.scss +24 -11
  91. package/tests/drop.html +165 -4
  92. package/tests/dropdown.html +234 -13
  93. package/tests/height-viewport.html +62 -0
  94. package/tests/navbar.html +333 -64
  95. package/tests/notification.html +1 -1
  96. package/tests/offcanvas.html +8 -8
  97. package/tests/sticky-navbar.html +132 -0
  98. package/tests/sticky-parallax.html +2 -1
  99. package/tests/sticky.html +5 -4
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.14.1-dev.eeb4cd6ae | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.2-dev.35b3deec9 | 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')) :
@@ -25,6 +25,7 @@
25
25
  cls: Boolean,
26
26
  animation: 'list',
27
27
  duration: Number,
28
+ velocity: Number,
28
29
  origin: String,
29
30
  transition: String },
30
31
 
@@ -33,6 +34,7 @@
33
34
  cls: false,
34
35
  animation: [false],
35
36
  duration: 200,
37
+ velocity: 0.2,
36
38
  origin: false,
37
39
  transition: 'ease',
38
40
  clsEnter: 'uk-togglabe-enter',
@@ -40,7 +42,7 @@
40
42
 
41
43
  initProps: {
42
44
  overflow: '',
43
- height: '',
45
+ maxHeight: '',
44
46
  paddingTop: '',
45
47
  paddingBottom: '',
46
48
  marginTop: '',
@@ -50,7 +52,7 @@
50
52
 
51
53
  hideProps: {
52
54
  overflow: 'hidden',
53
- height: 0,
55
+ maxHeight: 0,
54
56
  paddingTop: 0,
55
57
  paddingBottom: 0,
56
58
  marginTop: 0,
@@ -65,7 +67,7 @@
65
67
  },
66
68
 
67
69
  hasTransition(_ref2) {let { animation } = _ref2;
68
- return this.hasAnimation && animation[0] === true;
70
+ return uikitUtil.startsWith(animation[0], 'slide');
69
71
  } },
70
72
 
71
73
 
@@ -84,9 +86,9 @@
84
86
  uikitUtil.isFunction(animate) ?
85
87
  animate :
86
88
  animate === false || !this.hasAnimation ?
87
- this._toggle :
89
+ toggleInstant(this) :
88
90
  this.hasTransition ?
89
- toggleHeight(this) :
91
+ toggleTransition(this) :
90
92
  toggleAnimation(this))(
91
93
  el, show);
92
94
 
@@ -150,14 +152,43 @@
150
152
 
151
153
 
152
154
 
153
- function toggleHeight(_ref3) {let { isToggled, duration, initProps, hideProps, transition, _toggle } = _ref3;
155
+ function toggleInstant(_ref3) {let { _toggle } = _ref3;
156
+ return (el, show) => {
157
+ uikitUtil.Animation.cancel(el);
158
+ uikitUtil.Transition.cancel(el);
159
+ return _toggle(el, show);
160
+ };
161
+ }
162
+
163
+ function toggleTransition(cmp) {
164
+ switch (cmp.animation[0]) {
165
+ case 'slide-left':
166
+ return slideHorizontal(cmp);
167
+ case 'slide-right':
168
+ return slideHorizontal(cmp, true);}
169
+
170
+ return slide(cmp);
171
+ }
172
+
173
+ function slide(_ref4)
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+ {let { isToggled, duration, velocity, initProps, hideProps, transition, _toggle } = _ref4;
154
182
  return (el, show) => {
155
183
  const inProgress = uikitUtil.Transition.inProgress(el);
156
- const inner = el.hasChildNodes() ?
184
+ const inner =
185
+ !inProgress && el.hasChildNodes() ?
157
186
  uikitUtil.toFloat(uikitUtil.css(el.firstElementChild, 'marginTop')) +
158
187
  uikitUtil.toFloat(uikitUtil.css(el.lastElementChild, 'marginBottom')) :
159
188
  0;
160
- const currentHeight = uikitUtil.isVisible(el) ? uikitUtil.height(el) + (inProgress ? 0 : inner) : 0;
189
+ const currentHeight = uikitUtil.isVisible(el) ? uikitUtil.toFloat(uikitUtil.css(el, 'height')) + inner : 0;
190
+
191
+ const props = inProgress ? uikitUtil.css(el, Object.keys(initProps)) : show ? hideProps : initProps;
161
192
 
162
193
  uikitUtil.Transition.cancel(el);
163
194
 
@@ -165,32 +196,97 @@
165
196
  _toggle(el, true);
166
197
  }
167
198
 
168
- uikitUtil.height(el, '');
199
+ uikitUtil.css(el, 'maxHeight', '');
169
200
 
170
201
  // Update child components first
171
202
  uikitUtil.fastdom.flush();
172
203
 
173
- const endHeight = uikitUtil.height(el) + (inProgress ? 0 : inner);
174
- uikitUtil.height(el, currentHeight);
204
+ const endHeight = uikitUtil.toFloat(uikitUtil.css(el, 'height')) + inner;
205
+ duration = velocity * endHeight + duration;
206
+
207
+ uikitUtil.css(el, { ...props, maxHeight: currentHeight });
175
208
 
176
209
  return (
177
210
  show ?
178
211
  uikitUtil.Transition.start(
179
212
  el,
180
- { ...initProps, overflow: 'hidden', height: endHeight },
181
- Math.round(duration * (1 - currentHeight / endHeight)),
213
+ { ...initProps, overflow: 'hidden', maxHeight: endHeight },
214
+ duration * (1 - currentHeight / endHeight),
182
215
  transition) :
183
216
 
184
217
  uikitUtil.Transition.start(
185
218
  el,
186
219
  hideProps,
187
- Math.round(duration * (currentHeight / endHeight)),
220
+ duration * (currentHeight / endHeight),
188
221
  transition).
189
222
  then(() => _toggle(el, false))).
190
223
  then(() => uikitUtil.css(el, initProps));
191
224
  };
192
225
  }
193
226
 
227
+ function slideHorizontal(_ref5, right) {let { isToggled, duration, velocity, transition, _toggle } = _ref5;
228
+ return (el, show) => {
229
+ const visible = uikitUtil.isVisible(el);
230
+ const marginLeft = uikitUtil.toFloat(uikitUtil.css(el, 'marginLeft'));
231
+
232
+ uikitUtil.Transition.cancel(el);
233
+
234
+ const [scrollElement] = uikitUtil.scrollParents(el);
235
+ uikitUtil.css(scrollElement, 'overflowX', 'hidden');
236
+
237
+ if (!isToggled(el)) {
238
+ _toggle(el, true);
239
+ }
240
+
241
+ const width = uikitUtil.toFloat(uikitUtil.css(el, 'width'));
242
+ duration = velocity * width + duration;
243
+
244
+ const percent = visible ? (width + marginLeft * (right ? -1 : 1)) / width * 100 : 0;
245
+ const offsetEl = uikitUtil.offset(el);
246
+ const useClipPath = right ?
247
+ offsetEl.right < scrollElement.clientWidth :
248
+ Math.round(offsetEl.left) > 0;
249
+
250
+ uikitUtil.css(el, {
251
+ clipPath: useClipPath ?
252
+ right ? "polygon(0 0," +
253
+ percent + "% 0," + percent + "% 100%,0 100%)" : "polygon(" + (
254
+ 100 - percent) + "% 0,100% 0,100% 100%," + (100 - percent) + "% 100%)" :
255
+ '',
256
+ marginLeft: (100 - percent) * (right ? 1 : -1) / 100 * width });
257
+
258
+
259
+ return (
260
+ show ?
261
+ uikitUtil.Transition.start(
262
+ el,
263
+ {
264
+ clipPath: useClipPath ? "polygon(0 0,100% 0,100% 100%,0 100%)" : '',
265
+ marginLeft: 0 },
266
+
267
+ duration * (1 - percent / 100),
268
+ transition) :
269
+
270
+ uikitUtil.Transition.start(
271
+ el,
272
+ {
273
+ clipPath: useClipPath ?
274
+ right ? "polygon(0 0,0 0,0 100%,0 100%)" : "polygon(100% 0,100% 0,100% 100%,100% 100%)" :
275
+
276
+
277
+ '',
278
+ marginLeft: (right ? 1 : -1) * width },
279
+
280
+ duration * (percent / 100),
281
+ transition).
282
+ then(() => _toggle(el, false))).
283
+ then(() => {
284
+ uikitUtil.css(scrollElement, 'overflowX', '');
285
+ uikitUtil.css(el, { clipPath: '', marginLeft: '' });
286
+ });
287
+ };
288
+ }
289
+
194
290
  function toggleAnimation(cmp) {
195
291
  return (el, show) => {
196
292
  uikitUtil.Animation.cancel(el);
@@ -218,33 +314,22 @@
218
314
  data: {
219
315
  pos: "bottom-" + (uikitUtil.isRtl ? 'right' : 'left'),
220
316
  flip: true,
221
- offset: false,
222
- viewportPadding: 10 },
317
+ offset: false },
223
318
 
224
319
 
225
320
  connected() {
226
321
  this.pos = this.$props.pos.split('-').concat('center').slice(0, 2);
227
- this.axis = uikitUtil.includes(['top', 'bottom'], this.pos[0]) ? 'y' : 'x';
322
+ [this.dir, this.align] = this.pos;
323
+ this.axis = uikitUtil.includes(['top', 'bottom'], this.dir) ? 'y' : 'x';
228
324
  },
229
325
 
230
326
  methods: {
231
327
  positionAt(element, target, boundary) {
232
- const [dir, align] = this.pos;
233
-
234
- let { offset } = this;
235
- if (!uikitUtil.isNumeric(offset)) {
236
- const node = uikitUtil.$(offset);
237
- offset = node ?
238
- uikitUtil.offset(node)[this.axis === 'x' ? 'left' : 'top'] -
239
- uikitUtil.offset(target)[this.axis === 'x' ? 'right' : 'bottom'] :
240
- 0;
241
- }
242
- offset = uikitUtil.toPx(offset) + uikitUtil.toPx(uikitUtil.getCssVar('position-offset', element));
243
- offset = [uikitUtil.includes(['left', 'top'], dir) ? -offset : +offset, 0];
328
+ let offset = [this.getPositionOffset(element), this.getShiftOffset(element)];
244
329
 
245
330
  const attach = {
246
- element: [uikitUtil.flipPosition(dir), align],
247
- target: [dir, align] };
331
+ element: [uikitUtil.flipPosition(this.dir), this.align],
332
+ target: [this.dir, this.align] };
248
333
 
249
334
 
250
335
  if (this.axis === 'y') {
@@ -254,13 +339,41 @@
254
339
  offset = offset.reverse();
255
340
  }
256
341
 
342
+ // Ensure none positioned element does not generate scrollbars
343
+ const elDim = uikitUtil.dimensions(element);
344
+ uikitUtil.css(element, { top: -elDim.height, left: -elDim.width });
345
+
257
346
  uikitUtil.positionAt(element, target, {
258
347
  attach,
259
348
  offset,
260
349
  boundary,
261
- viewportPadding: this.viewportPadding,
262
- flip: this.flip });
350
+ flip: this.flip,
351
+ viewportOffset: this.getViewportOffset(element) });
352
+
353
+ },
354
+
355
+ getPositionOffset(element) {
356
+ return (
357
+ uikitUtil.toPx(
358
+ this.offset === false ? uikitUtil.getCssVar('position-offset', element) : this.offset,
359
+ this.axis === 'x' ? 'width' : 'height',
360
+ element) * (
361
+ uikitUtil.includes(['left', 'top'], this.dir) ? -1 : 1));
362
+
363
+ },
364
+
365
+ getShiftOffset(element) {
366
+ return uikitUtil.includes(['center', 'justify', 'stretch'], this.align) ?
367
+ 0 :
368
+ uikitUtil.toPx(
369
+ uikitUtil.getCssVar('position-shift-offset', element),
370
+ this.axis === 'y' ? 'width' : 'height',
371
+ element) * (
372
+ uikitUtil.includes(['left', 'top'], this.align) ? 1 : -1);
373
+ },
263
374
 
375
+ getViewportOffset(element) {
376
+ return uikitUtil.toPx(uikitUtil.getCssVar('position-viewport-offset', element));
264
377
  } } };
265
378
 
266
379
  var Component = {
@@ -1 +1 @@
1
- /*! UIkit 3.14.1-dev.eeb4cd6ae | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(s,c){typeof exports=="object"&&typeof module<"u"?module.exports=c(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],c):(s=typeof globalThis<"u"?globalThis:s||self,s.UIkitTooltip=c(s.UIkit.util))})(this,function(s){"use strict";var c={props:{container:Boolean},data:{container:!0},computed:{container(o){let{container:e}=o;return e===!0&&this.$container||e&&s.$(e)}}},w={props:{cls:Boolean,animation:"list",duration:Number,origin:String,transition:String},data:{cls:!1,animation:[!1],duration:200,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:e}=o;return!!e[0]},hasTransition(o){let{animation:e}=o;return this.hasAnimation&&e[0]===!0}},methods:{toggleElement(o,e,i){return new Promise(r=>Promise.all(s.toNodes(o).map(a=>{const n=s.isBoolean(e)?e:!this.isToggled(a);if(!s.trigger(a,"before"+(n?"show":"hide"),[this]))return Promise.reject();const h=(s.isFunction(i)?i:i===!1||!this.hasAnimation?this._toggle:this.hasTransition?T(this):u(this))(a,n),t=n?this.clsEnter:this.clsLeave;s.addClass(a,t),s.trigger(a,n?"show":"hide",[this]);const d=()=>{s.removeClass(a,t),s.trigger(a,n?"shown":"hidden",[this]),this.$update(a)};return h?h.then(d,()=>(s.removeClass(a,t),Promise.reject())):d()})).then(r,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,e){if(!o)return;e=Boolean(e);let i;this.cls?(i=s.includes(this.cls," ")||e!==s.hasClass(o,this.cls),i&&s.toggleClass(o,this.cls,s.includes(this.cls," ")?void 0:e)):(i=e===o.hidden,i&&(o.hidden=!e)),s.$$("[autofocus]",o).some(r=>s.isVisible(r)?r.focus()||!0:r.blur()),i&&(s.trigger(o,"toggled",[e,this]),this.$update(o))}}};function T(o){let{isToggled:e,duration:i,initProps:r,hideProps:a,transition:n,_toggle:h}=o;return(t,d)=>{const p=s.Transition.inProgress(t),l=t.hasChildNodes()?s.toFloat(s.css(t.firstElementChild,"marginTop"))+s.toFloat(s.css(t.lastElementChild,"marginBottom")):0,f=s.isVisible(t)?s.height(t)+(p?0:l):0;s.Transition.cancel(t),e(t)||h(t,!0),s.height(t,""),s.fastdom.flush();const g=s.height(t)+(p?0:l);return s.height(t,f),(d?s.Transition.start(t,{...r,overflow:"hidden",height:g},Math.round(i*(1-f/g)),n):s.Transition.start(t,a,Math.round(i*(f/g)),n).then(()=>h(t,!1))).then(()=>s.css(t,r))}}function u(o){return(e,i)=>{s.Animation.cancel(e);const{animation:r,duration:a,_toggle:n}=o;return i?(n(e,!0),s.Animation.in(e,r[0],a,o.origin)):s.Animation.out(e,r[1]||r[0],a,o.origin).then(()=>n(e,!1))}}var v={props:{pos:String,offset:null,flip:Boolean},data:{pos:"bottom-"+(s.isRtl?"right":"left"),flip:!0,offset:!1,viewportPadding:10},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,e,i){const[r,a]=this.pos;let{offset:n}=this;if(!s.isNumeric(n)){const t=s.$(n);n=t?s.offset(t)[this.axis==="x"?"left":"top"]-s.offset(e)[this.axis==="x"?"right":"bottom"]:0}n=s.toPx(n)+s.toPx(s.getCssVar("position-offset",o)),n=[s.includes(["left","top"],r)?-n:+n,0];const h={element:[s.flipPosition(r),a],target:[r,a]};if(this.axis==="y"){for(const t in h)h[t]=h[t].reverse();n=n.reverse()}s.positionAt(o,e,{attach:h,offset:n,boundary:i,viewportPadding:this.viewportPadding,flip:this.flip})}}},m={mixins:[c,w,v],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),b(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,e)=>{if(this.updateAria(e),!e)return;this.positionAt(this.tooltip,this.$el);const[i,r]=$(this.tooltip,this.$el,this.pos);this.origin=this.axis==="y"?s.flipPosition(i)+"-"+r:r+"-"+s.flipPosition(i)}),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 b(o){s.isFocusable(o)||s.attr(o,"tabindex","0")}function $(o,e,i){let[r,a]=i;const n=s.offset(o),h=s.offset(e),t=[["left","right"],["top","bottom"]];for(const p of t){if(n[p[0]]>=h[p[1]]){r=p[1];break}if(n[p[1]]<=h[p[0]]){r=p[0];break}}const d=s.includes(t[0],r)?t[1]:t[0];return n[d[0]]===h[d[0]]?a=d[0]:n[d[1]]===h[d[1]]?a=d[1]:a="center",[r,a]}return typeof window<"u"&&window.UIkit&&window.UIkit.component("tooltip",m),m});
1
+ /*! UIkit 3.14.2-dev.35b3deec9 | 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(o){let{container:t}=o;return t===!0&&this.$container||t&&s.$(t)}}},b={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:"",maxHeight:"",paddingTop:"",paddingBottom:"",marginTop:"",marginBottom:"",boxShadow:""},hideProps:{overflow:"hidden",maxHeight: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 s.startsWith(t[0],"slide")}},methods:{toggleElement(o,t,n){return new Promise(e=>Promise.all(s.toNodes(o).map(r=>{const i=s.isBoolean(t)?t:!this.isToggled(r);if(!s.trigger(r,"before"+(i?"show":"hide"),[this]))return Promise.reject();const c=(s.isFunction(n)?n:n===!1||!this.hasAnimation?P(this):this.hasTransition?u(this):$(this))(r,i),h=i?this.clsEnter:this.clsLeave;s.addClass(r,h),s.trigger(r,i?"show":"hide",[this]);const a=()=>{s.removeClass(r,h),s.trigger(r,i?"shown":"hidden",[this]),this.$update(r)};return c?c.then(a,()=>(s.removeClass(r,h),Promise.reject())):a()})).then(e,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 n;this.cls?(n=s.includes(this.cls," ")||t!==s.hasClass(o,this.cls),n&&s.toggleClass(o,this.cls,s.includes(this.cls," ")?void 0:t)):(n=t===o.hidden,n&&(o.hidden=!t)),s.$$("[autofocus]",o).some(e=>s.isVisible(e)?e.focus()||!0:e.blur()),n&&(s.trigger(o,"toggled",[t,this]),this.$update(o))}}};function P(o){let{_toggle:t}=o;return(n,e)=>(s.Animation.cancel(n),s.Transition.cancel(n),t(n,e))}function u(o){switch(o.animation[0]){case"slide-left":return v(o);case"slide-right":return v(o,!0)}return x(o)}function x(o){let{isToggled:t,duration:n,velocity:e,initProps:r,hideProps:i,transition:c,_toggle:h}=o;return(a,f)=>{const w=s.Transition.inProgress(a),m=!w&&a.hasChildNodes()?s.toFloat(s.css(a.firstElementChild,"marginTop"))+s.toFloat(s.css(a.lastElementChild,"marginBottom")):0,d=s.isVisible(a)?s.toFloat(s.css(a,"height"))+m:0,p=w?s.css(a,Object.keys(r)):f?i:r;s.Transition.cancel(a),t(a)||h(a,!0),s.css(a,"maxHeight",""),s.fastdom.flush();const g=s.toFloat(s.css(a,"height"))+m;return n=e*g+n,s.css(a,{...p,maxHeight:d}),(f?s.Transition.start(a,{...r,overflow:"hidden",maxHeight:g},n*(1-d/g),c):s.Transition.start(a,i,n*(d/g),c).then(()=>h(a,!1))).then(()=>s.css(a,r))}}function v(o,t){let{isToggled:n,duration:e,velocity:r,transition:i,_toggle:c}=o;return(h,a)=>{const f=s.isVisible(h),w=s.toFloat(s.css(h,"marginLeft"));s.Transition.cancel(h);const[m]=s.scrollParents(h);s.css(m,"overflowX","hidden"),n(h)||c(h,!0);const d=s.toFloat(s.css(h,"width"));e=r*d+e;const p=f?(d+w*(t?-1:1))/d*100:0,g=s.offset(h),T=t?g.right<m.clientWidth:Math.round(g.left)>0;return s.css(h,{clipPath:T?t?"polygon(0 0,"+p+"% 0,"+p+"% 100%,0 100%)":"polygon("+(100-p)+"% 0,100% 0,100% 100%,"+(100-p)+"% 100%)":"",marginLeft:(100-p)*(t?1:-1)/100*d}),(a?s.Transition.start(h,{clipPath:T?"polygon(0 0,100% 0,100% 100%,0 100%)":"",marginLeft:0},e*(1-p/100),i):s.Transition.start(h,{clipPath:T?t?"polygon(0 0,0 0,0 100%,0 100%)":"polygon(100% 0,100% 0,100% 100%,100% 100%)":"",marginLeft:(t?1:-1)*d},e*(p/100),i).then(()=>c(h,!1))).then(()=>{s.css(m,"overflowX",""),s.css(h,{clipPath:"",marginLeft:""})})}}function $(o){return(t,n)=>{s.Animation.cancel(t);const{animation:e,duration:r,_toggle:i}=o;return n?(i(t,!0),s.Animation.in(t,e[0],r,o.origin)):s.Animation.out(t,e[1]||e[0],r,o.origin).then(()=>i(t,!1))}}var C={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.dir,this.align]=this.pos,this.axis=s.includes(["top","bottom"],this.dir)?"y":"x"},methods:{positionAt(o,t,n){let e=[this.getPositionOffset(o),this.getShiftOffset(o)];const r={element:[s.flipPosition(this.dir),this.align],target:[this.dir,this.align]};if(this.axis==="y"){for(const c in r)r[c]=r[c].reverse();e=e.reverse()}const i=s.dimensions(o);s.css(o,{top:-i.height,left:-i.width}),s.positionAt(o,t,{attach:r,offset:e,boundary:n,flip:this.flip,viewportOffset:this.getViewportOffset(o)})},getPositionOffset(o){return s.toPx(this.offset===!1?s.getCssVar("position-offset",o):this.offset,this.axis==="x"?"width":"height",o)*(s.includes(["left","top"],this.dir)?-1:1)},getShiftOffset(o){return s.includes(["center","justify","stretch"],this.align)?0:s.toPx(s.getCssVar("position-shift-offset",o),this.axis==="y"?"width":"height",o)*(s.includes(["left","top"],this.align)?1:-1)},getViewportOffset(o){return s.toPx(s.getCssVar("position-viewport-offset",o))}}},y={mixins:[l,b,C],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),A(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[n,e]=E(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(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 A(o){s.isFocusable(o)||s.attr(o,"tabindex","0")}function E(o,t,n){let[e,r]=n;const i=s.offset(o),c=s.offset(t),h=[["left","right"],["top","bottom"]];for(const f of h){if(i[f[0]]>=c[f[1]]){e=f[1];break}if(i[f[1]]<=c[f[0]]){e=f[0];break}}const a=s.includes(h[0],e)?h[1]:h[0];return i[a[0]]===c[a[0]]?r=a[0]:i[a[1]]===c[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.1-dev.eeb4cd6ae | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.14.2-dev.35b3deec9 | 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.1-dev.eeb4cd6ae | 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.2-dev.35b3deec9 | 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});