uikit 3.25.29-dev.7b0f736 → 3.25.29-dev.f3e1c53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/css/uikit-core-rtl.css +1 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +1 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +1 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +1 -1
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +3 -3
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +14 -10
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +14 -10
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +5 -2
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +2 -2
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +2 -2
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +2 -2
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -1
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +51 -58
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +51 -58
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/alert.js +6 -3
  44. package/src/js/core/dropnav.js +1 -1
  45. package/src/js/core/grid.js +1 -1
  46. package/src/js/core/icon.js +6 -12
  47. package/src/js/core/img.js +3 -3
  48. package/src/js/core/inverse.js +4 -2
  49. package/src/js/core/margin.js +1 -1
  50. package/src/js/core/modal.js +1 -1
  51. package/src/js/core/overflow-fade.js +6 -2
  52. package/src/js/core/switcher.js +1 -0
  53. package/src/js/mixin/event.js +4 -1
  54. package/src/js/util/lang.js +8 -33
  55. package/src/js/util/scroll.js +14 -9
  56. package/tests/alert.html +2 -2
  57. package/tests/overflow-fade.test.mjs +69 -0
@@ -1 +1 @@
1
- /*! UIkit 3.25.29-dev.7b0f736 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(t,l){typeof exports=="object"&&typeof module<"u"?module.exports=l(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],l):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitTooltip=l(t.UIkit.util))})(this,(function(t){"use strict";function l(s,i=[]){try{return s?t.startsWith(s,"{")?JSON.parse(s):i.length&&!t.includes(s,":")?{[i[0]]:s}:s.split(";").reduce((o,n)=>{const[e,r]=n.split(/:(.*)/);return e&&!t.isUndefined(r)&&(o[e.trim()]=r.trim()),o},{}):{}}catch{return{}}}t.memoize((s,i)=>{const o=Object.keys(i),n=o.concat(s).flatMap(e=>[t.hyphenate(e),`data-${t.hyphenate(e)}`]);return{attributes:o,filter:n}});let E=1;function O(s,i=null){return(i==null?void 0:i.id)||`${s.$options.id}-${E++}`}var A={props:{container:Boolean},data:{container:!0},computed:{container({container:s}){return s===!0&&this.$container||s&&t.$(s)}}},B={props:{pos:String,offset:Boolean,flip:Boolean,shift:Boolean,inset:Boolean},data:{pos:`bottom-${t.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=t.includes(["top","bottom"],this.dir)?"y":"x"},methods:{positionAt(s,i,o){let n=[this.getPositionOffset(s),this.getShiftOffset(s)];const e=[this.flip&&"flip",this.shift&&"shift"],r={element:[this.inset?this.dir:t.flipPosition(this.dir),this.align],target:[this.dir,this.align]};if(this.axis==="y"){for(const a in r)r[a].reverse();n.reverse(),e.reverse()}const h=I(s),c=t.dimensions(s);t.css(s,{top:-c.height,left:-c.width}),t.positionAt(s,i,{attach:r,offset:n,boundary:o,placement:e,viewportOffset:this.getViewportOffset(s)}),h()},getPositionOffset(s=this.$el){return t.toPx(this.offset===!1?t.css(s,"--uk-position-offset"):this.offset,this.axis==="x"?"width":"height",s)*(t.includes(["left","top"],this.dir)?-1:1)*(this.inset?-1:1)},getShiftOffset(s=this.$el){return this.align==="center"?0:t.toPx(t.css(s,"--uk-position-shift-offset"),this.axis==="y"?"width":"height",s)*(t.includes(["left","top"],this.align)?1:-1)},getViewportOffset(s){return t.toPx(t.css(s,"--uk-position-viewport-offset"))}}};function I(s){const i=t.scrollParent(s),{scrollTop:o}=i;return()=>{o!==i.scrollTop&&(i.scrollTop=o)}}var D={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-togglable-enter",clsLeave:"uk-togglable-leave"},computed:{hasAnimation:({animation:s})=>!!s[0],hasTransition:({animation:s})=>["slide","reveal"].some(i=>t.startsWith(s[0],i))},methods:{async toggleElement(s,i,o){const n={};return(await Promise.all(t.toNodes(s).map(e=>{const r=t.isBoolean(i)?i:!this.isToggled(e);if(!t.trigger(e,`before${r?"show":"hide"}`,[this]))return n;const h=(t.isFunction(o)?o:o===!1||!this.hasAnimation?L:this.hasTransition?N:_)(e,r,this),c=r?this.clsEnter:this.clsLeave;t.addClass(e,c),t.trigger(e,r?"show":"hide",[this]);const a=()=>{var f;t.removeClass(e,c),t.trigger(e,r?"shown":"hidden",[this]),r&&((f=t.$$("[autofocus]",e).find(t.isVisible))==null||f.focus({preventScroll:!0}))};return h?h.then(a,()=>(t.removeClass(e,c),n)):a()}))).every(e=>e!==n)},isToggled(s=this.$el){return s=t.toNode(s),t.hasClass(s,this.clsEnter)?!0:t.hasClass(s,this.clsLeave)?!1:this.cls?t.hasClass(s,this.cls.split(" ")[0]):t.isVisible(s)},_toggle(s,i){if(!s)return;i=!!i;let o;this.cls?(o=t.includes(this.cls," ")||i!==t.hasClass(s,this.cls),o&&t.toggleClass(s,this.cls,t.includes(this.cls," ")?void 0:i)):(o=i===s.hidden,o&&(s.hidden=!i)),o&&t.trigger(s,"toggled",[i,this])}}};function L(s,i,{_toggle:o}){return t.Animation.cancel(s),t.Transition.cancel(s),o(s,i)}async function N(s,i,{animation:o,duration:n,velocity:e,transition:r,_toggle:h}){var c;const[a="reveal",f="top"]=((c=o[0])==null?void 0:c.split("-"))||[],b=[["left","right"],["top","bottom"]],y=b[t.includes(b[0],f)?0:1],k=y[1]===f,v=["width","height"][b.indexOf(y)],p=`margin-${y[0]}`,w=`margin-${f}`;let g=t.dimensions(s)[v];const M=t.Transition.inProgress(s);await t.Transition.cancel(s),i&&h(s,!0);const z=Object.fromEntries(["padding","border","width","height","minWidth","minHeight","overflowY","overflowX",p,w].map(S=>[S,s.style[S]])),m=t.dimensions(s),T=t.toFloat(t.css(s,p)),P=t.toFloat(t.css(s,w)),d=m[v]+P;!M&&!i&&(g+=P);const[$]=t.wrapInner(s,"<div>");t.css($,{boxSizing:"border-box",height:m.height,width:m.width,...t.css(s,["overflow","padding","borderTop","borderRight","borderBottom","borderLeft","borderImage",w])}),t.css(s,{padding:0,border:0,minWidth:0,minHeight:0,[w]:0,width:m.width,height:m.height,overflow:"hidden",[v]:g});const x=g/d;n=(e*d+n)*(i?1-x:x);const C={[v]:i?d:0};k&&(t.css(s,p,d-g+T),C[p]=i?T:d+T),!k^a==="reveal"&&(t.css($,p,-d+g),t.Transition.start($,{[p]:i?0:-d},n,r));try{await t.Transition.start(s,C,n,r)}finally{t.css(s,z),t.unwrap($.firstChild),i||h(s,!1)}}async function _(s,i,o){const{animation:n,duration:e,_toggle:r}=o;if(i)return r(s,!0),t.Animation.in(s,n[0],e,o.origin);await t.Animation.out(s,n[1]||n[0],e,o.origin),r(s,!1)}const F={ESC:27};var u={mixins:[A,D,B],data:{pos:"top",animation:["uk-animation-scale-up"],duration:100,cls:"uk-active"},connected(){U(this.$el)},disconnected(){this.hide()},methods:{show(){if(this.isToggled(this.tooltip||null))return;const{delay:s=0,title:i}=W(this.$options);if(!i)return;const o=t.attr(this.$el,"title"),n=t.on(this.$el,["blur",t.pointerLeave],r=>!t.isTouch(r)&&this.hide());this.reset=()=>{t.attr(this.$el,{title:o,"aria-describedby":null}),n()};const e=O(this);t.attr(this.$el,{title:null,"aria-describedby":e}),clearTimeout(this.showTimer),this.showTimer=setTimeout(()=>this._show(i,e),s)},async hide(){var s;t.matches(this.$el,"input:focus")||(clearTimeout(this.showTimer),this.isToggled(this.tooltip||null)&&await this.toggleElement(this.tooltip,!1,!1),(s=this.reset)==null||s.call(this),t.remove(this.tooltip),this.tooltip=null)},async _show(s,i){this.tooltip=t.append(this.container,`<div id="${i}" class="uk-${this.$options.name}" role="tooltip"> <div class="uk-${this.$options.name}-inner">${s}</div> </div>`),t.on(this.tooltip,"toggled",(o,n)=>{if(!n)return;const e=()=>this.positionAt(this.tooltip,this.$el);e();const[r,h]=V(this.tooltip,this.$el,this.pos);this.origin=this.axis==="y"?`${t.flipPosition(r)}-${h}`:`${h}-${t.flipPosition(r)}`;const c=[t.once(document,`keydown ${t.pointerDown}`,this.hide,!1,a=>a.type===t.pointerDown&&!this.$el.contains(a.target)||a.type==="keydown"&&a.keyCode===F.ESC),t.on([document,...t.overflowParents(this.$el)],"scroll",e,{passive:!0})];t.once(this.tooltip,"hide",()=>c.forEach(a=>a()),{self:!0})}),await this.toggleElement(this.tooltip,!0)||this.hide()}},events:{[`focus ${t.pointerEnter} ${t.pointerDown}`](s){(!t.isTouch(s)||s.type===t.pointerDown)&&document.readyState!=="loading"&&this.show()}}};function U(s){t.isFocusable(s)||(s.tabIndex=0)}function V(s,i,[o,n]){const e=t.offset(s),r=t.offset(i),h=[["left","right"],["top","bottom"]];for(const a of h){if(e[a[0]]>=r[a[1]]){o=a[1];break}if(e[a[1]]<=r[a[0]]){o=a[0];break}}return n=(t.includes(h[0],o)?h[1]:h[0]).find(a=>e[a]===r[a])||"center",[o,n]}function W(s){const{el:i,id:o,data:n}=s;return{title:t.data(i,"title"),delay:t.data(i,"delay"),...l(t.data(i,o),["title"]),...n}}var j="tooltip";return typeof window<"u"&&window.UIkit&&window.UIkit.component(j,u),u}));
1
+ /*! UIkit 3.25.29-dev.f3e1c53 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(t,l){typeof exports=="object"&&typeof module<"u"?module.exports=l(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],l):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitTooltip=l(t.UIkit.util))})(this,(function(t){"use strict";function l(s,i=[]){try{return s?t.startsWith(s,"{")?JSON.parse(s):i.length&&!t.includes(s,":")?{[i[0]]:s}:s.split(";").reduce((o,n)=>{const[e,r]=n.split(/:(.*)/);return e&&!t.isUndefined(r)&&(o[e.trim()]=r.trim()),o},{}):{}}catch{return{}}}t.memoize((s,i)=>{const o=Object.keys(i),n=o.concat(s).flatMap(e=>[t.hyphenate(e),`data-${t.hyphenate(e)}`]);return{attributes:o,filter:n}});let E=1;function O(s,i=null){return(i==null?void 0:i.id)||`${s.$options.id}-${E++}`}var A={props:{container:Boolean},data:{container:!0},computed:{container({container:s}){return s===!0&&this.$container||s&&t.$(s)}}},B={props:{pos:String,offset:Boolean,flip:Boolean,shift:Boolean,inset:Boolean},data:{pos:`bottom-${t.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=t.includes(["top","bottom"],this.dir)?"y":"x"},methods:{positionAt(s,i,o){let n=[this.getPositionOffset(s),this.getShiftOffset(s)];const e=[this.flip&&"flip",this.shift&&"shift"],r={element:[this.inset?this.dir:t.flipPosition(this.dir),this.align],target:[this.dir,this.align]};if(this.axis==="y"){for(const a in r)r[a].reverse();n.reverse(),e.reverse()}const h=I(s),c=t.dimensions(s);t.css(s,{top:-c.height,left:-c.width}),t.positionAt(s,i,{attach:r,offset:n,boundary:o,placement:e,viewportOffset:this.getViewportOffset(s)}),h()},getPositionOffset(s=this.$el){return t.toPx(this.offset===!1?t.css(s,"--uk-position-offset"):this.offset,this.axis==="x"?"width":"height",s)*(t.includes(["left","top"],this.dir)?-1:1)*(this.inset?-1:1)},getShiftOffset(s=this.$el){return this.align==="center"?0:t.toPx(t.css(s,"--uk-position-shift-offset"),this.axis==="y"?"width":"height",s)*(t.includes(["left","top"],this.align)?1:-1)},getViewportOffset(s){return t.toPx(t.css(s,"--uk-position-viewport-offset"))}}};function I(s){const i=t.scrollParent(s),{scrollTop:o}=i;return()=>{o!==i.scrollTop&&(i.scrollTop=o)}}var D={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-togglable-enter",clsLeave:"uk-togglable-leave"},computed:{hasAnimation:({animation:s})=>!!s[0],hasTransition:({animation:s})=>["slide","reveal"].some(i=>t.startsWith(s[0],i))},methods:{async toggleElement(s,i,o){const n={};return(await Promise.all(t.toNodes(s).map(e=>{const r=t.isBoolean(i)?i:!this.isToggled(e);if(!t.trigger(e,`before${r?"show":"hide"}`,[this]))return n;const h=(t.isFunction(o)?o:o===!1||!this.hasAnimation?L:this.hasTransition?N:_)(e,r,this),c=r?this.clsEnter:this.clsLeave;t.addClass(e,c),t.trigger(e,r?"show":"hide",[this]);const a=()=>{var f;t.removeClass(e,c),t.trigger(e,r?"shown":"hidden",[this]),r&&((f=t.$$("[autofocus]",e).find(t.isVisible))==null||f.focus({preventScroll:!0}))};return h?h.then(a,()=>(t.removeClass(e,c),n)):a()}))).every(e=>e!==n)},isToggled(s=this.$el){return s=t.toNode(s),t.hasClass(s,this.clsEnter)?!0:t.hasClass(s,this.clsLeave)?!1:this.cls?t.hasClass(s,this.cls.split(" ")[0]):t.isVisible(s)},_toggle(s,i){if(!s)return;i=!!i;let o;this.cls?(o=t.includes(this.cls," ")||i!==t.hasClass(s,this.cls),o&&t.toggleClass(s,this.cls,t.includes(this.cls," ")?void 0:i)):(o=i===s.hidden,o&&(s.hidden=!i)),o&&t.trigger(s,"toggled",[i,this])}}};function L(s,i,{_toggle:o}){return t.Animation.cancel(s),t.Transition.cancel(s),o(s,i)}async function N(s,i,{animation:o,duration:n,velocity:e,transition:r,_toggle:h}){var c;const[a="reveal",f="top"]=((c=o[0])==null?void 0:c.split("-"))||[],b=[["left","right"],["top","bottom"]],y=b[t.includes(b[0],f)?0:1],k=y[1]===f,v=["width","height"][b.indexOf(y)],p=`margin-${y[0]}`,w=`margin-${f}`;let g=t.dimensions(s)[v];const M=t.Transition.inProgress(s);await t.Transition.cancel(s),i&&h(s,!0);const z=Object.fromEntries(["padding","border","width","height","minWidth","minHeight","overflowY","overflowX",p,w].map(S=>[S,s.style[S]])),m=t.dimensions(s),T=t.toFloat(t.css(s,p)),P=t.toFloat(t.css(s,w)),d=m[v]+P;!M&&!i&&(g+=P);const[$]=t.wrapInner(s,"<div>");t.css($,{boxSizing:"border-box",height:m.height,width:m.width,...t.css(s,["overflow","padding","borderTop","borderRight","borderBottom","borderLeft","borderImage",w])}),t.css(s,{padding:0,border:0,minWidth:0,minHeight:0,[w]:0,width:m.width,height:m.height,overflow:"hidden",[v]:g});const x=g/d;n=(e*d+n)*(i?1-x:x);const C={[v]:i?d:0};k&&(t.css(s,p,d-g+T),C[p]=i?T:d+T),!k^a==="reveal"&&(t.css($,p,-d+g),t.Transition.start($,{[p]:i?0:-d},n,r));try{await t.Transition.start(s,C,n,r)}finally{t.css(s,z),t.unwrap($.firstChild),i||h(s,!1)}}async function _(s,i,o){const{animation:n,duration:e,_toggle:r}=o;if(i)return r(s,!0),t.Animation.in(s,n[0],e,o.origin);await t.Animation.out(s,n[1]||n[0],e,o.origin),r(s,!1)}const F={ESC:27};var u={mixins:[A,D,B],data:{pos:"top",animation:["uk-animation-scale-up"],duration:100,cls:"uk-active"},connected(){U(this.$el)},disconnected(){this.hide()},methods:{show(){if(this.isToggled(this.tooltip||null))return;const{delay:s=0,title:i}=W(this.$options);if(!i)return;const o=t.attr(this.$el,"title"),n=t.on(this.$el,["blur",t.pointerLeave],r=>!t.isTouch(r)&&this.hide());this.reset=()=>{t.attr(this.$el,{title:o,"aria-describedby":null}),n()};const e=O(this);t.attr(this.$el,{title:null,"aria-describedby":e}),clearTimeout(this.showTimer),this.showTimer=setTimeout(()=>this._show(i,e),s)},async hide(){var s;t.matches(this.$el,"input:focus")||(clearTimeout(this.showTimer),this.isToggled(this.tooltip||null)&&await this.toggleElement(this.tooltip,!1,!1),(s=this.reset)==null||s.call(this),t.remove(this.tooltip),this.tooltip=null)},async _show(s,i){this.tooltip=t.append(this.container,`<div id="${i}" class="uk-${this.$options.name}" role="tooltip"> <div class="uk-${this.$options.name}-inner">${s}</div> </div>`),t.on(this.tooltip,"toggled",(o,n)=>{if(!n)return;const e=()=>this.positionAt(this.tooltip,this.$el);e();const[r,h]=V(this.tooltip,this.$el,this.pos);this.origin=this.axis==="y"?`${t.flipPosition(r)}-${h}`:`${h}-${t.flipPosition(r)}`;const c=[t.once(document,`keydown ${t.pointerDown}`,this.hide,!1,a=>a.type===t.pointerDown&&!this.$el.contains(a.target)||a.type==="keydown"&&a.keyCode===F.ESC),t.on([document,...t.overflowParents(this.$el)],"scroll",e,{passive:!0})];t.once(this.tooltip,"hide",()=>c.forEach(a=>a()),{self:!0})}),await this.toggleElement(this.tooltip,!0)||this.hide()}},events:{[`focus ${t.pointerEnter} ${t.pointerDown}`](s){(!t.isTouch(s)||s.type===t.pointerDown)&&document.readyState!=="loading"&&this.show()}}};function U(s){t.isFocusable(s)||(s.tabIndex=0)}function V(s,i,[o,n]){const e=t.offset(s),r=t.offset(i),h=[["left","right"],["top","bottom"]];for(const a of h){if(e[a[0]]>=r[a[1]]){o=a[1];break}if(e[a[1]]<=r[a[0]]){o=a[0];break}}return n=(t.includes(h[0],o)?h[1]:h[0]).find(a=>e[a]===r[a])||"center",[o,n]}function W(s){const{el:i,id:o,data:n}=s;return{title:t.data(i,"title"),delay:t.data(i,"delay"),...l(t.data(i,o),["title"]),...n}}var j="tooltip";return typeof window<"u"&&window.UIkit&&window.UIkit.component(j,u),u}));
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.29-dev.7b0f736 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.29-dev.f3e1c53 | 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.29-dev.7b0f736 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(o,i){typeof exports=="object"&&typeof module<"u"?module.exports=i(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitupload",["uikit-util"],i):(o=typeof globalThis<"u"?globalThis:o||self,o.UIkitUpload=i(o.UIkit.util))})(this,(function(o){"use strict";var i={props:{i18n:Object},data:{i18n:null},methods:{t(e,...t){var n,s,r;let a=0;return((r=((n=this.i18n)==null?void 0:n[e])||((s=this.$options.i18n)==null?void 0:s[e]))==null?void 0:r.replace(/%s/g,()=>t[a++]||""))||""}}},d={mixins:[i],i18n:{invalidMime:"Invalid File Type: %s",invalidName:"Invalid File Name: %s",invalidSize:"Invalid File Size: %s Kilobytes Max"},props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime: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,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){l(e);const t=e.dataTransfer;t!=null&&t.files&&(o.removeClass(this.$el,this.clsDragover),this.upload(t.files))},dragenter(e){l(e)},dragover(e){l(e),o.addClass(this.$el,this.clsDragover)},dragleave(e){l(e),o.removeClass(this.$el,this.clsDragover)}},methods:{async upload(e){try{if(e=o.toArray(e),!e.length)return;this.multiple||(e=e.slice(0,1)),o.trigger(this.$el,"upload",[e]);for(const n of e){if(this.maxSize&&this.maxSize*1e3<n.size){this.fail(this.t("invalidSize",this.maxSize));return}if(this.allow&&!p(this.allow,n.name)){this.fail(this.t("invalidName",this.allow));return}if(this.mime&&!p(this.mime,n.type)){this.fail(this.t("invalidMime",this.mime));return}}await this.beforeAll(this,e);const t=this.concurrent;for(let n=0;n<e.length;n+=t){const s=new FormData;e.slice(n,n+t).forEach(a=>s.append(this.name,a));for(const a in this.params)s.append(a,this.params[a]);const r=await c(this.url,{data:s,method:this.method,responseType:this.type,beforeSend:a=>{const{xhr:m}=a;o.on(m.upload,"progress",this.progress);for(const f of["loadStart","load","loadEnd","abort"])o.on(m,f.toLowerCase(),this[f]);return this.beforeSend(a)}});this.complete(r),n+t>=e.length&&this.completeAll(r)}}catch(t){(t==null?void 0:t.name)!=="AbortError"&&this.error(t)}}}};function p(e,t){const n=e.replace(/\*\*|[.*+?^${}()|[\]\\]/g,s=>({"**":".*","*":"[^/]+","?":"[^/]","|":"|"})[s]||`\\${s}`);return new RegExp(`^(?:${n})$`,"i").test(t)}function l(e){e.preventDefault(),e.stopPropagation()}async function c(e,t){const n={url:e,data:null,method:"GET",headers:{},xhr:new XMLHttpRequest,beforeSend:o.noop,responseType:"",...t};if(await n.beforeSend(n)===!1)throw h(n.xhr);return u(n.url,n)}function u(e,t){return new Promise((n,s)=>{const{xhr:r}=t;for(const a in t)if(a in r)try{r[a]=t[a]}catch{}r.open(t.method.toUpperCase(),e);for(const a in t.headers)r.setRequestHeader(a,t.headers[a]);o.on(r,"load",()=>{r.status===0||r.status>=200&&r.status<300||r.status===304?n(r):s(o.assign(Error(r.statusText),{xhr:r,status:r.status}))}),o.on(r,"error",()=>s(o.assign(Error("Network Error"),{xhr:r}))),o.on(r,"timeout",()=>s(o.assign(Error("Network Timeout"),{xhr:r}))),o.on(r,"abort",()=>s(h(r))),r.send(t.data)})}function h(e){return o.assign(Error("Network Abort"),{xhr:e,name:"AbortError"})}var g="upload";return typeof window<"u"&&window.UIkit&&window.UIkit.component(g,d),d}));
1
+ /*! UIkit 3.25.29-dev.f3e1c53 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */(function(o,i){typeof exports=="object"&&typeof module<"u"?module.exports=i(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitupload",["uikit-util"],i):(o=typeof globalThis<"u"?globalThis:o||self,o.UIkitUpload=i(o.UIkit.util))})(this,(function(o){"use strict";var i={props:{i18n:Object},data:{i18n:null},methods:{t(e,...t){var n,s,r;let a=0;return((r=((n=this.i18n)==null?void 0:n[e])||((s=this.$options.i18n)==null?void 0:s[e]))==null?void 0:r.replace(/%s/g,()=>t[a++]||""))||""}}},d={mixins:[i],i18n:{invalidMime:"Invalid File Type: %s",invalidName:"Invalid File Name: %s",invalidSize:"Invalid File Size: %s Kilobytes Max"},props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime: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,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){l(e);const t=e.dataTransfer;t!=null&&t.files&&(o.removeClass(this.$el,this.clsDragover),this.upload(t.files))},dragenter(e){l(e)},dragover(e){l(e),o.addClass(this.$el,this.clsDragover)},dragleave(e){l(e),o.removeClass(this.$el,this.clsDragover)}},methods:{async upload(e){try{if(e=o.toArray(e),!e.length)return;this.multiple||(e=e.slice(0,1)),o.trigger(this.$el,"upload",[e]);for(const n of e){if(this.maxSize&&this.maxSize*1e3<n.size){this.fail(this.t("invalidSize",this.maxSize));return}if(this.allow&&!p(this.allow,n.name)){this.fail(this.t("invalidName",this.allow));return}if(this.mime&&!p(this.mime,n.type)){this.fail(this.t("invalidMime",this.mime));return}}await this.beforeAll(this,e);const t=this.concurrent;for(let n=0;n<e.length;n+=t){const s=new FormData;e.slice(n,n+t).forEach(a=>s.append(this.name,a));for(const a in this.params)s.append(a,this.params[a]);const r=await c(this.url,{data:s,method:this.method,responseType:this.type,beforeSend:a=>{const{xhr:m}=a;o.on(m.upload,"progress",this.progress);for(const f of["loadStart","load","loadEnd","abort"])o.on(m,f.toLowerCase(),this[f]);return this.beforeSend(a)}});this.complete(r),n+t>=e.length&&this.completeAll(r)}}catch(t){(t==null?void 0:t.name)!=="AbortError"&&this.error(t)}}}};function p(e,t){const n=e.replace(/\*\*|[.*+?^${}()|[\]\\]/g,s=>({"**":".*","*":"[^/]+","?":"[^/]","|":"|"})[s]||`\\${s}`);return new RegExp(`^(?:${n})$`,"i").test(t)}function l(e){e.preventDefault(),e.stopPropagation()}async function c(e,t){const n={url:e,data:null,method:"GET",headers:{},xhr:new XMLHttpRequest,beforeSend:o.noop,responseType:"",...t};if(await n.beforeSend(n)===!1)throw h(n.xhr);return u(n.url,n)}function u(e,t){return new Promise((n,s)=>{const{xhr:r}=t;for(const a in t)if(a in r)try{r[a]=t[a]}catch{}r.open(t.method.toUpperCase(),e);for(const a in t.headers)r.setRequestHeader(a,t.headers[a]);o.on(r,"load",()=>{r.status===0||r.status>=200&&r.status<300||r.status===304?n(r):s(o.assign(Error(r.statusText),{xhr:r,status:r.status}))}),o.on(r,"error",()=>s(o.assign(Error("Network Error"),{xhr:r}))),o.on(r,"timeout",()=>s(o.assign(Error("Network Timeout"),{xhr:r}))),o.on(r,"abort",()=>s(h(r))),r.send(t.data)})}function h(e){return o.assign(Error("Network Abort"),{xhr:e,name:"AbortError"})}var g="upload";return typeof window<"u"&&window.UIkit&&window.UIkit.component(g,d),d}));
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.25.29-dev.7b0f736 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
1
+ /*! UIkit 3.25.29-dev.f3e1c53 | 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() :
@@ -156,28 +156,17 @@
156
156
  function pointInRect(point, rect) {
157
157
  return point.x <= rect.right && point.x >= rect.left && point.y <= rect.bottom && point.y >= rect.top;
158
158
  }
159
- function ratio(dimensions, prop, value) {
160
- const aProp = prop === "width" ? "height" : "width";
159
+ function cover$1(dimensions, maxDimensions) {
160
+ const scale = Math.max(
161
+ dimensions.width ? maxDimensions.width / dimensions.width : 0,
162
+ dimensions.height ? maxDimensions.height / dimensions.height : 0
163
+ );
161
164
  return {
162
- [aProp]: dimensions[prop] ? Math.round(value * dimensions[aProp] / dimensions[prop]) : dimensions[aProp],
163
- [prop]: value
165
+ width: Math.round(dimensions.width * scale),
166
+ height: Math.round(dimensions.height * scale)
164
167
  };
165
168
  }
166
- function contain(dimensions, maxDimensions) {
167
- dimensions = { ...dimensions };
168
- for (const prop in dimensions) {
169
- dimensions = dimensions[prop] > maxDimensions[prop] ? ratio(dimensions, prop, maxDimensions[prop]) : dimensions;
170
- }
171
- return dimensions;
172
- }
173
- function cover$1(dimensions, maxDimensions) {
174
- dimensions = contain(dimensions, maxDimensions);
175
- for (const prop in dimensions) {
176
- dimensions = dimensions[prop] < maxDimensions[prop] ? ratio(dimensions, prop, maxDimensions[prop]) : dimensions;
177
- }
178
- return dimensions;
179
- }
180
- const Dimensions = { ratio, contain, cover: cover$1 };
169
+ const Dimensions = { cover: cover$1 };
181
170
  function getIndex(i, elements, current = 0, finite = false) {
182
171
  elements = toNodes(elements);
183
172
  const { length } = elements;
@@ -1690,7 +1679,7 @@
1690
1679
  wrapInner: wrapInner
1691
1680
  });
1692
1681
 
1693
- var VERSION = '3.25.29-dev.7b0f736';
1682
+ var VERSION = '3.25.29-dev.f3e1c53';
1694
1683
 
1695
1684
  function initUpdates(instance) {
1696
1685
  instance._data = {};
@@ -2533,7 +2522,7 @@
2533
2522
  }
2534
2523
 
2535
2524
  function maybeDefaultPreventClick(e) {
2536
- if (e.target.closest('a[href="#"],a[href=""]')) {
2525
+ if (e.type === "keydown" && e.keyCode === keyMap.SPACE || e.target.closest('a[href="#"],a[href=""]')) {
2537
2526
  e.preventDefault();
2538
2527
  }
2539
2528
  }
@@ -2921,11 +2910,10 @@
2921
2910
  mixins: [Class, Togglable],
2922
2911
  args: "animation",
2923
2912
  props: {
2924
- animation: Boolean,
2925
2913
  close: String
2926
2914
  },
2927
2915
  data: {
2928
- animation: true,
2916
+ animation: [true],
2929
2917
  selClose: ".uk-alert-close",
2930
2918
  duration: 150
2931
2919
  },
@@ -2939,7 +2927,11 @@
2939
2927
  },
2940
2928
  methods: {
2941
2929
  async close() {
2942
- await this.toggleElement(this.$el, false, this.animation ? animate$1 : false);
2930
+ await this.toggleElement(
2931
+ this.$el,
2932
+ false,
2933
+ this.animation[0] === true || this.animation[0] === 1 ? animate$1 : true
2934
+ );
2943
2935
  this.$destroy(true);
2944
2936
  }
2945
2937
  }
@@ -3192,7 +3184,7 @@
3192
3184
  };
3193
3185
  }
3194
3186
 
3195
- let prevented;
3187
+ let scrollLocks = 0;
3196
3188
  function preventBackgroundScroll(el) {
3197
3189
  const off = on(
3198
3190
  el,
@@ -3227,21 +3219,25 @@
3227
3219
  },
3228
3220
  { passive: true }
3229
3221
  );
3230
- if (prevented) {
3231
- return off;
3232
- }
3233
- prevented = true;
3234
3222
  const { scrollingElement } = document;
3235
3223
  const props = {
3236
3224
  overflowY: CSS.supports("overflow", "clip") ? "clip" : "hidden",
3237
3225
  touchAction: "none",
3238
3226
  scrollbarGutter: width(window) - scrollingElement.clientWidth ? "stable" : ""
3239
3227
  };
3240
- css(scrollingElement, props);
3228
+ if (!scrollLocks++) {
3229
+ css(scrollingElement, props);
3230
+ }
3231
+ let released = false;
3241
3232
  return () => {
3242
- prevented = false;
3233
+ if (released) {
3234
+ return;
3235
+ }
3236
+ released = true;
3243
3237
  off();
3244
- resetProps(scrollingElement, props);
3238
+ if (!--scrollLocks) {
3239
+ resetProps(scrollingElement, props);
3240
+ }
3245
3241
  };
3246
3242
  }
3247
3243
 
@@ -3746,7 +3742,7 @@
3746
3742
  el: ({ dropContainer }) => dropContainer,
3747
3743
  delegate: ({ clsDrop }) => `.${clsDrop}`,
3748
3744
  handler(e) {
3749
- var _a;
3745
+ var _a, _b;
3750
3746
  const { current, keyCode, target } = e;
3751
3747
  if (isInput(target) || !includes(this.dropdowns, current)) {
3752
3748
  return;
@@ -3756,15 +3752,15 @@
3756
3752
  if (~next) {
3757
3753
  e.preventDefault();
3758
3754
  const elements = $$(selFocusable, current);
3759
- elements[getIndex(
3755
+ (_a = elements[getIndex(
3760
3756
  next,
3761
3757
  elements,
3762
3758
  findIndex(elements, (el) => matches(el, ":focus"))
3763
- )].focus();
3759
+ )]) == null ? void 0 : _a.focus();
3764
3760
  return;
3765
3761
  }
3766
3762
  if (keyCode === keyMap.ESC) {
3767
- (_a = active2.targetEl) == null ? void 0 : _a.focus();
3763
+ (_b = active2.targetEl) == null ? void 0 : _b.focus();
3768
3764
  }
3769
3765
  handleNavItemNavigation(e, this.items, active2);
3770
3766
  }
@@ -4043,7 +4039,7 @@
4043
4039
  }
4044
4040
  const offsetCurrent = getOffset(current[0], withOffset);
4045
4041
  if (offset.top >= offsetCurrent.bottom - 1 && offset.top !== offsetCurrent.top) {
4046
- sorted.push([el]);
4042
+ sorted.splice(i + 1, 0, [el]);
4047
4043
  break;
4048
4044
  }
4049
4045
  if (offset.bottom - 1 > offsetCurrent.top || offset.top === offsetCurrent.top) {
@@ -4168,7 +4164,7 @@
4168
4164
  };
4169
4165
  },
4170
4166
  write({ columns, scrolled, scrollColumns, translates }) {
4171
- if (!scrolled && !translates) {
4167
+ if (scrolled === false && !translates) {
4172
4168
  return;
4173
4169
  }
4174
4170
  columns.forEach(
@@ -4645,16 +4641,9 @@
4645
4641
  beforeConnect() {
4646
4642
  const isToggle = hasClass(this.$el, "uk-search-toggle") || hasClass(this.$el, "uk-navbar-toggle");
4647
4643
  this.icon = isToggle ? "search-toggle-icon" : hasClass(this.$el, "uk-search-icon") && this.$el.closest(".uk-search-large") ? "search-large" : this.$el.closest(".uk-search-medium") ? "search-medium" : this.$props.icon;
4648
- if (hasAttr(this.$el, "aria-label")) {
4649
- return;
4650
- }
4651
- if (isToggle) {
4652
- this.$el.ariaLabel = this.t("toggle");
4653
- } else {
4654
- const button = this.$el.closest("a,button");
4655
- if (button) {
4656
- button.ariaLabel = this.t("submit");
4657
- }
4644
+ const target = isToggle ? this.$el : this.$el.closest("a,button");
4645
+ if (target && !hasAttr(target, "aria-label")) {
4646
+ target.ariaLabel = this.t(isToggle ? "toggle" : "submit");
4658
4647
  }
4659
4648
  }
4660
4649
  };
@@ -4740,7 +4729,7 @@
4740
4729
  apply(
4741
4730
  document.body,
4742
4731
  (el) => each(UIkit.getComponents(el), (cmp) => {
4743
- cmp.$options.isIcon && cmp.icon in added && cmp.$reset();
4732
+ cmp.$options.isIcon && (aliases[cmp.icon] || cmp.icon) in added && cmp.$reset();
4744
4733
  })
4745
4734
  );
4746
4735
  }
@@ -4818,8 +4807,9 @@
4818
4807
  const elements = isTag(parentNode, "picture") ? children(parentNode) : [el];
4819
4808
  elements.forEach((el2) => setSourceProps(el2, el2));
4820
4809
  } else if (src) {
4821
- if (!includes(el.style.backgroundImage, src)) {
4822
- css(el, "backgroundImage", `url(${escape(src)})`);
4810
+ const previousBackground = el.style.backgroundImage;
4811
+ css(el, "backgroundImage", `url(${escape(src)})`);
4812
+ if (el.style.backgroundImage !== previousBackground) {
4823
4813
  trigger(el, createEvent("load", false));
4824
4814
  }
4825
4815
  }
@@ -4918,6 +4908,7 @@
4918
4908
  [...toNodes(target), document.documentElement],
4919
4909
  handler
4920
4910
  );
4911
+ const transitionObserver = observeResize([], handler);
4921
4912
  const listener = [
4922
4913
  on(document, "scroll itemshown itemhidden", handler, {
4923
4914
  passive: true,
@@ -4925,11 +4916,11 @@
4925
4916
  }),
4926
4917
  on(document, "show hide transitionstart", (e) => {
4927
4918
  handler();
4928
- return observer.observe(e.target);
4919
+ return transitionObserver.observe(e.target);
4929
4920
  }),
4930
4921
  on(document, "shown hidden transitionend transitioncancel", (e) => {
4931
4922
  handler();
4932
- return observer.unobserve(e.target);
4923
+ return transitionObserver.unobserve(e.target);
4933
4924
  })
4934
4925
  ];
4935
4926
  return {
@@ -4937,6 +4928,7 @@
4937
4928
  unobserve: observer.unobserve.bind(observer),
4938
4929
  disconnect() {
4939
4930
  observer.disconnect();
4931
+ transitionObserver.disconnect();
4940
4932
  listener.forEach((off) => off());
4941
4933
  }
4942
4934
  };
@@ -5352,7 +5344,7 @@
5352
5344
  const dialog = modal.dialog(tmpl(options), options);
5353
5345
  return assign(
5354
5346
  new Promise((resolve) => {
5355
- const off = on(dialog.$el, "hide", () => resolve(hideFn()));
5347
+ const off = on(dialog.$el, "hide", () => resolve(hideFn()), { self: true });
5356
5348
  on(dialog.$el, "submit", "form", (e) => {
5357
5349
  e.preventDefault();
5358
5350
  resolve(submitFn(dialog));
@@ -5655,7 +5647,8 @@
5655
5647
  );
5656
5648
  if (!overflow[i - 1]) {
5657
5649
  const dir = i ? "Top" : "Left";
5658
- const percent = overflow[i] ? this.$el[`scroll${dir}`] / overflow[i] : 0;
5650
+ const position = this.$el[`scroll${dir}`] + (!i && isRtl ? overflow[i] : 0);
5651
+ const percent = overflow[i] ? position / overflow[i] : 0;
5659
5652
  const toValue = (value) => overflow[i] ? clamp((this.fadeDuration - value) / this.fadeDuration) : 1;
5660
5653
  css(this.$el, {
5661
5654
  "--uk-overflow-fade-start-opacity": toValue(percent),
@@ -5677,7 +5670,7 @@
5677
5670
  const { $el: el, threshold, $options } = this;
5678
5671
  let started;
5679
5672
  const off = on(document, pointerMove, move(e), pointerOptions);
5680
- on(document, [pointerUp, pointerCancel], end, { capture: true, once: true });
5673
+ once(document, [pointerUp, pointerCancel], end, true);
5681
5674
  function move(e2) {
5682
5675
  let origin = getEventPos(e2);
5683
5676
  let pos = origin;
@@ -6468,7 +6461,7 @@
6468
6461
  name: "click keydown",
6469
6462
  delegate: ({ toggle }) => toggle,
6470
6463
  handler(e) {
6471
- if (!matches(e.current, selDisabled) && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
6464
+ if (!e.defaultPrevented && !matches(e.current, selDisabled) && (e.type === "click" || e.keyCode === keyMap.SPACE)) {
6472
6465
  maybeDefaultPreventClick(e);
6473
6466
  this.show(e.current);
6474
6467
  }