uikit 3.19.4 → 3.19.5-dev.8210c3e08

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 (54) hide show
  1. package/CHANGELOG.md +10 -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 +7 -8
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +1 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +1 -1
  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 +58 -44
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +58 -44
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +59 -45
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +58 -44
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +58 -44
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +3 -3
  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 +95 -60
  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 +99 -65
  41. package/dist/js/uikit.min.js +1 -1
  42. package/eslint.config.js +8 -5
  43. package/package.json +3 -4
  44. package/src/js/api/observer.js +17 -5
  45. package/src/js/components/filter.js +4 -5
  46. package/src/js/core/drop.js +0 -6
  47. package/src/js/core/inverse.js +11 -1
  48. package/src/js/core/margin.js +1 -1
  49. package/src/js/core/switcher.js +6 -1
  50. package/src/js/core/toggle.js +1 -1
  51. package/src/js/util/selector.js +61 -37
  52. package/src/js/util/svg.js +1 -12
  53. package/tests/modal.html +2 -2
  54. package/build/package.json +0 -4
@@ -1 +1 @@
1
- /*! UIkit 3.19.4 | https://www.getuikit.com | (c) 2014 - 2024 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,...r){var a,s,t;let n=0;return((t=((a=this.i18n)==null?void 0:a[e])||((s=this.$options.i18n)==null?void 0:s[e]))==null?void 0:t.replace(/%s/g,()=>r[n++]||""))||""}}},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 r=e.dataTransfer;r!=null&&r.files&&(o.removeClass(this.$el,this.clsDragover),this.upload(r.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){if(e=o.toArray(e),!e.length)return;o.trigger(this.$el,"upload",[e]);for(const s of e){if(this.maxSize&&this.maxSize*1e3<s.size){this.fail(this.t("invalidSize",this.maxSize));return}if(this.allow&&!h(this.allow,s.name)){this.fail(this.t("invalidName",this.allow));return}if(this.mime&&!h(this.mime,s.type)){this.fail(this.t("invalidMime",this.mime));return}}this.multiple||(e=e.slice(0,1)),this.beforeAll(this,e);const r=f(e,this.concurrent),a=async s=>{const t=new FormData;s.forEach(n=>t.append(this.name,n));for(const n in this.params)t.append(n,this.params[n]);try{const n=await u(this.url,{data:t,method:this.method,responseType:this.type,beforeSend:p=>{const{xhr:m}=p;o.on(m.upload,"progress",this.progress);for(const c of["loadStart","load","loadEnd","abort"])o.on(m,c.toLowerCase(),this[c]);return this.beforeSend(p)}});this.complete(n),r.length?await a(r.shift()):this.completeAll(n)}catch(n){this.error(n)}};await a(r.shift())}}};function h(e,r){return r.match(new RegExp(`^${e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")}$`,"i"))}function f(e,r){const a=[];for(let s=0;s<e.length;s+=r)a.push(e.slice(s,s+r));return a}function l(e){e.preventDefault(),e.stopPropagation()}function u(e,r){const a={data:null,method:"GET",headers:{},xhr:new XMLHttpRequest,beforeSend:o.noop,responseType:"",...r};return Promise.resolve().then(()=>a.beforeSend(a)).then(()=>g(e,a))}function g(e,r){return new Promise((a,s)=>{const{xhr:t}=r;for(const n in r)if(n in t)try{t[n]=r[n]}catch{}t.open(r.method.toUpperCase(),e);for(const n in r.headers)t.setRequestHeader(n,r.headers[n]);o.on(t,"load",()=>{t.status===0||t.status>=200&&t.status<300||t.status===304?a(t):s(o.assign(Error(t.statusText),{xhr:t,status:t.status}))}),o.on(t,"error",()=>s(o.assign(Error("Network Error"),{xhr:t}))),o.on(t,"timeout",()=>s(o.assign(Error("Network Timeout"),{xhr:t}))),t.send(r.data)})}return typeof window<"u"&&window.UIkit&&window.UIkit.component("upload",d),d});
1
+ /*! UIkit 3.19.5-dev.8210c3e08 | https://www.getuikit.com | (c) 2014 - 2024 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,...r){var a,s,t;let n=0;return((t=((a=this.i18n)==null?void 0:a[e])||((s=this.$options.i18n)==null?void 0:s[e]))==null?void 0:t.replace(/%s/g,()=>r[n++]||""))||""}}},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 r=e.dataTransfer;r!=null&&r.files&&(o.removeClass(this.$el,this.clsDragover),this.upload(r.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){if(e=o.toArray(e),!e.length)return;o.trigger(this.$el,"upload",[e]);for(const s of e){if(this.maxSize&&this.maxSize*1e3<s.size){this.fail(this.t("invalidSize",this.maxSize));return}if(this.allow&&!h(this.allow,s.name)){this.fail(this.t("invalidName",this.allow));return}if(this.mime&&!h(this.mime,s.type)){this.fail(this.t("invalidMime",this.mime));return}}this.multiple||(e=e.slice(0,1)),this.beforeAll(this,e);const r=f(e,this.concurrent),a=async s=>{const t=new FormData;s.forEach(n=>t.append(this.name,n));for(const n in this.params)t.append(n,this.params[n]);try{const n=await u(this.url,{data:t,method:this.method,responseType:this.type,beforeSend:p=>{const{xhr:m}=p;o.on(m.upload,"progress",this.progress);for(const c of["loadStart","load","loadEnd","abort"])o.on(m,c.toLowerCase(),this[c]);return this.beforeSend(p)}});this.complete(n),r.length?await a(r.shift()):this.completeAll(n)}catch(n){this.error(n)}};await a(r.shift())}}};function h(e,r){return r.match(new RegExp(`^${e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")}$`,"i"))}function f(e,r){const a=[];for(let s=0;s<e.length;s+=r)a.push(e.slice(s,s+r));return a}function l(e){e.preventDefault(),e.stopPropagation()}function u(e,r){const a={data:null,method:"GET",headers:{},xhr:new XMLHttpRequest,beforeSend:o.noop,responseType:"",...r};return Promise.resolve().then(()=>a.beforeSend(a)).then(()=>g(e,a))}function g(e,r){return new Promise((a,s)=>{const{xhr:t}=r;for(const n in r)if(n in t)try{t[n]=r[n]}catch{}t.open(r.method.toUpperCase(),e);for(const n in r.headers)t.setRequestHeader(n,r.headers[n]);o.on(t,"load",()=>{t.status===0||t.status>=200&&t.status<300||t.status===304?a(t):s(o.assign(Error(t.statusText),{xhr:t,status:t.status}))}),o.on(t,"error",()=>s(o.assign(Error("Network Error"),{xhr:t}))),o.on(t,"timeout",()=>s(o.assign(Error("Network Timeout"),{xhr:t}))),t.send(r.data)})}return typeof window<"u"&&window.UIkit&&window.UIkit.component("upload",d),d});
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.19.4 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
1
+ /*! UIkit 3.19.5-dev.8210c3e08 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -367,55 +367,77 @@
367
367
  function findAll(selector, context) {
368
368
  return toNodes(_query(selector, toNode(context), "querySelectorAll"));
369
369
  }
370
- const contextSelectorRe = /(^|[^\\],)\s*[!>+~-]/;
371
- const isContextSelector = memoize((selector) => selector.match(contextSelectorRe));
372
370
  function getContext(selector, context = document) {
373
- return isString(selector) && isContextSelector(selector) || isDocument(context) ? context : context.ownerDocument;
374
- }
375
- const contextSanitizeRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g;
376
- const sanatize = memoize((selector) => selector.replace(contextSanitizeRe, "$1 *"));
371
+ return isString(selector) && parseSelector(selector).isContextSelector || isDocument(context) ? context : context.ownerDocument;
372
+ }
373
+ const addStarRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g;
374
+ const splitSelectorRe = /.*?[^\\](?![^(]*\))(?:,|$)/g;
375
+ const trailingCommaRe = /\s*,$/;
376
+ const parseSelector = memoize((selector) => {
377
+ selector = selector.replace(addStarRe, "$1 *");
378
+ let isContextSelector = false;
379
+ const selectors = [];
380
+ for (let sel of selector.match(splitSelectorRe)) {
381
+ sel = sel.replace(trailingCommaRe, "").trim();
382
+ if (sel[0] === ">") {
383
+ sel = `:scope ${sel}`;
384
+ }
385
+ isContextSelector || (isContextSelector = ["!", "+", "~", "-"].includes(sel[0]));
386
+ selectors.push(sel);
387
+ }
388
+ return {
389
+ selector: selectors.join(","),
390
+ selectors,
391
+ isContextSelector
392
+ };
393
+ });
377
394
  function _query(selector, context = document, queryFn) {
378
395
  if (!selector || !isString(selector)) {
379
396
  return selector;
380
397
  }
381
- selector = sanatize(selector);
382
- if (isContextSelector(selector)) {
383
- const split = splitSelector(selector);
384
- selector = "";
385
- for (let sel of split) {
386
- let ctx = context;
387
- if (sel[0] === "!") {
388
- const selectors = sel.substr(1).trim().split(" ");
389
- ctx = parent(context).closest(selectors[0]);
390
- sel = selectors.slice(1).join(" ").trim();
391
- if (!sel.length && split.length === 1) {
392
- return ctx;
393
- }
394
- }
395
- if (sel[0] === "-") {
396
- const selectors = sel.substr(1).trim().split(" ");
397
- const prev = (ctx || context).previousElementSibling;
398
- ctx = matches(prev, sel.substr(1)) ? prev : null;
399
- sel = selectors.slice(1).join(" ");
398
+ const parsed = parseSelector(selector);
399
+ if (!parsed.isContextSelector) {
400
+ return _doQuery(context, queryFn, parsed.selector);
401
+ }
402
+ selector = "";
403
+ const isSingle = parsed.selectors.length === 1;
404
+ for (let sel of parsed.selectors) {
405
+ let ctx = context;
406
+ if (sel[0] === "!") {
407
+ const selectors = sel.substr(1).trim().split(" ");
408
+ ctx = parent(context).closest(selectors[0]);
409
+ sel = selectors.slice(1).join(" ").trim();
410
+ if (!sel.length && isSingle) {
411
+ return ctx;
400
412
  }
401
- if (ctx) {
402
- selector += `${selector ? "," : ""}${domPath(ctx)} ${sel}`;
413
+ }
414
+ if (sel[0] === "-") {
415
+ const selectors = sel.substr(1).trim().split(" ");
416
+ const prev = (ctx || context).previousElementSibling;
417
+ ctx = matches(prev, sel.substr(1)) ? prev : null;
418
+ sel = selectors.slice(1).join(" ");
419
+ if (!sel.length && isSingle) {
420
+ return ctx;
403
421
  }
422
+ } else if (sel[0] === "~" || sel[0] === "+" && isSingle) {
423
+ return _doQuery(parent(ctx), queryFn, `:scope :nth-child(${index(ctx) + 1}) ${sel}`);
404
424
  }
405
- if (!isDocument(context)) {
406
- context = context.ownerDocument;
425
+ if (ctx) {
426
+ selector += `${selector ? "," : ""}${domPath(ctx)} ${sel}`;
407
427
  }
408
428
  }
429
+ if (!isDocument(context)) {
430
+ context = context.ownerDocument;
431
+ }
432
+ return _doQuery(context, queryFn, selector);
433
+ }
434
+ function _doQuery(context, queryFn, selector) {
409
435
  try {
410
436
  return context[queryFn](selector);
411
437
  } catch (e) {
412
438
  return null;
413
439
  }
414
440
  }
415
- const selectorRe = /.*?[^\\](?![^(]*\))(?:,|$)/g;
416
- const splitSelector = memoize(
417
- (selector) => selector.match(selectorRe).map((selector2) => selector2.replace(/,$/, "").trim())
418
- );
419
441
  function domPath(element) {
420
442
  const names = [];
421
443
  while (element.parentNode) {
@@ -1875,18 +1897,30 @@
1875
1897
  }
1876
1898
  const targets = hasOwn(instance, key) ? instance[key] : target;
1877
1899
  const observer = observe(targets, handler, options, args);
1878
- if (isFunction(target) && isArray(instance[key]) && observer.unobserve) {
1879
- registerWatch(instance, { handler: updateTargets(observer), immediate: false }, key);
1900
+ if (isFunction(target) && isArray(instance[key])) {
1901
+ registerWatch(
1902
+ instance,
1903
+ { handler: updateTargets(observer, options), immediate: false },
1904
+ key
1905
+ );
1880
1906
  }
1881
1907
  registerObserver(instance, observer);
1882
1908
  }
1883
- function updateTargets(observer) {
1909
+ function updateTargets(observer, options) {
1884
1910
  return (targets, prev) => {
1885
1911
  for (const target of prev) {
1886
- !includes(targets, target) && observer.unobserve(target);
1912
+ if (!includes(targets, target)) {
1913
+ if (observer.unobserve) {
1914
+ observer.unobserve(target);
1915
+ } else {
1916
+ observer.disconnect();
1917
+ }
1918
+ }
1887
1919
  }
1888
1920
  for (const target of targets) {
1889
- !includes(prev, target) && observer.observe(target);
1921
+ if (!includes(prev, target) || !observer.unobserve) {
1922
+ observer.observe(target, options);
1923
+ }
1890
1924
  }
1891
1925
  };
1892
1926
  }
@@ -2153,7 +2187,7 @@
2153
2187
  };
2154
2188
  App.util = util;
2155
2189
  App.options = {};
2156
- App.version = "3.19.4";
2190
+ App.version = "3.19.5-dev.8210c3e08";
2157
2191
 
2158
2192
  const PREFIX = "uk-";
2159
2193
  const DATA = "__uikit__";
@@ -3253,10 +3287,6 @@
3253
3287
  }
3254
3288
  css(this.$el, this._style);
3255
3289
  },
3256
- observe: lazyload({
3257
- target: ({ toggle, $el }) => query(toggle, $el),
3258
- targets: ({ $el }) => $el
3259
- }),
3260
3290
  events: [
3261
3291
  {
3262
3292
  name: "click",
@@ -3945,10 +3975,10 @@
3945
3975
  observe: [
3946
3976
  mutation({
3947
3977
  options: {
3948
- childList: true,
3949
3978
  attributes: true,
3950
3979
  attributeFilter: ["style"]
3951
- }
3980
+ },
3981
+ target: ({ $el }) => [$el, ...children($el)]
3952
3982
  }),
3953
3983
  resize({
3954
3984
  target: ({ $el }) => [$el, ...children($el)]
@@ -4766,6 +4796,12 @@
4766
4796
  target: ({ target }, $el) => target ? $$(target, $el) : [$el]
4767
4797
  },
4768
4798
  observe: [
4799
+ intersection({
4800
+ handler([{ isIntersecting }]) {
4801
+ this.isIntersecting = isIntersecting;
4802
+ },
4803
+ args: { intersecting: false }
4804
+ }),
4769
4805
  mutation({
4770
4806
  target: ({ target }) => target,
4771
4807
  options: { attributes: true, attributeFilter: ["class"], attributeOldValue: true }
@@ -4802,6 +4838,9 @@
4802
4838
  ],
4803
4839
  update: {
4804
4840
  read() {
4841
+ if (!this.isIntersecting) {
4842
+ return false;
4843
+ }
4805
4844
  for (const target of this.target) {
4806
4845
  replaceClass(
4807
4846
  target,
@@ -6084,18 +6123,10 @@
6084
6123
  }
6085
6124
 
6086
6125
  function getMaxPathLength(el) {
6087
- return Math.ceil(
6088
- Math.max(
6089
- 0,
6090
- ...$$("[stroke]", el).map((stroke) => {
6091
- try {
6092
- return stroke.getTotalLength();
6093
- } catch (e) {
6094
- return 0;
6095
- }
6096
- })
6097
- )
6098
- );
6126
+ return Math.ceil(Math.max(0, ...$$("[stroke]", el).map((stroke) => {
6127
+ var _a;
6128
+ return (_a = stroke.getTotalLength) == null ? void 0 : _a.call(stroke);
6129
+ })));
6099
6130
  }
6100
6131
 
6101
6132
  var svg = {
@@ -6320,7 +6351,11 @@
6320
6351
  ],
6321
6352
  update() {
6322
6353
  var _a;
6323
- attr(this.connects, "role", "presentation");
6354
+ for (const el of this.connects) {
6355
+ if (isTag(el, "ul")) {
6356
+ attr(el, "role", "presentation");
6357
+ }
6358
+ }
6324
6359
  attr(children(this.$el), "role", "presentation");
6325
6360
  for (const index in this.toggles) {
6326
6361
  const toggle = this.toggles[index];
@@ -6419,7 +6454,7 @@
6419
6454
  }
6420
6455
  }
6421
6456
  },
6422
- observe: lazyload({ target: ({ target }) => target }),
6457
+ observe: lazyload({ targets: ({ target }) => target }),
6423
6458
  events: [
6424
6459
  {
6425
6460
  name: pointerDown,