ziko 0.67.0 → 0.68.0

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 (42) hide show
  1. package/dist/ziko.cjs +276 -805
  2. package/dist/ziko.js +276 -805
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +276 -791
  5. package/package.json +1 -1
  6. package/src/events/controller/index.js +57 -0
  7. package/src/events/custom-events-registry/click-away.js +1 -0
  8. package/src/events/index.js +1 -3
  9. package/src/{exp-events → events-dep}/custom-events-registry/click-away.js +0 -1
  10. package/src/events-dep/index.js +3 -0
  11. package/src/ui/constructors/UIElement.js +17 -7
  12. package/src/ui/constructors/mixins/attrs.js +19 -5
  13. package/src/ui/constructors/mixins/dom.js +53 -1
  14. package/src/ui/constructors/mixins/events/click.js +22 -0
  15. package/src/ui/constructors/mixins/events/index.js +3 -0
  16. package/src/ui/constructors/mixins/events/key.js +24 -0
  17. package/src/ui/constructors/mixins/events/ptr.js +44 -0
  18. package/src/ui/constructors/mixins/events/utils/index.js +15 -0
  19. package/src/ui/constructors/mixins/index.js +4 -2
  20. package/src/exp-events/controller/index.js +0 -41
  21. package/src/exp-events/index.js +0 -1
  22. package/src/ui/constructors/mixins/events.js +0 -57
  23. package/src/ui/constructors/mixins/utils/index.js +0 -64
  24. /package/src/{events → events-dep}/binders/coordinates-based-event.js +0 -0
  25. /package/src/{events → events-dep}/binders/custom-event.js +0 -0
  26. /package/src/{events → events-dep}/binders/index.js +0 -0
  27. /package/src/{exp-events → events-dep}/custom-events-registry/index.js +0 -0
  28. /package/src/{exp-events → events-dep}/custom-events-registry/swipe.js +0 -0
  29. /package/src/{exp-events → events-dep}/custom-events-registry/view.js +0 -0
  30. /package/src/{events → events-dep}/customizers/normalise-coordinates.js +0 -0
  31. /package/src/{exp-events → events-dep}/details-setter/index.js +0 -0
  32. /package/src/{exp-events → events-dep}/details-setter/key.js +0 -0
  33. /package/src/{exp-events → events-dep}/details-setter/mouse.js +0 -0
  34. /package/src/{exp-events → events-dep}/details-setter/pointer.js +0 -0
  35. /package/src/{exp-events → events-dep}/details-setter/touch.js +0 -0
  36. /package/src/{events → events-dep}/events-map/index.js +0 -0
  37. /package/src/{events → events-dep}/types/__Shared__.d.ts +0 -0
  38. /package/src/{events → events-dep}/types/clipboard.d.ts +0 -0
  39. /package/src/{events → events-dep}/types/focus.d.ts +0 -0
  40. /package/src/{events → events-dep}/types/pointer.d.ts +0 -0
  41. /package/src/{events → events-dep}/utils.js +0 -0
  42. /package/src/{events → events-dep}/ziko-event.js +0 -0
package/dist/ziko.min.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  Project: ziko.js
3
3
  Author: Zakaria Elalaoui
4
- Date : Mon Feb 16 2026 11:34:52 GMT+0000 (UTC)
4
+ Date : Fri Feb 20 2026 11:36:37 GMT+0000 (UTC)
5
5
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
6
6
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
7
7
  Released under MIT License
8
8
  */
9
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,function(t){"use strict";const{PI:e,E:s}=Math,r=Number.EPSILON,n=(t,...e)=>{const s=e.map(e=>{return"object"!=typeof(s=e)&&"function"!=typeof s||null===s||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>n(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],n(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],n(t,e[1])])):void 0;var s});return 1==s.length?s[0]:s},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e,s)=>{if("number"==typeof e){if("number"==typeof s)switch(t){case"add":return e+s;case"sub":return e-s;case"mul":return e*s;case"div":return e/s;case"modulo":return e%s}return s?.isComplex?.()&&(e=new s.constructor(e,0)),s?.isMatrix?.()&&(e=s.constructor.nums(s.rows,s.cols,e)),e[t](s)}if(e?.isComplex?.()){if("number"==typeof s||s?.isComplex?.())return e.clone()[t](s);if(s?.isMatrix?.())return(e=s.constructor.nums(s.rows,s.cols,e)).clone()[t](s)}if(e?.isMatrix?.())return e.clone()[t](s)},h=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("add",s,e[t]);return s},c=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("sub",s,e[t]);return s},l=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("mul",s,e[t]);return s},u=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("div",s,e[t]);return s},m=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("modulo",s,e[t]);return s},p=(...t)=>t.reduce((t,e)=>t+e)/t.length,f=(...t)=>{const e=t.length;if(0===e)return NaN;const s=p(...t);return t.reduce((t,e)=>t+(e-s)**2,0)/e},d=(...t)=>{let e,s=[],r=0,n=t.length;for(e=0;e<n;e++)r=h(r,t[e]),s.push(r);return s},g=(t,e)=>{if(0===t.length)return NaN;let s=[...t].sort((t,e)=>t-e),r=e/100*(s.length-1),n=Math.floor(r),i=r-n;return n===s.length-1?s[n]:s[n]*(1-i)+s[n+1]*i};class w{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,s)=>{const r=parseInt(t,e);if(Number.isNaN(r))throw new TypeError("Invalid value for the given base");return r.toString(s)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,s,r]=Array.from({length:4},()=>this.int(255).toString(16).padStart(2,"0"));return`#${t}${e}${s}${r}`},rgb:()=>{const[t,e,s]=Array.from({length:3},()=>this.int(255));return`rgb(${t}, ${e}, ${s})`},rgba:()=>{const[t,e,s]=Array.from({length:3},()=>this.int(255));return`rgba(${t}, ${e}, ${s}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,s,r)=>Array.from({length:e},()=>t.int(s,r)),float:(e,s,r)=>Array.from({length:e},()=>t.float(s,r)),char:(e,s=!1)=>Array.from({length:e},()=>t.char(s)),bool:e=>Array.from({length:e},()=>t.bool()),bin:e=>Array.from({length:e},()=>t.bin()),oct:e=>Array.from({length:e},()=>t.oct()),dec:e=>Array.from({length:e},()=>t.dec()),hex:e=>Array.from({length:e},()=>t.hex()),get color(){return{hex:e=>Array.from({length:e},()=>t.color.hex()),hexa:e=>Array.from({length:e},()=>t.color.hexa()),rgb:e=>Array.from({length:e},()=>t.color.rgb()),rgba:e=>Array.from({length:e},()=>t.color.rgba()),hsl:e=>Array.from({length:e},()=>t.color.hsl()),hsla:e=>Array.from({length:e},()=>t.color.hsla()),gray:e=>Array.from({length:e},()=>t.color.gray())}},choice:(e,s,r)=>Array.from({length:e},()=>t.choice(s,r))}}static shuffle(t){return[...t].sort(()=>.5-Math.random())}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const s=d(...e).map(t=>100*t),r=new Array(100);r.fill(t[0],0,s[0]);for(let e=1;e<t.length;e++)r.fill(t[e],s[e-1],s[e]);return r[this.int(r.length)]}}globalThis.Random=w;class y{constructor(t=0,e=0){[this.a,this.b]=((t,e,s)=>{let r,n;return e instanceof t?(r=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(r=e.a,n=e.b):"a"in e&&"z"in e?(r=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(r=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,r=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=s,r=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(r=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof s&&(r=+e.toFixed(32),n=+s.toFixed(32)),[r,n]})(y,t,e)}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:s}=t;return"complex"===s&&"a"in e&&"b"in e?new y(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new y(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new y(0,0)}static fromPolar(t,e){return new y(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new y(...w.sample.int(2,t,e)),float:(t,e)=>new y(...w.sample.float(2,t,e))}}static twiddle(t,e){const s=-2*Math.PI*t/e;return new y(Math.cos(s),Math.sin(s))}get conj(){return new y(this.a,-this.b)}get inv(){return new y(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e*=t[r].z,s+=t[r].phi;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this.toFixed(8)}div(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e/=t[r].z,s-=t[r].phi;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e*=Math.exp(t[r].a*Math.log(e)-t[r].b*s),s+=t[r].b*Math.log(e)+t[r].a*s;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this}get expo(){return[this.z,this.phi]}nthr(t=2){return v({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return v(this.z,this.phi)}get cos(){return v(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return v(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return v(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const v=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map((s,r)=>v(t[r],e[r]));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map((s,r)=>v(t.arr[r],e.arr[r]));return new t.constructor(t.rows,t.cols,...s)}return new y(t,e)},_=(...t)=>n(t=>t.isComplex?.()?t.z:Math.abs(t),...t),x=(...t)=>{const e=t.pop();return n(t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e),...t)},M=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?v(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8),...t),E=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?v(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8),...t)},k=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8),...t),C=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t),...t),T=(t,e,s)=>i(t,t=>e!==s?(t-e)/(s-e):0),S=(t,e,s)=>i(t,t=>(s-e)*t+e),O=(t,e,s)=>i(t,t=>Math.min(Math.max(t,e),s)),A=(t,e,s,r,n)=>i(t,t=>S(T(t,e,s),r,n)),j=(t,e,s=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n(t=>j(t,e,s),...t);if(e instanceof Array&&!(t instanceof Array))return n(e=>j(t,e,s),...e);if(t instanceof Array&&e instanceof Array)return t.map((t,r)=>j(t,e[r],s));const r=Math.atan2(t,e);return s?r:180*r/Math.PI},P=t=>t.isComplex?.()?new t.constructor(P(t.a),P(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(P)):+!t,I=(t,e)=>{if(t.every(t=>t.isComplex?.())){const s=t.map(t=>t.a),r=t.map(t=>t.b);return new t[0].constructor(e(...s),e(...r))}if(t.every(t=>t.isMatrix?.())){if(!t.every(e=>e.rows===t[0].rows&&e.cols===t[0].cols))return TypeError("All matrices must have the same shape");const{rows:s,cols:r}=t[0],n=Array.from({length:s},(s,n)=>Array.from({length:r},(s,r)=>e(...t.map(t=>t.arr[n][r]))));return new t[0].constructor(n)}return null},R=(...t)=>{const e=I(t,R);return null!==e?e:t.reduce((t,e)=>t&e,1)},F=(...t)=>{const e=I(t,F);return null!==e?e:t.reduce((t,e)=>t|e,0)},z=(...t)=>{const e=I(t,z);return null!==e?e:t.reduce((t,e)=>t^e,0)},$=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let s=t.arr.length;s<e;s++)delete t[s]};function D(t,e){var s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}function L(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let s=t.arr;for(let r=0;r<t.rows;r++)for(let n=t.cols;n<t.cols+e.cols;n++)s[r][n]=e.arr[r][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,s.flat(1))}function N(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let s=t.arr;for(let r=t.rows;r<t.rows+e.rows;r++){s[r]=[];for(let n=0;n<t.cols;n++)s[r][n]=e.arr[r-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,s.flat(1))}class U{constructor(t,e,s=[]){[this.rows,this.cols,this.arr]=((t,e,s,r)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,s=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(s)),n=0;n<s;n++)i[t][n]=r[t*s+n],null==r[t*s+n]&&(i[t][n]=0);return[e,s,i]}arr=e.arr,s=(e=e.rows).cols})(U,t,e,s),$(this)}isMatrix(){return!0}clone(){return new U(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n(t=>t?.isComplex?.()?t:new y(t,0),...this.arr),$(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,s=this.rows-1,r=this.cols-1){s<0&&(s=this.rows+s),r<0&&(r=this.cols+r);let n=s-t,i=r-e,o=new Array(i);for(let s=0;s<n;s++){o[s]=[];for(let r=0;r<i;r++)o[s][r]=this.arr[s+t][r+e]}return this.arr=o,$(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!==this.rows*this.cols)throw Error("size not matched");const s=this.rows;return Object.assign(this,new U(t,e,this.arr.flat(1))),$(s),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new U(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some(t=>t?.isMatrix?.())?void console.warn("Tensors are not completely supported yet ..."):c(l(e[0][0],e[1][1]),l(e[0][1],e[1][0]));for(var s=0,r=0;r<e.length;r++){const n=h(l(x(-1,r),l(e[0][r],t(D(e,r)))));s=h(s,n)}return s}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var s=0,r=0,n=0,i=e.length,o=0,a=[],h=[];for(s=0;s<i;s+=1)for(a[a.length]=[],h[h.length]=[],n=0;n<i;n+=1)a[s][n]=s==n?1:0,h[s][n]=e[s][n];for(s=0;s<i;s+=1){if(0==(o=h[s][s])){for(r=s+1;r<i;r+=1)if(0!=h[r][s]){for(n=0;n<i;n++)o=h[s][n],h[s][n]=h[r][n],h[r][n]=o,o=a[s][n],a[s][n]=a[r][n],a[r][n]=o;break}if(0==(o=h[s][s]))return}for(n=0;n<i;n++)h[s][n]=h[s][n]/o,a[s][n]=a[s][n]/o;for(r=0;r<i;r++)if(r!=s)for(o=h[r][s],n=0;n<i;n++)h[r][n]-=o*h[s][n],a[r][n]-=o*a[s][n]}return new t.constructor(a)}}(this)}static eye(t){let e=new U(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}static zeros(t,e){let s=new U(t,e);for(let n=0;n<t;n++)for(var r=0;r<e;r++)s.arr[n][r]=0;return s}static ones(t,e){let s=new U(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new U(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)r.arr[n][t]=s;return r}static get random(){return{int:(t,e,s,r)=>new U(t,e,w.sample.int(t*e,s,r)),float:(t,e,s)=>new U(t,e,w.sample.float(t*e,s,b))}}get range(){return{map:(t,e,s,r)=>(this.arr=A(this.arr,t,e,s,r),this),norm:(t,e)=>(this.arr=T(this.arr,t,e),this),lerp:(t,e)=>(this.arr=S(this.arr,t,e),this),clamp:(t,e)=>(this.arr=O(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce((t,e)=>L(t,e));return Object.assign(this,e),$(this),this}vstack(...t){const e=[this,...t].reduce((t,e)=>N(t,e));return Object.assign(this,e),$(this),this}hqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>L(t,e));return Object.assign(this,e),$(this),this}vqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>N(t,e));return Object.assign(this,e),$(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new U(this.rows,this.cols,e)}mapRows(t=()=>{}){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=()=>{}){const e=this.arr.flat(1).sort(t);return new U(this.rows,this.cols,e)}shuffle(){return this.sort(()=>.5-Math.random())}sortRows(t=()=>{}){return this.arr=this.arr.map(e=>e.sort(t)),this}shuffleRows(){return this.sortRows(()=>.5-Math.random())}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols(()=>.5-Math.random())}reduce(t,e){const s=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new U([[s]])}reduceRows(t,e){const s=e?this.arr.map(s=>s.reduce(t,e)):this.arr.map(e=>e.reduce(t));return new U(1,this.cols,s)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map(e=>e.some(e=>t(e))),s=[];let r;for(r=0;r<e.length;r++)e[r]&&s.push(this.arr[r]);return new U(s)}filterCols(t){const e=this.T.filterRows(t);return new U(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map(e=>e.every(t))}everyCol(t){return this.T.arr.map(e=>e.every(t))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map(e=>e.some(t))}someCol(t){return this.T.arr.map(e=>e.some(t))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let s=e+1;s<t;s++)if(this.arr[e][s]!==-this.arr[s][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s]||0!==this.arr[s][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,s=[];for(let r=0;r<t;r++){s[r]=[];for(let n=0;n<t;n++){let i=0;for(let s=0;s<t;s++)i+=e[r][s]*e[s][n];s[r][n]=i}}for(let r=0;r<t;r++)for(let n=0;n<t;n++)if(s[r][n]!==e[r][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toFixed(t);return this}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}#t(t,...e){for(let r=0;r<e.length;r++){("number"==typeof e[r]||e[r]?.isComplex?.())&&(e[r]=U.nums(this.rows,this.cols,e[r]));for(let n=0;n<this.rows;n++)for(var s=0;s<this.cols;s++)this.arr[n][s]=t(this.arr[n][s],e[r].arr[n][s])}return new U(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(h,...t)}sub(...t){return this.#t(c,...t)}mul(...t){return this.#t(l,...t)}div(...t){return this.#t(u,...t)}modulo(...t){return this.#t(m,...t)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var n=0;n<this.arr[0].length;n++)e[s][r]=h(e[s][r],l(this.arr[s][n],t.arr[n][r]))}}return new U(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),s=this.clone();for(let r=0;r<t-1;r++)s=s.dot(e);return s}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t=h(t,this.arr[e][s]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t=l(t,this.arr[e][s]);return t}hasComplex(){return this.arr.flat(1/0).some(t=>t instanceof y)}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new U(t.length,1,t)}serialize(){const t=n(t=>t.serialize?.()||t,...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:s}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:r}=s;return r=n(t=>{if("string"==typeof t){const e=JSON.parse(t),{type:s}=e;if("complex"===s)return y.deserialize(e)}return t},...r),new U(r)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map(t=>[...t].reverse()),$(this),this}flipeV(){return this.arr=this.arr.reverse(),$(this),this}}const q=t=>new Array(t).fill(0),Z=t=>new Array(t).fill(1),B=(t,e)=>new Array(e).fill(t),V=(t,e,s,r=!1)=>{let n=[];if(t<e)for(let i=t;r?i<=e:i<e;i+=s)n.push(10*i/10);else for(let i=t;r?i>=e:i>e;i-=s)n.push(10*i/10);return n},W=(t,e,s=_(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every(t=>"number"==typeof t)){const[o,a]=[t,e].sort((t,e)=>e-t);var n=[];let h;h=r?(o-a)/(s-1):(o-a)/s;for(var i=0;i<s;i++)t<e?n.push(a+h*i):n.push(o-h*i);return n}if([t,e].some(t=>t.isComplex?.())){const n=new s.constructor(t),i=new s.constructor(e);s=s||Math.abs(n.a-i.a)+1;const o=W(n.a,i.a,s,r),a=W(n.b,i.b,s,r);let h=new Array(s).fill(null);return h=h.map((t,e)=>new t.constructor(o[e],a[e])),h}}},H=(t,e,r=e-t+1,n=s,i=!0)=>W(t,e,r,i).map(t=>x(n,t)),G=(t,e,s=_(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every(t=>"number"==typeof t)){const[n,i]=[t,e].sort((t,e)=>e-t);let o;o=E(n/i,r?s-1:s);const a=[i];for(let t=1;t<s;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some(t=>t.isComplex?.())){const n=new s.constructor(t),i=new s.constructor(e);let o;s=s||Math.abs(n.a-i.a)+1,o=E(i.div(n),r?s-1:s);const a=[n];for(let t=1;t<s;t++)a.push(l(a[t-1],o));return a}}},K=(t,e,s)=>{const[r,n]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=n},J=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Y=(t,e)=>t.reduce((t,s)=>[...t,...e.map(t=>[s,t])],[]),Q=(t,e)=>{let s,r=1;if(t==C(t)&&e==C(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},X=(t,e)=>{let s;if(t==C(t)&&e==C(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},tt={zeros:q,ones:Z,nums:B,arange:V,linspace:W,logspace:H,geomspace:G,cartesianProduct:Y,ppcm:X,pgcd:Q,inRange:K,isApproximatlyEqual:J};class et{constructor(t){this.cache={node:t}}isUINode(){return!0}get node(){return this.cache.node}}class st extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find(e=>e.element.id===t)}getItemsByTagName(t){return this.filter(e=>e.element.tagName.toLowerCase()===t.toLowerCase())}getElementsByClassName(t){return this.filter(e=>e.element.classList?.contains(t))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find(t=>t.element===e)||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map(t=>this.find(e=>e.element===t)).filter(Boolean)}}const rt=new st,nt={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},it={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},ot={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class at{#e;#s;#r;#n;#i;#o;constructor(t=""){this.#e=new BroadcastChannel(t),this.#s=new Map,this.#r=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#o=new Set,this.#e.addEventListener("message",t=>{const{last_sent_event:e,userId:s,eventData:r,rooms:n}=t.data;if(s===this.#n)return;if(n&&n.length&&!n.some(t=>this.#o.has(t)))return;this.#i.add(s),this.#s=new Map(r);const i=this.#r.get(e);i&&i.forEach(({fn:t,rooms:s})=>{s&&0!==s.length&&n&&!n.some(t=>s.includes(t))||t(this.#s.get(e))})})}emit(t,e,s){return this.#s.set(t,e),"string"==typeof s&&(s=[s]),this.#e.postMessage({eventData:Array.from(this.#s.entries()),last_sent_event:t,userId:this.#n,rooms:s&&s.length?s:void 0}),this}on(t,e=console.log,s){return this.#r.has(t)||this.#r.set(t,[]),"string"==typeof s&&(s=[s]),this.#r.get(t).push({fn:e,rooms:s}),this}off(t,e){return this.#r.has(t)?(this.#r.set(t,this.#r.get(t).filter(t=>t.fn!==e)),this):this}once(t,e,s){const r=s=>{e(s),this.off(t,r)};return this.on(t,r,s),this}join(...t){return t.forEach(t=>this.#o.add(t)),this}leave(...t){return t.length?t.forEach(t=>this.#o.delete(t)):this.#o.clear(),this}close(){return this.#e.close(),this}}const ht=t=>new at(t);class ct{constructor(t,e,s,r=!0){this.cache={storage:t,globalKey:e,channel:r?ht(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#a(s,r)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items;this.cache.oldItemKeys.forEach(t=>delete this[t]);for(const e in t)this[e]=t[e],this.cache.oldItemKeys.add(e)}#a(t,e){if(e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",()=>this.#h()),t)if(this.cache.storage.getItem(this.cache.globalKey)){const t=this.items;Object.keys(t).forEach(t=>this.cache.oldItemKeys.add(t)),this.#h()}else this.set(t);else this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t}),this}remove(...t){const e={...this.items};return t.forEach(t=>{delete e[t],delete this[t],this.cache.oldItemKeys.delete(t)}),this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.cache.oldItemKeys.forEach(t=>delete this[t]),this.cache.oldItemKeys.clear(),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}const lt=(t,e,s=!0)=>new ct(sessionStorage,t,e,s);var ut={store:new Map,index:0,session_storage:null,register:function(t){if(!(void 0).SSR&&(void 0).DEV){this.session||(this.session_storage=lt("ziko-state",{}));const e=this.session_storage.get(this.index);e?t.value=e:this.session_storage.add({[this.index]:t.value})}this.store.set(this.index++,t)},update:function(t,e){!(void 0).SSR&&(void 0).DEV&&this.session_storage.add({[t]:e})}};function mt(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:rt,__HYDRATION__:it,__State__:ut,__Config__:nt,__CACHE__:ot,__PROVIDERS__:{}},t=__Ziko__,Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[s,r]=t.split("=");e[s]=r}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}))}mt();class pt extends et{constructor(){super()}init(t,e,s,r){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.items=new st,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&r&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function ft(t,...e){e.forEach(e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e))}var dt=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout(()=>this.mount(t,0),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout(()=>this.unmount(0),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function gt(t){const{store:e,index:s}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});let r=e.get(s);return[function(){return{value:r.value,isStateGetter:()=>!0,_subscribe:t=>r.subscribers.add(t)}},function(t){r.paused||("function"==typeof t&&(t=t(r.value)),t!==r.value&&(r.value=t,r.subscribers.forEach(t=>t(r.value)),__Ziko__.__State__.update(s,t)))},{pause:()=>{r.paused=!0},resume:()=>{r.paused=!1},clear:()=>{r.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(r.value)),r.value=t,r.subscribers.forEach(t=>t(r.value))},getSubscribers:()=>new Set(r.subscribers)}]}globalThis.__Ziko__||mt();const bt=t=>"function"==typeof t&&t?.()?.isStateGetter?.();class wt extends et{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const yt=(...t)=>new wt(...t);async function vt(t,e,...s){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let r=0;r<s.length;r++){if(["number","string"].includes(typeof s[r])&&(s[r]=yt(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=yt(t.value),t._subscribe(t=>s[r].element.textContent=t,s[r]))}if("function"==typeof globalThis?.Node&&s[r]instanceof globalThis?.Node&&(s[r]=new this.constructor(s[r])),s[r]?.isUINode)s[r].cache.parent=this,this.element?.[t](s[r].element),s[r].target=this.element,this.items[e](s[r]);else if(s[r]instanceof Promise){const n=await s[r];n.cache.parent=this,this.element?.[t](n.element),n.target=this.element,this.items[e](n)}else s[r]instanceof Object&&(s[r]?.style&&this.style(s[r]?.style),s[r]?.attr&&Object.entries(s[r].attr).forEach(t=>this.setAttr(""+t[0],t[1])))}return this.maintain(),this}function _t(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=((t="")=>0!==t.length&&/^[a-z][a-zA-Z0-9]*$/.test(t))(t)?((t="")=>t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase()))(t):t),!this?.attr[t]||this?.attr[t]!==e){if(bt(e)){e()._subscribe(e=>this.element?.setAttribute(t,e),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var xt=Object.freeze({__proto__:null,getAttr:function(t){return t=is_camelcase(t)?camel2hyphencase(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(t,e){if(t instanceof Object){const[s,r]=[Object.keys(t),Object.values(t)];for(let t=0;t<s.length;t++)r[t]instanceof Array&&(e[t]=r[t].join(" ")),_t.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),_t.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});var Mt=Object.freeze({__proto__:null,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return vt.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.element?.before(t),this},clear:function(){return this?.items?.forEach(t=>t.unmount()),this.element.innerHTML="",this},insertAt:function(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=yt(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter(e=>e!==t)};for(let s=0;s<t.length;s++)e(t[s]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});const Et={Click:["Click","DblClick","ClickAway"],Ptr:["PtrMove","PtrDown","PtrUp","PtrLeave","PtrEnter","PtrOut","PtrCancel"],Mouse:["MouseMove","MouseDown","MouseUp","MouseEnter","MouseLeave","MouseOut"],Key:["KeyDown","KeyPress","KeyUp"],Clipboard:["Copy","Cut","Paste"],Focus:["focus","blur"],Drag:["Drag","DragStart","DragEnd","Drop"],Wheel:["Wheel"],View:["EnterView","ExitView","ResizeView"],Swipe:["SwipeLeft","SwipeUp","SwipeRight","SwipeDown"]};function kt(t,e,s,r){this.cache.currentEvent=e,this.cache.event=t,s?.call(this),r?.hasOwnProperty("prototype")?r?.call(this):r?.call(null,this),this.cache.preventDefault[e]&&t.preventDefault(),this.cache.stopPropagation[e]&&t.stopPropagation(),this.cache.stopImmediatePropagation[e]&&t.stopImmediatePropagation(),this.cache.callbacks[e]?.(this)}function Ct(t,...e){return(0===e.length?Object.keys(this.cache.paused):e).forEach(e=>{this.cache.paused.hasOwnProperty(e)&&(this.targetElement?.[t](e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]="removeEventListener"===t)}),this}const Tt=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();class St{constructor(t,e=null,s=[],r,n){this.target=e,this.cache={signature:t,currentEvent:null,event:null,options:{},preventDefault:{},stopPropagation:{},stopImmediatePropagation:{},paused:{},callbacks:{},__controllers__:{}},s&&this._register_events(s,r,n)}_register_events(t,e,s,r=!0){const n=t?.map(t=>Tt(t));return n?.forEach((n,i)=>{this.cache.preventDefault[n]=!1,this.cache.options[n]={},this.cache.paused[n]=!1,this.cache.__controllers__[n]=t=>kt.call(this,t,n,e,s),r&&(this[`on${t[i]}`]=t=>this.__onEvent(n,this.cache.options[n],{},t))}),this}__onEvent(t,e,s,r){return r?(this.cache.callbacks[t]=r,this.__handle(t,this.cache.__controllers__[t],e,s),this):this}get targetElement(){return this.target?.element}get isParent(){return this.target?.element===this.event?.srcElement}get item(){return this.target.find(t=>t.element==this.event?.srcElement)?.[0]}get currentEvent(){return this.cache.currentEvent}get event(){return this.cache.event}get detail(){return this.cache.event.detail}setTarget(t){return this.target=t,this}__handle(t,e,s){return this.targetElement?.addEventListener(t,e,s),this}#c(t,...e){return(0===e.length?Object.keys(this.cache[t]):e).forEach(e=>{this.cache[t].hasOwnProperty(e)&&(this.cache[t][e]=!0)}),this}preventDefault(...t){return this.#c("preventDefault",...t)}stopPropagation(...t){return this.#c("stopPropagation",...t)}stopImmediatePropagation(...t){return this.#c("stopImmediatePropagation",...t)}setEventOptions(t,e){const s=Tt(t);return this.pause(),Object.assign(this.cache.options[s],e),this.resume(),this}pause(...t){return Ct.call(this,"removeEventListener",...t)}resume(...t){return Ct.call(this,"addEventListener",...t)}dispose(){return this.pause(),this.target.events[this.cache.signature]=null,this}}function Ot(){switch(this.currentEvent){case"keydown":this.kd=this.event.key;break;case"keypress":this.kp=this.event.key;break;case"keyup":this.ku=this.event.key}}function At(){const t=this.targetElement.getBoundingClientRect(),e=this.event;let s=e.clientX-t.left|0,r=e.clientY-t.top|0;if(this.cache.useNormalisedCoordinates){const t=this.targetElement.clientWidth,e=this.targetElement.clientHeight;s=+(s/t*2-1).toFixed(8),r=+(r/e*-2+1).toFixed(8)}switch(this.currentEvent){case"pointerdown":this.dx=s,this.dy=r,this.isDown=!0;break;case"pointermove":this.mx=s,this.my=r,this.isMoving=!0;break;case"pointerup":this.ux=s,this.uy=r,this.isDown=!1,this.isMoving=!1}}function jt(){const t=this.targetElement.getBoundingClientRect(),e=this.event;let s=e.clientX-t.left|0,r=e.clientY-t.top|0;if(this.cache.useNormalisedCoordinates){const t=this.targetElement.clientWidth,e=this.targetElement.clientHeight;s=+(s/t*2-1).toFixed(8),r=+(r/e*-2+1).toFixed(8)}switch(this.currentEvent){case"mousedown":this.dx=s,this.dy=r,this.isDown=!0;break;case"mousemove":this.mx=s,this.my=r,this.isMoving=!0;break;case"mouserup":this.ux=s,this.uy=r,this.isDown=!1,this.isMoving=!1}}function Pt(){const t=this.event,e=t.touches?.[0]||t.changedTouches?.[0];if(!e)return;const s=this.targetElement.getBoundingClientRect();let r=e.clientX-s.left,n=e.clientY-s.top;if(this.cache.useNormalisedCoordinates){const t=this.targetElement.clientWidth,e=this.targetElement.clientHeight;r=+(r/t*2-1).toFixed(8),n=+(n/e*-2+1).toFixed(8)}switch(this.currentEvent){case"touchstart":this.dx=r,this.dy=n,this.isDown=!0;break;case"touchmove":this.mx=r,this.my=n,this.isMoving=!0;break;case"touchend":this.ux=r,this.uy=n,this.isDown=!1}}class It extends St{constructor(t,e=null,s=[],r,n){super(t,e,s,r,n),Object.assign(this.cache,{useNormalisedCoordinates:!1}),this.isDown=!1,this.isMoving=!1,this.dx=0,this.dy=0,this.mx=0,this.my=0,this.ux=0,this.uy=0}get isDragging(){return this.isDown&&this.isMoving}useNormalisedCoordinates(t=!0){return this.cache.useNormalisedCoordinates=t,this}}class Rt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}const Ft=(t,e)=>{let s=0;return(...r)=>{const n=(new Date).getTime();n-s<e||(s=n,t(...r))}};class zt extends CustomEvent{constructor(t,e,{bubbles:s=!0,cancelable:r=!0}={}){super(t,{detail:e,bubbles:s,cancelable:r})}}class $t extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}const Dt=(t,e)=>(function(t){function e(e){if(!t.contains(e.target)){const s=new Rt(e,t);t.dispatchEvent(s)}}globalThis?.document?.addEventListener("click",e)}(t.element),new St("click",t,Et.Click,null,e)),Lt=(t,e)=>new St("clipboard",t,Et.Clipboard,null,e),Nt=(t,e)=>new St("drag",t,Et.Drag,null,e),Ut=(t,e)=>new St("focus",t,Et.Focus,null,e),qt=(t,e)=>new St("key",t,Et.Key,Ot,e),Zt=(t,e)=>new It("mouse",t,Et.Mouse,jt,e),Bt=(t,e)=>new It("ptr",t,Et.Ptr,At,e),Vt=(t,e)=>new St("wheel",t,Et.Wheel,null,e),Wt=(t,e)=>(function(t,{intersection:e=!0,resize:s=!0,threshold:r=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let o,a;const h=e=>{for(let s of e){const{width:e,height:r}=s.contentRect;t.dispatchEvent(new zt("resizeview",{width:e,height:r,entry:s}))}},c=n>0?Ft(h,n):h,l=e=>{for(let s of e){const e=s.isIntersecting?"enterview":"exitview";t.dispatchEvent(new zt(e,s))}},u=i>0?Ft(l,i):l;e&&(o=new IntersectionObserver(u,{threshold:r}),o.observe(t)),s&&(a=new ResizeObserver(c),a.observe(t))}(t.element),new St("view",t,Et.View,null,e)),Ht=(t,e)=>(function(t,e=50,s=100,r=500){let n=0,i=0,o=0,a=!1;function h(t){n=t.clientX,i=t.clientY,o=performance.now(),a=!0}function c(h){if(!a)return;a=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-o<=r&&(Math.abs(c)>=e&&Math.abs(l)<=s?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=s&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new $t(m,{direction:u,distX:c,distY:l,originalEvent:h}))}t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0})}(t.element),new St("swipe",t,Et.Swipe,null,e));class Gt extends St{constructor(t,e,s){super("custom",t,e,Kt,s)}_register_events(t){return super._register_events(t,null,null,!1),this}emit(t,e={}){const s=new CustomEvent(t,{detail:e,bubbles:!0,cancelable:!0});return this.targetElement.dispatchEvent(s),this}on(t,...e){return this.cache.options.hasOwnProperty(t)||this._register_events([t]),this.__onEvent(t,this.cache.options[t],{},...e),this}}function Kt(){}const Jt=(t,e,s)=>new Gt(t,e,s),Yt={ptr:Bt,mouse:Zt,key:qt,click:Dt,drag:Nt,clipboard:Lt,focus:Ut,wheel:Vt,view:Wt,swipe:Ht},Qt={on(t,...e){return this.events.custom||(this.events.custom=Jt(this)),this.events.custom.on(t,...e),this},emit(t,e={}){return this.events.custom||(this.events.custom=Jt(this)),this.events.custom.emit(t,e),this}};Object.entries(Et).forEach(([t,e])=>{const s=t.toLowerCase();e.forEach(t=>{const e=`on${t}`;Qt[e]=function(t){return this.events[s]||(this.events[s]=Yt[s](this)),this.events[s][e](t),this}})});var Xt=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var te=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const s=t[e];if(bt(s)){const t=s();Object.assign(this.element.style,{[e]:t.value}),t._subscribe(t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})})}else Object.assign(this.element.style,{[e]:s})}return this}});class ee{constructor(t,e){this.cache={category:e,target:t,listeners:{},currentEvent:null}}get element(){return this.cache.target.element}get currentEvent(){return this.cache.currentEvent}addListener(t,e){return this.cache.listeners[t]={paused:!1,callback:()=>{this.cache.listeners[t].paused||(this.cache.currentEvent=t,e.call(this,this))}},this.element.addEventListener(t,this.cache.listeners[t].callback),this}removeListener(t){return this.element.removeEventListener(t,this.cache.listeners[t].callback),this}pause(t){return this.cache.listeners[t].paused=!0,this}resume(t){return this.cache.listeners[t].paused=!1,this}}let se=class extends pt{constructor({element:t,name:e="",type:s="html",render:r=__Ziko__.__Config__.default.render}={}){super(),this.exp={events:{}},ft(this,dt,xt,Mt,te,Xt,Qt),t&&this.init(t,e,s,r)}_on(t,e,{details_setter:s,category:r="global"}={}){r&&!this.exp.events.hasOwnProperty(r)&&(this.exp.events[r]=new ee(this,r));const n=this.exp.events[r];n.addListener(t,e),s&&s.call(n)}_off(t,e="global"){this.exp.events[e].removeListener(t)}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}useClient(t){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register(()=>this),this.cache.isInteractive=!0),t&&this.element.setAttribute("data-hydration-directive",t),this}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}};function re(t){return"object"!=typeof t&&"function"!=typeof t||null===t}class ne extends se{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const ie=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],oe=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],ae=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],he=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return ie.includes(r)&&(s="html"),oe.includes(r)&&(s="svg"),ae.includes(r)&&(s="mathml"),(...t)=>0===t.length?new se({element:r,name:r,type:s}):["string","number"].includes(typeof t[0])||t[0]instanceof se||"function"==typeof t[0]&&t[0]().isStateGetter()?new se({element:r,name:r,type:s}).append(...t):new se({element:r,type:s}).setAttr(t.shift()).append(...t)}});function ce(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function le(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ue(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function me(t){return ue(-t)}class pe extends se{constructor({tag:t="div",orientation:e="h",order:s,w:r="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,s=1){return ce.call(this,s),this.style({alignItems:"number"==typeof t?ue.call(this,t):t,justifyContent:"number"==typeof e?me.call(this,e):e}),this}horizontal(t,e,s=1){return le.call(this,s),this.style({alignItems:"number"==typeof e?me.call(this,e):e,justifyContent:"number"==typeof t?ue.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class fe extends pt{constructor({element:t,name:e,type:s,render:r}){super({element:t,name:e,type:s,render:r})}}class de extends fe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unmount(),this.append(s)}catch(t){console.log({error:t})}})()}}class ge extends se{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class be extends se{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:s,attributes:r}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of r)n.setAttribute(t,e);return n.append(...s),globalThis.svg=e,globalThis.children=s,globalThis.attributes=r,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class we extends se{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter(t=>t!=this.current).forEach(t=>t.unmount()),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find(t=>t==this.key)??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const{PI:ye,sqrt:ve,cos:_e,sin:xe,acos:Me,pow:Ee}=Math,ke=t=>t,Ce=(t,e=7.5625,s=2.75)=>t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375;class Te{constructor(t,{ease:e=ke,step:s=50,t0:r=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=A(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#u(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#u(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#u(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class Se{constructor(t,e,s=1/0,r){this.ms=e,this.fn=t,this.count=s,this.frame=1,this.id=null,this.running=!1,r&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval(()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)},this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class Oe extends Se{constructor(t=1e3/60){super(t,()=>this._tick()),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class Ae{constructor(t=[],{repeat:e=1,loop:s=!1}={}){this.tasks=t,this.repeat=e,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map(({fn:t,delay:e=0})=>new Promise(async s=>{e>0&&await new Promise(t=>setTimeout(t,e)),this.onTask&&this.onTask(t),await t(),s()})));else{const{fn:e,delay:s=0}=t;s>0&&await new Promise(t=>setTimeout(t,s)),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class je{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:n,pauseTime:null,frame:0},n&&(s?this.startAfter(s):this.start(),r!==1/0&&this.stopAfter(r))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout(()=>this.start(),t),this}stopAfter(t=1e3){return setTimeout(()=>this.stop(),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}const Pe=(t,e=",")=>t.trim().trimEnd().split("\n").map(t=>t.split(e)),Ie=(t,e=",")=>{const[s,...r]=Pe(t,e);return r.map(t=>{const e={};return s.forEach((s,r)=>{e[s]=t[r]}),e})},Re=t=>t instanceof Array?[Object.keys(t[0]),...t.map(t=>Object.values(t))]:[Object.keys(t)],Fe=(t,e)=>Re(t).map(t=>t.join(e)).join("\n"),ze=(t,e=",")=>Fe(t instanceof Object?t:JSON.parse(t),e),$e=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach(t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=$e(t,`${e} `);s.push(...r)}else s.push(`${e}- ${t}`)});else for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];if("object"==typeof n&&null!==n){s.push(`${e}${r}:`);const t=$e(n,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${n}`)}return s},De=(t,e="")=>$e(t,e).join("\n"),Le=(t,e)=>De(t instanceof Object?t:JSON.parse(t),e),Ne=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof n?Ne(n,e+2):`${n}`,s+=`</${r}>`}return s.trim()},Ue=t=>(new XMLSerializer).serializeToString(t),qe=t=>btoa(Ue(t)),Ze=t=>"data:image/svg+xml;base64,"+qe(t),Be=t=>JSON.stringify(n(t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof y||t instanceof U?t.toString():t instanceof Array?We(t):void 0,t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Ve=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=Ve(s);t+1>e&&(e=t+1)}return e},We=t=>{let e=0;return function t(s){let r=Ve(s),n=0;return s.some(t=>Array.isArray(t))&&(e++,n=1),"["+s.map((r,n)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof y?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${n===s.length-1?"\n":""}`:r instanceof Object?Be(r):void 0)+`${" ".repeat((r+e+1)*n)}]`}(t)},He=(t,e=0)=>{t=Ge(t);let s="";const r=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){s+=`${r}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?s+=He({[t]:i[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}: ${i[t]};\n`;s+=`${r}}\n`}return s};function Ge(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,s)=>(e[s.trim()]=Ge(t[s]),e),Array.isArray(t)?[]:{})}class Ke{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.mount(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}}function Je(t){return/:\w+/.test(t)}class Ye extends Ke{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",yt("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach(t=>{!Je(t[0])&&t[1]?.isUIElement&&t[1].unmount()}),this}mount(t){const[e,s]=[...this.routes].find(e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t));let r;if(Je(e)){const n=function(t,e){const s=t.split("/"),r=e.split("/"),n={};if(s.length!==r.length)return n;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);r=s.call(this,n)}else s?.isUIElement&&s.mount(this.wrapper),"function"==typeof s&&(r=s());return r?.isUIElement&&r.mount(this.wrapper),r instanceof Promise&&r.then(t=>t.mount(this.wrapper)),globalThis.history.pushState({},"",t),this}}const Qe=({head:t,wrapper:e,target:s,routes:r})=>new Ye({head:t,wrapper:e,target:s,routes:r});function Xe(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=r.indexOf(n.at(-1));if(-1!==i){const t=r.slice(i+1),e=r.at(-1),n="index.js"===e||"index.ts"===e,o=s.some(t=>e===`.${t}`||e.endsWith(`.${t}`));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(o)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class ts{#m;#p=new Map;#f=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#m=new Worker(URL.createObjectURL(t)),this.#m.addEventListener("message",t=>{const{id:e,result:s,error:r}=t.data,n=this.#p.get(e);n&&(n(s,r),this.#p.delete(e))})}call(t,e,s=[],r=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#f;return this.#p.set(n,e),this.#m.postMessage({id:n,funStr:t.toString(),args:s,close:r}),this}terminate(){this.#m.terminate()}}class es{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`),this}once(t,e){const s=(...r)=>{this.off(t,s),e(...r)};return this.on(t,s)}off(t,e){const s=this.events[t];if(!s)return this;const r=s.indexOf(e);return-1!==r&&s.splice(r,1),this}emit(t,e){const s=this.events[t];return!!s&&([...s].forEach(s=>{try{s(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}}),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const ss=t=>new es(t);class rs{#d;#g;#b=null;constructor(t=[],e=()=>{}){this.#d=t,this.#g=e,this.#a()}#w(){return this.#d.some(({query:t})=>globalThis.matchMedia(t).matches)}#a(){this.#d.forEach(({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.#w();s.matches?(e(),this.#b=e):t||this.#b===this.#g||(this.#g(),this.#b=this.#g)};r(),s.addEventListener("change",r)})}}class ns{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=ss(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class is{constructor(t,{namespace:e="Ziko",ValidateCssProps:s=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=s,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(const s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}let{sqrt:os,cos:as,sin:hs,exp:cs,log:ls,cosh:us,sinh:ms}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,s,r){const n=r[0];if("number"==typeof n||0===r.length)return e.apply(s,r);if(n?.isComplex?.()){const{a:t,b:i,z:o,phi:a}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(os(o)*as(a/2),os(o)*hs(a/2));case"log":return h(ls(o),a);case"exp":return h(cs(t)*as(i),cs(t)*hs(i));case"cos":return h(as(t)*us(i),-hs(t)*ms(i));case"sin":return h(hs(t)*us(i),as(t)*ms(i));case"tan":{const e=as(2*t)+us(2*i);return h(hs(2*t)/e,ms(2*i)/e)}case"cosh":return h(us(t)*as(i),ms(t)*hs(i));case"sinh":return h(ms(t)*as(i),us(t)*hs(i));case"tanh":{const e=us(2*t)+as(2*i);return h(ms(2*t)/e,hs(2*i)/e)}default:return e.apply(s,r)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new Ke({head:t,wrapper:e,target:s}),t.Clock=Oe,t.CloneElement=t=>new t.__proto__.constructor,t.Complex=y,t.E=s,t.EPSILON=r,t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map(t=>t.split("/")),s=Math.min(...e.map(t=>t.length));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every(e=>e[t]===s||e[t].startsWith("[")))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),o=await i.default;Object.assign(r,{[Xe(e[n],s)]:o})}return Qe({target:document.body,routes:{"/":()=>{},...r},wrapper:he.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new pe(e).append(...t)},t.HTMLWrapper=t=>new ge(t),t.Matrix=U,t.PI=e,t.Random=w,t.SPA=Qe,t.SVGWrapper=t=>new be(t),t.Scheduler=(t,{repeat:e=null}={})=>new Ae(t,{repeat:e}),t.Suspense=(t,e)=>new de(t,e),t.Switch=({key:t,cases:e})=>new we(t,e),t.Tick=Se,t.TimeAnimation=Te,t.TimeLoop=je,t.TimeScheduler=Ae,t.UIElement=se,t.UIFlex=pe,t.UIHTMLWrapper=ge,t.UINode=et,t.UISVGWrapper=be,t.UISwitch=we,t.UIView=ne,t.UseRoot=is,t.UseThread=ts,t.Utils=tt,t.View=(...t)=>new ne(...t),t.ZikoApp=Ke,t.ZikoEvent=St,t.ZikoSPA=Ye,t.ZikoUISuspense=de,t.ZikoUIText=wt,t.abs=_,t.accum_prod=(...t)=>{let e,s=[],r=1,n=t.length;for(e=0;e<n;e++)r=l(r,t[e]),s.push(r);return s},t.accum_sum=d,t.acos=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.hypot(e+1,s),n=Math.hypot(e-1,s);return globalThis.Rp=r,globalThis.Rm=n,new t.constructor(Math.acos((r-n)/2),-Math.acosh((r+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)},...t),t.acosh=(...t)=>n(t=>t?.isComplex?k(t.clone().add(M(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8),...t),t.acot=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:s}=t;return new t.constructor(Math.atan(2*e/(e**2+(s-1)*(s+1)))/2,Math.log((e**2+(s-1)**2)/(e**2+(s+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)},...t),t.add=h,t.add_class=(t,e)=>t.element.className=t.element.className.replace(/\s+$/gi,"")+" "+e,t.add_vendor_prefix=function(t){const e=t.slice(0,1).toUpperCase()+t.slice(1),s=["Webkit","Moz","O","ms"];for(let t=0,r=s.length;t<r;t++){const r=s[t];if(void 0!==(globalThis?.document?.body).style[r+e])return r+e}return t},t.and=R,t.animation=(t,{ease:e,t0:s,t1:r,start:n,duration:i}={})=>new Te(t,{ease:e,t0:s,t1:r,start:n,duration:i}),t.apply_fun=i,t.arange=V,t.arc=t=>1-xe(Me(t)),t.arr2str=We,t.asin=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.hypot(e+1,s),n=Math.hypot(e-1,s);return new t.constructor(Math.asin((r-n)/2),Math.acosh((r+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)},...t),t.asinh=(...t)=>n(t=>t?.isComplex?k(t.clone().add(M(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8),...t),t.atan=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:s}=t;return new t.constructor(Math.atan(2*e/(1-e**2-s**2))/2,Math.log((e**2+(1+s)**2)/(e**2+(1-s)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)},...t),t.atan2=j,t.atanh=(...t)=>n(t=>+Math.atanh(t).toFixed(8),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.bind_click_event=Dt,t.bind_clipboard_event=Lt,t.bind_drag_event=Nt,t.bind_focus_event=Ut,t.bind_key_event=qt,t.bind_mouse_event=Zt,t.bind_pointer_event=Bt,t.bind_swipe_event=Ht,t.bind_touch_event=(t,e)=>new It("touch",t,Et.Touch,Pt,e),t.bind_view_event=Wt,t.bind_wheel_event=Vt,t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let s,r=1;for(s=0;s<e;s++)r=r*(t-s)/(s+1);return r},t.call_with_optional_props=t=>(...e)=>{const s=e[0];return s?.isUIElement?.()||re(s)?new t({},...e):new t(s,...e.slice(1))},t.cartesianProduct=Y,t.cbrt=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8),...t),t.ceil=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t),...t),t.clamp=O,t.clock=t=>new Oe(t),t.cloneUI=t=>Object.assign(Object.create(Object.getPrototypeOf(t)),t),t.complex=v,t.cos=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8),...t),t.cosh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8),...t),t.coth=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.sinh(e)**2*Math.cos(s)**2+Math.cosh(e)**2*Math.sin(s)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/r,-Math.sin(s)*Math.cos(s)/r).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)},...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n(t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:s,b:r}=e,{z:n,phi:i}=t,o=Math.hypot(s,r),a=Math.exp((Math.log(n)*s+i*r)/o),h=(i*s-Math.log(n)*r)/o;return new e.constructor(a*Math.cos(h),a*Math.sin(h)).toFixed(8)},...t)},t.csv2arr=Pe,t.csv2json=(t,e=",")=>JSON.stringify(Ie(t,e)),t.csv2matrix=(t,e=",")=>new U(Pe(t,e)),t.csv2object=Ie,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter(t=>t);let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");n.push(`(${e})`)}return r+n.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout(()=>t(...s),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[s,r]=t.split("=");e[s]=r}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,s={},{mode:r="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(s)]}constructor(){super(),this.attachShadow({mode:r}),this.props={},this.mask={...s}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach(t=>t.mount(this.shadowRoot)):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,s){Object.assign(this.props,{[t]:this.mask[t].type(s)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n(t=>t*Math.PI/180,...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=u,t.elastic=t=>-2*Ee(2,10*(t-1))*_e(20*ye*t/3*t),t.event_controller=kt,t.exp=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8),...t),t.floor=C,t.fract=(...t)=>n(t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t),...t),t.geomspace=G,t.getEvent=Tt,t.hypot=(...t)=>{const e=t.find(t=>t.isComplex?.());if(e){const s=t.map(t=>t.isComplex?.()?t:new e.constructor(t,0));return Math.hypot(...s.map(t=>t.z))}return Math.hypot(...t)},t.inRange=K,t.in_back=(t,e=1.70158,s=e+1)=>s*Ee(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,s=2.75)=>1-Ce(1-t,e,s),t.in_circ=t=>1-ve(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*ye/3)=>0===t?0:1===t?1:-Ee(2,10*t-10)*xe((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,s=1.525*e)=>t<.5?Ee(2*t,2)*(2*(s+1)*t-s)/2:(Ee(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.in_out_bounce=(t,e=7.5625,s=2.75)=>t<.5?Ce(1-2*t,e,s)/2:Ce(2*t-1,e,s)/2,t.in_out_circ=t=>t<.5?(1-ve(1-(2*t)**2))/2:(ve(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*ye/4.5)=>0===t?0:1===t?1:t<.5?-Ee(2,20*t-10)*xe((20*t-11.125)*e)/2:Ee(2,-20*t+10)*xe((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(_e(ye*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-_e(t*ye/2),t.isApproximatlyEqual=J,t.isPrimitive=re,t.isStateGetter=bt,t.json2arr=t=>Re(t instanceof Object?t:JSON.parse(t)),t.json2css=He,t.json2csv=ze,t.json2csvFile=(t,e)=>{const s=ze(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=Ne,t.json2xmlFile=(t,e)=>{const s=Ne(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=Le,t.json2ymlFile=(t,e)=>{const s=Le(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=S,t.linear=ke,t.linkStyle=function(t){const e=document?.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),document.head.appendChild(e)},t.linspace=W,t.ln=k,t.logspace=H,t.loop=(t,e={})=>new je(t,e),t.map=A,t.mapfun=n,t.matrix=(t,e,s)=>new U(t,e,s),t.matrix2=(...t)=>new U(2,2,t),t.matrix3=(...t)=>new U(3,3,t),t.matrix4=(...t)=>new U(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=p,t.median=t=>g(t,50),t.min=(...t)=>Math.min(...t),t.modulo=m,t.mul=l,t.nand=(...t)=>P(R(...t)),t.nor=(...t)=>P(F(...t)),t.norm=T,t.normalize_css_value=t=>"number"==typeof t?t+"px":t,t.nthr=E,t.nums=B,t.obj2str=Be,t.ones=Z,t.or=F,t.out_back=(t,e=1.70158,s=e+1)=>1+s*Ee(t-1,3)+e*Ee(t-1,2),t.out_bounce=Ce,t.out_circ=t=>ve(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*ye/3)=>0===t?0:1===t?1:Ee(2,-10*t)*xe((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>xe(t*ye/2),t.percentile=g,t.pgcd=Q,t.pow=x,t.ppcm=X,t.rad2deg=(...t)=>n(t=>t/Math.PI*180,...t),t.remove_class=(t,e)=>t.element.className=t.element.className.replace(e,""),t.round=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t),...t),t.script=function(t){const e=document?.createElement("script");e.setAttribute("src",t),document.head.appendChild(e)},t.sec=(...t)=>n(t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8)),...t),t.sig=(...t)=>n(t=>1/(1+Math.exp(-t)).toFixed(8),...t),t.sign=(...t)=>n(t=>{if(t.isComplex?.()){const{z:e,phi:s}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:s})}return Math.sign(t)},...t),t.sin=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8),...t),t.sinh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8),...t),t.sleep=t=>new Promise(e=>setTimeout(e,t)),t.sqrt=M,t.std=(...t)=>Math.sqrt(f(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.style=(t,e)=>{t&&Object.assign(t.style,e)},t.sub=c,t.svg2ascii=qe,t.svg2img=(t,e=!0)=>he.img(Ze(t)).mount(e),t.svg2imgUrl=Ze,t.svg2str=Ue,t.tags=he,t.tan=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)},...t),t.tanh=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)},...t),t.text=yt,t.throttle=Ft,t.tick=(t,e,s=1/0,r=!0)=>new Se(t,e,s,r),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.timeout=function(t,e){let s;const r=new Promise(r=>{s=setTimeout(()=>{e&&e(),r()},t)});return{id:s,clear:()=>clearTimeout(s),promise:r}},t.toggle_event_listener=Ct,t.trunc=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t),...t),t.useDerived=function(t,e){let s=t(...e.map(t=>t().value));const r=new Set;return e.forEach(n=>{n()._subscribe(()=>{{const n=t(...e.map(t=>t().value));n!==s&&(s=n,r.forEach(t=>t(s)))}})}),()=>({value:s,isStateGetter:()=>!0,_subscribe:t=>r.add(t)})},t.useEventEmitter=ss,t.useIPC=ht,t.useLocaleStorage=(t,e,s=!0)=>new ct(localStorage,t,e,s),t.useMediaQuery=(t,e)=>new rs(t,e),t.useReactive=t=>n(t=>{const e=gt(t);return{get:e[0],set:e[1]}},t),t.useRoot=(t,e={})=>new is(t,e),t.useSessionStorage=lt,t.useState=gt,t.useThread=(t,e,s=[],r=!0)=>(new ts).call(t,e,s,r),t.useTitle=(t,e=!0)=>new ns(t,e),t.variance=f,t.wait=t=>new Promise(e=>setTimeout(e,t)),t.waitElm=t=>new Promise(e=>{if(t)return e(t);const s=new MutationObserver(()=>{t&&(e(t),s.disconnect())});s.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElm=t=>new Promise(e=>{if(t.element)return e(t.element);const s=new MutationObserver(()=>{t.element&&(e(t.element),s.disconnect())});s.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElmSync=(t,e=2e3)=>{const s=Date.now();for(;Date.now()-s<e;)if(t.element)return t.element},t.xnor=(...t)=>P(z(...t)),t.xor=z,t.zeros=q});
9
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,function(t){"use strict";const{PI:e,E:r}=Math,s=Number.EPSILON,n=(t,...e)=>{const r=e.map(e=>{return"object"!=typeof(r=e)&&"function"!=typeof r||null===r||e?.__mapfun__?t(e):e instanceof Array?e.map(e=>n(t,e)):ArrayBuffer.isView(e)?e.map(e=>t(e)):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map(e=>[e[0],n(t,e[1])])):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map(e=>[e[0],n(t,e[1])])):void 0;var r});return 1==r.length?r[0]:r},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e,r)=>{if("number"==typeof e){if("number"==typeof r)switch(t){case"add":return e+r;case"sub":return e-r;case"mul":return e*r;case"div":return e/r;case"modulo":return e%r}return r?.isComplex?.()&&(e=new r.constructor(e,0)),r?.isMatrix?.()&&(e=r.constructor.nums(r.rows,r.cols,e)),e[t](r)}if(e?.isComplex?.()){if("number"==typeof r||r?.isComplex?.())return e.clone()[t](r);if(r?.isMatrix?.())return(e=r.constructor.nums(r.rows,r.cols,e)).clone()[t](r)}if(e?.isMatrix?.())return e.clone()[t](r)},h=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=o("add",r,e[t]);return r},l=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=o("sub",r,e[t]);return r},c=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=o("mul",r,e[t]);return r},u=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=o("div",r,e[t]);return r},m=(t,...e)=>{let r=t;for(let t=0;t<e.length;t++)r=o("modulo",r,e[t]);return r},p=(...t)=>t.reduce((t,e)=>t+e)/t.length,f=(...t)=>{const e=t.length;if(0===e)return NaN;const r=p(...t);return t.reduce((t,e)=>t+(e-r)**2,0)/e},d=(...t)=>{let e,r=[],s=0,n=t.length;for(e=0;e<n;e++)s=h(s,t[e]),r.push(s);return r},g=(t,e)=>{if(0===t.length)return NaN;let r=[...t].sort((t,e)=>t-e),s=e/100*(r.length-1),n=Math.floor(s),i=s-n;return n===r.length-1?r[n]:r[n]*(1-i)+r[n+1]*i};class w{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,r)=>{const s=parseInt(t,e);if(Number.isNaN(s))throw new TypeError("Invalid value for the given base");return s.toString(r)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,r,s]=Array.from({length:4},()=>this.int(255).toString(16).padStart(2,"0"));return`#${t}${e}${r}${s}`},rgb:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgb(${t}, ${e}, ${r})`},rgba:()=>{const[t,e,r]=Array.from({length:3},()=>this.int(255));return`rgba(${t}, ${e}, ${r}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,r,s)=>Array.from({length:e},()=>t.int(r,s)),float:(e,r,s)=>Array.from({length:e},()=>t.float(r,s)),char:(e,r=!1)=>Array.from({length:e},()=>t.char(r)),bool:e=>Array.from({length:e},()=>t.bool()),bin:e=>Array.from({length:e},()=>t.bin()),oct:e=>Array.from({length:e},()=>t.oct()),dec:e=>Array.from({length:e},()=>t.dec()),hex:e=>Array.from({length:e},()=>t.hex()),get color(){return{hex:e=>Array.from({length:e},()=>t.color.hex()),hexa:e=>Array.from({length:e},()=>t.color.hexa()),rgb:e=>Array.from({length:e},()=>t.color.rgb()),rgba:e=>Array.from({length:e},()=>t.color.rgba()),hsl:e=>Array.from({length:e},()=>t.color.hsl()),hsla:e=>Array.from({length:e},()=>t.color.hsla()),gray:e=>Array.from({length:e},()=>t.color.gray())}},choice:(e,r,s)=>Array.from({length:e},()=>t.choice(r,s))}}static shuffle(t){return[...t].sort(()=>.5-Math.random())}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const r=d(...e).map(t=>100*t),s=new Array(100);s.fill(t[0],0,r[0]);for(let e=1;e<t.length;e++)s.fill(t[e],r[e-1],r[e]);return s[this.int(s.length)]}}globalThis.Random=w;class y{constructor(t=0,e=0){[this.a,this.b]=((t,e,r)=>{let s,n;return e instanceof t?(s=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(s=e.a,n=e.b):"a"in e&&"z"in e?(s=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(s=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,s=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=r,s=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(s=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof r&&(s=+e.toFixed(32),n=+r.toFixed(32)),[s,n]})(y,t,e)}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:r}=t;return"complex"===r&&"a"in e&&"b"in e?new y(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new y(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new y(0,0)}static fromPolar(t,e){return new y(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new y(...w.sample.int(2,t,e)),float:(t,e)=>new y(...w.sample.float(2,t,e))}}static twiddle(t,e){const r=-2*Math.PI*t/e;return new y(Math.cos(r),Math.sin(r))}get conj(){return new y(this.a,-this.b)}get inv(){return new y(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new y(t[s],0)),e*=t[s].z,r+=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}div(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new y(t[s],0)),e/=t[s].z,r-=t[s].phi;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:r}=this;for(let s=0;s<t.length;s++)"number"==typeof t[s]&&(t[s]=new y(t[s],0)),e*=Math.exp(t[s].a*Math.log(e)-t[s].b*r),r+=t[s].b*Math.log(e)+t[s].a*r;return this.a=e*Math.cos(r),this.b=e*Math.sin(r),this}get expo(){return[this.z,this.phi]}nthr(t=2){return _({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return _(this.z,this.phi)}get cos(){return _(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return _(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return _(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const _=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map((r,s)=>_(t[s],e[s]));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map((r,s)=>_(t.arr[s],e.arr[s]));return new t.constructor(t.rows,t.cols,...r)}return new y(t,e)},x=(...t)=>n(t=>t.isComplex?.()?t.z:Math.abs(t),...t),v=(...t)=>{const e=t.pop();return n(t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e),...t)},M=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?_(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8),...t),k=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?_(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8),...t)},C=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8),...t),T=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t),...t),E=(t,e,r)=>i(t,t=>e!==r?(t-e)/(r-e):0),S=(t,e,r)=>i(t,t=>(r-e)*t+e),A=(t,e,r)=>i(t,t=>Math.min(Math.max(t,e),r)),j=(t,e,r,s,n)=>i(t,t=>S(E(t,e,r),s,n)),O=(t,e,r=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n(t=>O(t,e,r),...t);if(e instanceof Array&&!(t instanceof Array))return n(e=>O(t,e,r),...e);if(t instanceof Array&&e instanceof Array)return t.map((t,s)=>O(t,e[s],r));const s=Math.atan2(t,e);return r?s:180*s/Math.PI},I=t=>t.isComplex?.()?new t.constructor(I(t.a),I(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(I)):+!t,R=(t,e)=>{if(t.every(t=>t.isComplex?.())){const r=t.map(t=>t.a),s=t.map(t=>t.b);return new t[0].constructor(e(...r),e(...s))}if(t.every(t=>t.isMatrix?.())){if(!t.every(e=>e.rows===t[0].rows&&e.cols===t[0].cols))return TypeError("All matrices must have the same shape");const{rows:r,cols:s}=t[0],n=Array.from({length:r},(r,n)=>Array.from({length:s},(r,s)=>e(...t.map(t=>t.arr[n][s]))));return new t[0].constructor(n)}return null},F=(...t)=>{const e=R(t,F);return null!==e?e:t.reduce((t,e)=>t&e,1)},P=(...t)=>{const e=R(t,P);return null!==e?e:t.reduce((t,e)=>t|e,0)},z=(...t)=>{const e=R(t,z);return null!==e?e:t.reduce((t,e)=>t^e,0)},$=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let r=t.arr.length;r<e;r++)delete t[r]};function D(t,e){var r=[];for(let e=0;e<t.length;e++)r.push(t[e].slice(0));r.splice(0,1);for(let t=0;t<r.length;t++)r[t].splice(e,1);return r}function U(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let r=t.arr;for(let s=0;s<t.rows;s++)for(let n=t.cols;n<t.cols+e.cols;n++)r[s][n]=e.arr[s][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,r.flat(1))}function L(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let r=t.arr;for(let s=t.rows;s<t.rows+e.rows;s++){r[s]=[];for(let n=0;n<t.cols;n++)r[s][n]=e.arr[s-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,r.flat(1))}class N{constructor(t,e,r=[]){[this.rows,this.cols,this.arr]=((t,e,r,s)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,r=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(r)),n=0;n<r;n++)i[t][n]=s[t*r+n],null==s[t*r+n]&&(i[t][n]=0);return[e,r,i]}arr=e.arr,r=(e=e.rows).cols})(N,t,e,r),$(this)}isMatrix(){return!0}clone(){return new N(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n(t=>t?.isComplex?.()?t:new y(t,0),...this.arr),$(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){r<0&&(r=this.rows+r),s<0&&(s=this.cols+s);let n=r-t,i=s-e,o=new Array(i);for(let r=0;r<n;r++){o[r]=[];for(let s=0;s<i;s++)o[r][s]=this.arr[r+t][s+e]}return this.arr=o,$(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!==this.rows*this.cols)throw Error("size not matched");const r=this.rows;return Object.assign(this,new N(t,e,this.arr.flat(1))),$(r),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let r=0;r<this.arr.length;r++)t[e][r]=this.arr[r][e]}return new N(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some(t=>t?.isMatrix?.())?void console.warn("Tensors are not completely supported yet ..."):l(c(e[0][0],e[1][1]),c(e[0][1],e[1][0]));for(var r=0,s=0;s<e.length;s++){const n=h(c(v(-1,s),c(e[0][s],t(D(e,s)))));r=h(r,n)}return r}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var r=0,s=0,n=0,i=e.length,o=0,a=[],h=[];for(r=0;r<i;r+=1)for(a[a.length]=[],h[h.length]=[],n=0;n<i;n+=1)a[r][n]=r==n?1:0,h[r][n]=e[r][n];for(r=0;r<i;r+=1){if(0==(o=h[r][r])){for(s=r+1;s<i;s+=1)if(0!=h[s][r]){for(n=0;n<i;n++)o=h[r][n],h[r][n]=h[s][n],h[s][n]=o,o=a[r][n],a[r][n]=a[s][n],a[s][n]=o;break}if(0==(o=h[r][r]))return}for(n=0;n<i;n++)h[r][n]=h[r][n]/o,a[r][n]=a[r][n]/o;for(s=0;s<i;s++)if(s!=r)for(o=h[s][r],n=0;n<i;n++)h[s][n]-=o*h[r][n],a[s][n]-=o*a[r][n]}return new t.constructor(a)}}(this)}static eye(t){let e=new N(t,t);for(let r=0;r<t;r++)for(let s=0;s<t;s++)e.arr[r][s]=r===s?1:0;return e}static zeros(t,e){let r=new N(t,e);for(let n=0;n<t;n++)for(var s=0;s<e;s++)r.arr[n][s]=0;return r}static ones(t,e){let r=new N(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=1;return r}static nums(t,e,r){let s=new N(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)s.arr[n][t]=r;return s}static get random(){return{int:(t,e,r,s)=>new N(t,e,w.sample.int(t*e,r,s)),float:(t,e,r)=>new N(t,e,w.sample.float(t*e,r,b))}}get range(){return{map:(t,e,r,s)=>(this.arr=j(this.arr,t,e,r,s),this),norm:(t,e)=>(this.arr=E(this.arr,t,e),this),lerp:(t,e)=>(this.arr=S(this.arr,t,e),this),clamp:(t,e)=>(this.arr=A(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce((t,e)=>U(t,e));return Object.assign(this,e),$(this),this}vstack(...t){const e=[this,...t].reduce((t,e)=>L(t,e));return Object.assign(this,e),$(this),this}hqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>U(t,e));return Object.assign(this,e),$(this),this}vqueue(...t){const e=[this,...t].reverse().reduce((t,e)=>L(t,e));return Object.assign(this,e),$(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new N(this.rows,this.cols,e)}mapRows(t=()=>{}){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=()=>{}){const e=this.arr.flat(1).sort(t);return new N(this.rows,this.cols,e)}shuffle(){return this.sort(()=>.5-Math.random())}sortRows(t=()=>{}){return this.arr=this.arr.map(e=>e.sort(t)),this}shuffleRows(){return this.sortRows(()=>.5-Math.random())}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols(()=>.5-Math.random())}reduce(t,e){const r=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new N([[r]])}reduceRows(t,e){const r=e?this.arr.map(r=>r.reduce(t,e)):this.arr.map(e=>e.reduce(t));return new N(1,this.cols,r)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map(e=>e.some(e=>t(e))),r=[];let s;for(s=0;s<e.length;s++)e[s]&&r.push(this.arr[s]);return new N(r)}filterCols(t){const e=this.T.filterRows(t);return new N(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map(e=>e.every(t))}everyCol(t){return this.T.arr.map(e=>e.every(t))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map(e=>e.some(t))}someCol(t){return this.T.arr.map(e=>e.some(t))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let r=e+1;r<t;r++)if(this.arr[e][r]!==-this.arr[r][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r]||0!==this.arr[r][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,r=[];for(let s=0;s<t;s++){r[s]=[];for(let n=0;n<t;n++){let i=0;for(let r=0;r<t;r++)i+=e[s][r]*e[r][n];r[s][n]=i}}for(let s=0;s<t;s++)for(let n=0;n<t;n++)if(r[s][n]!==e[s][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let r=e+1;r<t;r++)if(0!==this.arr[e][r])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let r=0;r<this.rows;r++)this.arr[e][r]=+this.arr[e][r].toFixed(t);return this}splice(t,e,r,...s){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}#t(t,...e){for(let s=0;s<e.length;s++){("number"==typeof e[s]||e[s]?.isComplex?.())&&(e[s]=N.nums(this.rows,this.cols,e[s]));for(let n=0;n<this.rows;n++)for(var r=0;r<this.cols;r++)this.arr[n][r]=t(this.arr[n][r],e[s].arr[n][r])}return new N(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(h,...t)}sub(...t){return this.#t(l,...t)}mul(...t){return this.#t(c,...t)}div(...t){return this.#t(u,...t)}modulo(...t){return this.#t(m,...t)}dot(t){for(var e=[],r=0;r<this.arr.length;r++){e[r]=[];for(var s=0;s<t.arr[0].length;s++){e[r][s]=0;for(var n=0;n<this.arr[0].length;n++)e[r][s]=h(e[r][s],c(this.arr[r][n],t.arr[n][s]))}}return new N(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),r=this.clone();for(let s=0;s<t-1;s++)r=r.dot(e);return r}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=h(t,this.arr[e][r]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t=c(t,this.arr[e][r]);return t}hasComplex(){return this.arr.flat(1/0).some(t=>t instanceof y)}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new N(t.length,1,t)}serialize(){const t=n(t=>t.serialize?.()||t,...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:r}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:s}=r;return s=n(t=>{if("string"==typeof t){const e=JSON.parse(t),{type:r}=e;if("complex"===r)return y.deserialize(e)}return t},...s),new N(s)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map(t=>[...t].reverse()),$(this),this}flipeV(){return this.arr=this.arr.reverse(),$(this),this}}const q=t=>new Array(t).fill(0),Z=t=>new Array(t).fill(1),B=(t,e)=>new Array(e).fill(t),G=(t,e,r,s=!1)=>{let n=[];if(t<e)for(let i=t;s?i<=e:i<e;i+=r)n.push(10*i/10);else for(let i=t;s?i>=e:i>e;i-=r)n.push(10*i/10);return n},H=(t,e,r=x(e-t)+1,s=!0)=>{if(Math.floor(r)===r){if([t,e].every(t=>"number"==typeof t)){const[o,a]=[t,e].sort((t,e)=>e-t);var n=[];let h;h=s?(o-a)/(r-1):(o-a)/r;for(var i=0;i<r;i++)t<e?n.push(a+h*i):n.push(o-h*i);return n}if([t,e].some(t=>t.isComplex?.())){const n=new r.constructor(t),i=new r.constructor(e);r=r||Math.abs(n.a-i.a)+1;const o=H(n.a,i.a,r,s),a=H(n.b,i.b,r,s);let h=new Array(r).fill(null);return h=h.map((t,e)=>new t.constructor(o[e],a[e])),h}}},V=(t,e,s=e-t+1,n=r,i=!0)=>H(t,e,s,i).map(t=>v(n,t)),W=(t,e,r=x(e-t)+1,s=!0)=>{if(Math.floor(r)===r){if([t,e].every(t=>"number"==typeof t)){const[n,i]=[t,e].sort((t,e)=>e-t);let o;o=k(n/i,s?r-1:r);const a=[i];for(let t=1;t<r;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some(t=>t.isComplex?.())){const n=new r.constructor(t),i=new r.constructor(e);let o;r=r||Math.abs(n.a-i.a)+1,o=k(i.div(n),s?r-1:r);const a=[n];for(let t=1;t<r;t++)a.push(c(a[t-1],o));return a}}},K=(t,e,r)=>{const[s,n]=[Math.min(e,r),Math.max(e,r)];return t>=s&&t<=n},J=(t,e,r=1e-4)=>Math.abs(t-e)<=r,Q=(t,e)=>t.reduce((t,r)=>[...t,...e.map(t=>[r,t])],[]),Y=(t,e)=>{let r,s=1;if(t==T(t)&&e==T(e)){for(r=2;r<=t&&r<=e;++r)t%r==0&&e%r==0&&(s=r);return s}console.log("error")},X=(t,e)=>{let r;if(t==T(t)&&e==T(e)){for(r=t>e?t:e;r%t!=0||r%e!=0;)++r;return r}console.log("error")},tt={zeros:q,ones:Z,nums:B,arange:G,linspace:H,logspace:V,geomspace:W,cartesianProduct:Q,ppcm:X,pgcd:Y,inRange:K,isApproximatlyEqual:J};class et{constructor(t){this.cache={node:t}}isUINode(){return!0}get node(){return this.cache.node}}class rt extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find(e=>e.element.id===t)}getItemsByTagName(t){return this.filter(e=>e.element.tagName.toLowerCase()===t.toLowerCase())}getElementsByClassName(t){return this.filter(e=>e.element.classList?.contains(t))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find(t=>t.element===e)||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map(t=>this.find(e=>e.element===t)).filter(Boolean)}}const st=new rt,nt={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),r=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=r[t]},init:()=>{},renderingMode:"spa",isSSC:!1},it={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},ot={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class at{#e;#r;#s;#n;#i;#o;constructor(t=""){this.#e=new BroadcastChannel(t),this.#r=new Map,this.#s=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#o=new Set,this.#e.addEventListener("message",t=>{const{last_sent_event:e,userId:r,eventData:s,rooms:n}=t.data;if(r===this.#n)return;if(n&&n.length&&!n.some(t=>this.#o.has(t)))return;this.#i.add(r),this.#r=new Map(s);const i=this.#s.get(e);i&&i.forEach(({fn:t,rooms:r})=>{r&&0!==r.length&&n&&!n.some(t=>r.includes(t))||t(this.#r.get(e))})})}emit(t,e,r){return this.#r.set(t,e),"string"==typeof r&&(r=[r]),this.#e.postMessage({eventData:Array.from(this.#r.entries()),last_sent_event:t,userId:this.#n,rooms:r&&r.length?r:void 0}),this}on(t,e=console.log,r){return this.#s.has(t)||this.#s.set(t,[]),"string"==typeof r&&(r=[r]),this.#s.get(t).push({fn:e,rooms:r}),this}off(t,e){return this.#s.has(t)?(this.#s.set(t,this.#s.get(t).filter(t=>t.fn!==e)),this):this}once(t,e,r){const s=r=>{e(r),this.off(t,s)};return this.on(t,s,r),this}join(...t){return t.forEach(t=>this.#o.add(t)),this}leave(...t){return t.length?t.forEach(t=>this.#o.delete(t)):this.#o.clear(),this}close(){return this.#e.close(),this}}const ht=t=>new at(t);class lt{constructor(t,e,r,s=!0){this.cache={storage:t,globalKey:e,channel:s?ht(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#a(r,s)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items;this.cache.oldItemKeys.forEach(t=>delete this[t]);for(const e in t)this[e]=t[e],this.cache.oldItemKeys.add(e)}#a(t,e){if(e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",()=>this.#h()),t)if(this.cache.storage.getItem(this.cache.globalKey)){const t=this.items;Object.keys(t).forEach(t=>this.cache.oldItemKeys.add(t)),this.#h()}else this.set(t);else this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t}),this}remove(...t){const e={...this.items};return t.forEach(t=>{delete e[t],delete this[t],this.cache.oldItemKeys.delete(t)}),this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.cache.oldItemKeys.forEach(t=>delete this[t]),this.cache.oldItemKeys.clear(),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}const ct=(t,e,r=!0)=>new lt(sessionStorage,t,e,r);var ut={store:new Map,index:0,session_storage:null,register:function(t){if(!(void 0).SSR&&(void 0).DEV){this.session||(this.session_storage=ct("ziko-state",{}));const e=this.session_storage.get(this.index);e?t.value=e:this.session_storage.add({[this.index]:t.value})}this.store.set(this.index++,t)},update:function(t,e){!(void 0).SSR&&(void 0).DEV&&this.session_storage.add({[t]:e})}};function mt(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:st,__HYDRATION__:it,__State__:ut,__Config__:nt,__CACHE__:ot,__PROVIDERS__:{}},t=__Ziko__,Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[r,s]=t.split("=");e[r]=s}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}))}mt();class pt extends et{constructor(){super()}init(t,e,r,s){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(r){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.items=new rt,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&s&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function ft(t,...e){e.forEach(e=>function(t,e){const r=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(r)){const s=r[e];"get"in s||"set"in s||"function"!=typeof s.value?Object.defineProperty(Object.getPrototypeOf(t),e,s):"function"==typeof s.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,s))}}(t,e))}var dt=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout(()=>this.mount(t,0),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout(()=>this.unmount(0),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function gt(t){const{store:e,index:r}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});let s=e.get(r);return[function(){return{value:s.value,isStateGetter:()=>!0,_subscribe:t=>s.subscribers.add(t)}},function(t){s.paused||("function"==typeof t&&(t=t(s.value)),t!==s.value&&(s.value=t,s.subscribers.forEach(t=>t(s.value)),__Ziko__.__State__.update(r,t)))},{pause:()=>{s.paused=!0},resume:()=>{s.paused=!1},clear:()=>{s.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(s.value)),s.value=t,s.subscribers.forEach(t=>t(s.value))},getSubscribers:()=>new Set(s.subscribers)}]}globalThis.__Ziko__||mt();const bt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),wt=(t="")=>t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase()),yt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};function _t(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=yt(t)?wt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(bt(e)){e()._subscribe(e=>this.element?.setAttribute(t,e),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var xt=Object.freeze({__proto__:null,_set_attrs_:_t,getAttr:function(t){return t=yt(t)?wt(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(t,e){if(t instanceof Object){const[r,s]=[Object.keys(t),Object.values(t)];for(let t=0;t<r.length;t++)s[t]instanceof Array&&(e[t]=s[t].join(" ")),_t.call(this,r[t],s[t])}else e instanceof Array&&(e=e.join(" ")),_t.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});class vt extends et{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const Mt=(...t)=>new vt(...t);async function kt(t,e,...r){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let s=0;s<r.length;s++){if(["number","string"].includes(typeof r[s])&&(r[s]=Mt(r[s])),r[s]instanceof Function){const t=r[s]();t.isStateGetter&&(r[s]=Mt(t.value),t._subscribe(t=>r[s].element.textContent=t,r[s]))}if("function"==typeof globalThis?.Node&&r[s]instanceof globalThis?.Node&&(r[s]=new this.constructor(r[s])),r[s]?.isUINode)r[s].cache.parent=this,this.element?.[t](r[s].element),r[s].target=this.element,this.items[e](r[s]);else if(r[s]instanceof Promise){const n=await r[s];n.cache.parent=this,this.element?.[t](n.element),n.target=this.element,this.items[e](n)}else r[s]instanceof Object&&(r[s]?.style&&this.style(r[s]?.style),r[s]?.attr&&Object.entries(r[s].attr).forEach(t=>this.setAttr(""+t[0],t[1])))}return this.maintain(),this}var Ct=Object.freeze({__proto__:null,__addItem__:kt,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return kt.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.element?.before(t),this},clear:function(){return this?.items?.forEach(t=>t.unmount()),this.element.innerHTML="",this},insertAt:function(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let r=0;r<e.length;r++)["number","string"].includes(typeof e[r])&&(e[r]=Mt(e[r])),this.element?.insertBefore(e[r].element,this.items[t].element),this.items.splice(t,0,e[r]);return this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter(e=>e!==t)};for(let r=0;r<t.length;r++)e(t[r]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});var Tt=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var Et=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:r=1,easing:s="ease"}={}){return this.element?.animate(t,{duration:e,iterations:r,easing:s}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const r=t[e];if(bt(r)){const t=r();Object.assign(this.element.style,{[e]:t.value}),t._subscribe(t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})})}else Object.assign(this.element.style,{[e]:r})}return this}});class St extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}const At="click",jt={onClick(t){this._on("click",t,{category:At})},onDblClick(t){this._on("dblclick",t,{category:At})},onClickAway(t){!function(t){function e(e){if(!t.contains(e.target)){const r=new St(e,t);t.dispatchEvent(r)}}globalThis?.document?.addEventListener("click",e)}(this.element),this._on("clickaway",t,{category:At})}},Ot=(t,e=!1)=>{const r=t.element.getBoundingClientRect(),s=t.event;let n=s?.clientX-r.left|0,i=s?.clientY-r.top|0;if(e){const e=t.element.clientWidth,r=t.element.clientHeight;n=+(n/e*2-1).toFixed(8),i=+(i/r*-2+1).toFixed(8)}return{x:n,y:i}},It="ptr",Rt={onPtrDown(t,e=!1){this._on("pointerdown",t,{category:It,details_setter:t=>{const{x:r,y:s}=Ot(t,e);t.dx=r,t.dy=s,t.isDown=!0,t.isDragging=t.isMoving??!1}})},onPtrMove(t,e=!1){this._on("pointermove",t,{category:It,details_setter:t=>{const{x:r,y:s}=Ot(t,e);t.mx=r,t.my=s,t.isMoving=!0,t.isDragging=t.isDown??!1}})},onPtrUp(t,e=!1){this._on("pointerup",t,{category:It,details_setter:t=>{const{x:r,y:s}=Ot(t,e);t.ux=r,t.uy=s,t.isDown=!1,t.isMoving=!1,t.isDragging=!1}})}},Ft="key",Pt={onKeyDown(t){this._on("keydown",t,{category:Ft,details_setter:t=>{t.kd=t.event.key}})},onKeyPress(t){this._on("keypress",t,{category:Ft,details_setter:t=>{t.kp=t.event.key}})},onKeyUp(t){this._on("keydown",t,{category:Ft,details_setter:t=>{t.ku=t.event.key}})}};class zt{constructor(t,e){this.cache={category:e,target:t,listeners:{},currentEvent:null,event:null}}get event(){return this.cache.event}get element(){return this.cache.target.element}get currentEvent(){return this.cache.currentEvent}addListener(t,e,{preventDefault:r=!1,paused:s=!1}={}){return this.cache.listeners[t]={callback:r=>{this.cache.event=r,this.cache.listeners[t].preventDefault&&r.preventDefault(),this.cache.listeners[t].paused||(this.cache.currentEvent=t,e.call(this,this))},preventDefault:r,paused:s},this.element.addEventListener(t,this.cache.listeners[t].callback),this}removeListener(t){return this.element.removeEventListener(t,this.cache.listeners[t].callback),this}pause(t){return this.cache.listeners[t].paused=!0,this}resume(t){return this.cache.listeners[t].paused=!1,this}preventDefault(t){return this.cache.listeners[t].preventDefault=!0,this}useDefault(t){return this.cache.listeners[t].preventDefault=!1,this}}let $t=class extends pt{constructor({element:t,name:e="",type:r="html",render:s=__Ziko__.__Config__.default.render}={}){super(),this.exp={events:{}},ft(this,dt,xt,Ct,Et,Tt,Rt,jt,Pt),t&&this.init(t,e,r,s)}_on(t,e,{details_setter:r,category:s="global",preventDefault:n=!1}={}){s&&!this.exp.events.hasOwnProperty(s)&&(this.exp.events[s]=new zt(this,s));const i=this.exp.events[s];i.addListener(t,t=>{r&&r(i),e(t)},{preventDefault:n})}_off(t,e="global"){this.exp.events[e].removeListener(t)}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}useClient(t){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register(()=>this),this.cache.isInteractive=!0),t&&this.element.setAttribute("data-hydration-directive",t),this}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}};function Dt(t){return"object"!=typeof t&&"function"!=typeof t||null===t}class Ut extends $t{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const Lt=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],Nt=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],qt=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],Zt=new Proxy({},{get(t,e){if("string"!=typeof e)return;let r,s=e.replaceAll("_","-").toLowerCase();return Lt.includes(s)&&(r="html"),Nt.includes(s)&&(r="svg"),qt.includes(s)&&(r="mathml"),(...t)=>0===t.length?new $t({element:s,name:s,type:r}):["string","number"].includes(typeof t[0])||t[0]instanceof $t||"function"==typeof t[0]&&t[0]().isStateGetter()?new $t({element:s,name:s,type:r}).append(...t):new $t({element:s,type:r}).setAttr(t.shift()).append(...t)}});function Bt(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function Gt(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function Ht(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Vt(t){return Ht(-t)}class Wt extends $t{constructor({tag:t="div",orientation:e="h",order:r,w:s="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,r=1){return Bt.call(this,r),this.style({alignItems:"number"==typeof t?Ht.call(this,t):t,justifyContent:"number"==typeof e?Vt.call(this,e):e}),this}horizontal(t,e,r=1){return Gt.call(this,r),this.style({alignItems:"number"==typeof e?Vt.call(this,e):e,justifyContent:"number"==typeof t?Ht.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class Kt extends pt{constructor({element:t,name:e,type:r,render:s}){super({element:t,name:e,type:r,render:s})}}class Jt extends Kt{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const r=await e();t.unmount(),this.append(r)}catch(t){console.log({error:t})}})()}}class Qt extends $t{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class Yt extends $t{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:r,attributes:s}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of s)n.setAttribute(t,e);return n.append(...r),globalThis.svg=e,globalThis.children=r,globalThis.attributes=s,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Xt extends $t{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter(t=>t!=this.current).forEach(t=>t.unmount()),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find(t=>t==this.key)??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const{PI:te,sqrt:ee,cos:re,sin:se,acos:ne,pow:ie}=Math,oe=t=>t,ae=(t,e=7.5625,r=2.75)=>t<1/r?e*t*t:t<2/r?e*(t-=1.5/r)*t+.75:t<2.5/r?e*(t-=2.25/r)*t+.9375:e*(t-=2.625/r)*t+.984375;class he{constructor(t,{ease:e=oe,step:r=50,t0:s=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:r,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=j(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#c(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#c(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#c(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class le{constructor(t,e,r=1/0,s){this.ms=e,this.fn=t,this.count=r,this.frame=1,this.id=null,this.running=!1,s&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval(()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)},this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class ce extends le{constructor(t=1e3/60){super(t,()=>this._tick()),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class ue{constructor(t=[],{repeat:e=1,loop:r=!1}={}){this.tasks=t,this.repeat=e,this.loop=r,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map(({fn:t,delay:e=0})=>new Promise(async r=>{e>0&&await new Promise(t=>setTimeout(t,e)),this.onTask&&this.onTask(t),await t(),r()})));else{const{fn:e,delay:r=0}=t;r>0&&await new Promise(t=>setTimeout(t,r)),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class me{constructor(t,{step:e=1e3,t0:r=0,t1:s=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:r,t1:s,autoplay:n,pauseTime:null,frame:0},n&&(r?this.startAfter(r):this.start(),s!==1/0&&this.stopAfter(s))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout(()=>this.start(),t),this}stopAfter(t=1e3){return setTimeout(()=>this.stop(),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}const pe=(t,e=",")=>t.trim().trimEnd().split("\n").map(t=>t.split(e)),fe=(t,e=",")=>{const[r,...s]=pe(t,e);return s.map(t=>{const e={};return r.forEach((r,s)=>{e[r]=t[s]}),e})},de=t=>t instanceof Array?[Object.keys(t[0]),...t.map(t=>Object.values(t))]:[Object.keys(t)],ge=(t,e)=>de(t).map(t=>t.join(e)).join("\n"),be=(t,e=",")=>ge(t instanceof Object?t:JSON.parse(t),e),we=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach(t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=we(t,`${e} `);r.push(...s)}else r.push(`${e}- ${t}`)});else for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];if("object"==typeof n&&null!==n){r.push(`${e}${s}:`);const t=we(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},ye=(t,e="")=>we(t,e).join("\n"),_e=(t,e)=>ye(t instanceof Object?t:JSON.parse(t),e),xe=(t,e=1)=>{let r="";for(const s in t)if(t.hasOwnProperty(s)){const n=t[s];r+="\n"+" ".repeat(e)+`<${s}>`,r+="object"==typeof n?xe(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},ve=t=>(new XMLSerializer).serializeToString(t),Me=t=>btoa(ve(t)),ke=t=>"data:image/svg+xml;base64,"+Me(t),Ce=t=>JSON.stringify(n(t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof y||t instanceof N?t.toString():t instanceof Array?Ee(t):void 0,t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Te=t=>{if(!Array.isArray(t))return 0;let e=1;for(const r of t)if(Array.isArray(r)){const t=Te(r);t+1>e&&(e=t+1)}return e},Ee=t=>{let e=0;return function t(r){let s=Te(r),n=0;return r.some(t=>Array.isArray(t))&&(e++,n=1),"["+r.map((s,n)=>["number","string","boolean","bigint"].includes(typeof s)?String(s):s instanceof y?s.toString():s instanceof Array?`\n${" ".repeat(e)}${t(s)}${n===r.length-1?"\n":""}`:s instanceof Object?Ce(s):void 0)+`${" ".repeat((s+e+1)*n)}]`}(t)},Se=(t,e=0)=>{t=Ae(t);let r="";const s=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){r+=`${s}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?r+=Se({[t]:i[t]},e+1):r+=`${s} ${t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}: ${i[t]};\n`;r+=`${s}}\n`}return r};function Ae(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r.trim()]=Ae(t[r]),e),Array.isArray(t)?[]:{})}class je{constructor({head:t=null,wrapper:e=null,target:r=null}){this.head=t,this.wrapper=e,this.target=r,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.mount(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}}function Oe(t){return/:\w+/.test(t)}class Ie extends je{constructor({head:t,wrapper:e,target:r,routes:s}){super({head:t,wrapper:e,target:r}),this.routes=new Map([["404",Mt("Error 404")],...Object.entries(s)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach(t=>{!Oe(t[0])&&t[1]?.isUIElement&&t[1].unmount()}),this}mount(t){const[e,r]=[...this.routes].find(e=>function(t,e){const r=t.split("/"),s=e.split("/");if(r.length!==s.length)return!1;for(let t=0;t<r.length;t++){const e=r[t],n=s[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t));let s;if(Oe(e)){const n=function(t,e){const r=t.split("/"),s=e.split("/"),n={};if(r.length!==s.length)return n;for(let t=0;t<r.length;t++){const e=r[t],i=s[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);s=r.call(this,n)}else r?.isUIElement&&r.mount(this.wrapper),"function"==typeof r&&(s=r());return s?.isUIElement&&s.mount(this.wrapper),s instanceof Promise&&s.then(t=>t.mount(this.wrapper)),globalThis.history.pushState({},"",t),this}}const Re=({head:t,wrapper:e,target:r,routes:s})=>new Ie({head:t,wrapper:e,target:r,routes:s});function Fe(t,e="./src/pages",r=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const s=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=s.indexOf(n.at(-1));if(-1!==i){const t=s.slice(i+1),e=s.at(-1),n="index.js"===e||"index.ts"===e,o=r.some(t=>e===`.${t}`||e.endsWith(`.${t}`));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(o)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class Pe{#u;#m=new Map;#p=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#u=new Worker(URL.createObjectURL(t)),this.#u.addEventListener("message",t=>{const{id:e,result:r,error:s}=t.data,n=this.#m.get(e);n&&(n(r,s),this.#m.delete(e))})}call(t,e,r=[],s=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#p;return this.#m.set(n,e),this.#u.postMessage({id:n,funStr:t.toString(),args:r,close:s}),this}terminate(){this.#u.terminate()}}class ze{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`),this}once(t,e){const r=(...s)=>{this.off(t,r),e(...s)};return this.on(t,r)}off(t,e){const r=this.events[t];if(!r)return this;const s=r.indexOf(e);return-1!==s&&r.splice(s,1),this}emit(t,e){const r=this.events[t];return!!r&&([...r].forEach(r=>{try{r(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}}),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const $e=t=>new ze(t);class De{#f;#d;#g=null;constructor(t=[],e=()=>{}){this.#f=t,this.#d=e,this.#a()}#b(){return this.#f.some(({query:t})=>globalThis.matchMedia(t).matches)}#a(){this.#f.forEach(({query:t,callback:e})=>{const r=globalThis.matchMedia(t),s=()=>{const t=this.#b();r.matches?(e(),this.#g=e):t||this.#g===this.#d||(this.#d(),this.#g=this.#d)};s(),r.addEventListener("change",s)})}}class Ue{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=$e(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class Le{constructor(t,{namespace:e="Ziko",ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(const r in t)if(!e.has(r))throw new Error(`Invalid CSS property: "${r}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const r=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(r,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${r})`,writable:!0,configurable:!0,enumerable:!1})}}}let{sqrt:Ne,cos:qe,sin:Ze,exp:Be,log:Ge,cosh:He,sinh:Ve}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,r,s){const n=s[0];if("number"==typeof n||0===s.length)return e.apply(r,s);if(n?.isComplex?.()){const{a:t,b:i,z:o,phi:a}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(Ne(o)*qe(a/2),Ne(o)*Ze(a/2));case"log":return h(Ge(o),a);case"exp":return h(Be(t)*qe(i),Be(t)*Ze(i));case"cos":return h(qe(t)*He(i),-Ze(t)*Ve(i));case"sin":return h(Ze(t)*He(i),qe(t)*Ve(i));case"tan":{const e=qe(2*t)+He(2*i);return h(Ze(2*t)/e,Ve(2*i)/e)}case"cosh":return h(He(t)*qe(i),Ve(t)*Ze(i));case"sinh":return h(Ve(t)*qe(i),He(t)*Ze(i));case"tanh":{const e=He(2*t)+qe(2*i);return h(Ve(2*t)/e,Ze(2*i)/e)}default:return e.apply(r,s)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:r})=>new je({head:t,wrapper:e,target:r}),t.Clock=ce,t.CloneElement=t=>new t.__proto__.constructor,t.Complex=y,t.E=r,t.EPSILON=s,t.EventController=zt,t.FileBasedRouting=async function(t){const e=Object.keys(t),r=function(t){if(0===t.length)return"";const e=t.map(t=>t.split("/")),r=Math.min(...e.map(t=>t.length));let s=[];for(let t=0;t<r;t++){const r=e[0][t];if(!e.every(e=>e[t]===r||e[t].startsWith("[")))break;s.push(r)}return s.join("/")+(s.length?"/":"")}(e),s={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),o=await i.default;Object.assign(s,{[Fe(e[n],r)]:o})}return Re({target:document.body,routes:{"/":()=>{},...s},wrapper:Zt.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Wt(e).append(...t)},t.HTMLWrapper=t=>new Qt(t),t.Matrix=N,t.PI=e,t.Random=w,t.SPA=Re,t.SVGWrapper=t=>new Yt(t),t.Scheduler=(t,{repeat:e=null}={})=>new ue(t,{repeat:e}),t.Suspense=(t,e)=>new Jt(t,e),t.Switch=({key:t,cases:e})=>new Xt(t,e),t.Tick=le,t.TimeAnimation=he,t.TimeLoop=me,t.TimeScheduler=ue,t.UIElement=$t,t.UIFlex=Wt,t.UIHTMLWrapper=Qt,t.UINode=et,t.UISVGWrapper=Yt,t.UISwitch=Xt,t.UIView=Ut,t.UseRoot=Le,t.UseThread=Pe,t.Utils=tt,t.View=(...t)=>new Ut(...t),t.ZikoApp=je,t.ZikoSPA=Ie,t.ZikoUISuspense=Jt,t.ZikoUIText=vt,t.abs=x,t.accum_prod=(...t)=>{let e,r=[],s=1,n=t.length;for(e=0;e<n;e++)s=c(s,t[e]),r.push(s);return r},t.accum_sum=d,t.acos=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return globalThis.Rp=s,globalThis.Rm=n,new t.constructor(Math.acos((s-n)/2),-Math.acosh((s+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)},...t),t.acosh=(...t)=>n(t=>t?.isComplex?C(t.clone().add(M(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8),...t),t.acot=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(e**2+(r-1)*(r+1)))/2,Math.log((e**2+(r-1)**2)/(e**2+(r+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)},...t),t.add=h,t.add_class=(t,e)=>t.element.className=t.element.className.replace(/\s+$/gi,"")+" "+e,t.add_vendor_prefix=function(t){const e=t.slice(0,1).toUpperCase()+t.slice(1),r=["Webkit","Moz","O","ms"];for(let t=0,s=r.length;t<s;t++){const s=r[t];if(void 0!==(globalThis?.document?.body).style[s+e])return s+e}return t},t.and=F,t.animation=(t,{ease:e,t0:r,t1:s,start:n,duration:i}={})=>new he(t,{ease:e,t0:r,t1:s,start:n,duration:i}),t.apply_fun=i,t.arange=G,t.arc=t=>1-se(ne(t)),t.arr2str=Ee,t.asin=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.hypot(e+1,r),n=Math.hypot(e-1,r);return new t.constructor(Math.asin((s-n)/2),Math.acosh((s+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)},...t),t.asinh=(...t)=>n(t=>t?.isComplex?C(t.clone().add(M(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8),...t),t.atan=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t;return new t.constructor(Math.atan(2*e/(1-e**2-r**2))/2,Math.log((e**2+(1+r)**2)/(e**2+(1-r)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)},...t),t.atan2=O,t.atanh=(...t)=>n(t=>+Math.atanh(t).toFixed(8),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let r,s=1;for(r=0;r<e;r++)s=s*(t-r)/(r+1);return s},t.call_with_optional_props=t=>(...e)=>{const r=e[0];return r?.isUIElement?.()||Dt(r)?new t({},...e):new t(r,...e.slice(1))},t.cartesianProduct=Q,t.cbrt=(...t)=>n(t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8),...t),t.ceil=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t),...t),t.clamp=A,t.clock=t=>new ce(t),t.cloneUI=t=>Object.assign(Object.create(Object.getPrototypeOf(t)),t),t.complex=_,t.cos=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8),...t),t.cosh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8),...t),t.coth=(...t)=>n(t=>{if(t?.isComplex){const{a:e,b:r}=t,s=Math.sinh(e)**2*Math.cos(r)**2+Math.cosh(e)**2*Math.sin(r)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/s,-Math.sin(r)*Math.cos(r)/s).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)},...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n(t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:r,b:s}=e,{z:n,phi:i}=t,o=Math.hypot(r,s),a=Math.exp((Math.log(n)*r+i*s)/o),h=(i*r-Math.log(n)*s)/o;return new e.constructor(a*Math.cos(h),a*Math.sin(h)).toFixed(8)},...t)},t.csv2arr=pe,t.csv2json=(t,e=",")=>JSON.stringify(fe(t,e)),t.csv2matrix=(t,e=",")=>new N(pe(t,e)),t.csv2object=fe,t.csv2sql=(t,e)=>{const r=t.trim().trimEnd().split("\n").filter(t=>t);let s=`INSERT INTO ${e} (${r[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<r.length;t++){const e=r[t].split(",");n.push(`(${e})`)}return s+n.join(",\n")},t.debounce=(t,e=1e3)=>(...r)=>setTimeout(()=>t(...r),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,t=>{const[r,s]=t.split("=");e[r]=s}),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,r={},{mode:s="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(r)]}constructor(){super(),this.attachShadow({mode:s}),this.props={},this.mask={...r}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach(t=>t.mount(this.shadowRoot)):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,r){Object.assign(this.props,{[t]:this.mask[t].type(r)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n(t=>t*Math.PI/180,...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=u,t.elastic=t=>-2*ie(2,10*(t-1))*re(20*te*t/3*t),t.exp=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8),...t),t.floor=T,t.fract=(...t)=>n(t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t),...t),t.geomspace=W,t.hypot=(...t)=>{const e=t.find(t=>t.isComplex?.());if(e){const r=t.map(t=>t.isComplex?.()?t:new e.constructor(t,0));return Math.hypot(...r.map(t=>t.z))}return Math.hypot(...t)},t.inRange=K,t.in_back=(t,e=1.70158,r=e+1)=>r*ie(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,r=2.75)=>1-ae(1-t,e,r),t.in_circ=t=>1-ee(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:-ie(2,10*t-10)*se((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,r=1.525*e)=>t<.5?ie(2*t,2)*(2*(r+1)*t-r)/2:(ie(2*t-2,2)*((r+1)*(2*t-2)+r)+2)/2,t.in_out_bounce=(t,e=7.5625,r=2.75)=>t<.5?ae(1-2*t,e,r)/2:ae(2*t-1,e,r)/2,t.in_out_circ=t=>t<.5?(1-ee(1-(2*t)**2))/2:(ee(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*te/4.5)=>0===t?0:1===t?1:t<.5?-ie(2,20*t-10)*se((20*t-11.125)*e)/2:ie(2,-20*t+10)*se((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(re(te*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-re(t*te/2),t.isApproximatlyEqual=J,t.isPrimitive=Dt,t.isStateGetter=bt,t.json2arr=t=>de(t instanceof Object?t:JSON.parse(t)),t.json2css=Se,t.json2csv=be,t.json2csvFile=(t,e)=>{const r=be(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2xml=xe,t.json2xmlFile=(t,e)=>{const r=xe(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.json2yml=_e,t.json2ymlFile=(t,e)=>{const r=_e(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},t.lerp=S,t.linear=oe,t.linkStyle=function(t){const e=document?.createElement("link");e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),document.head.appendChild(e)},t.linspace=H,t.ln=C,t.logspace=V,t.loop=(t,e={})=>new me(t,e),t.map=j,t.mapfun=n,t.matrix=(t,e,r)=>new N(t,e,r),t.matrix2=(...t)=>new N(2,2,t),t.matrix3=(...t)=>new N(3,3,t),t.matrix4=(...t)=>new N(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=p,t.median=t=>g(t,50),t.min=(...t)=>Math.min(...t),t.modulo=m,t.mul=c,t.nand=(...t)=>I(F(...t)),t.nor=(...t)=>I(P(...t)),t.norm=E,t.normalize_css_value=t=>"number"==typeof t?t+"px":t,t.nthr=k,t.nums=B,t.obj2str=Ce,t.ones=Z,t.or=P,t.out_back=(t,e=1.70158,r=e+1)=>1+r*ie(t-1,3)+e*ie(t-1,2),t.out_bounce=ae,t.out_circ=t=>ee(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*te/3)=>0===t?0:1===t?1:ie(2,-10*t)*se((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>se(t*te/2),t.percentile=g,t.pgcd=Y,t.pow=v,t.ppcm=X,t.rad2deg=(...t)=>n(t=>t/Math.PI*180,...t),t.remove_class=(t,e)=>t.element.className=t.element.className.replace(e,""),t.round=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t),...t),t.script=function(t){const e=document?.createElement("script");e.setAttribute("src",t),document.head.appendChild(e)},t.sec=(...t)=>n(t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8)),...t),t.sig=(...t)=>n(t=>1/(1+Math.exp(-t)).toFixed(8),...t),t.sign=(...t)=>n(t=>{if(t.isComplex?.()){const{z:e,phi:r}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:r})}return Math.sign(t)},...t),t.sin=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8),...t),t.sinh=(...t)=>n(t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8),...t),t.sleep=t=>new Promise(e=>setTimeout(e,t)),t.sqrt=M,t.std=(...t)=>Math.sqrt(f(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.style=(t,e)=>{t&&Object.assign(t.style,e)},t.sub=l,t.svg2ascii=Me,t.svg2img=(t,e=!0)=>Zt.img(ke(t)).mount(e),t.svg2imgUrl=ke,t.svg2str=ve,t.tags=Zt,t.tan=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)},...t),t.tanh=(...t)=>n(t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)},...t),t.text=Mt,t.throttle=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}},t.tick=(t,e,r=1/0,s=!0)=>new le(t,e,r,s),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},t.timeout=function(t,e){let r;const s=new Promise(s=>{r=setTimeout(()=>{e&&e(),s()},t)});return{id:r,clear:()=>clearTimeout(r),promise:s}},t.trunc=(...t)=>n(t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t),...t),t.useDerived=function(t,e){let r=t(...e.map(t=>t().value));const s=new Set;return e.forEach(n=>{n()._subscribe(()=>{{const n=t(...e.map(t=>t().value));n!==r&&(r=n,s.forEach(t=>t(r)))}})}),()=>({value:r,isStateGetter:()=>!0,_subscribe:t=>s.add(t)})},t.useEventEmitter=$e,t.useIPC=ht,t.useLocaleStorage=(t,e,r=!0)=>new lt(localStorage,t,e,r),t.useMediaQuery=(t,e)=>new De(t,e),t.useReactive=t=>n(t=>{const e=gt(t);return{get:e[0],set:e[1]}},t),t.useRoot=(t,e={})=>new Le(t,e),t.useSessionStorage=ct,t.useState=gt,t.useThread=(t,e,r=[],s=!0)=>(new Pe).call(t,e,r,s),t.useTitle=(t,e=!0)=>new Ue(t,e),t.variance=f,t.wait=t=>new Promise(e=>setTimeout(e,t)),t.waitElm=t=>new Promise(e=>{if(t)return e(t);const r=new MutationObserver(()=>{t&&(e(t),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElm=t=>new Promise(e=>{if(t.element)return e(t.element);const r=new MutationObserver(()=>{t.element&&(e(t.element),r.disconnect())});r.observe(document?.body,{childList:!0,subtree:!0})}),t.waitForUIElmSync=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},t.xnor=(...t)=>I(z(...t)),t.xor=z,t.zeros=q});