uikit 3.21.17 → 3.21.18-dev.27bfd7d2b

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 (125) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/css/uikit-core-rtl.css +243 -69
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +243 -69
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +247 -65
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +247 -65
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +13 -8
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +334 -103
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +351 -108
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +3 -7
  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 +3 -7
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +7 -2
  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 +92 -93
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +20 -17
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +379 -262
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +3 -3
  43. package/src/images/icons/arrow-down-arrow-up.svg +6 -0
  44. package/src/images/icons/arrow-down.svg +3 -3
  45. package/src/images/icons/arrow-left.svg +3 -3
  46. package/src/images/icons/arrow-right.svg +3 -3
  47. package/src/images/icons/arrow-up-right.svg +3 -3
  48. package/src/images/icons/arrow-up.svg +3 -3
  49. package/src/images/icons/close-circle.svg +5 -0
  50. package/src/images/icons/cloud-download.svg +4 -4
  51. package/src/images/icons/cloud-upload.svg +4 -4
  52. package/src/images/icons/download.svg +4 -4
  53. package/src/images/icons/expand.svg +5 -5
  54. package/src/images/icons/link-external.svg +4 -4
  55. package/src/images/icons/pull.svg +4 -4
  56. package/src/images/icons/push.svg +3 -3
  57. package/src/images/icons/shrink.svg +5 -5
  58. package/src/images/icons/sign-in.svg +4 -3
  59. package/src/images/icons/sign-out.svg +4 -3
  60. package/src/images/icons/sorting.svg +6 -0
  61. package/src/images/icons/upload.svg +4 -4
  62. package/src/js/components/countdown.js +10 -5
  63. package/src/js/components/lightbox-panel.js +181 -45
  64. package/src/js/components/lightbox.js +59 -6
  65. package/src/js/core/img.js +3 -5
  66. package/src/js/core/navbar.js +3 -6
  67. package/src/js/mixin/modal.js +1 -4
  68. package/src/js/mixin/slider-drag.js +3 -6
  69. package/src/js/mixin/slider-nav.js +1 -1
  70. package/src/js/mixin/togglable.js +7 -2
  71. package/src/js/util/dom.js +3 -1
  72. package/src/less/components/breadcrumb.less +6 -2
  73. package/src/less/components/button.less +1 -1
  74. package/src/less/components/form-range.less +52 -0
  75. package/src/less/components/form.less +1 -1
  76. package/src/less/components/lightbox.less +57 -89
  77. package/src/less/components/margin.less +14 -0
  78. package/src/less/components/search.less +49 -23
  79. package/src/less/components/subnav.less +8 -0
  80. package/src/less/components/text.less +11 -0
  81. package/src/less/components/totop.less +1 -1
  82. package/src/less/components/utility.less +2 -1
  83. package/src/less/components/visibility.less +2 -1
  84. package/src/less/theme/form-range.less +20 -8
  85. package/src/less/theme/lightbox.less +2 -20
  86. package/src/less/theme/search.less +24 -10
  87. package/src/scss/components/breadcrumb.scss +6 -2
  88. package/src/scss/components/button.scss +1 -1
  89. package/src/scss/components/form-range.scss +12 -0
  90. package/src/scss/components/form.scss +1 -1
  91. package/src/scss/components/lightbox.scss +50 -77
  92. package/src/scss/components/margin.scss +13 -0
  93. package/src/scss/components/search.scss +30 -12
  94. package/src/scss/components/subnav.scss +7 -0
  95. package/src/scss/components/text.scss +10 -0
  96. package/src/scss/components/totop.scss +1 -1
  97. package/src/scss/components/utility.scss +1 -1
  98. package/src/scss/components/visibility.scss +2 -1
  99. package/src/scss/mixins-theme.scss +51 -12
  100. package/src/scss/mixins.scss +45 -6
  101. package/src/scss/theme/form-range.scss +14 -4
  102. package/src/scss/theme/lightbox.scss +2 -20
  103. package/src/scss/theme/search.scss +10 -6
  104. package/src/scss/variables-theme.scss +36 -21
  105. package/src/scss/variables.scss +32 -24
  106. package/tests/badge.html +2 -2
  107. package/tests/base.html +1 -1
  108. package/tests/breadcrumb.html +23 -5
  109. package/tests/card.html +24 -24
  110. package/tests/countdown.html +6 -0
  111. package/tests/dropbar.html +15 -15
  112. package/tests/dropdown.html +6 -6
  113. package/tests/dropnav.html +100 -100
  114. package/tests/icon.html +8 -0
  115. package/tests/index.html +15 -15
  116. package/tests/lightbox.html +379 -28
  117. package/tests/margin.html +19 -0
  118. package/tests/nav.html +21 -21
  119. package/tests/navbar.html +273 -273
  120. package/tests/offcanvas.html +27 -27
  121. package/tests/placeholder.html +2 -2
  122. package/tests/sortable.html +5 -5
  123. package/tests/sticky-navbar.html +114 -114
  124. package/tests/sticky.html +1 -1
  125. package/tests/text.html +8 -0
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.21.17 | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */
1
+ /*! UIkit 3.21.18-dev.27bfd7d2b | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -18,17 +18,19 @@
18
18
  props: {
19
19
  date: String,
20
20
  clsWrapper: String,
21
- role: String
21
+ role: String,
22
+ reload: Boolean
22
23
  },
23
24
  data: {
24
25
  date: "",
25
26
  clsWrapper: ".uk-countdown-%unit%",
26
- role: "timer"
27
+ role: "timer",
28
+ reload: false
27
29
  },
28
30
  connected() {
29
31
  uikitUtil.attr(this.$el, "role", this.role);
30
32
  this.date = uikitUtil.toFloat(Date.parse(this.$props.date));
31
- this.end = false;
33
+ this.started = this.end = false;
32
34
  this.start();
33
35
  },
34
36
  disconnected() {
@@ -49,10 +51,6 @@
49
51
  start() {
50
52
  this.stop();
51
53
  this.update();
52
- if (!this.timer) {
53
- uikitUtil.trigger(this.$el, "countdownstart");
54
- this.timer = setInterval(this.update, 1e3);
55
- }
56
54
  },
57
55
  stop() {
58
56
  if (this.timer) {
@@ -68,7 +66,14 @@
68
66
  if (!this.end) {
69
67
  uikitUtil.trigger(this.$el, "countdownend");
70
68
  this.end = true;
69
+ if (this.reload && this.started) {
70
+ window.location.reload();
71
+ }
71
72
  }
73
+ } else if (!this.timer) {
74
+ this.started = true;
75
+ uikitUtil.trigger(this.$el, "countdownstart");
76
+ this.timer = setInterval(this.update, 1e3);
72
77
  }
73
78
  for (const unit of units) {
74
79
  const el = uikitUtil.$(this.clsWrapper.replace("%unit%", unit), this.$el);
@@ -1 +1 @@
1
- /*! UIkit 3.21.17 | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */(function(t,s){typeof exports=="object"&&typeof module<"u"?module.exports=s(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitcountdown",["uikit-util"],s):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitCountdown=s(t.UIkit.util))})(this,function(t){"use strict";var s={connected(){t.addClass(this.$el,this.$options.id)}};const d=["days","hours","minutes","seconds"];var r={mixins:[s],props:{date:String,clsWrapper:String,role:String},data:{date:"",clsWrapper:".uk-countdown-%unit%",role:"timer"},connected(){t.attr(this.$el,"role",this.role),this.date=t.toFloat(Date.parse(this.$props.date)),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(),this.timer||(t.trigger(this.$el,"countdownstart"),this.timer=setInterval(this.update,1e3))},stop(){this.timer&&(clearInterval(this.timer),t.trigger(this.$el,"countdownstop"),this.timer=null)},update(){const o=a(this.date);o.total||(this.stop(),this.end||(t.trigger(this.$el,"countdownend"),this.end=!0));for(const e of d){const i=t.$(this.clsWrapper.replace("%unit%",e),this.$el);if(!i)continue;let n=Math.trunc(o[e]).toString().padStart(2,"0");i.textContent!==n&&(n=n.split(""),n.length!==i.children.length&&t.html(i,n.map(()=>"<span></span>").join("")),n.forEach((h,p)=>i.children[p].textContent=h))}}}};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}}return typeof window<"u"&&window.UIkit&&window.UIkit.component("countdown",r),r});
1
+ /*! UIkit 3.21.18-dev.27bfd7d2b | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */(function(t,s){typeof exports=="object"&&typeof module<"u"?module.exports=s(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitcountdown",["uikit-util"],s):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitCountdown=s(t.UIkit.util))})(this,function(t){"use strict";var s={connected(){t.addClass(this.$el,this.$options.id)}};const d=["days","hours","minutes","seconds"];var r={mixins:[s],props:{date:String,clsWrapper:String,role:String,reload:Boolean},data:{date:"",clsWrapper:".uk-countdown-%unit%",role:"timer",reload:!1},connected(){t.attr(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,t.trigger(this.$el,"countdownstart"),this.timer=setInterval(this.update,1e3)):(this.stop(),this.end||(t.trigger(this.$el,"countdownend"),this.end=!0,this.reload&&this.started&&window.location.reload()));for(const e of d){const i=t.$(this.clsWrapper.replace("%unit%",e),this.$el);if(!i)continue;let n=Math.trunc(o[e]).toString().padStart(2,"0");i.textContent!==n&&(n=n.split(""),n.length!==i.children.length&&t.html(i,n.map(()=>"<span></span>").join("")),n.forEach((h,l)=>i.children[l].textContent=h))}}}};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}}return typeof window<"u"&&window.UIkit&&window.UIkit.component("countdown",r),r});
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.21.17 | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */
1
+ /*! UIkit 3.21.18-dev.27bfd7d2b | https://www.getuikit.com | (c) 2014 - 2025 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.21.17 | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */(function(n,y){typeof exports=="object"&&typeof module<"u"?module.exports=y(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitfilter",["uikit-util"],y):(n=typeof globalThis<"u"?globalThis:n||self,n.UIkitFilter=y(n.UIkit.util))})(this,function(n){"use strict";function y(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[a,r]=t.split(/:(.*)/);return a&&!n.isUndefined(r)&&(o[a.trim()]=r.trim()),o},{}):{}}catch{return{}}}function O(e,s="update"){e._connected&&e._updates.length&&(e._queued||(e._queued=new Set,n.fastdom.read(()=>{e._connected&&z(e,e._queued),e._queued=null})),e._queued.add(s.type||s))}function z(e,s){for(const{read:o,write:t,events:a=[]}of e._updates){if(!s.has("update")&&!a.some(c=>s.has(c)))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 N(e){return C(n.observeResize,e,"resize")}function T(e){return C(n.observeMutation,e)}function C(e,s,o){return{observe:e,handler(){O(this,o)},...s}}T({options:{childList:!0}}),T({options:{attributes:!0,attributeFilter:["style"]},target:({$el:e})=>[e,...n.children(e)]}),N({target:({$el:e})=>[e,...n.children(e)]});function S(e){const s=[[]],o=e.some((t,a)=>a&&e[a-1].offsetParent!==t.offsetParent);for(const t of e){if(!n.isVisible(t))continue;const a=w(t,o);for(let r=s.length-1;r>=0;r--){const c=s[r];if(!c[0]){c.push(t);break}const f=w(c[0],o);if(a.top>=f.bottom-1&&a.top!==f.top){s.push([t]);break}if(a.bottom-1>f.top||a.top===f.top){let p=c.length-1;for(;p>=0;p--){const l=w(c[p],o);if(a.left>=l.left)break}c.splice(p+1,0,t);break}if(r===0){s.unshift([t]);break}}}return s}function w(e,s=!1){let{offsetTop:o,offsetLeft:t,offsetHeight:a,offsetWidth:r}=e;return s&&([o,t]=n.offsetPosition(e)),{top:o,left:t,bottom:o+a,right:t+r}}async function j(e,s,o){await b();let t=n.children(s);const a=t.map(d=>$(d,!0)),r={...n.css(s,["height","padding"]),display:"block"},c=t.concat(s);await Promise.all(c.map(n.Transition.cancel)),n.css(c,"transitionProperty","none"),await e(),t=t.concat(n.children(s).filter(d=>!n.includes(t,d))),await Promise.resolve(),n.css(c,"transitionProperty","");const f=n.attr(s,"style"),p=n.css(s,["height","padding"]),[l,m]=B(s,t,a),i=t.map(d=>({style:n.attr(d,"style")}));t.forEach((d,h)=>m[h]&&n.css(d,m[h])),n.css(s,r),n.trigger(s,"scroll"),await b();const u=t.map((d,h)=>n.parent(d)===s&&n.Transition.start(d,l[h],o,"ease")).concat(n.Transition.start(s,p,o,"ease"));try{await Promise.all(u),t.forEach((d,h)=>{n.attr(d,i[h]),n.parent(d)===s&&n.css(d,"display",l[h].opacity===0?"none":"")}),n.attr(s,"style",f)}catch{n.attr(t,"style",""),H(s,r)}}function $(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,...E(e)}:!1}function B(e,s,o){const t=s.map((r,c)=>n.parent(r)&&c in o?o[c]?n.isVisible(r)?E(r):{opacity:0}:{opacity:n.isVisible(r)?1:0}:!1),a=t.map((r,c)=>{const f=n.parent(s[c])===e&&(o[c]||$(s[c]));if(!f)return!1;if(!r)delete f.opacity;else if(!("opacity"in r)){const{opacity:p}=f;p%1?r.opacity=1:delete f.opacity}return f});return[t,a]}function H(e,s){for(const o in s)n.css(e,o,"")}function E(e){const{height:s,width:o}=n.dimensions(e);return{height:s,width:o,transform:"",...n.position(e),...n.css(e,["marginTop","marginLeft"])}}function b(){return new Promise(e=>requestAnimationFrame(e))}const v="uk-transition-leave",P="uk-transition-enter";function F(e,s,o,t=0){const a=g(s,!0),r={opacity:1},c={opacity:0},f=m=>()=>a===g(s)?m():Promise.reject(),p=f(async()=>{n.addClass(s,v),await Promise.all(_(s).map((m,i)=>new Promise(u=>setTimeout(()=>n.Transition.start(m,c,o/2,"ease").then(u),i*t)))),n.removeClass(s,v)}),l=f(async()=>{const m=n.height(s);n.addClass(s,P),e(),n.css(n.children(s),{opacity:0}),await b();const i=n.children(s),u=n.height(s);n.css(s,"alignContent","flex-start"),n.height(s,m);const d=_(s);n.css(i,c);const h=d.map(async(K,Q)=>{await L(Q*t),await n.Transition.start(K,r,o/2,"ease")});m!==u&&h.push(n.Transition.start(s,{height:u},o/2+d.length*t,"ease")),await Promise.all(h).then(()=>{n.removeClass(s,P),a===g(s)&&(n.css(s,{height:"",alignContent:""}),n.css(i,{opacity:""}),delete s.dataset.transition)})});return n.hasClass(s,v)?I(s).then(l):n.hasClass(s,P)?I(s).then(p).then(l):p().then(l)}function g(e,s){return s&&(e.dataset.transition=1+g(e)),n.toNumber(e.dataset.transition)||0}function I(e){return Promise.all(n.children(e).filter(n.Transition.inProgress).map(s=>new Promise(o=>n.once(s,"transitionend transitioncanceled",o))))}function _(e){return S(n.children(e)).flat().filter(n.isVisible)}function L(e){return new Promise(s=>setTimeout(s,e))}var V={props:{duration:Number,animation:Boolean},data:{duration:150,animation:"slide"},methods:{animate(e,s=this.$el){const o=this.animation;return(o==="fade"?F:o==="delayed-fade"?(...a)=>F(...a,40):o?j:()=>(e(),Promise.resolve()))(e,s,this.duration).catch(n.noop)}}};const M={TAB:9,ESC:27,SPACE:32,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40};var x={mixins:[V],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=J(o);n.isTag(t,"a")&&n.attr(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!==M.SPACE||e.target.closest("a,button")&&(e.preventDefault(),this.apply(e.current))}},methods:{apply(e){const s=this.getState(),o=A(e,this.attrItem,this.getState());R(s,o)||this.setState(o)},getState(){return this.toggles.filter(e=>n.hasClass(e,this.cls)).reduce((e,s)=>A(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,D(o,this.attrItem,e));await Promise.all(n.$$(this.target,this.$el).map(o=>{const t=()=>W(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 q(e,s){return y(n.data(e,s),["filter"])}function R(e,s){return["filter","sort"].every(o=>n.isEqual(e[o],s[o]))}function W(e,s,o){for(const r of o)n.css(r,"display",Object.values(e.filter).every(c=>!c||n.matches(r,c))?"":"none");const[t,a]=e.sort;if(t){const r=G(o,t,a);n.isEqual(r,o)||n.append(s,r)}}function A(e,s,o){const{filter:t,group:a,sort:r,order:c="asc"}=q(e,s);return(t||n.isUndefined(r))&&(a?t?(delete o.filter[""],o.filter[a]=t):(delete o.filter[a],(n.isEmpty(o.filter)||""in o.filter)&&(o.filter={"":t||""})):o.filter={"":t||""}),n.isUndefined(r)||(o.sort=[r,c]),o}function D(e,s,{filter:o={"":""},sort:[t,a]}){const{filter:r="",group:c="",sort:f,order:p="asc"}=q(e,s);return n.isUndefined(f)?c in o&&r===o[c]||!r&&c&&!(c in o)&&!o[""]:t===f&&a===p}function G(e,s,o){return[...e].sort((t,a)=>n.data(t,s).localeCompare(n.data(a,s),void 0,{numeric:!0})*(o==="asc"||-1))}function J(e){return n.$("a,button",e)||e}return typeof window<"u"&&window.UIkit&&window.UIkit.component("filter",x),x});
1
+ /*! UIkit 3.21.18-dev.27bfd7d2b | https://www.getuikit.com | (c) 2014 - 2025 YOOtheme | MIT License */(function(n,y){typeof exports=="object"&&typeof module<"u"?module.exports=y(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitfilter",["uikit-util"],y):(n=typeof globalThis<"u"?globalThis:n||self,n.UIkitFilter=y(n.UIkit.util))})(this,function(n){"use strict";function y(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[a,r]=t.split(/:(.*)/);return a&&!n.isUndefined(r)&&(o[a.trim()]=r.trim()),o},{}):{}}catch{return{}}}function O(e,s="update"){e._connected&&e._updates.length&&(e._queued||(e._queued=new Set,n.fastdom.read(()=>{e._connected&&z(e,e._queued),e._queued=null})),e._queued.add(s.type||s))}function z(e,s){for(const{read:o,write:t,events:a=[]}of e._updates){if(!s.has("update")&&!a.some(c=>s.has(c)))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 N(e){return C(n.observeResize,e,"resize")}function T(e){return C(n.observeMutation,e)}function C(e,s,o){return{observe:e,handler(){O(this,o)},...s}}T({options:{childList:!0}}),T({options:{attributes:!0,attributeFilter:["style"]},target:({$el:e})=>[e,...n.children(e)]}),N({target:({$el:e})=>[e,...n.children(e)]});function S(e){const s=[[]],o=e.some((t,a)=>a&&e[a-1].offsetParent!==t.offsetParent);for(const t of e){if(!n.isVisible(t))continue;const a=w(t,o);for(let r=s.length-1;r>=0;r--){const c=s[r];if(!c[0]){c.push(t);break}const f=w(c[0],o);if(a.top>=f.bottom-1&&a.top!==f.top){s.push([t]);break}if(a.bottom-1>f.top||a.top===f.top){let p=c.length-1;for(;p>=0;p--){const l=w(c[p],o);if(a.left>=l.left)break}c.splice(p+1,0,t);break}if(r===0){s.unshift([t]);break}}}return s}function w(e,s=!1){let{offsetTop:o,offsetLeft:t,offsetHeight:a,offsetWidth:r}=e;return s&&([o,t]=n.offsetPosition(e)),{top:o,left:t,bottom:o+a,right:t+r}}async function j(e,s,o){await b();let t=n.children(s);const a=t.map(d=>$(d,!0)),r={...n.css(s,["height","padding"]),display:"block"},c=t.concat(s);await Promise.all(c.map(n.Transition.cancel)),n.css(c,"transitionProperty","none"),await e(),t=t.concat(n.children(s).filter(d=>!n.includes(t,d))),await Promise.resolve(),n.css(c,"transitionProperty","");const f=n.attr(s,"style"),p=n.css(s,["height","padding"]),[l,m]=B(s,t,a),i=t.map(d=>({style:n.attr(d,"style")}));t.forEach((d,h)=>m[h]&&n.css(d,m[h])),n.css(s,r),n.trigger(s,"scroll"),await b();const u=t.map((d,h)=>n.parent(d)===s&&n.Transition.start(d,l[h],o,"ease")).concat(n.Transition.start(s,p,o,"ease"));try{await Promise.all(u),t.forEach((d,h)=>{n.attr(d,i[h]),n.parent(d)===s&&n.css(d,"display",l[h].opacity===0?"none":"")}),n.attr(s,"style",f)}catch{n.attr(t,"style",""),H(s,r)}}function $(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,...E(e)}:!1}function B(e,s,o){const t=s.map((r,c)=>n.parent(r)&&c in o?o[c]?n.isVisible(r)?E(r):{opacity:0}:{opacity:n.isVisible(r)?1:0}:!1),a=t.map((r,c)=>{const f=n.parent(s[c])===e&&(o[c]||$(s[c]));if(!f)return!1;if(!r)delete f.opacity;else if(!("opacity"in r)){const{opacity:p}=f;p%1?r.opacity=1:delete f.opacity}return f});return[t,a]}function H(e,s){for(const o in s)n.css(e,o,"")}function E(e){const{height:s,width:o}=n.dimensions(e);return{height:s,width:o,transform:"",...n.position(e),...n.css(e,["marginTop","marginLeft"])}}function b(){return new Promise(e=>requestAnimationFrame(e))}const v="uk-transition-leave",P="uk-transition-enter";function F(e,s,o,t=0){const a=g(s,!0),r={opacity:1},c={opacity:0},f=m=>()=>a===g(s)?m():Promise.reject(),p=f(async()=>{n.addClass(s,v),await Promise.all(_(s).map((m,i)=>new Promise(u=>setTimeout(()=>n.Transition.start(m,c,o/2,"ease").then(u),i*t)))),n.removeClass(s,v)}),l=f(async()=>{const m=n.height(s);n.addClass(s,P),e(),n.css(n.children(s),{opacity:0}),await b();const i=n.children(s),u=n.height(s);n.css(s,"alignContent","flex-start"),n.height(s,m);const d=_(s);n.css(i,c);const h=d.map(async(K,Q)=>{await L(Q*t),await n.Transition.start(K,r,o/2,"ease")});m!==u&&h.push(n.Transition.start(s,{height:u},o/2+d.length*t,"ease")),await Promise.all(h).then(()=>{n.removeClass(s,P),a===g(s)&&(n.css(s,{height:"",alignContent:""}),n.css(i,{opacity:""}),delete s.dataset.transition)})});return n.hasClass(s,v)?I(s).then(l):n.hasClass(s,P)?I(s).then(p).then(l):p().then(l)}function g(e,s){return s&&(e.dataset.transition=1+g(e)),n.toNumber(e.dataset.transition)||0}function I(e){return Promise.all(n.children(e).filter(n.Transition.inProgress).map(s=>new Promise(o=>n.once(s,"transitionend transitioncanceled",o))))}function _(e){return S(n.children(e)).flat().filter(n.isVisible)}function L(e){return new Promise(s=>setTimeout(s,e))}var V={props:{duration:Number,animation:Boolean},data:{duration:150,animation:"slide"},methods:{animate(e,s=this.$el){const o=this.animation;return(o==="fade"?F:o==="delayed-fade"?(...a)=>F(...a,40):o?j:()=>(e(),Promise.resolve()))(e,s,this.duration).catch(n.noop)}}};const M={TAB:9,ESC:27,SPACE:32,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40};var x={mixins:[V],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=J(o);n.isTag(t,"a")&&n.attr(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!==M.SPACE||e.target.closest("a,button")&&(e.preventDefault(),this.apply(e.current))}},methods:{apply(e){const s=this.getState(),o=A(e,this.attrItem,this.getState());R(s,o)||this.setState(o)},getState(){return this.toggles.filter(e=>n.hasClass(e,this.cls)).reduce((e,s)=>A(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,D(o,this.attrItem,e));await Promise.all(n.$$(this.target,this.$el).map(o=>{const t=()=>W(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 q(e,s){return y(n.data(e,s),["filter"])}function R(e,s){return["filter","sort"].every(o=>n.isEqual(e[o],s[o]))}function W(e,s,o){for(const r of o)n.css(r,"display",Object.values(e.filter).every(c=>!c||n.matches(r,c))?"":"none");const[t,a]=e.sort;if(t){const r=G(o,t,a);n.isEqual(r,o)||n.append(s,r)}}function A(e,s,o){const{filter:t,group:a,sort:r,order:c="asc"}=q(e,s);return(t||n.isUndefined(r))&&(a?t?(delete o.filter[""],o.filter[a]=t):(delete o.filter[a],(n.isEmpty(o.filter)||""in o.filter)&&(o.filter={"":t||""})):o.filter={"":t||""}),n.isUndefined(r)||(o.sort=[r,c]),o}function D(e,s,{filter:o={"":""},sort:[t,a]}){const{filter:r="",group:c="",sort:f,order:p="asc"}=q(e,s);return n.isUndefined(f)?c in o&&r===o[c]||!r&&c&&!(c in o)&&!o[""]:t===f&&a===p}function G(e,s,o){return[...e].sort((t,a)=>n.data(t,s).localeCompare(n.data(a,s),void 0,{numeric:!0})*(o==="asc"||-1))}function J(e){return n.$("a,button",e)||e}return typeof window<"u"&&window.UIkit&&window.UIkit.component("filter",x),x});