uikit 3.25.23-dev.0ea1d51 → 3.25.23-dev.9ebc131

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 (51) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/scss.js +83 -54
  3. package/dist/css/uikit-core-rtl.css +1 -1
  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 +1 -1
  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 +1 -1
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +4 -4
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +324 -32
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +324 -32
  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 +1 -1
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +1 -1
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +191 -191
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +1 -1
  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 +5 -3
  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 +100 -85
  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 +97 -80
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +1 -1
  44. package/src/js/api/component.js +12 -8
  45. package/src/js/components/tooltip.js +4 -2
  46. package/src/js/core/accordion.js +11 -7
  47. package/src/js/core/drop.js +10 -32
  48. package/src/js/core/dropnav.js +1 -1
  49. package/src/js/core/overflow-fade.js +6 -5
  50. package/src/js/mixin/event.js +31 -0
  51. package/src/js/mixin/modal.js +26 -34
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.23-dev.0ea1d51 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.23-dev.9ebc131 | https://www.getuikit.com | (c) 2014 - 2026 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.25.23-dev.0ea1d51 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(t,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitcountdown",["uikit-util"],n):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitCountdown=n(t.UIkit.util))})(this,(function(t){"use strict";var n={connected(){this._cmpCls=t.hasClass(this.$el,this.$options.id),t.addClass(this.$el,this.$options.id)},disconnected(){this._cmpCls||t.removeClass(this.$el,this.$options.id)}};const r=["days","hours","minutes","seconds"];var d={mixins:[n],props:{date:String,clsWrapper:String,role:String,reload:Boolean},data:{date:"",clsWrapper:".uk-countdown-%unit%",role:"timer",reload:!1},connected(){this.$el.role=this.role,this.date=t.toFloat(Date.parse(this.$props.date)),this.started=this.end=!1,this.start()},disconnected(){this.stop()},events:{name:"visibilitychange",el:()=>document,handler(){document.hidden?this.stop():this.start()}},methods:{start(){this.stop(),this.update()},stop(){this.timer&&(clearInterval(this.timer),t.trigger(this.$el,"countdownstop"),this.timer=null)},update(){const o=a(this.date);o.total?this.timer||(this.started=!0,this.timer=setInterval(this.update,1e3),t.trigger(this.$el,"countdownstart")):(this.stop(),this.end||(t.trigger(this.$el,"countdownend"),this.end=!0,this.reload&&this.started&&window.location.reload()));for(const e of r){const i=t.$(this.clsWrapper.replace("%unit%",e),this.$el);if(!i)continue;let s=Math.trunc(o[e]).toString().padStart(2,"0");i.textContent!==s&&(s=s.split(""),s.length!==i.children.length&&t.html(i,"<span></span>".repeat(s.length)),s.forEach((l,c)=>i.children[c].textContent=l))}}}};function a(o){const e=Math.max(0,o-Date.now())/1e3;return{total:e,seconds:e%60,minutes:e/60%60,hours:e/60/60%24,days:e/60/60/24}}var h="countdown";return typeof window<"u"&&window.UIkit&&window.UIkit.component(h,d),d}));
1
+ /*! UIkit 3.25.23-dev.9ebc131 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(t,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitcountdown",["uikit-util"],n):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitCountdown=n(t.UIkit.util))})(this,(function(t){"use strict";var n={connected(){this._cmpCls=t.hasClass(this.$el,this.$options.id),t.addClass(this.$el,this.$options.id)},disconnected(){this._cmpCls||t.removeClass(this.$el,this.$options.id)}};const r=["days","hours","minutes","seconds"];var d={mixins:[n],props:{date:String,clsWrapper:String,role:String,reload:Boolean},data:{date:"",clsWrapper:".uk-countdown-%unit%",role:"timer",reload:!1},connected(){this.$el.role=this.role,this.date=t.toFloat(Date.parse(this.$props.date)),this.started=this.end=!1,this.start()},disconnected(){this.stop()},events:{name:"visibilitychange",el:()=>document,handler(){document.hidden?this.stop():this.start()}},methods:{start(){this.stop(),this.update()},stop(){this.timer&&(clearInterval(this.timer),t.trigger(this.$el,"countdownstop"),this.timer=null)},update(){const o=a(this.date);o.total?this.timer||(this.started=!0,this.timer=setInterval(this.update,1e3),t.trigger(this.$el,"countdownstart")):(this.stop(),this.end||(t.trigger(this.$el,"countdownend"),this.end=!0,this.reload&&this.started&&window.location.reload()));for(const e of r){const i=t.$(this.clsWrapper.replace("%unit%",e),this.$el);if(!i)continue;let s=Math.trunc(o[e]).toString().padStart(2,"0");i.textContent!==s&&(s=s.split(""),s.length!==i.children.length&&t.html(i,"<span></span>".repeat(s.length)),s.forEach((l,c)=>i.children[c].textContent=l))}}}};function a(o){const e=Math.max(0,o-Date.now())/1e3;return{total:e,seconds:e%60,minutes:e/60%60,hours:e/60/60%24,days:e/60/60/24}}var h="countdown";return typeof window<"u"&&window.UIkit&&window.UIkit.component(h,d),d}));
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.23-dev.0ea1d51 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.23-dev.9ebc131 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -364,15 +364,15 @@
364
364
  }
365
365
  };
366
366
 
367
+ const keyMap = {
368
+ SPACE: 32};
369
+
367
370
  function maybeDefaultPreventClick(e) {
368
371
  if (e.target.closest('a[href="#"],a[href=""]')) {
369
372
  e.preventDefault();
370
373
  }
371
374
  }
372
375
 
373
- const keyMap = {
374
- SPACE: 32};
375
-
376
376
  var Component = {
377
377
  mixins: [Animate],
378
378
  args: "target",
@@ -1 +1 @@
1
- /*! UIkit 3.25.23-dev.0ea1d51 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(n,v){typeof exports=="object"&&typeof module<"u"?module.exports=v(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitfilter",["uikit-util"],v):(n=typeof globalThis<"u"?globalThis:n||self,n.UIkitFilter=v(n.UIkit.util))})(this,(function(n){"use strict";function v(e,s=[]){try{return e?n.startsWith(e,"{")?JSON.parse(e):s.length&&!n.includes(e,":")?{[s[0]]:e}:e.split(";").reduce((o,t)=>{const[c,r]=t.split(/:(.*)/);return c&&!n.isUndefined(r)&&(o[c.trim()]=r.trim()),o},{}):{}}catch{return{}}}function N(e,s="update"){e._connected&&e._updates.length&&(e._updateCount||(e._updateCount=0,requestAnimationFrame(()=>e._updateCount=0)),e._queued||(e._queued=new Set,n.fastdom.read(()=>{e._connected&&O(e,e._queued),e._queued=null})),e._updateCount++<20&&e._queued.add(s.type||s))}function O(e,s){for(const{read:o,write:t,events:c=[]}of e._updates){if(!s.has("update")&&!c.some(a=>s.has(a)))continue;let r;o&&(r=o.call(e,e._data,s),r&&n.isPlainObject(r)&&n.assign(e._data,r)),t&&r!==!1&&n.fastdom.write(()=>{e._connected&&t.call(e,e._data,s)})}}function j(e){return I(n.observeResize,e,"resize")}function $(e){return I(n.observeMutation,e)}function I(e,s,o){return{observe:e,handler(){N(this,o)},...s}}$({options:{childList:!0}}),$({options:{attributes:!0,attributeFilter:["style"]}}),j({handler(e){for(const{target:s,borderBoxSize:[{inlineSize:o,blockSize:t}]}of e)if(s===this.$el&&!o&&!t)return;this.$emit("resize")},target:({$el:e})=>[e,...n.children(e)]});function B(e){const s=[[]],o=e.some((t,c)=>c&&e[c-1].offsetParent!==t.offsetParent);for(const t of e){if(!n.isVisible(t))continue;const c=P(t,o);for(let r=s.length-1;r>=0;r--){const a=s[r];if(!a[0]){a.push(t);break}const d=P(a[0],o);if(c.top>=d.bottom-1&&c.top!==d.top){s.push([t]);break}if(c.bottom-1>d.top||c.top===d.top){let h=a.length-1;for(;h>=0;h--){const l=P(a[h],o);if(c.left>=l.left)break}a.splice(h+1,0,t);break}if(r===0){s.unshift([t]);break}}}return s}function P(e,s=!1){let{offsetTop:o,offsetLeft:t,offsetHeight:c,offsetWidth:r}=e;return s&&([o,t]=n.offsetPosition(e)),{top:o,left:t,bottom:o+c,right:t+r}}function F(){return new Promise(e=>requestAnimationFrame(e))}function g(e){return new Promise(s=>setTimeout(s,e))}const C="uk-transition-leave",S="uk-transition-enter";function _(e,s,o,t=0){const c=T(s,!0),r={opacity:1},a={opacity:0},d=()=>c===T(s),h=p=>()=>d()?p():Promise.reject(),l=h(async()=>{n.addClass(s,C),await(t?q(s).reduce(async(p,i,u,w)=>{if(await p,!n.isInView(i)||!d()){n.css(i,a);return}await g(t);const f=n.Transition.start(i,a,o/2,"ease");w.length-1===u&&await f},Promise.resolve()):n.Transition.start(s,a,o/2,"ease")),n.removeClass(s,C)}),y=h(async()=>{const p=n.height(s);n.addClass(s,S),e(),n.css(t?n.children(s):s,a),n.height(s,p),await g(),n.height(s,"");const i=n.height(s);n.css(s,"alignContent","flex-start"),n.height(s,p);let u=[],w=o/2;if(t){const f=q(s);n.css(n.children(s),a),u=f.reduce(async(m,b,Z,k)=>{if(await m,!n.isInView(b)||!d()){n.resetProps(b,r);return}await g(t);const U=n.Transition.start(b,r,o/2,"ease").then(()=>d()&&n.resetProps(b,r));k.length-1===Z&&await U},Promise.resolve()),w+=f.length*t}if(!t||p!==i){const f={height:i,...t?{}:r};u.push(n.Transition.start(s,f,w,"ease"))}await Promise.all(u),n.removeClass(s,S),d()&&(n.resetProps(s,{height:"",alignContent:"",...r}),delete s.dataset.transition)});return n.hasClass(s,C)?x(s).then(y):n.hasClass(s,S)?x(s).then(l).then(y):l().then(y)}function T(e,s){return s&&(e.dataset.transition=1+T(e)),n.toNumber(e.dataset.transition)||0}function x(e){return Promise.all(n.children(e).filter(n.Transition.inProgress).map(s=>new Promise(o=>n.once(s,"transitionend transitioncanceled",o))))}function q(e){return B(n.children(e)).flat().filter(n.isVisible)}async function L(e,s,o){await F();let t=n.children(s);const c=t.map(f=>z(f,!0)),r={...n.css(s,["height","padding"]),display:"block"},a=t.filter(f=>n.isInView(f)),d=t.concat(s);await Promise.all(d.map(n.Transition.cancel)),n.css(d,"transitionProperty","none"),await e();const h=n.children(s).filter(f=>!n.includes(t,f));t=t.concat(h),await Promise.resolve(),n.css(d,"transitionProperty","");const l=n.attr(s,"style"),y=n.css(s,["height","padding"]),[p,i]=D(s,t,c),u=t.map(f=>({style:n.attr(f,"style")}));a.push(...t.filter(f=>n.isInView(f))),t.forEach((f,m)=>i[m]&&n.css(f,i[m])),n.css(s,r),n.trigger(s,"scroll"),await F();const w=t.map((f,m)=>{if(n.parent(f)===s&&a.includes(f))return n.Transition.start(f,p[m],o,"ease",!h.includes(f))}).concat(n.Transition.start(s,y,o,"ease",!0));try{await Promise.all(w),t.forEach((f,m)=>{n.attr(f,u[m]),n.parent(f)===s&&n.css(f,"display",p[m].opacity===0?"none":"")}),n.attr(s,"style",l)}catch{n.attr(t,"style",""),n.resetProps(s,r)}}function z(e,s){const o=n.css(e,"zIndex");return n.isVisible(e)?{display:"",opacity:s?n.css(e,"opacity"):"0",pointerEvents:"none",position:"absolute",zIndex:o==="auto"?n.index(e):o,...A(e)}:!1}function D(e,s,o){const t=s.map((r,a)=>n.parent(r)&&a in o?o[a]?n.isVisible(r)?A(r):{opacity:0}:{opacity:n.isVisible(r)?1:0}:!1),c=t.map((r,a)=>{const d=n.parent(s[a])===e&&(o[a]||z(s[a]));if(!d)return!1;if(!r)delete d.opacity;else if(!("opacity"in r)){const{opacity:h}=d;h%1?r.opacity=1:delete d.opacity}return d});return[t,c]}function A(e){const{height:s,width:o}=n.dimensions(e);return{height:s,width:o,transform:"",...n.position(e),...n.css(e,["marginTop","marginLeft"])}}var H={props:{duration:Number,animation:Boolean},data:{duration:150,animation:"slide"},methods:{animate(e,s=this.$el){const o=this.animation;return(o==="fade"?_:o==="delayed-fade"?(...c)=>_(...c,40):o?L:()=>(e(),Promise.resolve()))(e,s,this.duration).catch(n.noop)}}};function R(e){e.target.closest('a[href="#"],a[href=""]')&&e.preventDefault()}const W={SPACE:32};var E={mixins:[H],args:"target",props:{target:String,selActive:Boolean},data:{target:"",selActive:!1,attrItem:"uk-filter-control",cls:"uk-active",duration:250},computed:{children:({target:e},s)=>n.$$(`${e} > *`,s),toggles:({attrItem:e},s)=>n.$$(`[${e}],[data-${e}]`,s)},watch:{toggles(e){this.updateState();const s=n.$$(this.selActive,this.$el);for(const o of e){this.selActive!==!1&&n.toggleClass(o,this.cls,n.includes(s,o));const t=X(o);n.isTag(t,"a")&&(t.role="button")}},children(e,s){s&&this.updateState()}},events:{name:"click keydown",delegate:({attrItem:e})=>`[${e}],[data-${e}]`,handler(e){e.type==="keydown"&&e.keyCode!==W.SPACE||e.target.closest("a,button")&&(R(e),this.apply(e.current))}},methods:{apply(e){const s=this.getState(),o=V(e,this.attrItem,this.getState());J(s,o)||this.setState(o)},getState(){return this.toggles.filter(e=>n.hasClass(e,this.cls)).reduce((e,s)=>V(s,this.attrItem,e),{filter:{"":""},sort:[]})},async setState(e,s=!0){e={filter:{"":""},sort:[],...e},n.trigger(this.$el,"beforeFilter",[this,e]);for(const o of this.toggles)n.toggleClass(o,this.cls,K(o,this.attrItem,e));await Promise.all(n.$$(this.target,this.$el).map(o=>{const t=()=>G(e,o,n.children(o));return s?this.animate(t,o):t()})),n.trigger(this.$el,"afterFilter",[this])},updateState(){n.fastdom.write(()=>this.setState(this.getState(),!1))}}};function M(e,s){return v(n.data(e,s),["filter"])}function J(e,s){return["filter","sort"].every(o=>n.isEqual(e[o],s[o]))}function G(e,s,o){for(const r of o)n.css(r,"display",Object.values(e.filter).every(a=>!a||n.matches(r,a))?"":"none");const[t,c]=e.sort;if(t){const r=Q(o,t,c);n.isEqual(r,o)||n.append(s,r)}}function V(e,s,o){const{filter:t,group:c,sort:r,order:a="asc"}=M(e,s);return(t||n.isUndefined(r))&&(c?t?(delete o.filter[""],o.filter[c]=t):(delete o.filter[c],(n.isEmpty(o.filter)||""in o.filter)&&(o.filter={"":t||""})):o.filter={"":t||""}),n.isUndefined(r)||(o.sort=[r,a]),o}function K(e,s,{filter:o={"":""},sort:[t,c]}){const{filter:r="",group:a="",sort:d,order:h="asc"}=M(e,s),l=!a&&r===o[""],y=a in o&&r===o[a],p=!r&&a&&!(a in o)&&!o[""],i=l||y||p;return n.isUndefined(d)?i:t===d&&c===h&&(!(r||a)||i)}function Q(e,s,o){return[...e].sort((t,c)=>{const r=n.data(t,s)||"",a=n.data(c,s)||"";return(n.isNumeric(r)&&n.isNumeric(a)?r-a:r.localeCompare(a,void 0,{numeric:!0}))*(o==="asc"||-1)})}function X(e){return n.$("a,button",e)||e}var Y="filter";return typeof window<"u"&&window.UIkit&&window.UIkit.component(Y,E),E}));
1
+ /*! UIkit 3.25.23-dev.9ebc131 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(n,v){typeof exports=="object"&&typeof module<"u"?module.exports=v(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitfilter",["uikit-util"],v):(n=typeof globalThis<"u"?globalThis:n||self,n.UIkitFilter=v(n.UIkit.util))})(this,(function(n){"use strict";function v(e,s=[]){try{return e?n.startsWith(e,"{")?JSON.parse(e):s.length&&!n.includes(e,":")?{[s[0]]:e}:e.split(";").reduce((o,t)=>{const[c,r]=t.split(/:(.*)/);return c&&!n.isUndefined(r)&&(o[c.trim()]=r.trim()),o},{}):{}}catch{return{}}}function N(e,s="update"){e._connected&&e._updates.length&&(e._updateCount||(e._updateCount=0,requestAnimationFrame(()=>e._updateCount=0)),e._queued||(e._queued=new Set,n.fastdom.read(()=>{e._connected&&O(e,e._queued),e._queued=null})),e._updateCount++<20&&e._queued.add(s.type||s))}function O(e,s){for(const{read:o,write:t,events:c=[]}of e._updates){if(!s.has("update")&&!c.some(a=>s.has(a)))continue;let r;o&&(r=o.call(e,e._data,s),r&&n.isPlainObject(r)&&n.assign(e._data,r)),t&&r!==!1&&n.fastdom.write(()=>{e._connected&&t.call(e,e._data,s)})}}function j(e){return I(n.observeResize,e,"resize")}function $(e){return I(n.observeMutation,e)}function I(e,s,o){return{observe:e,handler(){N(this,o)},...s}}$({options:{childList:!0}}),$({options:{attributes:!0,attributeFilter:["style"]}}),j({handler(e){for(const{target:s,borderBoxSize:[{inlineSize:o,blockSize:t}]}of e)if(s===this.$el&&!o&&!t)return;this.$emit("resize")},target:({$el:e})=>[e,...n.children(e)]});function B(e){const s=[[]],o=e.some((t,c)=>c&&e[c-1].offsetParent!==t.offsetParent);for(const t of e){if(!n.isVisible(t))continue;const c=P(t,o);for(let r=s.length-1;r>=0;r--){const a=s[r];if(!a[0]){a.push(t);break}const d=P(a[0],o);if(c.top>=d.bottom-1&&c.top!==d.top){s.push([t]);break}if(c.bottom-1>d.top||c.top===d.top){let h=a.length-1;for(;h>=0;h--){const l=P(a[h],o);if(c.left>=l.left)break}a.splice(h+1,0,t);break}if(r===0){s.unshift([t]);break}}}return s}function P(e,s=!1){let{offsetTop:o,offsetLeft:t,offsetHeight:c,offsetWidth:r}=e;return s&&([o,t]=n.offsetPosition(e)),{top:o,left:t,bottom:o+c,right:t+r}}function F(){return new Promise(e=>requestAnimationFrame(e))}function g(e){return new Promise(s=>setTimeout(s,e))}const C="uk-transition-leave",S="uk-transition-enter";function _(e,s,o,t=0){const c=T(s,!0),r={opacity:1},a={opacity:0},d=()=>c===T(s),h=p=>()=>d()?p():Promise.reject(),l=h(async()=>{n.addClass(s,C),await(t?q(s).reduce(async(p,i,u,w)=>{if(await p,!n.isInView(i)||!d()){n.css(i,a);return}await g(t);const f=n.Transition.start(i,a,o/2,"ease");w.length-1===u&&await f},Promise.resolve()):n.Transition.start(s,a,o/2,"ease")),n.removeClass(s,C)}),y=h(async()=>{const p=n.height(s);n.addClass(s,S),e(),n.css(t?n.children(s):s,a),n.height(s,p),await g(),n.height(s,"");const i=n.height(s);n.css(s,"alignContent","flex-start"),n.height(s,p);let u=[],w=o/2;if(t){const f=q(s);n.css(n.children(s),a),u=f.reduce(async(m,b,Z,k)=>{if(await m,!n.isInView(b)||!d()){n.resetProps(b,r);return}await g(t);const U=n.Transition.start(b,r,o/2,"ease").then(()=>d()&&n.resetProps(b,r));k.length-1===Z&&await U},Promise.resolve()),w+=f.length*t}if(!t||p!==i){const f={height:i,...t?{}:r};u.push(n.Transition.start(s,f,w,"ease"))}await Promise.all(u),n.removeClass(s,S),d()&&(n.resetProps(s,{height:"",alignContent:"",...r}),delete s.dataset.transition)});return n.hasClass(s,C)?x(s).then(y):n.hasClass(s,S)?x(s).then(l).then(y):l().then(y)}function T(e,s){return s&&(e.dataset.transition=1+T(e)),n.toNumber(e.dataset.transition)||0}function x(e){return Promise.all(n.children(e).filter(n.Transition.inProgress).map(s=>new Promise(o=>n.once(s,"transitionend transitioncanceled",o))))}function q(e){return B(n.children(e)).flat().filter(n.isVisible)}async function L(e,s,o){await F();let t=n.children(s);const c=t.map(f=>z(f,!0)),r={...n.css(s,["height","padding"]),display:"block"},a=t.filter(f=>n.isInView(f)),d=t.concat(s);await Promise.all(d.map(n.Transition.cancel)),n.css(d,"transitionProperty","none"),await e();const h=n.children(s).filter(f=>!n.includes(t,f));t=t.concat(h),await Promise.resolve(),n.css(d,"transitionProperty","");const l=n.attr(s,"style"),y=n.css(s,["height","padding"]),[p,i]=D(s,t,c),u=t.map(f=>({style:n.attr(f,"style")}));a.push(...t.filter(f=>n.isInView(f))),t.forEach((f,m)=>i[m]&&n.css(f,i[m])),n.css(s,r),n.trigger(s,"scroll"),await F();const w=t.map((f,m)=>{if(n.parent(f)===s&&a.includes(f))return n.Transition.start(f,p[m],o,"ease",!h.includes(f))}).concat(n.Transition.start(s,y,o,"ease",!0));try{await Promise.all(w),t.forEach((f,m)=>{n.attr(f,u[m]),n.parent(f)===s&&n.css(f,"display",p[m].opacity===0?"none":"")}),n.attr(s,"style",l)}catch{n.attr(t,"style",""),n.resetProps(s,r)}}function z(e,s){const o=n.css(e,"zIndex");return n.isVisible(e)?{display:"",opacity:s?n.css(e,"opacity"):"0",pointerEvents:"none",position:"absolute",zIndex:o==="auto"?n.index(e):o,...A(e)}:!1}function D(e,s,o){const t=s.map((r,a)=>n.parent(r)&&a in o?o[a]?n.isVisible(r)?A(r):{opacity:0}:{opacity:n.isVisible(r)?1:0}:!1),c=t.map((r,a)=>{const d=n.parent(s[a])===e&&(o[a]||z(s[a]));if(!d)return!1;if(!r)delete d.opacity;else if(!("opacity"in r)){const{opacity:h}=d;h%1?r.opacity=1:delete d.opacity}return d});return[t,c]}function A(e){const{height:s,width:o}=n.dimensions(e);return{height:s,width:o,transform:"",...n.position(e),...n.css(e,["marginTop","marginLeft"])}}var H={props:{duration:Number,animation:Boolean},data:{duration:150,animation:"slide"},methods:{animate(e,s=this.$el){const o=this.animation;return(o==="fade"?_:o==="delayed-fade"?(...c)=>_(...c,40):o?L:()=>(e(),Promise.resolve()))(e,s,this.duration).catch(n.noop)}}};const R={SPACE:32};function W(e){e.target.closest('a[href="#"],a[href=""]')&&e.preventDefault()}var E={mixins:[H],args:"target",props:{target:String,selActive:Boolean},data:{target:"",selActive:!1,attrItem:"uk-filter-control",cls:"uk-active",duration:250},computed:{children:({target:e},s)=>n.$$(`${e} > *`,s),toggles:({attrItem:e},s)=>n.$$(`[${e}],[data-${e}]`,s)},watch:{toggles(e){this.updateState();const s=n.$$(this.selActive,this.$el);for(const o of e){this.selActive!==!1&&n.toggleClass(o,this.cls,n.includes(s,o));const t=X(o);n.isTag(t,"a")&&(t.role="button")}},children(e,s){s&&this.updateState()}},events:{name:"click keydown",delegate:({attrItem:e})=>`[${e}],[data-${e}]`,handler(e){e.type==="keydown"&&e.keyCode!==R.SPACE||e.target.closest("a,button")&&(W(e),this.apply(e.current))}},methods:{apply(e){const s=this.getState(),o=V(e,this.attrItem,this.getState());J(s,o)||this.setState(o)},getState(){return this.toggles.filter(e=>n.hasClass(e,this.cls)).reduce((e,s)=>V(s,this.attrItem,e),{filter:{"":""},sort:[]})},async setState(e,s=!0){e={filter:{"":""},sort:[],...e},n.trigger(this.$el,"beforeFilter",[this,e]);for(const o of this.toggles)n.toggleClass(o,this.cls,K(o,this.attrItem,e));await Promise.all(n.$$(this.target,this.$el).map(o=>{const t=()=>G(e,o,n.children(o));return s?this.animate(t,o):t()})),n.trigger(this.$el,"afterFilter",[this])},updateState(){n.fastdom.write(()=>this.setState(this.getState(),!1))}}};function M(e,s){return v(n.data(e,s),["filter"])}function J(e,s){return["filter","sort"].every(o=>n.isEqual(e[o],s[o]))}function G(e,s,o){for(const r of o)n.css(r,"display",Object.values(e.filter).every(a=>!a||n.matches(r,a))?"":"none");const[t,c]=e.sort;if(t){const r=Q(o,t,c);n.isEqual(r,o)||n.append(s,r)}}function V(e,s,o){const{filter:t,group:c,sort:r,order:a="asc"}=M(e,s);return(t||n.isUndefined(r))&&(c?t?(delete o.filter[""],o.filter[c]=t):(delete o.filter[c],(n.isEmpty(o.filter)||""in o.filter)&&(o.filter={"":t||""})):o.filter={"":t||""}),n.isUndefined(r)||(o.sort=[r,a]),o}function K(e,s,{filter:o={"":""},sort:[t,c]}){const{filter:r="",group:a="",sort:d,order:h="asc"}=M(e,s),l=!a&&r===o[""],y=a in o&&r===o[a],p=!r&&a&&!(a in o)&&!o[""],i=l||y||p;return n.isUndefined(d)?i:t===d&&c===h&&(!(r||a)||i)}function Q(e,s,o){return[...e].sort((t,c)=>{const r=n.data(t,s)||"",a=n.data(c,s)||"";return(n.isNumeric(r)&&n.isNumeric(a)?r-a:r.localeCompare(a,void 0,{numeric:!0}))*(o==="asc"||-1)})}function X(e){return n.$("a,button",e)||e}var Y="filter";return typeof window<"u"&&window.UIkit&&window.UIkit.component(Y,E),E}));
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.23-dev.0ea1d51 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.23-dev.9ebc131 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -203,11 +203,314 @@
203
203
  }
204
204
  };
205
205
 
206
+ const inBrowser = typeof window !== "undefined";
207
+ const hasTouch = inBrowser && "ontouchstart" in window;
208
+ const hasPointerEvents = inBrowser && window.PointerEvent;
209
+ const pointerDown$1 = hasPointerEvents ? "pointerdown" : hasTouch ? "touchstart" : "mousedown";
210
+ const pointerUp$1 = hasPointerEvents ? "pointerup" : hasTouch ? "touchend" : "mouseup";
211
+ const pointerCancel = hasPointerEvents ? "pointercancel" : "touchcancel";
212
+
213
+ const { isArray, from: toArray } = Array;
214
+ function isFunction(obj) {
215
+ return typeof obj === "function";
216
+ }
217
+ function isObject(obj) {
218
+ return obj !== null && typeof obj === "object";
219
+ }
220
+ function isWindow(obj) {
221
+ return isObject(obj) && obj === obj.window;
222
+ }
223
+ function isDocument(obj) {
224
+ return nodeType(obj) === 9;
225
+ }
226
+ function isNode(obj) {
227
+ return nodeType(obj) >= 1;
228
+ }
229
+ function nodeType(obj) {
230
+ return !isWindow(obj) && isObject(obj) && obj.nodeType;
231
+ }
232
+ function isString(value) {
233
+ return typeof value === "string";
234
+ }
235
+ function isUndefined(value) {
236
+ return value === void 0;
237
+ }
238
+ function toNode(element) {
239
+ return element && toNodes(element)[0];
240
+ }
241
+ function toNodes(element) {
242
+ return isNode(element) ? [element] : Array.from(element || []).filter(isNode);
243
+ }
244
+ function memoize(fn) {
245
+ const cache = /* @__PURE__ */ Object.create(null);
246
+ return (key, ...args) => cache[key] || (cache[key] = fn(key, ...args));
247
+ }
248
+
249
+ function attr(element, name, value) {
250
+ var _a;
251
+ if (isObject(name)) {
252
+ for (const key in name) {
253
+ attr(element, key, name[key]);
254
+ }
255
+ return;
256
+ }
257
+ if (isUndefined(value)) {
258
+ return (_a = toNode(element)) == null ? void 0 : _a.getAttribute(name);
259
+ } else {
260
+ for (const el of toNodes(element)) {
261
+ if (value === null) {
262
+ removeAttr(el, name);
263
+ } else {
264
+ el.setAttribute(name, value);
265
+ }
266
+ }
267
+ }
268
+ }
269
+ function removeAttr(element, name) {
270
+ toNodes(element).forEach((element2) => element2.removeAttribute(name));
271
+ }
272
+
273
+ function parent(element) {
274
+ var _a;
275
+ return (_a = toNode(element)) == null ? void 0 : _a.parentElement;
276
+ }
277
+ function filter(element, selector) {
278
+ return toNodes(element).filter((element2) => matches(element2, selector));
279
+ }
280
+ function matches(element, selector) {
281
+ return toNodes(element).some((element2) => element2.matches(selector));
282
+ }
283
+ function children(element, selector) {
284
+ element = toNode(element);
285
+ const children2 = element ? toArray(element.children) : [];
286
+ return selector ? filter(children2, selector) : children2;
287
+ }
288
+ function index(element, ref) {
289
+ return children(parent(element)).indexOf(element);
290
+ }
291
+
292
+ function findAll(selector, context) {
293
+ return toNodes(_query(selector, toNode(context), "querySelectorAll"));
294
+ }
295
+ const addStarRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g;
296
+ const splitSelectorRe = /(\([^)]*\)|[^,])+/g;
297
+ const parseSelector = memoize((selector) => {
298
+ let isContextSelector = false;
299
+ if (!selector || !isString(selector)) {
300
+ return {};
301
+ }
302
+ const selectors = [];
303
+ for (let sel of selector.match(splitSelectorRe)) {
304
+ sel = sel.trim().replace(addStarRe, "$1 *");
305
+ isContextSelector || (isContextSelector = ["!", "+", "~", "-", ">"].includes(sel[0]));
306
+ selectors.push(sel);
307
+ }
308
+ return {
309
+ selector: selectors.join(","),
310
+ selectors,
311
+ isContextSelector
312
+ };
313
+ });
314
+ const positionRe = /(\([^)]*\)|\S)*/;
315
+ const parsePositionSelector = memoize((selector) => {
316
+ selector = selector.slice(1).trim();
317
+ const [position] = selector.match(positionRe);
318
+ return [position, selector.slice(position.length + 1)];
319
+ });
320
+ function _query(selector, context = document, queryFn) {
321
+ var _a;
322
+ const parsed = parseSelector(selector);
323
+ if (!parsed.isContextSelector) {
324
+ return parsed.selector ? _doQuery(context, queryFn, parsed.selector) : selector;
325
+ }
326
+ selector = "";
327
+ const isSingle = parsed.selectors.length === 1;
328
+ for (let sel of parsed.selectors) {
329
+ let positionSel;
330
+ let ctx = context;
331
+ if (sel[0] === "!") {
332
+ [positionSel, sel] = parsePositionSelector(sel);
333
+ ctx = (_a = context.parentElement) == null ? void 0 : _a.closest(positionSel);
334
+ if (!sel && isSingle) {
335
+ return ctx;
336
+ }
337
+ }
338
+ if (ctx && sel[0] === "-") {
339
+ [positionSel, sel] = parsePositionSelector(sel);
340
+ ctx = ctx.previousElementSibling;
341
+ ctx = matches(ctx, positionSel) ? ctx : null;
342
+ if (!sel && isSingle) {
343
+ return ctx;
344
+ }
345
+ }
346
+ if (!ctx) {
347
+ continue;
348
+ }
349
+ if (isSingle) {
350
+ if (sel[0] === "~" || sel[0] === "+") {
351
+ sel = `:scope > :nth-child(${index(ctx) + 1}) ${sel}`;
352
+ ctx = ctx.parentElement;
353
+ } else if (sel[0] === ">") {
354
+ sel = `:scope ${sel}`;
355
+ }
356
+ return _doQuery(ctx, queryFn, sel);
357
+ }
358
+ selector += `${selector ? "," : ""}${domPath(ctx)} ${sel}`;
359
+ }
360
+ if (!isDocument(context)) {
361
+ context = context.ownerDocument;
362
+ }
363
+ return _doQuery(context, queryFn, selector);
364
+ }
365
+ function _doQuery(context, queryFn, selector) {
366
+ try {
367
+ return context[queryFn](selector);
368
+ } catch {
369
+ return null;
370
+ }
371
+ }
372
+ function domPath(element) {
373
+ const names = [];
374
+ while (element.parentNode) {
375
+ const id = attr(element, "id");
376
+ if (id) {
377
+ names.unshift(`#${escape(id)}`);
378
+ break;
379
+ } else {
380
+ let { tagName } = element;
381
+ if (tagName !== "HTML") {
382
+ tagName += `:nth-child(${index(element) + 1})`;
383
+ }
384
+ names.unshift(tagName);
385
+ element = element.parentNode;
386
+ }
387
+ }
388
+ return names.join(" > ");
389
+ }
390
+ function escape(css) {
391
+ return isString(css) ? CSS.escape(css) : "";
392
+ }
393
+
394
+ function on(...args) {
395
+ let [targets, types, selector, listener, useCapture = false] = getArgs(args);
396
+ if (listener.length > 1) {
397
+ listener = detail(listener);
398
+ }
399
+ if (useCapture == null ? void 0 : useCapture.self) {
400
+ listener = selfFilter(listener);
401
+ }
402
+ if (selector) {
403
+ listener = delegate(selector, listener);
404
+ }
405
+ for (const type of types) {
406
+ for (const target of targets) {
407
+ target.addEventListener(type, listener, useCapture);
408
+ }
409
+ }
410
+ return () => off(targets, types, listener, useCapture);
411
+ }
412
+ function off(...args) {
413
+ let [targets, types, , listener, useCapture = false] = getArgs(args);
414
+ for (const type of types) {
415
+ for (const target of targets) {
416
+ target.removeEventListener(type, listener, useCapture);
417
+ }
418
+ }
419
+ }
420
+ function once(...args) {
421
+ const [element, types, selector, listener, useCapture = false, condition] = getArgs(args);
422
+ const off2 = on(
423
+ element,
424
+ types,
425
+ selector,
426
+ (e) => {
427
+ const result = !condition || condition(e);
428
+ if (result) {
429
+ off2();
430
+ listener(e, result);
431
+ }
432
+ },
433
+ useCapture
434
+ );
435
+ return off2;
436
+ }
437
+ function getArgs(args) {
438
+ args[0] = toEventTargets(args[0]);
439
+ if (isString(args[1])) {
440
+ args[1] = args[1].split(" ");
441
+ }
442
+ if (isFunction(args[2])) {
443
+ args.splice(2, 0, false);
444
+ }
445
+ return args;
446
+ }
447
+ function delegate(selector, listener) {
448
+ return (e) => {
449
+ const current = selector[0] === ">" ? findAll(selector, e.currentTarget).reverse().find((element) => element.contains(e.target)) : e.target.closest(selector);
450
+ if (current) {
451
+ e.current = current;
452
+ listener.call(this, e);
453
+ delete e.current;
454
+ }
455
+ };
456
+ }
457
+ function detail(listener) {
458
+ return (e) => isArray(e.detail) ? listener(e, ...e.detail) : listener(e);
459
+ }
460
+ function selfFilter(listener) {
461
+ return function(e) {
462
+ if (e.target === e.currentTarget || e.target === e.current) {
463
+ return listener.call(null, e);
464
+ }
465
+ };
466
+ }
467
+ function isEventTarget(target) {
468
+ return target && "addEventListener" in target;
469
+ }
470
+ function toEventTarget(target) {
471
+ return isEventTarget(target) ? target : toNode(target);
472
+ }
473
+ function toEventTargets(target) {
474
+ return isArray(target) ? target.map(toEventTarget).filter(Boolean) : isString(target) ? findAll(target) : isEventTarget(target) ? [target] : toNodes(target);
475
+ }
476
+
477
+ const keyMap = {
478
+ ESC: 27,
479
+ SPACE: 32,
480
+ END: 35,
481
+ HOME: 36,
482
+ LEFT: 37,
483
+ RIGHT: 39};
484
+
206
485
  function maybeDefaultPreventClick(e) {
207
486
  if (e.target.closest('a[href="#"],a[href=""]')) {
208
487
  e.preventDefault();
209
488
  }
210
489
  }
490
+ function onEscape(handler, isEligible = () => true) {
491
+ return on(document, "keydown", (e) => {
492
+ if (e.keyCode === keyMap.ESC && isEligible()) {
493
+ handler(e);
494
+ }
495
+ });
496
+ }
497
+ function onOutsidePointer(handler, isOutside, isEligible) {
498
+ return on(document, pointerDown$1, ({ target }) => {
499
+ if (!isOutside(target) || isEligible && !isEligible()) {
500
+ return;
501
+ }
502
+ once(
503
+ document,
504
+ `${pointerUp$1} ${pointerCancel} scroll`,
505
+ ({ defaultPrevented, type, target: newTarget }) => {
506
+ if (!defaultPrevented && type === pointerUp$1 && target === newTarget) {
507
+ handler(target);
508
+ }
509
+ },
510
+ true
511
+ );
512
+ });
513
+ }
211
514
 
212
515
  var Togglable = {
213
516
  props: {
@@ -388,6 +691,7 @@
388
691
  }
389
692
 
390
693
  const active = [];
694
+ const pendingReject = /* @__PURE__ */ new WeakMap();
391
695
  var Modal = {
392
696
  mixins: [Class, Container, Togglable],
393
697
  props: {
@@ -542,11 +846,13 @@
542
846
  }
543
847
  };
544
848
  function animate(el, show, { transitionElement, _toggle }) {
849
+ let rejectAnimation;
545
850
  return new Promise(
546
851
  (resolve, reject) => util.once(el, "show hide", () => {
547
852
  var _a;
548
- (_a = el._reject) == null ? void 0 : _a.call(el);
549
- el._reject = reject;
853
+ (_a = pendingReject.get(el)) == null ? void 0 : _a();
854
+ rejectAnimation = reject;
855
+ pendingReject.set(el, reject);
550
856
  _toggle(el, show);
551
857
  const off = util.once(
552
858
  transitionElement,
@@ -567,10 +873,14 @@
567
873
  toMs(util.css(transitionElement, "transitionDuration"))
568
874
  );
569
875
  })
570
- ).then(() => delete el._reject);
876
+ ).then(() => {
877
+ if (pendingReject.get(el) === rejectAnimation) {
878
+ pendingReject.delete(el);
879
+ }
880
+ });
571
881
  }
572
882
  function toMs(time) {
573
- return time ? util.endsWith(time, "ms") ? util.toFloat(time) : util.toFloat(time) * 1e3 : 0;
883
+ return util.toFloat(time) * (util.endsWith(time, "ms") ? 1 : 1e3);
574
884
  }
575
885
  function preventBackgroundFocus(modal) {
576
886
  return util.on(document, "focusin", (e) => {
@@ -586,28 +896,17 @@
586
896
  });
587
897
  }
588
898
  function listenForBackgroundClose(modal) {
589
- return util.on(document, util.pointerDown, ({ target }) => {
590
- if (util.last(active) !== modal || modal.overlay && !modal.$el.contains(target) || !modal.panel || modal.panel.contains(target)) {
591
- return;
592
- }
593
- util.once(
594
- document,
595
- `${util.pointerUp} ${util.pointerCancel} scroll`,
596
- ({ defaultPrevented, type, target: newTarget }) => {
597
- if (!defaultPrevented && type === util.pointerUp && target === newTarget) {
598
- modal.hide();
599
- }
600
- },
601
- true
602
- );
603
- });
899
+ return onOutsidePointer(
900
+ () => modal.hide(),
901
+ (target) => (!modal.overlay || modal.$el.contains(target)) && Boolean(modal.panel) && !modal.panel.contains(target),
902
+ () => util.last(active) === modal
903
+ );
604
904
  }
605
905
  function listenForEscClose(modal) {
606
- return util.on(document, "keydown", (e) => {
607
- if (e.keyCode === 27 && util.last(active) === modal) {
608
- modal.hide();
609
- }
610
- });
906
+ return onEscape(
907
+ () => modal.hide(),
908
+ () => util.last(active) === modal
909
+ );
611
910
  }
612
911
  function setAriaExpanded(el, toggled) {
613
912
  if (el == null ? void 0 : el.ariaExpanded) {
@@ -932,13 +1231,6 @@
932
1231
  return (el == null ? void 0 : el.id) || `${instance.$options.id}-${id++}`;
933
1232
  }
934
1233
 
935
- const keyMap = {
936
- SPACE: 32,
937
- END: 35,
938
- HOME: 36,
939
- LEFT: 37,
940
- RIGHT: 39};
941
-
942
1234
  var SliderNav = {
943
1235
  i18n: {
944
1236
  next: "Next slide",