ziko 0.0.2 → 0.0.4

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.
package/dist/ziko.min.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  Project: ziko.js
3
3
  Author: Zakaria Elalaoui
4
- Date : Sun Mar 10 2024 11:12:39 GMT+0000 (UTC)
4
+ Date : Mon Mar 18 2024 11:29:55 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";class e{}class r extends e{constructor(t=0,e=0){super(),t instanceof r?(this.a=t.a,this.b=t.b):"object"==typeof t?"a"in e&&"b"in t?(this.a=t.a,this.b=t.b):"a"in e&&"z"in t?(this.a=t.a,this.b=f(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*v(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=f(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/v(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*w(t.phi),this.a=t.z*F(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}get clone(){return new r(this.a,this.b)}get z(){return q(this.a,this.b)}get phi(){return z(this.b,this.a)}static Zero(){return new r(0,0)}get conj(){return new r(this.a,-this.b)}get inv(){return new r(this.a/(g(this.a,2)+g(this.b,2)),-this.b/(g(this.a,2)+g(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+n(...e).toFixed(15),this.b+=+n(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+n(...e).toFixed(15),this.b-=+n(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=+i(this.z,...t.map((t=>t.z))).toFixed(15),s=+n(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*w(s).toFixed(15)).toFixed(14),this.b=+(e*F(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=+(this.z/i(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-n(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*w(s).toFixed(15)).toFixed(15),this.b=+(e*F(s).toFixed(15)).toFixed(15),this}pow(t){if(N(t)===t&&t>0){let e=+(this.z**t).toFixed(15),r=+(this.phi*t).toFixed(15);this.a=+(e*w(r).toFixed(15)).toFixed(15),this.b=+(e*F(r).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new r(+(t*w(e)).toFixed(13),+(t*F(e)).toFixed(13))}get expo(){return[this.z,this.phi]}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}static mul(t,...e){return t.clone.mul(...e)}static div(t,...e){return t.clone.div(...e)}static pow(t,e){return t.clone.pow(e)}static xpowZ(t){return s(t**this.a*w(this.b*x(t)),t**this.a*F(this.b*x(t)))}sqrtn(t=2){return s(y(this.z,t)*w(this.phi/t),y(this.z,t)*F(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return s(this.z,this.phi)}get cos(){return s(w(this.a)*T(this.b),F(this.a)*I(this.b))}get sin(){return s(F(this.a)*T(this.b),w(this.a)*I(this.b))}get tan(){const t=w(2*this.a)+T(2*this.b);return s(F(2*this.a)/t,I(2*this.b)/t)}printInConsole(){let t=this.a+" + "+this.b+" * i";return console.log(t),t}print(){}UI(){return"<span>"+this.a+" + i * "+this.b+"</span>"}}const s=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((r,n)=>s(t[n],e[n])));if(t instanceof ot&&e instanceof ot){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map(((r,n)=>s(t.arr[n],e.arr[n])));return new ot(t.rows,t.cols,...r)}return new r(t,e)},n=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let r=1;r<t.length;r++)e+=t[r];return e}const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(n(...t[r])):t[r]instanceof Object&&e.push(n(...Object.values(t[r])));return 1===e.length?e[0]:e},i=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let r=1;r<t.length;r++)e*=t[r];return e}const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(i(...t[r])):t[r]instanceof Object&&e.push(i(...Object.values(t[r])));return 1===e.length?e[0]:e},o=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.min(...t);const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(o(...t[r])):t[r]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[r]).sort(((t,e)=>t[1]-e[1]))[0]]));return 1===e.length?e[0]:e},a=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.max(...t);const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(o(...t[r])):t[r]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[r]).sort(((t,e)=>e[1]-t[1]))[0]]));return 1===e.length?e[0]:e},h=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t.reduce(((t,e)=>[...t,t[t.length-1]+e]),[0]);return e.shift(),e}const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(h(...t[r])):t[r]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},l=t=>{const e=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7];if(t<.5)return+(Math.PI/(Math.sin(Math.PI*t)*l(1-t))).toFixed(10);t-=1;let r=e[0];for(let s=1;s<9;s++)r+=e[s]/(t+s);const s=t+7+.5;return+(Math.sqrt(2*Math.PI)*Math.pow(s,t+.5)*Math.exp(-s)*r).toFixed(10)},u=(t,e)=>{let r=0;for(let s=0;s<100;s++){r+=Math.pow(-1,s)*Math.pow(e/2,t+2*s)/($(s)*$(t+s))}return r},m=(t,e)=>{let r=0;const s=r=>Math.pow(r,t-1)*Math.pow(1-r,e-1);r+=.5*(s(0)+s(1));for(let t=1;t<1e3;t++){r+=s(0+.001*t)}return.001*r},p={cos:t=>+Math.cos(t).toFixed(15),sin:t=>+Math.sin(t).toFixed(15),tan:t=>+Math.tan(t).toFixed(31),sinc:t=>+Math.sin(Math.PI*t)/(Math.PI*t),sec:t=>1/Math.cos(t).toFixed(15),csc:t=>1/Math.sin(t).toFixed(15),cot:t=>1/Math.tan(t).toFixed(15),acos:t=>+Math.acos(t).toFixed(15),asin:t=>+Math.asin(t).toFixed(15),atan:t=>+Math.atan(t).toFixed(15),acot:t=>+Math.PI/2-Math.atan(t).toFixed(15),cosh:t=>+Math.cosh(t).toFixed(15),sinh:t=>+Math.sinh(t).toFixed(15),tanh:t=>+Math.tanh(t).toFixed(15),coth:t=>+(.5*Math.log((1+t)/(1-t))).toFixed(15),acosh:t=>+Math.acosh(t).toFixed(15),asinh:t=>+Math.asinh(t).toFixed(15),atanh:t=>+Math.atanh(t).toFixed(15)},d=(...t)=>mt(Math.abs,...t),f=(...t)=>mt(Math.sqrt,...t),g=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof r?r.fromExpo(t**e.a,e.b*x(t)):mt((e=>g(t,e)),...e);if(t instanceof r)return"number"==typeof e?r.fromExpo(t.z**e,t.phi*e):e instanceof r?r.fromExpo(t.z**e.a*b(-t.phi*e.b),x(t.z)*e.b+e.a*t.phi):mt((e=>g(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return mt((t=>g(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>g(t[s],e)),...e));return r}}},y=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):mt((e=>y(t,e)),...e);if(t instanceof r)return"number"==typeof e?r.fromExpo(y(t.z,e),t.phi/e):mt((e=>y(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return mt((t=>y(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>y(t[s],e)),...e));return r}}},b=(...t)=>mt(Math.exp,...t),x=(...t)=>mt(Math.log,...t),w=(...t)=>mt(p.cos,...t),F=(...t)=>mt(p.sin,...t),v=(...t)=>mt(p.tan,...t),C=(...t)=>mt(p.sec,...t),E=(...t)=>mt(p.sinc,...t),k=(...t)=>mt(p.csc,...t),A=(...t)=>mt(p.cot,...t),D=(...t)=>mt(p.acos,...t),B=(...t)=>mt(p.asin,...t),_=(...t)=>mt(p.atan,...t),M=(...t)=>mt(p.acot,...t),T=(...t)=>mt(p.cosh,...t),I=(...t)=>mt(p.sinh,...t),S=(...t)=>mt(p.tanh,...t),L=(...t)=>mt(p.coth,...t),O=(...t)=>mt(p.acosh,...t),V=(...t)=>mt(p.asinh,...t),j=(...t)=>mt(p.atanh,...t),R=(...t)=>mt(Math.ceil,...t),N=(...t)=>mt(Math.floor,...t),P=(...t)=>mt(Math.round,...t),z=(t,e,r=!0)=>{if("number"==typeof t)return"number"==typeof e?r?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:mt((e=>z(t,e,r)),...e);if(t instanceof Array){if("number"==typeof e)return mt((t=>z(t,e,r)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>g(t[s],e)),...e));return r}}},$=(...t)=>mt((t=>{let e,r=1;if(0==t)r=1;else if(t>0)for(e=1;e<=t;e++)r*=e;else r=NaN;return r}),...t),H=(...t)=>mt(Math.sign,...t),U=(...t)=>mt((t=>1/(1+b(-t))),...t),q=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?mt(Math.hypot,...t):void 0,W=t=>{const e=[],r=2**t.length;for(let s=0;s<r;s+=1){const r=[];for(let e=0;e<t.length;e+=1)s&1<<e&&r.push(t[e]);e.push(r)}return e},Z=null,X={_mode:Number,_map:function(t,e,s){return e instanceof ot?new ot(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof r?new r(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},dec2base(t,e){return this._mode=e<=10?Number:String,"number"==typeof t?this._mode((t>>>0).toString(e)):this._map(this.dec2base,t,e)},dec2bin(t){return this.dec2base(t,2)},dec2oct(t){return this.dec2base(t,8)},dec2hex(t){return this.dec2base(t,16)},bin2base(t,e){return this.dec2base(this.bin2dec(t),e)},bin2dec(t){return this._mode("0b"+t)},bin2oct(t){return this.bin2base(t,8)},bin2hex(t){return this.bin2base(t,16)},oct2dec(t){return this._mode("0o"+t)},oct2bin(t){return this.dec2bin(this.oct2dec(t))},oct2hex(t){return this.dec2hex(this.oct2dec(t))},oct2base(t,e){return this.dec2base(this.oct2dec(t),e)},hex2dec(t){return this._mode("0x"+t)},hex2bin(t){return this.dec2bin(this.hex2dec(t))},hex2oct(t){return this.dec2oct(this.hex2dec(t))},hex2base(t,e){return this.dec2base(this.hex2dec(t),e)},IEEE32toDec(t){let e=t.split(" ").join("").padEnd(32,"0"),r=e[0],s=2**(+("0b"+e.slice(1,9))-127);return(-1)**r*(1+e.slice(9,32).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*s},IEEE64toDec(t){let e=t.split(" ").join("").padEnd(64,"0"),r=e[0],s=2**(+("0b"+e.slice(1,12))-1023);return(-1)**r*(1+e.slice(13,64).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*s}},K={_mode:Number,_map:function(t,e,s){return e instanceof ot?new ot(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof r?new r(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},not:function(t){return["number","boolean"].includes(typeof t)?K._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?K._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?K._mode(e.reduce(((t,e)=>t|e),t)):this._map(this.or,t,e)},nand:function(t,...e){return this.not(this.and(t,e))},nor:function(t,...e){return this.not(this.or(t,e))},xor:function(t,...e){let r=[t,...e];return["number","boolean"].includes(typeof t)?this._mode(1===r.reduce(((t,e)=>(1==+e&&(t+=1),t)),0)):this._map(this.xor,t,e)},xnor:function(t,...e){return K.not(K.xor(t,e))}};class G{static withDiscount(t,e=t.length){if(1===e)return t.map((t=>[t]));const r=[];let s;return s=this.withDiscount(t,e-1),t.forEach((t=>{s.forEach((e=>{r.push([t].concat(e))}))})),r}static withoutDiscount(t){if(1===t.length)return t.map((t=>[t]));const e=[],r=this.withoutDiscount(t.slice(1)),s=t[0];for(let t=0;t<r.length;t++){const n=r[t];for(let t=0;t<=n.length;t++){const r=n.slice(0,t),i=n.slice(t);e.push(r.concat([s],i))}}return e}}class Y{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const r=[];return t.forEach(((s,n)=>{this.withDiscount(t.slice(n),e-1).forEach((t=>{r.push([s].concat(t))}))})),r}static withoutDiscount(t,e){if(1===e)return t.map((t=>[t]));const r=[];return t.forEach(((s,n)=>{this.withoutDiscount(t.slice(n+1),e-1).forEach((t=>{r.push([s].concat(t))}))})),r}}const Q={Logic:K,Base:X,Permutation:G,Combinaison:Y,combinaison:(t,e,r=!1)=>Y[r?"withDiscount":"withoutDiscount"](t,e),powerSet:W,subSet:Z};class J{static float(t=1,e){return e?Math.random()*(e-t)+t:t*Math.random()}static int(t,e){return Math.floor(this.float(t,e))}static char(t){t=t??this.bool();const e=String.fromCharCode(this.int(97,120));return t?e.toUpperCase():e}static bool(){return[!1,!0][Math.floor(2*Math.random())]}static string(t,e){return t instanceof Array?new Array(this.int(...t)).fill(0).map((()=>this.char(e))).join(""):new Array(t).fill(0).map((()=>this.char(e))).join("")}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(8)}static hex(){return this.int(16)}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){let r=new Array(100);e=Ut.accum(...e).map((t=>100*t)),r.fill(t[0],0,e[0]);for(let s=1;s<t.length;s++)r.fill(t[s],e[s-1],e[s]);return r[this.int(r.length-1)]}static shuffleArr(t){return t.sort((()=>.5-Math.random()))}static shuffleMatrix(t){const{rows:e,cols:r,arr:s}=t;return at(e,r,s.flat().sort((()=>.5-Math.random())))}static floats(t,e,r){return new Array(t).fill(0).map((()=>this.float(e,r)))}static ints(t,e,r){return new Array(t).fill(0).map((()=>this.int(e,r)))}static bools(t){return new Array(t).fill(0).map((()=>this.bool()))}static bins(t){return new Array(t).fill(0).map((()=>this.int(2)))}static octs(t){return new Array(t).fill(0).map((()=>this.int(8)))}static decs(t){return new Array(t).fill(0).map((()=>this.int(10)))}static hexs(t){return new Array(t).fill(0).map((()=>this.int(16)))}static choices(t,e,r){return new Array(t).fill(0).map((()=>this.choice(e,r)))}static perm(...t){return t.permS[this.int(t.length)]}static color(){return"#"+X.dec2hex(this.float(16777216)).padStart(6,0)}static colors(t){return new Array(t).fill(null).map((()=>this.color()))}static complex(t=[0,1],e=[0,1]){return t instanceof Array?new r(this.float(t[0],t[1]),this.float(e[0],e[1])):new r(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new r(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new r(...this.bins(2))}static complexOct(){return new r(...this.octs(2))}static complexDec(){return new r(...this.decs(10))}static complexHex(){return new r(...this.octs(2))}static complexes(t,e=0,r=1){return new Array(t).fill(0).map((()=>this.complex(e,r)))}static complexesInt(t,e=0,r=1){return new Array(t).fill(0).map((()=>this.complexInt(e,r)))}static complexesBin(t){return new Array(t).fill(0).map((()=>this.complexBin()))}static complexesOct(t){return new Array(t).fill(0).map((()=>this.complexOct()))}static complexesDec(t){return new Array(t).fill(0).map((()=>this.complexDec()))}static complexesHex(t){return new Array(t).fill(0).map((()=>this.complexHex()))}static matrix(t,e,r,s){return at(t,e,this.floats(t*e,r,s))}static matrixInt(t,e,r,s){return at(t,e,this.ints(t*e,r,s))}static matrixBin(t,e){return at(t,e,this.bins(t*e))}static matrixOct(t,e){return at(t,e,this.octs(t*e))}static matrixDec(t,e){return at(t,e,this.decs(t*e))}static matrixHex(t,e){return at(t,e,this.hex(t*e))}static matrixColor(t,e){return at(t,e,this.colors(t*e))}static matrixComplex(t,e,r,s){return at(t,e,this.complexes(t*e,r,s))}static matrixComplexInt(t,e,r,s){return at(t,e,this.complexesInt(t*e,r,s))}static matrixComplexBin(t,e){return at(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return at(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return at(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return at(t,e,this.complexesBin(t*e))}}const tt=t=>{t instanceof ot&&(t=t.arr);const e=t.length,r=new Array(e).fill(0).map((()=>new Array(e).fill(0))),s=new Array(e).fill(0).map((()=>new Array(e).fill(0)));for(let n=0;n<e;n++){for(let i=n;i<e;i++){let e=0;for(let t=0;t<n;t++)e+=r[n][t]*s[t][i];s[n][i]=t[n][i]-e}for(let i=n;i<e;i++)if(n==i)r[n][n]=1;else{let e=0;for(let t=0;t<n;t++)e+=r[i][t]*s[t][n];r[i][n]=(t[i][n]-e)/s[n][n]}}return[r,s].map((t=>new ot(t)))},et=(t,e)=>t.reduce(((t,r,s)=>t+r*e[s]),0),rt=t=>Math.sqrt(t.reduce(((t,e)=>t+e*e),0)),st=t=>t.map((e=>e/rt(t))),nt=t=>{t instanceof ot&&(t=t.arr);const e=t.length,r=t[0].length,s=[],n=[];for(let t=0;t<e;t++)n.push(new Array(r).fill(0));for(let i=0;i<r;i++){let r=t.map((t=>t[i]));for(let o=0;o<i;o++){const a=s[o],h=et(a,t.map((t=>t[i])));for(let t=0;t<e;t++)r[t]-=h*a[t];n[o][i]=h}const o=rt(r);s.push(st(r)),n[i][i]=o}return[s,n].map((t=>new ot(t)))},it=t=>{t instanceof ot&&(t=t.arr);const e=t.length,r=new Array(e).fill(0).map((()=>new Array(e).fill(0)));for(let s=0;s<e;s++)for(let e=0;e<=s;e++){let n=0;for(let t=0;t<e;t++)n+=r[s][t]*r[e][t];r[s][e]=s===e?Math.sqrt(t[s][s]-n):1/r[e][e]*(t[s][e]-n)}return new ot(r)};class ot extends e{constructor(t,e,r=[]){if(super(),t instanceof ot)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let s,n,i=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,i=arguments[0];else for(s=0;s<t;s++)for(i.push([]),i[s].push(new Array(e)),n=0;n<e;n++)i[s][n]=r[s*e+n],null==r[s*e+n]&&(i[s][n]=0);this.rows=t,this.cols=e,this.arr=i}this._maintain()}at(t=0,e=void 0){return t<0&&(t=this.rows+t),null==e?this.arr[t]:(e<0&&(e=this.cols+e),this.arr[t][e])}reshape(t,e){if(t*e==this.rows*this.cols)return new ot(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new ot(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}get clone(){return new ot(this.rows,this.cols,this.arr.flat(1))}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}get reel(){return new ot(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new ot(this.cols,this.rows,this.arr.flat(1).imag)}_maintain(){for(let t=0;t<this.arr.length;t++)Object.assign(this,{[[t]]:this.arr[t]});return this}get(t=0,e=0){return-1==e?this.arr[t]:-1==t?this.arr.map((t=>t[e])):this.arr[t][e]}set(t=0,e=0,r){if(-1==e)return this.arr[t]=r;if(-1==t){for(let t=0;t<this.cols;t++)this.arr[t][e]=r[t]||0;return this.arr}return this.arr[t][e]=r}get isSquare(){return this.rows/this.cols==1}get isSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==ot.sub(e,t).max&&0==ot.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==ot.add(e,t).max&&0==ot.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,r=ot.mul(e,t),s=ot.dot(t,e);return 0==ot.sub(r,s).max&&0==ot.sub(r,s).min}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.clone,e=ot.dot(t,t);return 0==ot.sub(e,t).max&&0==ot.sub(e,t).min}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 ot(this.cols,this.rows,t.flat(1))}get det(){if(!this.isSquare)return new Error("is not square matrix");if(1==this.rows)return this.arr[0][0];function t(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}return function e(r){if(2==r.length)return r.flat(1).some((t=>t instanceof ot))?void console.warn("Tensors are not completely supported yet ..."):Ut.sub(Ut.mul(r[0][0],r[1][1]),Ut.mul(r[0][1],r[1][0]));for(var s=0,n=0;n<r.length;n++){const i=Ut.add(Ut.mul(g(-1,n),Ut.mul(r[0][n],e(t(r,n)))));s=Ut.add(s,i)}return s}(this.arr)}get inv(){if(!this.isSquare)return new Error("is not square matrix");if(0===this.det)return"determinat = 0 !!!";let t=function(t){if(t.length!==t[0].length)return;var e=0,r=0,s=0,n=t.length,i=0,o=[],a=[];for(e=0;e<n;e+=1)for(o[o.length]=[],a[a.length]=[],s=0;s<n;s+=1)o[e][s]=e==s?1:0,a[e][s]=t[e][s];for(e=0;e<n;e+=1){if(0==(i=a[e][e])){for(r=e+1;r<n;r+=1)if(0!=a[r][e]){for(s=0;s<n;s++)i=a[e][s],a[e][s]=a[r][s],a[r][s]=i,i=o[e][s],o[e][s]=o[r][s],o[r][s]=i;break}if(0==(i=a[e][e]))return}for(s=0;s<n;s++)a[e][s]=a[e][s]/i,o[e][s]=o[e][s]/i;for(r=0;r<n;r++)if(r!=e)for(i=a[r][e],s=0;s<n;s++)a[r][s]-=i*a[e][s],o[r][s]-=i*o[e][s]}return o}(this.arr);return new ot(this.rows,this.cols,t.flat(1))}static zeros(t,e){let r=new ot(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 ot(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 ot(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 rand(){return{int:(t,e,r,s)=>{let n=new ot(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=J.randInt(r,s);return n},bin:(t,e)=>{let r=new ot(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=J.randBin;return r},hex:(t,e)=>{let r=new ot(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=J.randHex;return r},choices:(t,e,r,s)=>{let n=new ot(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=J.choice(r,s);return n},permutation:(t,e,r)=>{}}}static rands(t,e,r=1,s){let n=new ot(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=J.rand(r,s);return n}map(t,e,r,s){return Ut.map(this,t,e,r,s)}lerp(t,e){return Ut.lerp(this,t,e)}norm(t,e){return Ut.norm(this,t,e)}clamp(t,e){return Ut.clamp(this,t,e)}static map(t,e,r,s,n){return Ut.map(t,e,r,s,n)}static lerp(t,e,r){return Ut.lerp(t,e,r)}static norm(t,e,r){return Ut.norm(t,e,r)}static clamp(t,e,r){return Ut.clamp(at,e,r)}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}get toBin(){let t=this.arr.flat(1).toBin;return new ot(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new ot(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new ot(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new ot(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new ot(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new ot(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new ot(this.rows,this.cols,e).T}filterByRows(t){var e=this.arr.map((e=>e.map((e=>+(""+e).includes(t))))).map((t=>!!Logic.or(...t))),r=this.arr.filter(((t,r)=>!0===e[r]));return 0===r.length&&r.push([]),console.log(r),new ot(r)}filterByCols(t){return new ot(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new ot(this.rows,this.cols,e)}count(t){return this.arr.flat(1).count(t)}toBase(t){let e=this.arr.flat(1).toBase(t);return new ot(this.rows,this.cols,e)}#t(t){if(this.rows!==t.rows)return;let e=this.arr;for(let r=0;r<this.rows;r++)for(let s=this.cols;s<this.cols+t.cols;s++)e[r][s]=t.arr[r][s-this.cols];return this.cols+=t.cols,new ot(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#t(e)));return Object.assign(this,e),this}static hstack(t,...e){return t.clone.hstack(...e)}#e(t){if(this.cols!==t.cols)return;let e=this.arr;for(let r=this.rows;r<this.rows+t.rows;r++){e[r]=[];for(let s=0;s<this.cols;s++)e[r][s]=t.arr[r-this.rows][s]}return this.rows+=t.rows,new ot(this.rows,this.cols,e.flat(1))}vstack(...t){const e=[this,...t].reduce(((t,e)=>t.#e(e)));return Object.assign(this,e),this}static vstack(t,...e){return t.clone.vstack(...e)}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#t(e)));return Object.assign(this,e),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#e(e)));return Object.assign(this,e),this}static hqueue(t,...e){return t.clone.hqueue(...e)}static vqueue(t,...e){return t.clone.vqueue(...e)}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){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 new ot(n,i,o.flat(1))}static slice(t,e=0,r=0,s=this.rows-1,n=this.cols-1){return t.slice(e,r,s,n)}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)}static getRows(t,e,r=e+1){return t.slice(e,0,r,t.cols)}static getCols(t,e,r=e+1){return t.slice(0,e,t.rows,r)}add(...t){for(let s=0;s<t.length;s++){("number"==typeof t[s]||t[s]instanceof r)&&(t[s]=ot.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=Ut.add(this.arr[r][e],t[s].arr[r][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=ot.nums(this.rows,this.cols,t[r]));for(let s=0;s<this.rows;s++)for(var e=0;e<this.cols;e++)this.arr[s][e]=Ut.sub(this.arr[s][e],t[r].arr[s][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}mul(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=ot.nums(this.rows,this.cols,t[s]));for(var e=0;e<this.rows;e++)for(var r=0;r<this.cols;r++)this.arr[e][r]=Ut.mul(this.arr[e][r],t[s].arr[e][r])}return new ot(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=ot.nums(this.rows,this.cols,t[r]));for(let s=0;s<this.rows;s++)for(var e=0;e<this.cols;e++)this.arr[s][e]=Ut.div(this.arr[s][e],t[r].arr[s][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}static div(t,...e){return t.clone.div(...e)}static mul(t,...e){return t.clone.mul(...e)}modulo(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=ot.nums(this.rows,this.cols,t[r]));for(let s=0;s<this.rows;s++)for(var e=0;e<this.cols;e++)this.arr[s][e]=Ut.modulo(this.arr[s][e],t[r].arr[s][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}static modulo(t,...e){return t.clone.modulo(...e)}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]=Ut.add(e[r][s],Ut.mul(this.arr[r][n],t.arr[n][s]))}}return new ot(this.arr.length,t.arr[0].length,e.flat(1))}static dot(t,e){return t.dot(e)}pow(t){let e=this.clone,r=this.clone;for(let s=0;s<t-1;s++)r=r.dot(e);return r}static pow(t,e){return t.clone.pow(e)}get somme(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t+=this.arr[e][r];return t}get DoesItContainComplexNumbers(){return this.arr.flat(1/0).some((t=>t instanceof r))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(o(...this.arr[e]));return o(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(a(...this.arr[e]));return a(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(o(...this.arr[e]));return t}get maxRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(a(...this.arr[e]));return t}get minCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new ot(t.length,1,t)}get toArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t.push(this.arr[e][r]);return t}get print(){let t="[";for(let e=0;e<this.arr.length;e++)t+=(0!=e?" ":"")+` [${this.arr[e].map((t=>" "+t.toString()+" "))}],\n`;console.log(t.substring(0,t.length-2)+" ]"),document.write(t.substring(0,t.length-2)+" ]")}get table(){console.table(this.arr)}get serialize(){return JSON.stringify(this)}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let e=new ot(t.rows,t.cols);return e.arr=t.arr,e}DecompositionLU(){const[t,e]=tt(this);return{L:t,U:e}}static DecompositionLU(...t){const e=t.map((t=>t.clone.LU()));return 1===e.length?e[0]:e}DecompositionQR(){const[t,e]=nt(this);return{Q:t,R:e}}static DecompositionQR(...t){const e=t.map((t=>t.clone.DecompositionQr()));return 1===e.length?e[0]:e}DecompositionCholesky(){return{L:it(this)}}static DecompositionCholesky(...t){const e=t.map((t=>t.clone.DecompositionCholesky()));return 1===e.length?e[0]:e}get decomposition(){return{LU:()=>this.DecompositionLU(),QR:()=>this.DecompositionQR(),Cholesky:()=>this.DecompositionCholesky()}}static get decomposition(){return{LU:(...t)=>ot.LU(...t),QR:(...t)=>ot.QR(...t),CHOLESKY:(...t)=>ot.CHOLESKY(...t)}}toTable(){var t=new DocumentFragment,e=new Array(this.rows).fill(null).map((()=>document.createElement("tr"))),r=this.arr.map((t=>t.map((()=>document.createElement("td")))));for(let t=0;t<r.length;t++)for(let s=0;s<r[0].length;s++)r[t][s].innerHTML=this.arr[t][s],e[t].appendChild(r[t][s]);return e.map((e=>t.appendChild(e))),t}toGrid(t,e={}){let r=Grid();return r.append(...this.map(t).arr.flat(1).map((t=>t.style(e)))),r.Columns(this.cols),r}sortTable(t=0,{type:e="num",order:r="asc"}={}){var s=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e}))))),n=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e})))));"num"===e?"asc"===r?s[t].sort(((t,e)=>t.x-e.x)):"desc"===r?s[t].sort(((t,e)=>e.x-t.x)):"toggle"===r&&(s[t][0].x>s[t][1].x?s[t].sort(((t,e)=>e.x-t.x)):s[t].sort(((t,e)=>t.x-e.x))):"alpha"===e&&("asc"===r?s[t].sort(((t,e)=>(""+t.x).localeCompare(""+e.x))):"desc"===r&&s[t].sort(((t,e)=>(""+e.x).localeCompare(""+t.x)))),r=s[t].map((t=>t.y));for(let e=0;e<s.length;e++)e!==t&&s[e].map(((t,e)=>t.y=r[e]));for(let e=0;e<s.length;e++)e!==t&&n[e].map(((t,n)=>t.x=s[e][r[n]].x));n[t]=s[t];var i=n.map((t=>t.map((t=>t.x))));return new ot(i).T}}const at=(t,e,r)=>new ot(t,e,r),ht=(...t)=>new ot(2,2,t),lt=(...t)=>new ot(3,3,t),ct=(...t)=>new ot(4,4,t);class ut{static resolve(t,e){return t.inv.dot(ot.fromVector(e)).arr.flat(1).map((t=>+t.toFixed(10)))}}const mt=(t,...e)=>{const n=e.map((e=>{if(null===e)return t(null);if(["number","string","boolean","bigint","undefined"].includes(typeof e))return t(e);if(e instanceof Array)return e.map((e=>mt(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(mt(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],mt(t,e[1])])));if(e instanceof ot)return new ot(e.rows,e.cols,mt(e.arr.flat(1)));if(e instanceof r){const[r,n,i,o]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return s(x(i),o);case Math.exp:return s(b(r)*w(n),b(r)*F(n));case Math.abs:return i;case Math.sqrt:return s(f(i)*w(o/2),f(i)*F(o/2));case p.cos:return s(w(r)*T(n),-F(r)*I(n));case p.sin:return s(F(r)*T(n),w(r)*I(n));case p.tan:{const t=w(2*r)+T(2*n);return s(F(2*r)/t,I(2*n)/t)}case p.cosh:return s(T(r)*w(n),I(r)*F(n));case p.sinh:return s(I(r)*w(n),T(r)*F(n));case p.tanh:{const t=T(2*r)+w(2*n);return s(I(2*r)/t,F(2*n)/t)}}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],mt(t,e[1])])))}));return 1==n.length?n[0]:n},pt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof r)return s(t+e.a,e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>bt(e,t)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.add(e))):t.clone.add(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>bt(t,e)));if(t.length===e.length)return t.map(((t,r)=>bt(t,e[r])))}}},dt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof r)return s(t-e.a,-e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>xt(e,t)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.sub(e))):t.clone.sub(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>xt(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,r)=>xt(t,e[r])))}}},ft=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof r)return s(t*e.a,t*e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>wt(t,e)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.mul(e))):t.clone.mul(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>wt(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,r)=>wt(t,e[r])))}}},gt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof r)return s(t/e.a,t/e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>Ft(t,e)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>Ft(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,r)=>Ft(t,e[r])))}}},yt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof r)return s(t%e.a,t%e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>Ft(t,e)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array&&!(e instanceof Array))return t.map((t=>bt(t,e)))}},bt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=pt(r,e[t]);return r},xt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=dt(r,e[t]);return r},wt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=ft(r,e[t]);return r},Ft=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=gt(r,e[t]);return r},vt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=yt(r,e[t]);return r},{PI:Ct,E:Et}=Math,kt=Number.EPSILON,At=t=>new Array(t).fill(0),Dt=t=>new Array(t).fill(1),Bt=(t,e)=>new Array(e).fill(t),_t=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof ot)return new ot(t.rows,t.cols,_t(t.arr.flat(1),e,s));if(t instanceof r)return new r(_t(t.a,e,s),_t(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>_t(t,e,s)));{let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=_t(t[r])}}},Mt=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof ot)return new ot(t.rows,t.cols,Mt(t.arr.flat(1),e,s));if(t instanceof r)return new r(Mt(t.a,e,s),Mt(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>Mt(t,e,s)));{let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=Mt(t[r])}}},Tt=(t,e,s,n,i)=>{if("number"==typeof t)return Mt(_t(t,e,s),n,i);if(t instanceof ot)return new ot(t.rows,t.cols,Tt(t.arr.flat(1),e,s,n,i));if(t instanceof r)return new r(Tt(t.a,s,n,i),Tt(t.b,e,s,n,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>Tt(t,e,s,n,i)));{let r=new Array(t.length);for(let o=0;o<t.length;o++)r[o]=Tt(t[o],e,s,n,i)}}},It=(t,e,s)=>{const[n,i]=[o(e,s),a(e,s)];if("number"==typeof t)return o(a(t,n),i);if(t instanceof ot)return new ot(t.rows,t.cols,It(t.arr.flat(1),n,i));if(t instanceof r)return new r(It(t.a,n,i),It(t.b,n,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>It(t,n,i)));{let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=It(t[r],n,i)}}},St=(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},Lt=(t,e,n=d(e-t)+1,i=!0)=>{if(Math.floor(n)===n){if([t,e].every((t=>"number"==typeof t))){const[r,s]=[t,e].sort(((t,e)=>e-t));var o=[];let h;h=i?(r-s)/(n-1):(r-s)/n;for(var a=0;a<n;a++)t<e?o.push(s+h*a):o.push(r-h*a);return o}if([t,e].some((t=>t instanceof r))){const r=s(t),o=s(e);n=n||Math.abs(r.a-o.a)+1;const a=Lt(r.a,o.a,n,i),h=Lt(r.b,o.b,n,i);let l=new Array(n).fill(null);return l=l.map(((t,e)=>s(a[e],h[e]))),l}}},Ot=(t,e,r=e-t+1,s=Et,n=!0)=>Lt(t,e,r,n).map((t=>g(s,t))),Vt=(t,e,n=d(e-t)+1,i=!0)=>{if(Math.floor(n)===n){if([t,e].every((t=>"number"==typeof t))){const[r,s]=[t,e].sort(((t,e)=>e-t));let o;o=y(r/s,i?n-1:n);const a=[s];for(let t=1;t<n;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some((t=>t instanceof r))){const r=s(t),o=s(e);let a;n=n||Math.abs(r.a-o.a)+1,a=y(o.div(r),i?n-1:n);const h=[r];for(let t=1;t<n;t++)h.push(wt(h[t-1],a));return h}}},jt=(...t)=>mt((t=>t*Math.PI/180),...t),Rt=(...t)=>mt((t=>t/Math.PI*180),...t),Nt=(t,e,r)=>{const[s,n]=[Math.min(e,r),Math.max(e,r)];return t>=s&&t<=n},Pt=(t,e,r=1e-4)=>Math.abs(t-e)<=r,zt=(t,e)=>t.reduce(((t,r)=>[...t,...e.map((t=>[r,t]))]),[]),$t=(t,e)=>{let r,s=1;if(t==N(t)&&e==N(e)){for(r=2;r<=t&&r<=e;++r)t%r==0&&e%r==0&&(s=r);return s}console.log("error")},Ht=(t,e)=>{let r;if(t==N(t)&&e==N(e)){for(r=t>e?t:e;r%t!=0||r%e!=0;)++r;return r}console.log("error")},Ut={add:bt,sub:xt,mul:wt,div:Ft,modulo:vt,zeros:At,ones:Dt,nums:Bt,norm:_t,lerp:Mt,map:Tt,clamp:It,arange:St,linspace:Lt,logspace:Ot,geomspace:Vt,sum:n,prod:i,accum:h,cartesianProduct:zt,ppcm:Ht,pgcd:$t,deg2rad:jt,rad2deg:Rt,inRange:Nt,isApproximatlyEqual:Pt},qt=t=>{const e=[],n=t.length;t[0]instanceof r||(t=t.map((t=>s(t,0))));for(let r=0;r<n;r++){let i=0,o=0;for(let e=0;e<n;e++){const s=2*Ct*r*e/n;i+=t[e].a*w(s)+t[e].b*F(s),o+=-t[e].a*F(s)+t[e].b*w(s)}i/=n,o/=n,e[r]=s(i,o)}return{output:e,re:e.map((t=>t.a)),im:e.map((t=>t.b)),z:e.map((t=>t.z)),phi:e.map((t=>t.phi))}},Wt=t=>{const e=[],n=t.length;t[0]instanceof r||(t=t.map((t=>s(t,0))));for(let r=0;r<n;r++){let i=0,o=0;for(let e=0;e<n;e++){const s=2*Ct*r*e/n;i+=t[e].a*w(s)+t[e].b*F(s),o+=t[e].a*F(s)+t[e].b*w(s)}i/=n,o/=n,e[r]=s(i,o)}return{output:e,re:e.map((t=>t.a)),im:e.map((t=>t.b)),z:e.map((t=>t.z)),phi:e.map((t=>t.phi))}},Zt=(t,e,r=!0)=>{const s=t.length,n=e.length,i=[],o=r?Math.max(s,n):s+n-1;for(let r=0;r<o;r++){let o=0;for(let i=0;i<n;i++){const a=r+i-Math.floor(n/2);o+=(a>=0&&a<s?t[a]:0)*e[i]}i.push(o)}return i},Xt=(t,e,r=!0)=>{t instanceof ot||(t=at(t)),e instanceof ot||(e=at(e));const s=t.rows,n=t.cols,i=r?Math.max(t.rows,e.rows):t.rows+e.rows-1,o=r?Math.max(t.cols,e.cols):t.cols+e.cols-1,a=e.rows,h=[];for(let r=0;r<i;r++){const i=[];for(let h=0;h<o;h++){let o=0;for(let i=0;i<a;i++)for(let l=0;l<a;l++){const c=r+i-Math.floor(a/2),u=h+l-Math.floor(a/2);o+=(c>=0&&c<s&&u>=0&&u<n?t[c][u]:0)*e[i][l]}i.push(o)}h.push(i)}return h},Kt=(t,e,r)=>t instanceof ot||t instanceof Array&&t[0][0]?Xt(t,e,r):Zt(t,e,r);class Gt{constructor(t){this.input=t,this.input_fft=qt(this.input),this.output_fft=[]}lowPass(t){return this.input_fft.output.forEach(((e,r)=>{e=e.z<t?this.output_fft[r]=this.input_fft.output[r]:this.output_fft[r]=s(0,0)})),Wt(this.output_fft).re}highPass(t){return this.input_fft.output.forEach(((e,r)=>{e=e.z>t?this.output_fft[r]=this.input_fft.output[r]:this.output_fft[r]=s(0,0)})),Wt(this.output_fft).re}bandePass(){}bandeCoupe(){}}const Yt={zeros:At,ones:Dt,nums:Bt,arange:St,linspace:Lt,logspace:Ot,geomspace:Vt,map:Tt,norm:_t,lerp:Mt,clamp:It,noise:(t,e=0,r=1)=>J.floats(t,e,r),echelon(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>t>=e?1:0),...t);return s instanceof Array?s.map((t=>t*r)):s*r},rampe(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>t>=e?t-e:0),...t);return s instanceof Array?s.map((t=>t*r)):s*r},sign(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>Math.sign(t-e)),...t);return s instanceof Array?s.map((t=>t*r)):s*r},rect(t,e,r=0,s=1){t instanceof Array||(t=[t]);const n=mt((t=>r-e/2<t&&r+e/2>t?1-2*d(t/e):0),...t);return n instanceof Array?n.map((t=>t*s)):n*s},tri(t,e,r=0,s=1){t instanceof Array||(t=[t]);const n=mt((t=>r-e/2<t&&r+e/2>t?1-2*d(t/e):0),...t);return n instanceof Array?n.map((t=>t*s)):n*s},dirac:(t,e)=>mt((t=>t===e?1/0:0),...t),lorentz(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>1/(1+(t-e)**2)),...t);return s instanceof Array?s.map((t=>t*r)):s*r},sinc(t,e,r=1){t instanceof Array||(t=[t]);const s=mt((t=>E(t-e)),...t);return s instanceof Array?s.map((t=>t*r)):s*r},square(t,e=1,r=1){t instanceof Array||(t=[t]);const s=mt((t=>H(F(2*t*Math.PI/e))),...t);return s instanceof Array?s.map((t=>t*r)):s*r},sawtooth(){},conv:Kt,conv1d:Zt,conv2d:Xt,circularConv:(t,e)=>Kt(t,e,!0),linearConv:(t,e)=>Kt(t,e,!1),circularConv1d:(t,e)=>Zt(t,e,!0),linearConv1d:(t,e)=>Zt(t,e,!1),circularConv2d:(t,e)=>Xt(t,e,!0),linearConv2d:(t,e)=>Xt(t,e,!1),fft:qt,ifft:Wt,filter:t=>new Gt(t)},Qt={PI:Ct,E:Et,EPSILON:kt,Random:J,complex:s,Complex:r,Matrix:ot,LinearSystem:ut,matrix:at,matrix2:ht,matrix3:lt,matrix4:ct,cos:w,sin:F,tan:v,sinc:E,sec:C,csc:k,cot:A,abs:d,sqrt:f,pow:g,sqrtn:y,e:b,ln:x,acos:D,asin:B,atan:_,acot:M,cosh:T,sinh:I,tanh:S,coth:L,acosh:O,asinh:V,atanh:j,min:o,max:a,sign:H,floor:N,ceil:R,round:P,fact:$,hypot:q,sig:U,atan2:z,Utils:Ut,mapfun:mt,nums:Bt,zeros:At,ones:Dt,sum:n,prod:i,add:bt,mul:wt,div:Ft,sub:xt,modulo:vt,rad2deg:Rt,deg2rad:jt,arange:St,linspace:Lt,logspace:Ot,geomspace:Vt,norm:_t,lerp:Mt,map:Tt,clamp:It,pgcd:$t,ppcm:Ht,isApproximatlyEqual:Pt,inRange:Nt,cartesianProduct:zt,Discret:Q,Logic:K,Base:X,Permutation:G,Combinaison:Y,powerSet:W,subSet:Z,Signal:Yt,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}},Jt=(t,e="px")=>("number"==typeof t&&(t+=e),t instanceof Array&&(t=t.map((t=>"number"==typeof t?t+=e:t)).join(" ")),t);class te{constructor(t={}){this.target=null,this.styles=new Map([["default",t]]),this.cache={isHidden:!1,isFaddedOut:!1,transformation:{Flip:[0,0,0],matrix:new ot([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]])}}}style(t,{target:e="parent",maskVector:r=null}={}){return"parent"===e||0===e?((t,e)=>{t&&Object.assign(t.style,e)})(this.target.element,t):"parent"!==e&&0!==e||(r?this.items.map(((e,s)=>1==r[s]&&e.style(t))):this.items.map((e=>e.style(t)))),this}linkTo(t){return this.target=t,this}use(t="default"){return this.style(this.styles.get(t)),this}update(t,e){const r=this.styles.get(t);return r?this.styles.set(t,Object.assign(r,e)):this.styles.set(t,e),this}add(t,e){return this.styles.set(t,e),this}replace(t,e){return this.styles.set(t,e),this}delete(...t){return t.forEach((t=>this.styles.delete(t))),this}updateDefaultStyle(){const t=Object.fromEntries(Object.entries(this.target.element.style).filter((t=>isNaN(+t[0]))));return this.update("default",t),this}hover(t){return t&&this.add("hover",t),this.target.element.addEventListener("pointerenter",(()=>this.use("hover"))),this.target.element.addEventListener("pointerleave",(()=>this.use("default"))),this}isInline(){return getComputedStyle(this.target.element).display.includes("inline")}isBlock(){return!this.isInline()}size(t,e,{target:r,maskVector:s}={}){return this.style({width:t,height:e},{target:r,maskVector:s}),this}width(t,{target:e,maskVector:r}={}){if(t instanceof Object){if(t instanceof Array&&(t={min:t[0],max:t[1]}),"min"in t||"max"in t){let s=t.min??t.max,n=t.max??t.min;s=Jt(s,"px"),n=Jt(n,"px"),this.style({minWidth:s,maxWidth:n},{target:e,maskVector:r})}}else t=Jt(t,"px"),this.style({width:t},{target:e,maskVector:r});return this}height(t,{target:e,maskVector:r}={}){if(t instanceof Object){if(t instanceof Array&&(t={min:t[0],max:t[1]}),"min"in t||"max"in t){let s=t.min??t.max,n=t.max??t.min;s=Jt(s,"px"),n=Jt(n,"px"),this.style({minHeight:s,maxHeight:n},{target:e,maskVector:r})}}else t=Jt(t,"px"),this.style({height:t},{target:e,maskVector:r});return this}enableResize(t=!1,e=!1,{target:r,maskVector:s}={}){let n="none";return n=t?e?"both":"horizontal":e?"vertical":"none",this.style({resize:n,overflow:"hidden"},{target:r,maskVector:s}),this.isInline()&&(console.group("Ziko Issue : Temporarily Incompatible Method"),console.warn(".enableResize has no effect on inline elements!"),console.info("%cConsider using other display types such as block, inline-block, flex, or grid for proper resizing behavior.","color:gold;background-color:#3333cc;padding:5px"),console.groupEnd()),this}hide({after:t,target:e,maskVector:r}={}){if("number"==typeof t){const s=()=>this.hide({target:e,maskVector:r});setTimeout(s,t),clearTimeout(s)}else this.cache.isHidden=!0,this.style({display:"none"},{target:e,maskVector:r});return this}show({after:t,target:e,maskVector:r}={}){if("number"==typeof t){const s=()=>this.show({target:e,maskVector:r});setTimeout(s,t),clearTimeout(s)}else this.cache.isHidden=!1,this.style({display:""},{target:e,maskVector:r});return this}color(t,{target:e,maskVector:r}={}){return this.style({color:t},{target:e,maskVector:r}),this}background(t,{target:e,maskVector:r}={}){return this.style({background:t},{target:e,maskVector:r}),this}backgroundColor(t,{target:e,maskVector:r}={}){return this.style({backgroundColor:t},{target:e,maskVector:r}),this}opacity(t,{target:e,maskVector:r}={}){return this.style({opacity:t},{target:e,maskVector:r}),this}position(t,{target:e,maskVector:r}={}){return this.style({position:t},{target:e,maskVector:r}),this}display(t,{target:e,maskVector:r}={}){return this.style({display:t},{target:e,maskVector:r}),this}zIndex(t,{target:e,maskVector:r}={}){return this.style({zIndex:t},{target:e,maskVector:r}),this}float(t,{target:e,maskVector:r}={}){return this.style({float:t},{target:e,maskVector:r}),this}border(t="1px solid red",{target:e,maskVector:r}={}){return this.style({border:t},{target:e,maskVector:r}),this}borderTop(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderTop:t},{target:e,maskVector:r}),this}borderRight(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderRight:t},{target:e,maskVector:r}),this}borderBottom(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderBottom:t},{target:e,maskVector:r}),this}borderLeft(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderLeft:t},{target:e,maskVector:r}),this}borderRadius(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({borderRadius:t},{target:e,maskVector:r}),this}margin(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({margin:t},{target:e,maskVector:r}),this}marginTop(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginTop:t},{target:e,maskVector:r}),this}marginRight(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginRight:t},{target:e,maskVector:r}),this}marginBootom(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginBootom:t},{target:e,maskVector:r}),this}marginLeft(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginLeft:t},{target:e,maskVector:r}),this}padding(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({padding:t},{target:e,maskVector:r}),this}paddingTop(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingTop:t},{target:e,maskVector:r}),this}paddingRight(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingRight:t},{target:e,maskVector:r}),this}paddingBootom(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingBootom:t},{target:e,maskVector:r}),this}paddingLeft(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingLeft:t},{target:e,maskVector:r}),this}font(t,{target:e,maskVector:r}={}){return this.style({font:t},{target:e,maskVector:r}),this}fontFamily(t="",{target:e,maskVector:r}={}){return this.style({fontFamily:t},{target:e,maskVector:r}),this}fontSize(t,{target:e,maskVector:r}={}){return this.style({fontSize:t},{target:e,maskVector:r}),this}cursor(t="pointer"){return this.style({cursor:t}),this}overflow(t,e,{target:r,maskVector:s}={}){const n=["hidden","auto"];return this.style({overflowX:"number"==typeof t?n[t]:t,overflowY:"number"==typeof e?n[e]:e},{target:r,maskVector:s}),this}clip(t,{target:e,maskVector:r}={}){return"string"==typeof t&&(t="polygon("+t+")"),this.style({clipPath:t},{target:e,maskVector:r}),this}fadeOut(t=1){return this.style({transition:t/1e3+"s",opacity:0}),this.cache.isFaddedOut=!0,this}fadeIn(t=1){return this.style({transition:t/1e3+"s",opacity:1}),this.cache.isFaddedOut=!1,this}toggleFade(t=1e3,e=t){return this.cache.isFaddedOut?this.fadeIn(t):this.fadeOut(e),this}#r(t){const e=this.cache.transformation.matrix.arr.join(",");this.style({transform:`matrix3d(${e})`,"-webkit-transform":`matrix3d(${e})`,"-moz-transform":`matrix3d(${e})`,"-ms-transform":`matrix3d(${e})`,"-o-transform":`matrix3d(${e})`}),0!=t&&this.style({transition:`transform ${t/1e3}s ease`})}translate(t,e=t,r=0,s=0){return this.cache.transformation.matrix.set(3,0,t),this.cache.transformation.matrix.set(3,1,e),this.cache.transformation.matrix.set(3,2,r),this.#r(s),this}translateX(t,e=0){return this.cache.transformation.matrix.set(3,0,t),this.#r(e),this}translateY(t,e=0){return this.cache.transformation.matrix.set(3,1,t),this.#r(e),this}translateZ(t,e=0){const r=-1/this.cache.transformation.matrix[2][2];return this.cache.transformation.matrix.set(3,2,t),this.cache.transformation.matrix.set(3,3,1-t/r),this.#r(e),this}perspective(t,e=0){const r=this.cache.transformation.matrix[3][2];return this.cache.transformation.matrix.set(2,2,-1/t),this.cache.transformation.matrix.set(3,3,1-r/t),this.#r(e),this}scale(t,e=t,r=0){return this.cache.transformation.matrix.set(0,0,t),this.cache.transformation.matrix.set(1,1,e),this.cache.transformation.matrix.arr.join(","),this.#r(r),this}scaleX(t=1,e=0){return this.cache.transformation.matrix.set(0,0,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}scaleY(t=1,e=0){return this.cache.transformation.matrix.set(1,1,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}skew(t,e=t,r=0){return this.cache.transformation.matrix.set(0,1,t),this.cache.transformation.matrix.set(1,0,e),this.cache.transformation.matrix.arr.join(","),this.#r(r),this}skewX(t=1,e=0){return this.cache.transformation.matrix.set(0,1,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}skewY(t=1,e=0){return this.cache.transformation.matrix.set(1,0,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}rotateX(t,e=0){return this.cache.transformation.matrix.set(1,1,w(t)),this.cache.transformation.matrix.set(1,2,-F(t)),this.cache.transformation.matrix.set(2,1,F(t)),this.cache.transformation.matrix.set(1,2,w(t)),this.#r(e),this}rotateY(t,e=0){return this.cache.transformation.matrix.set(0,0,w(t)),this.cache.transformation.matrix.set(0,2,F(t)),this.cache.transformation.matrix.set(2,0,-F(t)),this.cache.transformation.matrix.set(2,2,w(t)),this.#r(e),this}rotateZ(t,e=0){return this.cache.transformation.matrix.set(0,0,w(t)),this.cache.transformation.matrix.set(0,1,-F(t)),this.cache.transformation.matrix.set(1,0,F(t)),this.cache.transformation.matrix.set(1,1,w(t)),this.#r(e),this}flipeX({t:t=1}={}){return this.cache.transformation.Flip[0]+=180,this.cache.transformation.Flip[0]%=360,this.rotateX(this.cache.transformation.Flip[0],t),this}flipeY(t=1){return this.cache.transformation.Flip[1]+=180,this.cache.transformation.Flip[1]%=360,this.rotateY(this.cache.transformation.Flip[1],t),this}flipeZ(t=1){return this.cache.transformation.Flip[2]+=180,this.cache.transformation.Flip[2]%=360,this.rotateZ(this.cache.transformation.Flip[2],t),this}slideHeightIn(t=1,e=this.h){return this.style({transition:t+"s",height:e}),this}slideHeightOut(t=1){return this.style({transition:t+"s",height:0}),this.target.element.addEventListener("transitionend",(()=>this.style({opacity:"none"}))),this}slideWidthIn(t=1,e=this.w){return this.style({transition:t+"s",width:e}),this}slideWidthOut(t=1){this.style({transition:t+"s",width:0});const e=()=>{this.style({opacity:"none"})};return this.target.element.addEventListener("transitionend",e),this.target.element.removeEventListener("transitionend",e),this}slideIn({t:t=1,w:e="100%",h:r="auto"}={}){return this.style({transition:t+"s",width:e,height:r,visibility:"visible"}),this}slideOut({t:t=1,width:e=0,height:r=0}={}){this.style({visibility:"hidden",transition:t+"s",opacity:"none",width:e,height:r});const s=()=>{this.style({opacity:"none"})};return this.target.element.addEventListener("transitionend",s),this.target.element.removeEventListener("transitionend",s),this}}function ee(t,e,r,s){return this.event=t,this.cache.preventDefault[e]&&t.preventDefault(),r&&r(),this.cache.stream.enabled[e]&&s&&this.cache.stream.history[e].push(s),this.cache.callbacks[e].map((t=>t(this))),this}class re{constructor(t){this.target=null,this.setTarget(t),this.__dispose=this.dispose.bind(this)}get targetElement(){return this.target.element}setTarget(t){return this.target=t,this}__handle(t,e,r){const s="drag"===t?t:`${this.cache.prefixe}${t}`;return this.dispose(r),this.targetElement.addEventListener(s,e),this}__onEvent(t,e,...r){if(0===r.length){if(!(this.cache.callbacks.length>1))return this;this.cache.callbacks.map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=r.map((t=>e=>t.call(this,e)));return this.__handle(t,this.__controller[t],e),this}preventDefault(t={}){return Object.assign(this.cache.preventDefault,t),this}pause(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement.removeEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!0);return this}resume(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement.addEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!1);return this}dispose(t={}){return this.pause(t),this}stream(t={}){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.clear).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.cache.stream.history[e]=[]);return this}}function se(t){ee.call(this,t,"down",(()=>{this.dx=parseInt(t.offsetX),this.dy=parseInt(t.offsetY),this.isDown=!0}),{x:this.dx,y:this.dy,t:Date.now()-this.cache.stream.t0})}function ne(t){ee.call(this,t,"move",(()=>{this.mx=parseInt(t.offsetX),this.my=parseInt(t.offsetY),this.isMoving=!0}),{x:this.mx,y:this.my,t:Date.now()-this.cache.stream.t0})}function ie(t){ee.call(this,t,"up",(()=>{this.ux=parseInt(t.offsetX),this.uy=parseInt(t.offsetY),this.isDown=!1;const e=this.dx,r=this.dy,s=this.ux,n=this.uy,i=(s-e)/this.target.Width,o=(r-n)/this.target.Height,a=i<0?"left":i>0?"right":"none",h=o<0?"bottom":o>0?"top":"none";this.swippe={h:a,v:h,delta_x:i,delta_y:o}}),{x:this.ux,y:this.uy,t:Date.now()-this.cache.stream.t0})}function oe(t){ee.call(this,t,"enter",null,null)}function ae(t){ee.call(this,t,"leave",null,null)}function he(t){ee.call(this,t,"out",null,null)}class le extends re{constructor(t){super(t),this.event=null,this.dx=0,this.dy=0,this.dt=0,this.mx=0,this.my=0,this.mt=0,this.ux=0,this.uy=0,this.ut=0,this.swippe={h:null,v:null,delta_x:0,delta_y:0},this.isMoving=!1,this.isDown=!1,this.cache={prefixe:"pointer",preventDefault:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},paused:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},stream:{enabled:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},clear:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},history:{down:[],move:[],up:[],enter:[],out:[],leave:[]}},callbacks:{down:[t=>console.log({dx:t.dx,dy:t.dy,down:t.down,move:t.move,t:t.dt})],move:[t=>console.log({mx:t.mx,my:t.my,down:t.down,move:t.move,t:t.dt})],up:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})],enter:[t=>console.log({dx:t.dx,dy:t.dy,down:t.down,move:t.move,t:t.dt})],out:[t=>console.log({mx:t.mx,my:t.my,down:t.down,move:t.move,t:t.dt})],leave:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})]}},this.__controller={down:se.bind(this),move:ne.bind(this),up:ie.bind(this),enter:oe.bind(this),out:he.bind(this),leave:ae.bind(this)}}onDown(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("down",{down:!0,move:!1,up:!1,enter:!1,out:!1,leave:!1},...t),this}onMove(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("move",{down:!1,move:!0,up:!1,enter:!1,out:!1,leave:!1},...t),this}onUp(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("up",{down:!1,move:!1,up:!0,enter:!1,out:!1,leave:!1},...t),this}onEnter(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("enter",{down:!1,move:!1,up:!1,enter:!0,out:!1,leave:!1},...t),this}onOut(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("out",{down:!1,move:!1,up:!1,enter:!1,out:!0,leave:!1},...t),this}onLeave(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("leave",{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!0},...t),this}}var ce=t=>new le(t);function ue(t){ee.call(this,t,"down",(()=>this.kd=t.key),{key:t.key,t:10})}function me(t){ee.call(this,t,"press",(()=>this.kp=t.key),{key:t.key,t:10})}function pe(t){ee.call(this,t,"up",(()=>this.ku=t.key),{key:t.key,t:10})}class de extends re{constructor(t){super(t),this.kp=null,this.kd=null,this.ku=null,this.t=0,this.cache={prefixe:"key",preventDefault:{down:!1,press:!1,up:!1},paused:{down:!1,press:!1,up:!1},stream:{enabled:{down:!1,press:!1,up:!1},clear:{down:!0,press:!1,up:!1},history:{down:[],press:[],up:[]}},callbacks:{down:[t=>console.log({kd:t.kd})],press:[t=>console.log({kp:t.kp})],up:[t=>console.log({ku:t.ku})]},successifKeysCallback:{down:[t=>console.log(1111)],press:[t=>console.log(1112)],kyup:[t=>console.log(1113)]}},this.__controller={down:ue.bind(this),press:me.bind(this),up:pe.bind(this)}}onDown(...t){return this.__onEvent("down",{down:!0},...t),this}onPress(...t){return this.__onEvent("press",{press:!0},...t),this}onUp(...t){return this.__onEvent("up",{up:!0},...t),this}}var fe=t=>new de(t);function ge(t){ee(this,t,"start",null)}function ye(t){ee.call(this,t,"drag",null,null)}function be(t){ee.call(this,t,"end",null,null)}function xe(t){ee.call(this,t,"drop",null,null)}class we extends re{constructor(t){super(t),this.target.setAttribute("draggable",!0),this.cache={prefixe:"drag",preventDefault:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},paused:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},enabled:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},callbacks:{drag:[],start:[],end:[],enter:[],leave:[],over:[]},stream:{enabled:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},clear:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},history:{drag:[],start:[],end:[],enter:[],leave:[],over:[]}}},this.__controller={start:ge.bind(this),drag:ye.bind(this),end:be.bind(this)}}onStart(...t){return this.__onEvent("start",{},...t),this}onDrag(...t){return this.__onEvent("drag",{},...t),this}onEnd(...t){return this.__onEvent("end",{},...t),this}}class Fe extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{drop:!1},paused:{drop:!1},stream:{enabled:{drop:!1},clear:{drop:!1},history:{drop:[]}},callbacks:{drop:[t=>console.log({dx:t.dx,dy:t.dy,drop:t.drop,move:t.move,t:t.dt})]}},this.__controller={drop:xe.bind(this)}}onDrop(...t){return this.__onEvent("drop",{},...t),this}}const ve=t=>new we(t),Ce=t=>new Fe(t);function Ee(t){ee.call(this,t,"click",null,null)}function ke(t){ee.call(this,t,"dbclick",null,null)}class Ae extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{click:!1,dbclick:!1},paused:{click:!1,dbclick:!1},stream:{enabled:{click:!1,dbclick:!1},clear:{click:!1,dbclick:!1},history:{click:[],dbclick:[]}},callbacks:{click:[],dbclick:[]}},this.__controller={click:Ee.bind(this),dbclick:ke.bind(this)}}onClick(...t){return this.__onEvent("click",{},...t),this}onDbClick(...t){return this.__onEvent("dbclick",{},...t),this}}const De=t=>new Ae(t);function Be(t){ee.call(this,t,"copy",null,null)}function _e(t){ee.call(this,t,"cut",null,null)}function Me(t){ee.call(this,t,"paste",null,null)}function Te(t){ee.call(this,t,"select",null,null)}class Ie extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{copy:!1,cut:!1,paste:!1,select:!1},paused:{copy:!1,cut:!1,paste:!1,select:!1},stream:{enabled:{copy:!1,cut:!1,paste:!1,select:!1},clear:{copy:!1,cut:!1,paste:!1,select:!1},history:{copy:[],cut:[],paste:[],select:[]}},callbacks:{copy:[],cut:[],paste:[],select:[]}},this.__controller={copy:Be.bind(this),cut:_e.bind(this),paste:Me.bind(this),select:Te.bind(this)}}onCopy(...t){return this.__onEvent("copy",{},...t),this}onCut(...t){return this.__onEvent("cut",{},...t),this}onPaste(...t){return this.__onEvent("paste",{},...t),this}onSelect(...t){return this.__onEvent("select",{},...t),this}}const Se=t=>new Ie(t);function Le(t){ee.call(this,t,"focus",null,null)}function Oe(t){ee.call(this,t,"blur",null,null)}class Ve extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{focus:!1,blur:!1},paused:{focus:!1,blur:!1},stream:{enabled:{focus:!1,blur:!1},clear:{focus:!1,blur:!1},history:{focus:[],blur:[]}},callbacks:{focus:[],blur:[]}},this.__controller={focus:Le.bind(this),blur:Oe.bind(this)}}onFocus(...t){return this.__onEvent("focus",{},...t),this}onBlur(...t){return this.__onEvent("blur",{},...t),this}}const je=t=>new Ve(t);function Re(t){ee.call(this,t,"input",null,null)}function Ne(t){ee.call(this,t,"change",null,null)}class Pe extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{input:!1,change:!1},paused:{input:!1,change:!1},stream:{enabled:{input:!1,change:!1},clear:{input:!1,change:!1},history:{input:[],change:[]}},callbacks:{input:[],change:[]}},this.__controller={input:Re.bind(this),change:Ne.bind(this)}}get value(){return this.target.value}onInput(...t){return this.__onEvent("input",{},...t),this}onChange(...t){return this.__onEvent("change",{},...t),this}}const ze=t=>new Pe(t),$e=t=>function(e){ee.call(this,e,t,null,null)};class He extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{}},this.__controller={}}#s(t){return this.cache.preventDefault[t]=!1,this.cache.paused[t]=!1,this.cache.stream.enabled=!1,this.cache.stream.clear=!1,this.cache.stream.history=[],this.cache.callbacks[t]=[],this.__controller[t]=$e(t).bind(this),this}on(t,...e){return this.__controller[t]||this.#s(t),this.__onEvent(t,{},...e),this}emit(t,e={}){this.__controller[t]||this.#s(t),this.detail=e;const r=new Event(t);return this.targetElement.dispatchEvent(r),this}}const Ue=t=>new He(t),qe={Pointer:ce,Key:fe,Drag:ve,Drop:Ce,Click:De,Clipboard:Se,Focus:je,Input:ze,CustomEvent:Ue,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class We{constructor(t,e,{threshold:r=0,margin:s=0}={}){this.target=t,this.config={threshold:r,margin:s},this.observer=new IntersectionObserver((t=>{this.entrie=t[0],e(this)}),{threshold:this.threshold})}get ratio(){return this.entrie.intersectionRatio}get isIntersecting(){return this.entrie.isIntersecting}setThreshould(t){return this.config.threshold=t,this}setMargin(t){return t="number"==typeof t?t+"px":t,this.config.margin=t,this}start(){return this.observer.observe(this.target.element),this}stop(){return this}}class Ze{constructor(t,e){this.target=t,this.contentRect=null,this.observer=new ResizeObserver((()=>{e(this)}))}get BoundingRect(){return this.target.element.getBoundingClientRect()}get width(){return this.BoundingRect.width}get height(){return this.BoundingRect.height}get top(){return this.BoundingRect.top}get bottom(){return this.BoundingRect.bottom}get right(){return this.BoundingRect.right}get left(){return this.BoundingRect.left}get x(){return this.BoundingRect.x}get y(){return this.boundingRect.y}start(){return this.observer.observe(this.target.element),this}stop(){return this.observer.unobserve(this.target.element),this}}class Xe{constructor(t,e=0){this.id="Ziko-Style-"+e,this.use(t),this.keys=new Set,this.styles={default:{fontSize:"1em"}}}get current(){return[...this.keys].reduce(((t,e)=>(t[e]=`var(--${e}-${this.id})`,t)),{})}add(t,e={}){return t instanceof Object?Object.assign(this.styles,t):Object.assign(this.styles,{[t]:e}),this}#n(t){const e=Object.keys(this.styles);for(let r in this.styles[e[t]])document.documentElement.style.setProperty(`--${r}-${this.id}`,this.styles[e[t]][r]),this.keys.add(r);return this}#i(t){for(let e in this.styles[t])document.documentElement.style.setProperty(`--${e}-${this.id}`,this.styles[t][e]),this.keys.add(e);return this}#o(t){for(let e in t)document.documentElement.style.setProperty(`--${e}-${this.id}`,t[e]),this.keys.add(e);return this}use(t){return"number"==typeof t&&this.#n(t),"string"==typeof t&&this.#i(t),t instanceof Object&&this.#o(t),this}}const Ke={cozyCottonCandy:{background:"#FCE4EC",currentLine:"#F8BBD0",selection:"#FFCDD2",foreground:"#673AB7",comment:"#9575CD",cyan:"#00BCD4",green:"#4CAF50",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},crystalClear:{background:"#F6F8FA",currentLine:"#E8F0F5",selection:"#D4E9F7",foreground:"#485766",comment:"#8492A6",cyan:"#00ACC1",green:"#8BC34A",orange:"#FFA726",pink:"#FF4081",purple:"#7E57C2",red:"#EF5350",yellow:"#FFD740"},lightdreamyDusk:{background:"#F5F5F5",currentLine:"#E8E8E8",selection:"#DADADA",foreground:"#555555",comment:"#999999",cyan:"#5FB3B3",green:"#68C386",orange:"#FFB67A",pink:"#FF94B0",purple:"#B78BC3",red:"#FF6666",yellow:"#FFD666"},luminousLavender:{background:"#F3E5F5",currentLine:"#E1BEE7",selection:"#CE93D8",foreground:"#311B92",comment:"#673AB7",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},meadowMornings:{background:"#F3E5F5",currentLine:"#E1BEE7",selection:"#CE93D8",foreground:"#311B92",comment:"#673AB7",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},moonlitMauve:{background:"#F3E5F5",currentLine:"#E1BEE7",selection:"#CE93D8",foreground:"#311B92",comment:"#673AB7",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},morningMist:{background:"#F6F6F6",currentLine:"#EAEAEA",selection:"#D8D8D8",foreground:"#333333",comment:"#808080",cyan:"#00A6A6",green:"#4CAF50",orange:"#FFA726",pink:"#FF4081",purple:"#9C27B0",red:"#FF5252",yellow:"#FFD740"},oceanBreeze:{background:"#ECF1F4",currentLine:"#DDE8ED",selection:"#BFD3C1",foreground:"#37474F",comment:"#607D8B",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#673AB7",red:"#F44336",yellow:"#FFEB3B"},pastelParadise:{background:"#F5F5F5",currentLine:"#E8E8E8",selection:"#DADADA",foreground:"#555555",comment:"#999999",cyan:"#5FB3B3",green:"#68C386",orange:"#FFB67A",pink:"#FF94B0",purple:"#B78BC3",red:"#FF6666",yellow:"#FFD666"},pastelPetals:{background:"#FCE4EC",currentLine:"#F8BBD0",selection:"#FFCDD2",foreground:"#673AB7",comment:"#9575CD",cyan:"#00BCD4",green:"#4CAF50",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},sereneSnowfall:{background:"#F9F9F9",currentLine:"#EDEDED",selection:"#D8D8D8",foreground:"#454545",comment:"#888888",cyan:"#5FA5A5",green:"#5BC47E",orange:"#FFBC8D",pink:"#FFA7BF",purple:"#B88AAE",red:"#FF7575",yellow:"#FFD98F"},softSherbet:{background:"#FDF8F3",currentLine:"#FAF1EB",selection:"#FFEBEE",foreground:"#6D4C41",comment:"#A1887F",cyan:"#00BCD4",green:"#689F38",orange:"#FFA000",pink:"#EC407A",purple:"#8E24AA",red:"#E53935",yellow:"#FFC107"},subtleSerenity:{background:"#F3F5F7",currentLine:"#E8EDF2",selection:"#D1D9E6",foreground:"#2C3E50",comment:"#95A5A6",cyan:"#3498DB",green:"#2ECC71",orange:"#F39C12",pink:"#E74C3C",purple:"#9B59B6",red:"#C0392B",yellow:"#F1C40F"},summerSunset:{background:"#FCE4EC",currentLine:"#F8BBD0",selection:"#FFCDD2",foreground:"#4E342E",comment:"#795548",cyan:"#009688",green:"#43A047",orange:"#FF5722",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},sunnyDay:{background:"#FFF8E1",currentLine:"#FFF3E0",selection:"#FFE0B2",foreground:"#4E342E",comment:"#795548",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#673AB7",red:"#F44336",yellow:"#FFEB3B"},tranquilTwilight:{background:"#F9F9F9",currentLine:"#EDEDED",selection:"#D8D8D8",foreground:"#454545",comment:"#888888",cyan:"#5FA5A5",green:"#5BC47E",orange:"#FFBC8D",pink:"#FFA7BF",purple:"#B88AAE",red:"#FF7575",yellow:"#FFD98F"},tranquilWaves:{background:"#F9F9F9",currentLine:"#E4E4E4",selection:"#D4D4D4",foreground:"#2C3E50",comment:"#7F8C8D",cyan:"#3498DB",green:"#2ECC71",orange:"#F39C12",pink:"#E74C3C",purple:"#9B59B6",red:"#C0392B",yellow:"#F1C40F"},whisperingWillow:{background:"#F6F8FA",currentLine:"#E8F0F5",selection:"#D4E9F7",foreground:"#485766",comment:"#8492A6",cyan:"#00ACC1",green:"#8BC34A",orange:"#FFA726",pink:"#FF4081",purple:"#7E57C2",red:"#EF5350",yellow:"#FFD740"}},Ge={antiqueRose:{background:"#1C1014",currentLine:"#2B1B21",selection:"#443034",foreground:"#D8B5B5",comment:"#7F5E5E",cyan:"#6FA2A2",green:"#66A66F",orange:"#FFB97A",pink:"#FFA8BD",purple:"#B78DA5",red:"#FF6C6C",yellow:"#FFD579"},auroraBorealis:{background:"#1D1426",currentLine:"#2B1E35",selection:"#432D4E",foreground:"#C2AABF",comment:"#7F6E8E",cyan:"#7EA5D3",green:"#77C992",orange:"#FFC476",pink:"#FFA8B3",purple:"#AE9AC3",red:"#FF6C6C",yellow:"#FFD576"},autumnHarvest:{background:"#291C10",currentLine:"#3A2A1E",selection:"#573C2C",foreground:"#D4C3A2",comment:"#7F6F52",cyan:"#82B4BF",green:"#7FB074",orange:"#FFAB6E",pink:"#FF8196",purple:"#B394A9",red:"#FF6565",yellow:"#FFD270"},aylin:{background:"#13161E",currentLine:"#161A28",selection:"#222B3E",foreground:"#D2D8E0",comment:"#697098",cyan:"#78D1E1",green:"#98C379",orange:"#EBCB8B",pink:"#D16D9E",purple:"#C678DD",red:"#E88388",yellow:"#EBCB8B"},azureBlue:{background:"#001B29",currentLine:"#002C3E",selection:"#004E6B",foreground:"#C3D7E2",comment:"#5F7C92",cyan:"#75B7D1",green:"#70C8A7",orange:"#FFB476",pink:"#FF92B0",purple:"#B88BC3",red:"#FF6666",yellow:"#FFD666"},cobalt2:{background:"#193549",currentLine:"#1F4662",selection:"#193549",foreground:"#B9BED0",comment:"#627D98",cyan:"#4DB5BD",green:"#86B300",orange:"#FFB86C",pink:"#FF7F7B",purple:"#9B64FB",red:"#FF6672",yellow:"#FFCC99"},cobaltMaterialTheme:{background:"#263238",currentLine:"#37474F",selection:"#80CBC4",foreground:"#CFD8DC",comment:"#78909C",cyan:"#80CBC4",green:"#A5D6A7",orange:"#FFD54F",pink:"#FF80AB",purple:"#CE93D8",red:"#EF5350",yellow:"#FFEE58"},cosmicBlue:{background:"#1B2836",currentLine:"#223348",selection:"#39516D",foreground:"#C0D4E5",comment:"#728CAB",cyan:"#75A6FF",green:"#5ED99F",orange:"#FFAD6F",pink:"#FF90B6",purple:"#A889C5",red:"#FF6E6E",yellow:"#FCD256"},cosmicSunset:{background:"#1B1921",currentLine:"#272530",selection:"#3C3948",foreground:"#B8B4CB",comment:"#7A738B",cyan:"#77B4D8",green:"#6CC09E",orange:"#FFA677",pink:"#FF95B2",purple:"#B48FC1",red:"#FF6565",yellow:"#FFD566"},cyberForest:{background:"#0D151D",currentLine:"#18262F",selection:"#2B3B47",foreground:"#CDD7E0",comment:"#667B8B",cyan:"#7EC4CF",green:"#68CC96",orange:"#FFAC6C",pink:"#FF89B4",purple:"#A889C5",red:"#FF6565",yellow:"#FFCB6B"},cyberPunkCity:{background:"#000000",currentLine:"#121212",selection:"#1F1F1F",foreground:"#DADADA",comment:"#626262",cyan:"#71B7FF",green:"#50D890",orange:"#FFB86C",pink:"#FF79C6",purple:"#BB86FC",red:"#FF5454",yellow:"#FDD663"},cyberpunkNeon:{background:"#121212",currentLine:"#1B1B1B",selection:"#262626",foreground:"#DADADA",comment:"#6C6C6C",cyan:"#69AEDB",green:"#4ECCA3",orange:"#FFB86C",pink:"#FF79C6",purple:"#D08EFF",red:"#FF5454",yellow:"#FDD663"},darkDesert:{background:"#1E2022",currentLine:"#282A2E",selection:"#393D42",foreground:"#C0C5CE",comment:"#5C6368",cyan:"#6FB3E0",green:"#88C076",orange:"#FFB454",pink:"#FF7F90",purple:"#B48EAD",red:"#FF6666",yellow:"#FFCC66"},darkMint:{background:"#11161A",currentLine:"#1B2128",selection:"#3D4853",foreground:"#D9DEE5",comment:"#65737E",cyan:"#88C0D0",green:"#98C379",orange:"#FFB86C",pink:"#FF7F8B",purple:"#C594C5",red:"#FF6561",yellow:"#FAD07B"},deepOcean:{background:"#121C2C",currentLine:"#182236",selection:"#2B3E50",foreground:"#BDC3C7",comment:"#6C7A89",cyan:"#59ABE3",green:"#26A65B",orange:"#F9690E",pink:"#EB3B5A",purple:"#D2527F",red:"#E74C3C",yellow:"#F5AB35"},deepOceanBlue:{background:"#1B2F40",currentLine:"#263B53",selection:"#3A536E",foreground:"#BFC9D4",comment:"#657C8E",cyan:"#6CB5FF",green:"#65C287",orange:"#FFA974",pink:"#FF87B4",purple:"#AE9BFF",red:"#FF6666",yellow:"#FFD67B"},deepOceanSunset:{background:"#151D2A",currentLine:"#1D2735",selection:"#31405B",foreground:"#D5D9E0",comment:"#6C7B8B",cyan:"#6FAAD4",green:"#66C295",orange:"#FFA476",pink:"#FF94B0",purple:"#B08FC0",red:"#FF6565",yellow:"#FFD466"},deepSpace:{background:"#0F1419",currentLine:"#1A232D",selection:"#3A4758",foreground:"#CDD9E5",comment:"#657C96",cyan:"#6CB6FF",green:"#4CAF50",orange:"#FFB454",pink:"#FF75B5",purple:"#9A76FF",red:"#FF5555",yellow:"#FFC857"},dracula:{background:"#282a36",currentLine:"#44475a",selection:"#44475a",foreground:"#f8f8f2",comment:"#6272a4",cyan:"#8be9fd",green:"#50fa7b",orange:"#ffb86c",pink:"#ff79c6",purple:"#bd93f9",red:"#ff5555",yellow:"#f1fa8c"},dreamyDusk:{background:"#22243D",currentLine:"#313558",selection:"#4C4F6D",foreground:"#A5A7C5",comment:"#6F728E",cyan:"#81A2BE",green:"#7FB074",orange:"#FFB476",pink:"#FF91A4",purple:"#AE8DC2",red:"#FF7272",yellow:"#FFD67A"},electricLagoon:{background:"#15232B",currentLine:"#20323E",selection:"#344E5F",foreground:"#A6C0B9",comment:"#6C8F81",cyan:"#80C7D1",green:"#7FCD97",orange:"#FFBC76",pink:"#FF9FB3",purple:"#AE8FC3",red:"#FF7272",yellow:"#FFD674"},emeraldCity:{background:"#112E26",currentLine:"#1B3F38",selection:"#2F6253",foreground:"#A6C0B9",comment:"#6C8F81",cyan:"#80C7D1",green:"#7FCD97",orange:"#FFBC76",pink:"#FF9FB3",purple:"#AE8FC3",red:"#FF7272",yellow:"#FFD674"},enchantedEclipse:{background:"#131A22",currentLine:"#1F2C3A",selection:"#2D4455",foreground:"#A7B6C2",comment:"#6B7B8C",cyan:"#5FA8D3",green:"#5CB8A4",orange:"#FFA96C",pink:"#FF8FA2",purple:"#A88ED1",red:"#FF6B6B",yellow:"#FFD575"},enchantedEvening:{background:"#1E1824",currentLine:"#2A2332",selection:"#3F3A4F",foreground:"#C2B4CB",comment:"#7F7292",cyan:"#76AAD8",green:"#6CC095",orange:"#FFB36C",pink:"#FF8FB0",purple:"#AB8CC2",red:"#FF6464",yellow:"#FFD164"},fireAndIce:{background:"#1F2532",currentLine:"#292F3D",selection:"#4E556A",foreground:"#D8DEE9",comment:"#69758E",cyan:"#7EC4CF",green:"#68CC98",orange:"#FFA071",pink:"#FF88B5",purple:"#AE9BFF",red:"#FF657E",yellow:"#FDCB83"},forestGreen:{background:"#1A1E22",currentLine:"#24292F",selection:"#394147",foreground:"#C8C8C8",comment:"#5C6370",cyan:"#7AAB9D",green:"#88B379",orange:"#FFAC6F",pink:"#F97B77",purple:"#A187BE",red:"#FF5C5C",yellow:"#F5D76E"},futuristicBlue:{background:"#111B26",currentLine:"#1B2E3F",selection:"#334D65",foreground:"#C0D2E3",comment:"#6E859E",cyan:"#77AADB",green:"#78C196",orange:"#FFAC6C",pink:"#FF8DBE",purple:"#A48ADA",red:"#FF6666",yellow:"#FFD66D"},gentlePurple:{background:"#2E2E3D",currentLine:"#383849",selection:"#4D4D5C",foreground:"#B2B2CC",comment:"#6E6E8F",cyan:"#6D77CC",green:"#81C995",orange:"#FFB16A",pink:"#FF7CAC",purple:"#8A80A1",red:"#FF657A",yellow:"#FDB26E"},githubDarkDimmed:{background:"#0D1117",currentLine:"#161B22",selection:"#1F6F8B",foreground:"#8B949E",comment:"#8B949E",cyan:"#79C0FF",green:"#2DD57A",orange:"#FFB454",pink:"#FF80AB",purple:"#D781D3",red:"#EF5252",yellow:"#D29922"},gruvbox:{background:"#282828",currentLine:"#3c3836",selection:"#bdae93",foreground:"#ebdbb2",comment:"#928374",cyan:"#83a598",green:"#b8bb26",orange:"#fe8019",pink:"#d3869b",purple:"#d3869b",red:"#fb4934",yellow:"#fabd2f"},materialTheme:{background:"#263238",currentLine:"#37474f",selection:"#90a4ae",foreground:"#eceff1",comment:"#546e7a",cyan:"#80cbc4",green:"#a5d6a7",orange:"#ffb74d",pink:"#f06292",purple:"#ba68c8",red:"#ef5350",yellow:"#ffee58"},midnightMystique:{background:"#1E1E27",currentLine:"#292935",selection:"#3F3F4F",foreground:"#C2C2D3",comment:"#757593",cyan:"#76D4D6",green:"#6CC18F",orange:"#FFB36C",pink:"#FF8FAB",purple:"#AB8BC7",red:"#FF6464",yellow:"#FFD164"},midnightSunset:{background:"#182233",currentLine:"#1D2D46",selection:"#384B66",foreground:"#B7C0CE",comment:"#6A788A",cyan:"#6B98FF",green:"#6BD49D",orange:"#FFA178",pink:"#FF8DAB",purple:"#B48EAD",red:"#F96263",yellow:"#FADA5E"},minimalMonochrome:{background:"#1C1C1C",currentLine:"#262626",selection:"#363636",foreground:"#D9D9D9",comment:"#757575",cyan:"#7DC1C7",green:"#7FB074",orange:"#FFB869",pink:"#FF81A2",purple:"#B48EAD",red:"#FF6B6B",yellow:"#FFD57B"},modernMarine:{background:"#0A0E19",currentLine:"#121929",selection:"#1E2B42",foreground:"#D5D8DE",comment:"#7F8493",cyan:"#6FB1D3",green:"#6CC792",orange:"#FFB577",pink:"#FF96B0",purple:"#B690C2",red:"#FF6666",yellow:"#FFD666"},monokai:{background:"#272822",currentLine:"#3e3d32",selection:"#49483e",foreground:"#f8f8f2",comment:"#75715e",cyan:"#66d9ef",green:"#a6e22e",orange:"#fd971f",pink:"#f92672",purple:"#ae81ff",red:"#f92672",yellow:"#e6db74"},moonlitMeadow:{background:"#12252C",currentLine:"#1D3B47",selection:"#24566E",foreground:"#A7C4BC",comment:"#5E7D84",cyan:"#82B7BD",green:"#87C38A",orange:"#F4B66A",pink:"#F77A92",purple:"#C58AC9",red:"#F0725E",yellow:"#E8C284"},mysticalMauve:{background:"#1A1A26",currentLine:"#252533",selection:"#3E3E57",foreground:"#B2B2CC",comment:"#757593",cyan:"#76D4D6",green:"#6CC18F",orange:"#FFB36C",pink:"#FF8FAB",purple:"#AB8BC7",red:"#FF6464",yellow:"#FFD164"},nebulaNights:{background:"#1B1821",currentLine:"#262330",selection:"#3C3A48",foreground:"#B8B4CB",comment:"#7A738B",cyan:"#77B4D8",green:"#6CC09E",orange:"#FFA677",pink:"#FF95B2",purple:"#B48FC1",red:"#FF6565",yellow:"#FFD566"},neonLights:{background:"#000000",currentLine:"#0D0D0D",selection:"#1A1A1A",foreground:"#DADADA",comment:"#7F7F7F",cyan:"#6FE3E3",green:"#60FFA0",orange:"#FFB67A",pink:"#FF9FBD",purple:"#BF8CC2",red:"#FF6666",yellow:"#FFD666"},nightSky:{background:"#17202A",currentLine:"#1C2732",selection:"#2E4053",foreground:"#D0D3D4",comment:"#566573",cyan:"#5DADE2",green:"#45B39D",orange:"#F5B041",pink:"#EB984E",purple:"#AF7AC5",red:"#EC7063",yellow:"#F4D03F"},nord:{background:"#2e3440",currentLine:"#3b4252",selection:"#4c566a",foreground:"#d8dee9",comment:"#616e88",cyan:"#88c0d0",green:"#a3be8c",orange:"#ebcb8b",pink:"#bf616a",purple:"#b48ead",red:"#bf616a",yellow:"#ebcb8b"},nova:{background:"#1F262D",currentLine:"#232A32",selection:"#414B56",foreground:"#D9E2EC",comment:"#525F69",cyan:"#89DDFF",green:"#64D989",orange:"#E7C664",pink:"#E95678",purple:"#C594C5",red:"#FF5656",yellow:"#FFC172"},novaDark:{background:"#1A2026",currentLine:"#212930",selection:"#36424F",foreground:"#C0C6D9",comment:"#5B6C7F",cyan:"#84CEE4",green:"#89DD6D",orange:"#FFB46E",pink:"#FF7CAB",purple:"#BB80B3",red:"#FC6161",yellow:"#FAB795"},oceanBlue:{background:"#12232E",currentLine:"#1D3B53",selection:"#205072",foreground:"#A8DADC",comment:"#5E81AC",cyan:"#7FB2F0",green:"#88C0D0",orange:"#FFB86C",pink:"#FFA0A0",purple:"#D4A3D9",red:"#EF8E8E",yellow:"#FFD180"},oceanicAzure:{background:"#001A23",currentLine:"#002B36",selection:"#004056",foreground:"#C0C5CE",comment:"#4D5767",cyan:"#75A4C0",green:"#68A3A8",orange:"#FFA45E",pink:"#FF94B0",purple:"#B48EAD",red:"#FF6363",yellow:"#FFD464"},oceanicGruvbox:{background:"#1d2021",currentLine:"#282828",selection:"#458588",foreground:"#ebdbb2",comment:"#928374",cyan:"#89b482",green:"#a9b665",orange:"#d79921",pink:"#d3869b",purple:"#b16286",red:"#fb4934",yellow:"#d5c4a1"},oceanicNext:{background:"#1B2B34",currentLine:"#343D46",selection:"#4F5B66",foreground:"#A7ADBA",comment:"#616E7C",cyan:"#7FB5DA",green:"#98C379",orange:"#EBCB8B",pink:"#EC5f67",purple:"#C594C5",red:"#EC5f67",yellow:"#D29922"},oneDark:{background:"#282c34",currentLine:"#3e4451",selection:"#4f5b66",foreground:"#abb2bf",comment:"#5c6370",cyan:"#56b6c2",green:"#98c379",orange:"#d19a66",pink:"#c678dd",purple:"#c678dd",red:"#e06c75",yellow:"#e5c07b"},polarNight:{background:"#2E3440",currentLine:"#3B4252",selection:"#4C566A",foreground:"#D8DEE9",comment:"#616E88",cyan:"#81A1C1",green:"#A3BE8C",orange:"#EBCB8B",pink:"#BF616A",purple:"#B48EAD",red:"#BF616A",yellow:"#EBCB8B"},radiantRainforest:{background:"#16231A",currentLine:"#1F3927",selection:"#355D43",foreground:"#A7C9A2",comment:"#6F8D77",cyan:"#80C3BB",green:"#76CC8F",orange:"#FFB56C",pink:"#FF8FA6",purple:"#AB8CC2",red:"#FF6C6C",yellow:"#FFD576"},retroTech:{background:"#0C0C0C",currentLine:"#141414",selection:"#1F1F1F",foreground:"#D9D9D9",comment:"#626262",cyan:"#77BFC9",green:"#69CC6D",orange:"#FFC46D",pink:"#FF7D99",purple:"#BB86FC",red:"#FF5555",yellow:"#FACD60"},royalPurple:{background:"#1E1B2E",currentLine:"#272337",selection:"#3E395B",foreground:"#D5D1E2",comment:"#76708E",cyan:"#76D7C4",green:"#47B87C",orange:"#FFC300",pink:"#F39C9D",purple:"#9B59B6",red:"#E74C3C",yellow:"#F1C40F"},sapphireSkies:{background:"#081125",currentLine:"#0F1F3A",selection:"#1E3874",foreground:"#D8DCE6",comment:"#6B7394",cyan:"#7EC4D9",green:"#7DCB9E",orange:"#FFB578",pink:"#FF8FB3",purple:"#B992CC",red:"#FF6767",yellow:"#FFD684"},shadesOfPurple:{background:"#2d2b55",currentLine:"#37355a",selection:"#444267",foreground:"#ecebf0",comment:"#9a99a3",cyan:"#a1efe4",green:"#72f1b8",orange:"#f78c6c",pink:"#ffcc99",purple:"#9a99a3",red:"#ff6188",yellow:"#ffcc99"},solarizedDark:{background:"#002b36",currentLine:"#073642",selection:"#586e75",foreground:"#839496",comment:"#586e75",cyan:"#2aa198",green:"#859900",orange:"#cb4b16",pink:"#d33682",purple:"#6c71c4",red:"#dc322f",yellow:"#b58900"},synthWave84:{background:"#2b213a",currentLine:"#3e3650",selection:"#564d7a",foreground:"#e0def4",comment:"#9c8c98",cyan:"#95e6cb",green:"#00ffb9",orange:"#f28779",pink:"#f771ac",purple:"#d3bfff",red:"#ff6188",yellow:"#ffd866"},tokyoNight:{background:"#1a1b26",currentLine:"#282a36",selection:"#44475a",foreground:"#eff0eb",comment:"#6b6e76",cyan:"#78d1e1",green:"#67b11d",orange:"#e1a80e",pink:"#ff79c6",purple:"#d27bff",red:"#ff5555",yellow:"#f3f99d"},tomorrowNight:{background:"#1d1f21",currentLine:"#282a36",selection:"#373b41",foreground:"#c5c8c6",comment:"#616e7c",cyan:"#81a2be",green:"#b5bd68",orange:"#de935f",pink:"#cc6666",purple:"#b294bb",red:"#cc6666",yellow:"#f0c674"},twilightMeadow:{background:"#14202A",currentLine:"#1F2E3F",selection:"#334D65",foreground:"#A6C0B9",comment:"#6C8F81",cyan:"#80C7D1",green:"#7FCD97",orange:"#FFBC76",pink:"#FF9FB3",purple:"#AE8FC3",red:"#FF7272",yellow:"#FFD674"},urbanTwilight:{background:"#161727",currentLine:"#1F2737",selection:"#35415B",foreground:"#BDC9D7",comment:"#7F8C9C",cyan:"#77AED8",green:"#6CC492",orange:"#FFB677",pink:"#FF95B1",purple:"#B48DC2",red:"#FF6C6C",yellow:"#FFD576"},vibrantInk:{background:"#1C1E26",currentLine:"#242730",selection:"#363B4A",foreground:"#BFC7D5",comment:"#5C6672",cyan:"#6A76FB",green:"#33CC95",orange:"#FF9A65",pink:"#FF75B5",purple:"#AE81FF",red:"#FF6188",yellow:"#FDD269"},vintageRust:{background:"#301F1A",currentLine:"#3E2A23",selection:"#5D3E35",foreground:"#D7C3A7",comment:"#7F6C55",cyan:"#83A4C4",green:"#7EAD90",orange:"#FFA45E",pink:"#FF8C9E",purple:"#B491A9",red:"#FF7262",yellow:"#FFD372"}},Ye={...Ke,...Ge};class Qe{constructor(t,e=0){this.id="Ziko-Theme-"+e,this.use(t)}get current(){return["background","currentLine","selection","foreground","comment","cyan","green","orange","pink","purple","red","yellow"].reduce(((t,e)=>(t[e]=`var(--${e}-${this.id})`,t)),{})}useThemeIndex(t){const e=Object.keys(Ye);for(let r in Ye[e[t]])document.documentElement.style.setProperty(`--${r}-${this.id}`,Ye[e[t]][r]);return this}useThemeName(t){t=t.toLowerCase();const e=Object.fromEntries(Object.entries(Ye).map((t=>[t[0].toLowerCase(),t[1]])));for(let r in e[t])document.documentElement.style.setProperty(`--${r}-${this.id}`,e[t][r]);return this}useThemeObject(t){for(let e in t)document.documentElement.style.setProperty(`--${e}-${this.id}`,t[e]);return this}use(t){return"number"==typeof t&&this.useThemeIndex(t),"string"==typeof t&&this.useThemeName(t),t instanceof Object&&this.useThemeObject(t),this}}class Je{constructor(){this.events={},this.maxListeners=10}on(t,e){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.`)}once(t,e){const r=s=>{this.off(t,r),e(s)};this.on(t,r)}off(t,e){const r=this.events[t];if(r){const t=r.indexOf(e);-1!==t&&r.splice(t,1)}}emit(t,e){const r=this.events[t];r&&r.forEach((t=>{t(e)}))}clear(t){t?delete this.events[t]:this.events={}}setMaxListener(t,e){this.maxListeners=e}removeAllListeners(t){t?this.events[t]=[]:this.events={}}}const tr=()=>new Je;class er{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=tr(),this}set(t){return t!==document.title&&(document.title=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:title-changed")),this}get current(){return document.title}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:title-changed",t),this}}class rr{constructor(t,e=!0){this.#s(),this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}#s(){return this.__FavIcon__=document.querySelector("link[rel*='icon']")||document.createElement("link"),this.__FavIcon__.type="image/x-icon",this.__FavIcon__.rel="shortcut icon",this}set(t){return t!==this.__FavIcon__.href&&(this.__FavIcon__.href=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:favicon-changed")),this}get current(){return document.__FavIcon__.href}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:favicon-changed",t),this}useEventEmitter(){return this.cache.Emitter=tr(),this}}class sr{constructor(t=""){this.channel=new BroadcastChannel(t),this.EVENTS_DATAS_PAIRS=new Map,this.EVENTS_HANDLERS_PAIRS=new Map,this.LAST_RECEIVED_EVENT="",this.UUID="ziko-channel"+J.string(10),this.SUBSCRIBERS=new Set([this.UUID])}get broadcast(){return this}emit(t,e){return this.EVENTS_DATAS_PAIRS.set(t,e),this.#a(t),this}on(t,e=console.log){return this.EVENTS_HANDLERS_PAIRS.set(t,e),this.#h(),this}#h(){return this.channel.onmessage=t=>{this.LAST_RECEIVED_EVENT=t.data.last_sended_event;const e=t.data.userId;this.SUBSCRIBERS.add(e);const r=t.data.EVENTS_DATAS_PAIRS.get(this.LAST_RECEIVED_EVENT),s=this.EVENTS_HANDLERS_PAIRS.get(this.LAST_RECEIVED_EVENT);r&&s&&s(r)},this}#a(t){return this.channel.postMessage({EVENTS_DATAS_PAIRS:this.EVENTS_DATAS_PAIRS,last_sended_event:t,userId:this.UUID}),this}close(){return this.channel.close(),this}}const nr=t=>new sr(t);class ir{#l;constructor(){this.#l=function(t){try{let e=new Function("return "+t.data.fun)()();postMessage({result:e})}catch(t){postMessage({error:t.message})}finally{t.data.close&&self.close()}}.toString(),this.blob=new Blob(["this.onmessage = "+this.#l],{type:"text/javascript"}),this.worker=new Worker(window.URL.createObjectURL(this.blob))}call(t,e,r=!0){return this.worker.postMessage({fun:t.toString(),close:r}),this.worker.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data.result)},this}}class or{constructor(t={acceptAllDevices:!0}){this.options=t,this.__Emitter__=tr(),this.isSupported&&this.#s()}async#s(){this.promise=navigator.bluetooth.requestDevice(this.options).then((t=>this.device=t))}get isSupported(){return!!navigator.bluetooth}get current(){return this.device}connect(){return this.server=this.device.gatt.connect(),this.__Emitter__.emit("ziko:bluetooth-connected"),this}disconnect(){return this.device.gatt.disconnect(),this.__Emitter__.emit("ziko:bluetooth-disconnected"),this}onConnect(t){return this.__Emitter__.on("ziko:bluetooth-connected",t),this}onDisconnect(t){return this.__Emitter__.on("ziko:bluetooth-disconnected",t),this}dispose(){}async battery(t){const e=await this.server.getPrimaryService("battery_service"),r=await e.getCharacteristic("battery_level"),s=await r.readValue();t(await s.getUint8(0))}}class ar{constructor(){this.isSupported&&this.#s()}async#s(){this.__Battery__=await navigator.getBattery()}get isSupported(){return!!navigator.getBattery}get current(){const{level:t,charging:e,chargingTime:r,dischargingTime:s}=this.__Battery__;return{level:t,charging:e,chargingTime:r,dischargingTime:s}}onChargingChange(t){return this.__Battery__.addEventListener("chargingchange",t),this}onLevelChange(t){return this.__Battery__.addEventListener("levelchange",t),this}}class hr{constructor(){this.isSupported&&this.#s()}async#s(){navigator.geolocation.getCurrentPosition((t=>this.__Geolocation__=t))}get isSupported(){return!!navigator.geolocation}get current(){return this.__Geolocation__}}class lr{constructor(t,{fps:e,step:r,t:s=[0,null],start:n=!0}={}){this.callback=t,this.cache={isRunning:!1,AnimationId:null,startTime:null,step:r,fps:e,t:s,started:n},this.adjust(),this.i=0}adjust(){if(this.cache.step&&this.cache.fps&&(console.warn(`Fps will be adjusted from ${this.cache.fps} to ${1e3/this.cache.step} to ensure a smoother animation`),this.cache.fps=1e3/this.cache.step),this.cache.started){const t=this.cache.t;t[0]?this.startAfter(t[0]):this.start(),t[1]&&this.stopAfter(t[1])}return this}get TIME_STEP(){return this.cache.step?this.cache.step:1e3/this.cache.fps}start(){return this.cache.isRunning||(this.i=0,this.cache.isRunning=!0,this.cache.startTime=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.AnimationId),this.cache.isRunning=!1),this}stop(){return this.pause(),this.i=0,this}resume(){return this.cache.isRunning=!0,this.animate(),this}startAfter(t=1e3){return setTimeout(this.start.bind(this),t),this}stopAfter(t=1e3){return setTimeout(this.stop.bind(this),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.startTime;e>this.TIME_STEP&&(this.callback(this),this.i++,this.cache.startTime=t-e%this.TIME_STEP),this.cache.AnimationId=setTimeout(this.animate,0)}}}const cr=(t,e)=>new lr(t,e),ur={Linear:function(t){return t},InSin:t=>1-Math.cos(t*Math.PI/2),OutSin:t=>Math.sin(t*Math.PI/2),InOutSin:t=>-(Math.cos(Math.PI*t)-1)/2,InQuad:t=>t**2,OutQuad:t=>1-Math.pow(1-t,2),InOutQuad:t=>t<.5?2*Math.pow(t,2):1-Math.pow(-2*t+2,2)/2,InCubic:t=>t**3,OutCubic:t=>1-Math.pow(1-t,3),InOutCubic:t=>t<.5?4*Math.pow(t,3):1-Math.pow(-2*t+2,3)/2,InQuart:t=>t**4,OutQuart:t=>1-Math.pow(1-t,4),InOutQuart:t=>t<.5?8*Math.pow(t,4):1-Math.pow(-2*t+2,4)/2,InQuint:t=>t**5,OutQuint:t=>1-Math.pow(1-t,5),InOutQuint:t=>t<.5?16*Math.pow(t,5):1-Math.pow(-2*t+2,5)/2,InExpo:t=>0===t?0:Math.pow(2,10*t-10),OutExpo:t=>1===t?1:1-Math.pow(2,-10*t),InOutExpo:t=>0===t?0:1===t?1:t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2,InCirc:t=>1-Math.sqrt(1-Math.pow(t,2)),OutCirc:t=>Math.sqrt(1-Math.pow(t-1,2)),InOutCic:t=>t<.5?(1-Math.sqrt(1-Math.pow(2*t,2)))/2:(Math.sqrt(1-Math.pow(-2*t+2,2))+1)/2,Arc:t=>1-Math.sin(Math.acos(t)),Back:t=>Math.pow(t,2)*(2*t-1),Elastic:t=>-2*Math.pow(2,10*(t-1))*Math.cos(20*Math.PI*t/3*t),InBack(t){const e=1.70158;return 2.70158*Math.pow(t,3)-e*t**2},OutBack(t){const e=1.70158;return 1+2.70158*Math.pow(t-1,3)+e*Math.pow(t-1,2)},InOutBack(t){const e=2.5949095;return t<.5?Math.pow(2*t,2)*(7.189819*t-e)/2:(Math.pow(2*t-2,2)*((e+1)*(2*t-2)+e)+2)/2},InElastic(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:-Math.pow(2,10*t-10)*Math.sin((10*t-10.75)*e)},OutElastic(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin((10*t-.75)*e)+1},InOutElastic(t){const e=2*Math.PI/4.5;return 0===t?0:1===t?1:t<.5?-Math.pow(2,20*t-10)*Math.sin((20*t-11.125)*e)/2:Math.pow(2,-20*t+10)*Math.sin((20*t-11.125)*e)/2+1},InBounce:t=>1-ur.OutBounce(1-t),OutBounce(t){const e=7.5625,r=2.75;return 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},InOutBounce:t=>t<.5?(1-ur.OutBounce(1-2*t))/2:(1+ur.OutBounce(2*t-1))/2},mr=(t,e=1e3)=>(...r)=>setTimeout((()=>t(...r)),e),pr=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}},dr=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},fr=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})})),gr=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},yr=t=>new Promise((e=>setTimeout(e,t))),br=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e};class xr{constructor(t,{ease:e=ur.Linear,step:r=50,t:s=[0,null],start:n=!0,duration:i=3e3}={}){this.cache={isRunning:!1,AnimationId:null,startTime:null,ease:e,step:r,intervall:s,started:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.callback=t}#c(){this.t+=this.cache.step,this.i++,this.tx=Tt(this.t,0,this.cache.duration,0,1),this.ty=this.cache.ease(this.tx),this.callback(this),this.t>=this.cache.duration&&(clearInterval(this.cache.AnimationId),this.cache.isRunning=!1)}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}#u(t=!0){return this.cache.isRunning||(t&&this.reset(!1),this.cache.isRunning=!0,this.cache.startTime=Date.now(),this.cache.AnimationId=setInterval(this.#c.bind(this),this.cache.step)),this}start(){return this.#u(!0),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.AnimationId),this.cache.isRunning=!1),this}resume(){return this.#u(!1),this}stop(){return this.pause(),this.reset(!1),this}}const wr=(t,e)=>new xr(t,e),Fr={wait:yr,timeTaken:br,useThrottle:pr,useDebounce:mr,Ease:ur,time_memory_Taken:dr,loop:cr,animation:wr,waitForUIElm:fr,waitForUIElmSync:gr,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class vr{#m;constructor(t,e,r){this.#m={storage:t,globalKey:e,channel:nr(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#s(r),this.#p()}get items(){return JSON.parse(this.#m.storage[this.#m.globalKey]??null)}#p(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#s(t){this.#m.channel=nr(`Ziko:useStorage-${this.#m.globalKey}`),this.#m.channel.on("Ziko-Storage-Updated",(()=>this.#p())),t&&(this.#m.storage[this.#m.globalKey]?(Object.keys(this.items).forEach((t=>this.#m.oldItemKeys.add(t))),console.group("Ziko:useStorage"),console.warn(`Storage key '${this.#m.globalKey}' already exists. we will not overwrite it.`),console.info("%cWe'll keep the existing data.","background-color:#2222dd; color:gold;"),console.group("")):this.set(t))}set(t){return this.#m.storage.setItem(this.#m.globalKey,JSON.stringify(t)),this.#m.channel.emit("Ziko-Storage-Updated",{}),Object.keys(t).forEach((t=>this.#m.oldItemKeys.add(t))),this.#p(),this}add(t){const e={...this.items,...t};return this.#m.storage.setItem(this.#m.globalKey,JSON.stringify(e)),this.#p(),this}remove(...t){const e={...this.items};for(let r=0;r<t.length;r++)delete e[t[r]],delete this[t[r]];return this.set(e),this}get(t){return this.items[t]}clear(){return this.#m.storage.removeItem(this.#m.globalKey),this.#p(),this}}const Cr={useStyle:t=>e=>new Xe(e,t),useTheme:(t=0)=>(e=0)=>new Qe(e,t),useBattery:()=>new ar,useGeolocation:()=>new hr,useEventEmitter:tr,useChannel:nr,useThread:(t,e,r)=>{const s=new ir;return t&&s.call(t,e,r),s},useBluetooth:t=>new or(t),useTitle:(t,e)=>new er(t,e),useFavIcon:(t,e)=>new rr(t,e),useThrottle:pr,useDebounce:mr,useLocaleStorage:(t,e)=>new vr(localStorage,t,e),useSessionStorage:(t,e)=>new vr(sessionStorage,t,e),useSuccesifKeys:(t,e=[],r=(()=>{}))=>{t.cache.stream.enabled.down=!0;const s=e.length,n=t.cache.stream.history.down.slice(-s).map((t=>t.key));e.join("")===n.join("")&&(t.event.preventDefault(),r.call(t,t))},ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class Er{constructor(t,e=""){var r;this.target=globalThis.__Target__||globalThis.document.body,"string"==typeof t&&(t=globalThis.document.createElement(t)),this.element=t,this.uuid=this.constructor.name+"-"+J.string(10),this.cache={name:e,parent:null,isRoot:!1,isHidden:!1,isFrozzen:!1,style:(r={},new te(r)),attributes:{},filters:{}},this.items=[],this.events={ptr:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,custom:null},this.observer={resize:null,intersection:null},this.cache.style.linkTo(this),this.style({position:"relative",boxSizing:"border-box",fontFamily:"verdana",margin:0,padding:0}),this.size("auto","auto"),globalThis.__UI__[this.cache.name]?.push(this)}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.cache.events}get html(){return this.element.innerHTML}get __app__(){if(this.cache.isRoot)return this;let t=this.cache.parent;for(;;){if(!t)return null;if(t.cache.isRoot)return t;t=t.parent}}clone(){const t=new this.constructor;if(t.__proto__=this.__proto__,this.items.length){const e=[...this.items].map((t=>t.clone()));t.append(...e)}else t.element=this.element.cloneNode(!0);return t}style(t,{target:e="parent",maskVector:r=null}={}){return this.st.style(t,{target:e,maskVector:r}),this}size(t,e,{target:r,maskVector:s}={}){return this.st.size(t,e,{target:r,maskVector:s}),this}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}freeze(t){return this.cache.isFrozzen=t,this}at(t){return this.items.at(t)}maintain(){for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this.length=this.items.length,this}setTarget(t){return t instanceof Er&&(t=t.element),this.remove(),this.target=t,this.render(),this}render(t=!0,e=this.target){return e instanceof Er&&(e=e.element),this.target=e,t?this.target.appendChild(this.element):this.remove(),this}append(...t){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let e=0;e<t.length;e++)["number","string"].includes(typeof t[e])&&(t[e]=Ar(t[e])),t[e]instanceof Er?(t[e].cache.parent=this,this.element.appendChild(t[e].element),t[e].Target=this.element,this.items.push(t[e])):t[e]instanceof Object&&(t[e]?.style&&this.style(t[e]?.style),t[e]?.attr&&Object.entries(t[e].attr).forEach((t=>this.setAttr(""+t[0],t[1]))));return this.maintain(),this}remove(...t){if(0==t.length)this.cache.parent?this.cache.parent.remove(this):this.target.children.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element);else{const e=t=>{"number"==typeof t&&(t=this.items[t]),t instanceof Er&&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}removeAfter(t=1){return setTimeout((()=>this.remove()),t),this}removeItem(...t){const e=t=>{t instanceof Er?this.element.removeChild(t.element):"number"==typeof t&&this.element.removeChild(this.element.children[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}insertAt(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]=Ar(e[r])),this.element.insertBefore(e[r].element,this.items[t].element),this.items.splice(t,0,e[r]);return this}setAttr(t,e){return this.element.setAttribute(t,e),Object.assign(this.cache.attributes,Object.fromEntries([[t,e]])),this}removeAttr(t){return this.element.removeAttribute(t),this}setContentEditable(t=!0){return this.setAttr("contenteditable",t),this}get children(){return[...this.element.children]}get cloneElement(){return this.element.cloneNode(!0)}setClasses(...t){return this.setAttr("class",t.join(" ")),this}get Classes(){const t=this.element.getAttribute("class");return null===t?[]:t.split(" ")}addClass(){}setId(t){return this.element.setAttribute("id",t),this}get Id(){return this.element.getAttribute("id")}forEach(t){return this.items.forEach(t),this}filter(t,e,r){return this.items.filter(t).forEach(e),this}filterByTextContent(t,e=!1){return this.items.map((t=>t.render())),this.items.filter((r=>{const s=r.element.textContent;return!(e?s===t:s.includes(t))})).map((t=>t.render(!1))),this}filterByClass(t){return this.items.map((t=>t.render())),this.items.filter((e=>!e.Classes.includes(t))).map((t=>t.render(!1))),this}sortByTextContent(t,e){let r=this.children;return r.filter((e=>!e.textContent.toLowerCase().includes(t.toLowerCase()))).map((t=>{t.style.display="none"})),r.filter((e=>e.textContent.toLowerCase().includes(t.toLowerCase()))).map(((t,r)=>t.style.display=e[r])),r.filter((t=>"none"!=t.style.display)),this}onPtrMove(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onMove(...t),this}onPtrDown(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onDown(...t),this}onPtrUp(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onUp(...t),this}onPtrEnter(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onEnter(...t),this}onPtrLeave(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onLeave(...t),this}onPtrOut(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onOut(...t),this}onKeyDown(...t){return this.events.key||(this.events.key=fe(this)),this.events.key.onDown(...t),this}onKeyPress(...t){return this.events.key||(this.events.key=fe(this)),this.events.key.onPress(...t),this}onKeyUp(...t){return this.events.key||(this.events.key=fe(this)),this.events.key.onUp(...t),this}onKeysDown({keys:t=[],callback:e}={}){return this.events.key||(this.events.key=fe(this)),this.events.key.handleSuccessifKeys({keys:t,callback:e}),this}onDragStart(...t){return this.events.drag||(this.events.drag=ve(this)),this.events.drag.onStart(...t),this}onDrag(...t){return this.events.drag||(this.events.drag=ve(this)),this.events.drag.onDrag(...t),this}onDragEnd(...t){return this.events.drag||(this.events.drag=ve(this)),this.events.drag.onEnd(...t),this}onDrop(...t){return this.events.drop||(this.events.drop=Ce(this)),this.events.drop.onDrop(...t),this}onClick(...t){return this.events.click||(this.events.click=De(this)),this.events.click.onClick(...t),this}onDbClick(...t){return this.events.click||(this.events.click=De(this)),this.events.click.onDbClick(...t),this}onCopy(...t){return this.events.clipboard||(this.events.clipboard=Se(this)),this.events.clipboard.onCopy(...t),this}onCut(...t){return this.events.clipboard||(this.events.clipboard=Se(this)),this.events.clipboard.onCut(...t),this}onPaste(...t){return this.events.clipboard||(this.events.clipboard=Se(this)),this.events.clipboard.onPaste(...t),this}onSelect(...t){return this.events.clipboard||(this.events.clipboard=Se(this)),this.events.clipboard.onSelect(...t),this}onFocus(...t){return this.events.focus||(this.events.focus=je(this)),this.events.focus.onFocus(...t),this}onBlur(...t){return this.events.focus||(this.events.focus=je(this)),this.events.focus.onFocus(...t),this}on(t,...e){return this.events.custom||(this.events.custom=Ue(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=Ue(this)),this.events.custom.emit(t,e),this}WatchAttributes(){}WatchChildren(){}WatchSize(t){return this.observer.resize||(this.observer.resize=((t,e)=>new Ze(t,e))(this,t)),this.observer.resize.start(),this}WatchIntersection(t,e){return this.observer.intersection||(this.observer.intersection=((t,e,r)=>new We(t,e,r))(this,t,e)),this.observer.intersection.start(),this}get VisibleArea(){let t=this.element.getBoundingClientRect(),e=globalThis.document.documentElement.clientHeight,r=globalThis.document.documentElement.clientWidth,s=t.top>0&&t.top<e,n=t.bottom<e&&t.bottom>0,i=t.left>0&&t.left<r,o=t.right>0&&t.right<r;return{top:s,bottom:n,left:i,right:o,heightRatio:(t.height+t.y)/t.height,isVisible:s||n||o||i}}setFullScreen(t=!0,e){return this.element.requestFullscreen?(t?this.element.requestFullscreen(e):globalThis.document.exitFullscreen(),this):(console.error("Fullscreen API is not supported in this browser."),this)}toggleFullScreen(t){return globalThis.document.fullscreenElement?globalThis.document.exitFullscreen():this.element.requestFullscreen(t),this}}class kr extends Er{constructor(...t){super("span","text"),this.element=document.createElement("span"),this.text="",this.addValue(...t),this.st.display("inline-block"),this.render()}clear(){return this.element.textContent="",this}get value(){return this.element.textContent}setValue(t="",e=!1){["string","number"].includes(typeof t)&&(this.text=""+t,this.text.includes("\n")&&(this.text=this.text.split("\n").map((t=>"<span>".concat(t,"</span></br>"))).join(""))),t instanceof r&&(this.text=""+t.UI()),e?this.element.innerHTML+=this.text:this.element.innerHTML=this.text,(t instanceof Array||t instanceof Set)&&(t instanceof Set&&(t=[...t]),this.addValue(...t))}addValue(...t){return t.map((t=>{this.setValue(" ",!0),this.setValue(t,!0)})),this}toggleValues(...t){let e=(t=t.map((t=>""+t))).indexOf(""+this.value);return-1!=e&&e!=t.length-1?this.setValue(t[e+1]):this.setValue(t[0]),this}}const Ar=(...t)=>new kr(...t);class Dr extends Er{constructor(...t){super("p","p"),this.addValue(...t),this.style({margin:0,padding:0}),this.render()}addValue(...t){for(let e=0;e<t.length;e++)"string"==typeof t[e]||"number"==typeof t[e]?(this.element.appendChild(document.createTextNode(t[e])),this.element.appendChild(document.createElement("br"))):t[e]instanceof Er?this.element.appendChild(t[e].element):t[e]instanceof r&&Ar(t.a+" + "+t.b+"i");return this}clear(){return this.element.childNodes.forEach((t=>t.remove())),this}setValue(...t){return this.clear(),this.addValue(...t),this}}const Br=(...t)=>(new Dr).append(...t);class _r extends Er{constructor(t=1,e=""){super(`h${t}`,`h${t}`),this.element=document.createElement("h"+t),this.element.textContent=e,this.render()}get value(){return this.element.innerText}setValue(t=""){this.element.innerText=t}addValue(t=""){return this.element.innerText+=t,this}}const Mr=(t="")=>new _r(1,t),Tr=(t="")=>new _r(2,t),Ir=(t="")=>new _r(3,t),Sr=(t="")=>new _r(4,t),Lr=(t="")=>new _r(5,t),Or=(t="")=>new _r(6,t);class Vr extends Er{constructor(t){super(t,"ZikoHtml"),this.render()}}class jr extends Er{constructor(){super("br","br"),this.render(),delete this.append}}class Rr extends Er{constructor(){super("hr","hr"),this.render(),delete this.append}}class Nr extends Er{constructor(t){super("a","link"),this.setHref(t),this.render()}setHref(t){this.element.href=t}}const Pr=()=>new jr,zr=()=>new Rr,$r=(t=1)=>new Array(t).fill(new jr),Hr=(t=1)=>new Array(t).fill(new Rr),Ur=(t,...e)=>new Nr(t).append(...e),qr=(t,...e)=>new Vr(t).append(...e);class Wr extends Er{constructor(t){super(),this.element=document.createElement("li"),this.append(t),this.render()}}class Zr extends Er{constructor(t,e){super(t,e),delete this.append}append(...t){for(let e=0;e<t.length;e++){let r=null;["string","number"].includes(typeof t[e])&&(t[e]=Ar(t[e])),t[e]instanceof Er&&(r=new Wr(t[e])),r.setTarget(this.element),this.items.push(r[0]),this.maintain()}}remove(...t){if(0==t.length)this.Target.children.length&&this.Target.removeChild(this.element);else{const e=t=>{"number"==typeof t&&(t=this.items[t]),t instanceof Er&&this.element.removeChild(t.parent.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}insertAt(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let r=0;r<e.length;r++){let s=null;["number","string"].includes(typeof e[r])&&(e[r]=Ar(e[r])),e[r]instanceof Er&&(s=new Wr(e[r])),this.element.insertBefore(s.element,this.items[t].parent.element),this.items.splice(t,0,e[r][0])}return this}filterByTextContent(t,e=!1){return this.items.map((t=>t.parent.render())),this.items.filter((r=>{const s=r.element.textContent;return!(e?s===t:s.includes(t))})).map((t=>t.parent.render(!1))),this}sortByTextContent(t=1){return this.items.map((t=>t.parent.render(!1))),this.sortedItems=this.items.sort(((e,r)=>t*e.element.textContent.localeCompare(r.element.textContent))),this.append(...this.sortedItems),this}filterByClass(t){return this.items.map((t=>t.parent.render(!0))),this.items.filter((e=>!e.Classes.includes(t))).map((t=>t.parent.render(!1))),this}delete(t){return[...this.element.children].indexOf(t)}push(){}pop(){}unshift(){}shift(){}sort(){}filter(){}slice(){}}class Xr extends Zr{constructor(...t){super("ol","ol"),this.append(...t),this.render()}type(t=1){return this.element.setAttribute("type",t),this}start(t=1){return this.element.setAttribute("start",t),this}}class Kr extends Zr{constructor(...t){super("ul","ul"),this.append(...t),this.render()}}const Gr=(...t)=>new Xr(...t),Yr=(...t)=>new Kr(...t);class Qr extends Er{constructor(t="button"){super(),this.element=document.createElement("button"),this.setValue(t),this.render(),this.st.cursor("pointer")}setValue(t){return t instanceof Er?t.setTarget(this.element):(this.element.appendChild(document.createTextNode("")),this.element.childNodes[0].data=t),this}get value(){return this.element.innerText}toggleValues(...t){let e=(t=t.map((t=>""+t))).indexOf(""+this.value);return-1!=e&&e!=t.length-1?this.setValue(t[e+1]):this.setValue(t[0]),this}}const Jr=t=>new Qr(t);class ts extends Er{constructor(t=""){super(),this.element=document.createElement("option"),t instanceof Object&&"value"in t?(this.setValue(t.value),this.setText(t?.text??t.value)):this.setValue(t)}setValue(t=""){return this.element.value=t,this}setText(t=""){return t&&(this.element.textContent=t),this}}class es extends Er{constructor(){super(),this.element=document.createElement("textarea"),this.render()}get value(){return this.element.textContent}}const rs=()=>new es;class ss extends Er{constructor(t="",e){super(),this.element=document.createElement("input"),Object.assign(this.events,{input:null}),this.setValue(t),e&&this.linkDatalist(e),this.render()}onInput(...t){return this.events.input||(this.events.input=ze(this)),this.events.input.onInput(...t),this}onChange(...t){return this.events.input||(this.events.input=ze(this)),this.events.input.onChange(...t),this}linkDatalist(t){let e;if(t instanceof gs)e=t.Id;else if(t instanceof Array){const r=new gs(...t);e=r.Id,console.log(r)}else e=t;return this.element.setAttribute("list",e),this}get value(){return this.element.value}_setType(t){return this.element.type=t,this}setValue(t=""){return this.element.value=t,this}useState(t){return this.setValue(t),[{value:this.value},t=>this.setValue(t)]}setPlaceholder(t){return t&&(this.element.placeholder=t),this}get isValide(){return this.element.checkValidity()}setRequired(t=!0){return this.element.required=t,this}select(){return this.element.select(),this}copy(){return this.element.select(),document.execCommand("copy"),this}cut(){return this.element.select(),document.execCommand("cut"),this}accept(t){return this.element.accept=t,this}}class ns extends ss{constructor(){super(),this._setType("search"),this.Length=0}onsearch(t){return this.element.addEventListener("search",(()=>t())),this}connect(...t){return this}displayLength(t){return this.element.addEventListener("keyup",(()=>t.setValue(this.Length))),this}}class is extends ss{constructor(t,e,r=1){super(),this._setType("number"),this.setMin(t).setMax(e).setStep(r),this.render()}get value(){return+this.element.value}setMin(t){return this.element.min=t,this}setMax(t){return this.element.max=t,this}setStep(t){return this.element.step=t,this}}class os extends is{constructor(t=0,e=0,r=10,s=1){super(),this._setType("range"),this.setMin(e).setMax(r).setValue(t).setStep(s),this.render()}}class as extends ss{constructor(){super(),this._setType("color"),this.background(this.value),this.render(),this.onInput((()=>this.background(this.value)))}}class hs extends ss{constructor(){super(),this._setType("password"),this.render()}}class ls extends ss{constructor(){super(),this._setType("email"),this.render()}}class cs extends ss{constructor(){super(),this._setType("time"),this.render()}}class us extends ss{constructor(){super(),this._setType("date"),this.render()}}class ms extends ss{constructor(){super(),this._setType("datetime-local"),this.render()}}class ps extends ss{constructor(){super(),this._setType("checkbox"),this.cursor("pointer")}get checked(){return this.element.checked}check(t=!0){return this.element.checked=t,this}color(t){return this.element.style.accentColor=t,this}}class ds extends ss{constructor(){super(),this._setType("radio"),this.cursor("pointer")}get checked(){return this.element.checked}check(t=!0){return this.element.checked=t,this}color(t){return this.element.style.accentColor=t,this}}class fs extends Er{constructor(t="File"){super(),this._aux_element=Jr(t).setTarget(this.Target),this.element=document.createElement("input"),this.element.setAttribute("type","file"),this.element.setAttribute("accept","image"),this._aux_element.onClick((()=>this.element.click())),this.element.onChange=this.handleImage.bind(this)}handleImage(t){const e=new FileReader,r=new Image;e.onload=function(t){r.src=t.target.result,console.log(r.src)},e.readAsDataURL(t.target.files[0]),this.img=r}get value(){return this.img}render(t=!0){return t?this.Target.appendChild(this._aux_element.element):this.remove(),this}remove(){return this.Target.children.length&&this.Target.removeChild(this._aux_element.element),this}}class gs extends Er{constructor(...t){super(),this.element=document.createElement("datalist"),this.addOptions(...t).setId("ziko-datalist-id"+J.string(10)),this.render()}addOptions(...t){return t.map((t=>this.append(new ts(t)))),this}}const ys=(t,e)=>{if(t instanceof Object){const{datalist:e,placeholder:r}=t;return t=t.value??"",new ss(t,e).setPlaceholder(r)}return new ss(t,e)},bs=(...t)=>new gs(...t),xs=(t,e,r,s)=>{if(t instanceof Object){const{min:e=0,max:r=10,step:s=1}=t;return new os(t=t?.value??5,e,r,s)}return new os(t,e,r,s)},ws=(t,e,r)=>{if(t instanceof Object){const{value:e,max:r=10,step:s=1,placeholder:n=""}=t;return new os(t=t?.min??0,r,s).setValue(e).setPlaceholder(n)}return new is(t,e,r)},Fs=(...t)=>(new ns).connect(...t),vs=t=>new fs(t),Cs=()=>new hs,Es=()=>new ls,ks=()=>new as,As=()=>new cs,Ds=()=>new us,Bs=()=>new ms,_s=()=>new ps,Ms=()=>new ds;class Ts extends Er{constructor(){super(),this.element=document.createElement("select"),this.render()}addOptions(...t){return t.map((t=>this.append(new ts(t)))),this}}const Is=()=>new Ts;class Ss extends Er{constructor(t,e,r){super("image","image"),this.value=t,"IMG"===t.nodeName?this.element.setAttribute("src",t.src):this.element.setAttribute("src",t),"number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({border:"1px solid black",width:e,height:r}),this.render()}updateSrc(t){return this.value=t,this.element.src=t,this}toggleSrc(...t){let e=(t=t.map((t=>""+t))).indexOf(""+this.value);return-1!=e&&e!=t.length-1?this.updateSrc(t[e+1]):this.updateSrc(t[0]),this}alt(t){return this.element.alt=t,this}}const Ls=(t,e,r)=>new Ss(t,e,r);class Os extends Er{constructor(t,e){super("figure","figure"),this.img=t.width("100%").element,this.caption=document.createElement("figcaption"),this.caption.append(e.element),this.element.append(this.img),this.element.append(this.caption),this.render()}}const Vs=(t,e)=>new Os(t,e);class js extends Er{constructor(t="",e="100%",r="50vh"){super("video","video"),"VIDEO"===t.nodeName?this.element.setAttribute("src",t.src):this.element.setAttribute("src",t),"number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({width:e,height:r}),this.render()}useControls(t=!0){return this.element.controls=t,this}play(){return this.element.play(),this}pause(){return this.element.pause(),this}poster(t=""){return this.element.poster=t,this}usePIP(t){return this.element.requestPictureInPicture(t),this}}const Rs=(t,e,r)=>new js(t,e,r);class Ns extends Er{constructor(t){super("audio","audio"),this.element.setAttribute("src",t),this.render(),this.controls()}useControls(t=!0){return this.element.controls=t,this}play(){return this.element.play(),this}pause(){return this.element.pause(),this}}const Ps=t=>new Ns(t);class zs extends js{constructor(){super(),this.element.setAttribute("src",""),this.constraints={audio:!0,video:{width:1280,height:720}}}start(){return navigator.mediaDevices.getUserMedia(this.constraints).then((t=>{this.element.srcObject=t,this.element.onloadedmetadata=()=>{this.element.play()}})).catch((function(t){console.log(t.name+": "+t.message)})),this}}const $s=()=>new zs;function Hs(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function Us(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function qs(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Ws(t){return qs(-t)}class Zs extends Er{constructor(t,e="100%",r="100%"){super(t,"Flex"),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({width:e,height:r}),this.style({display:"flex"}),this.render()}resp(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 Hs.call(this,r),this.style({alignItems:"number"==typeof t?qs.call(this,t):t,justifyContent:"number"==typeof e?Ws.call(this,e):e}),this}horizontal(t,e,r=1){return Us.call(this,r),this.style({alignItems:"number"==typeof e?Ws.call(this,e):e,justifyContent:"number"==typeof t?qs.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}const Xs=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new Zs(e).append(...t)};class Ks extends Er{constructor(t="div",e="50vw",r="50vh"){super(t,"Grid"),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({border:"1px solid black",width:e,height:r}),this.style({display:"grid"}),this.render()}columns(t){let e="";for(let r=0;r<t;r++)e=e.concat(" auto");return this.#d(e),this}#d(t="auto auto"){return this.style({gridTemplateColumns:t}),this}gap(t=10,e=t){return"number"==typeof t&&(t+="px"),"number"==typeof e&&(e+="px"),this.style({gridColumnGap:t,gridRowGap:e}),this}}const Gs=(...t)=>new Ks("div").append(...t);class Ys extends Er{constructor(t,e,r="😁"){super("details","Accordion"),this.summary=qr("summary",t).style({fontSize:"1.1em",padding:"0.625rem",fontWeight:"bold",listStyleType:`"${r}"`,cursor:"pointer"}),this.summary[0].style({marginLeft:"0.5em"}),this.content=e.style({margin:"0.7em"}),this.append(this.summary,this.content),this.style({marginBottom:"0.7em"}),this.render()}get isOpen(){return this.element.open}open(){return this.element.open=!0,this}onOpen(t){return this}close(){return this.element.open=!0,this}onClose(t){return this}toggle(){return this.element.open=!this.element.open,this}}const Qs=(t,e,r)=>new Ys(t,e,r);class Js extends Zs{constructor(...t){super(),this.style({position:"relative",overflow:"hidden",touchAction:"none",userSelect:"none"}),this.horizontal("space-around",0),this.track=Section(...t).style({display:"inline-flex"}),this.track.size(100*this.track.children.length+"vw"),this.track.setTarget(this),this.track.items.map((t=>t.style({pointerEvents:"none",margin:"auto 10px"}))),this.x0=null,this.tx=0,this.onPtrMove((t=>{if(t.isDown){let e=t.event.pageX-this.x0;this.track.st.translateX(this.tx+e,0)}})),this.onPtrDown((t=>{console.log(t.event),this.x0=t.event.pageX;const e=window.getComputedStyle(this.track.element).getPropertyValue("transform");"none"!==e&&(this.tx=+e.split(",")[4])})),this.onPtrUp((t=>console.log(t.isDown))),this.onPtrLeave((t=>{}))}}const tn=(...t)=>new Js(...t);class en extends Zs{constructor(){super("section"),Object.assign(this.cache,{order:0,currentNote:null,currentNoteIndex:null}),this.vertical(0,0)}setCurrentNote(t){return this.cache.currentNote=t,this.cache.currentNoteIndex=this.items.findIndex((e=>e===t)),t.focus(),this.items.forEach((t=>t.Input.style({border:"1px solid #ccc"}))),t.Input.style({border:"2px lightgreen solid"}),this}addNote(t=""){return this.append(on(t)),this}execute(){return this.cache.currentNote.execute(),this.incrementOrder(),this}incrementOrder(){return this.cache.order++,this.cache.currentNote.setOrder(this.cache.order),this}next(){return this.cache.currentNote===this.items.at(-1)?(this.addNote(),this.setCurrentNote(this.items.at(-1))):this.setCurrentNote(this.items[this.cache.currentNoteIndex+1]),this}previous(){return this.cache.currentNote!==this.items[0]&&this.setCurrentNote(this.items[this.cache.currentNoteIndex-1]),this}data(){return this.items.map((t=>t.cellData()))}serialize(){return JSON.stringify(this.data())}import(t=[]){return t.forEach(((e,r)=>this.addNote(t[r].input))),this}}const rn=()=>new en,sn={background:"none",width:"25px",height:"25px",fontSize:"1.2rem",cursor:"pointer"};class nn extends Zs{constructor(t="",{type:e="js",order:r=null}={}){var s;super("section"),Object.assign(this.cache,{state:null,order:r,type:e,metadata:{created:Date.now(),updated:null}}),this.Input=((t="")=>qr("code",t).style({width:"100%",height:"auto",padding:"10px",boxSizing:"border-box",border:"1px solid #ccc",outline:"none",fontSize:"1rem",fontFamily:"Lucida Console, Courier New, monospace",padding:"1rem 0.5rem",wordBreak:"break-all",background:"#f6f8fa",color:"#0062C3"}).setAttr("contenteditable",!0).setAttr("spellcheck",!1))(t),this.Output=qr("output").style({width:"100%",height:"auto",padding:"5px 0"}),this.InOut=Xs(this.Input,this.Output).vertical().style({width:"100%",margin:"10px auto"}),this.RightControl=(s=this,Xs(Ar("▶️").style(sn).onClick((t=>{s.parent instanceof en&&s.parent.setCurrentNote(s),s.execute(),globalThis.__Target__=t.target.parent.parent[1][1]})),Ar("📋").style(sn).onClick((()=>{navigator.clipboard.writeText(s.codeText)})),Ar("✖️").style(sn).onClick((()=>s.remove())),Ar("✖️").style(sn).onClick((()=>s.remove()))).style({width:"70px",height:"50px",margin:"10px 0"}).horizontal(0,0).wrap(!0)),this.LeftControl=Xs(Ar("[ ]")).style({width:"50px",height:"50px",margin:"10px 4px",padding:"5px",color:"darkblue",borderBottom:"4px solid gold"}).horizontal(0,0),this.append(this.LeftControl,this.InOut,this.RightControl),this.horizontal(-1,1).style({width:"95vw",margin:"0 auto",border:"1px darkblue dotted"}),this.Input.onKeyDown((t=>{"Enter"===t.kd&&t.event.shiftKey&&(t.event.preventDefault(),this.execute(this.cache.order)),this.cache.parent instanceof en&&("ArrowDown"===t.kd&&t.event.shiftKey&&this.cache.parent.next(),"ArrowUp"===t.kd&&t.event.shiftKey&&this.cache.parent.previous())})),this.Input.onFocus((()=>{this.cache.parent instanceof en&&(this.cache.parent.cache.currentNote=this,this.cache.parent.setCurrentNote(this))})),this.Input.onPaste((t=>{}))}get codeText(){return this.Input.element.innerText.trim()}get codeHTML(){return this.Input.element.innerHTML}get outputHTML(){return this.Output.element.innerHTML}setValue(t){return this.Input[0].setValue(t),this}cellData(){return{input:this.codeText,output:this.outputHTML,order:this.cache.order,type:this.cache.type}}execute(t){return this.clearOutput(),this.evaluate(t),this.cache.metadata.updated=Date.now(),this}#f(t){try{this.LeftControl[0].setValue("pending"),this.cache.state="pending",globalThis.eval(this.Input.element.innerText)}catch(t){console.log(t),text(`Error : ${t.message}`).style({color:"red",background:"gold",border:"2px red solid",padding:"10px",margin:"10px 0",display:"flex",justifyContent:"center"}),this.LeftControl[0].setValue("Err"),this.cache.state="Error"}finally{"pending"===this.cache.state&&(this.cache.state="success",this.setOrder(t),this.cache.parent instanceof en&&(this.cache.parent.incrementOrder(),this.cache.parent.next()))}}#g(){}#y(){}evaluate(t){if(globalThis.__Target__=this.Output.element,"js"===this.cache.type)this.#f(t);return this}clearInput(){return this.Output.element.innerText="",this}clearOutput(){return this.Output.element.innerText="",this}setOrder(t,e=!0){return this.cache.order=t,e&&("number"==typeof t?this.LeftControl[0].setValue(`[${t}]`):this.LeftControl[0].setValue("[-]")),this}focus(){return this.Input.element.focus(),this}}const on=(t,{type:e,order:r}={})=>new nn(t,{type:e,order:r});class an extends Zs{#b=0;constructor(t,e){super("div","Tabs"),this.style({boxSizing:"border-box",backgroundColor:"blanchedalmond",border:"1px red solid",margin:"30px"}),this.append(Xs().size("auto","auto").style({boxSizing:"border-box",justifyContent:"center",alignItems:"center",textAlign:"center",minWidth:"50px",minHeight:"50px",backgroundColor:"darkblue",border:"1px darkblue solid"}),Xs().style({boxSizing:"border-box",justifyContent:"center",alignItems:"center",textAlign:"center",width:"100%",height:"100%",backgroundColor:"darkslategrey"})),this.Controller=this.items[0].setAttr("role","tablist"),this.Content=this.items[1],t.length!==e.length?console.error(""):(this.Controller.append(...t),this.Content.append(...e)),this.init(),this.display(0)}init(){for(let t=0;t<this.Controller.length;t++)this.Controller[t].setAttr("role","tab").setAttr("aria-controls",`tab${t}`),this.Content[t].setAttr("role","tabpanel").setAttr("aria-labelledby",`tab${t}`).setAttr("tabindex",-1);return this.Controller.forEach((t=>t.onClick((t=>{const e=t.target.element.getAttribute("aria-controls"),r=+e.slice(3);this.Content.filter((t=>t.element.getAttribute("aria-labelledby")===e),(()=>{this.#b!==r&&this.display(r)}))})))),this}addPairs(t,e){this.Controller.append(t),this.Content.append(e);const r=this.Controller.length;return this.Controller.at(-1).setAttr("role","tab").setAttr("aria-controls","tab"+(r-1)),this.Content.at(-1).setAttr("role","tabpanel").setAttr("aria-labelledby","tab"+(r-1)).setAttr("tabindex",-1),this}removePairs(t){}display(t){return this.#b=t%this.Content.length,this.Controller.forEach((t=>t.setAttr("tabindex",-1).setAttr("aria-selected",!1))),this.Controller.at(this.#b).setAttr("tabindex",0).setAttr("aria-selected",!0),(async()=>{await this.Content.forEach((t=>t.st.hide())),await this.Content.at(this.#b).setAttr("tabindex",0).st.show()})(),this}next(t=1){return this.display(this.#b+t),this}previous(t=1){return this.display(this.#b-t),this}useHorizontalSwippe(){return this.onPtrDown(),this.onPtrUp((t=>this.next(Math.sign(t.swippe.delta_x)))),this}useVerticalSwippe(){return this.onPtrDown(),this.onPtrUp((t=>this.next(Math.sign(t.swippe.delta_y)))),this}}const hn=(t,e)=>new an(t,e);class ln extends Er{constructor(){super("main","Main"),this.render()}}class cn extends Er{constructor(){super("header","Header"),this.render()}}class un extends Er{constructor(){super("nav","Nav"),this.render()}}class mn extends Er{constructor(){super("section","Section"),this.style({position:"relative"}),this.render()}}class pn extends Er{constructor(){super("article","Article"),this.render()}}class dn extends Er{constructor(){super("aside","Aside"),this.render()}}class fn extends Er{constructor(){super("footer","Footer"),this.element=document.createElement("footer"),this.render()}}const gn=(...t)=>(new mn).append(...t),yn=(...t)=>(new pn).append(...t),bn=(...t)=>(new ln).append(...t),xn=(...t)=>(new cn).append(...t),wn=(...t)=>(new fn).append(...t),Fn=(...t)=>(new un).append(...t),vn=(...t)=>(new dn).append(...t);class Cn extends Er{constructor(...t){super(),this.element=document.createElement("Tr"),this.append(...t)}}class En extends Er{constructor(...t){super(),this.element=document.createElement("Td"),this.append(...t)}}class kn extends Er{constructor(...t){super(),this.element=document.createElement("Thead"),this.append(...t)}}class An extends Er{constructor(...t){super(),this.element=document.createElement("Tbody"),this.append(...t)}}class Dn extends Er{constructor(t){super(),this.element=document.createElement("Caption"),this.append(t)}}const Bn=(...t)=>(t=t.map((t=>(t instanceof Er||(t=Ar(t)),t))),new En(...t)),_n=t=>new Dn(t),Mn=t=>{var e=new Array(t.rows).fill(null).map((()=>((...t)=>new Cn(...t))())),r=t.arr.map((t=>t.map((()=>null))));for(let s=0;s<r.length;s++)for(let n=0;n<r[0].length;n++)r[s][n]=Bn(t.arr[s][n]),e[s].append(r[s][n]);return e};class Tn extends Er{constructor(t,{caption:e=null,head:r=null,foot:s=null}={}){super("table","Table"),this.structure={caption:e,head:r,body:null,foot:s},t&&this.fromMatrix(t),e&&this.setCaption(e),this.render()}get caption(){return this.structure.caption}get header(){}get body(){}get footer(){}setCaption(t){return this.removeCaption(),this.structure.caption=_n(t),this.append(this.structure.caption),this}removeCaption(){return this.structure.caption&&this.removeItem(...this.items.filter((t=>t instanceof Dn))),this.structure.caption=null,this}setHeader(...t){return this.tHead=((...t)=>(t=t.map((t=>(t instanceof Er||(t=Bn(t)),t))),new kn(...UI)))(...t),this.append(this.tHead),this}removeHeader(){return this.removeItem(...this.items.filter((t=>t instanceof Dn))),this}setFooter(t){return this.structure.caption=_n(t),this.append(this.structure.caption),this}removeFooter(){return this.removeItem(...this.items.filter((t=>t instanceof Dn))),this}fromMatrix(t){return this.bodyMatrix=t instanceof Array?at(t):t,this.structure.body&&this.remove(this.structure.body),this.structure.body=((...t)=>new An(...t))(),this.append(this.structure.body),this.structure.body.append(...Mn(this.bodyMatrix)),this}transpose(){return this.fromMatrix(this.bodyMatrix.T),this}hstack(t){return t instanceof Tn&&(t=t.bodyMatrix),this.fromMatrix(this.bodyMatrix.clone.hstack(t)),this}vstack(t){return t instanceof Tn&&(t=t.bodyMatrix),this.fromMatrix(this.bodyMatrix.clone.vstack(t)),this}slice(t=0,e=0,r=this.bodyMatrix.rows-1,s=this.bodyMatrix.cols-1){return this.fromMatrix(this.bodyMatrix.slice(t,e,r,s)),this}sortByCols(t,e={type:"num",order:"asc"}){return this.fromMatrix(this.bodyMatrix.clone.sortTable(t,e)),this}sortByRows(t,e={type:"num",order:"asc"}){return this.fromMatrix(this.bodyMatrix.T.clone.sortTable(t,e).T),this}filterByRows(t){return this.fromMatrix(this.bodyMatrix.clone.filterByRows(t)),this}filterByCols(t){return this.fromMatrix(this.bodyMatrix.clone.filterByCols(t)),this}forEachRow(t){return this.structure.body.forEach(t),this}forEachItem(t){return this.structure.body.forEach((e=>e.forEach(t))),this}}const In=(t,e)=>new Tn(t,e),Sn={ZikoHtml:qr,text:Ar,p:Br,h1:Mr,h2:Tr,h3:Ir,h4:Sr,h5:Lr,h6:Or,btn:Jr,br:Pr,hr:zr,brs:$r,hrs:Hr,link:Ur,ol:Gr,ul:Yr,input:ys,search:Fs,slider:xs,checkbox:_s,radio:Ms,datalist:bs,inputNumber:ws,inputColor:ks,inputDate:Ds,inputDateTime:Bs,inputEmail:Es,inputImage:vs,inputPassword:Cs,inputTime:As,select:Is,textarea:rs,inputCamera:$s,image:Ls,video:Rs,audio:Ps,figure:Vs,Flex:Xs,Carousel:tn,Grid:Gs,Header:xn,Main:bn,Section:gn,Article:yn,Aside:vn,Nav:Fn,Footer:wn,Table:In,CodeCell:on,CodeNote:rn,Tabs:hn,Accordion:Qs,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}},Ln=t=>t.replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/\[(.*?)\]\((.*?)\)/g,'<a href="$2">$1</a>').replace(/!\[(.*?)\]\((.*?)\)/g,'<img src="$2" alt="$1">'),On=t=>`<tr>${t.split("|").map((t=>t.trim())).filter((t=>""!==t)).map((t=>`<td>${Ln(t)}</td>`)).join("")}</tr>\n`,Vn=(t,e)=>{const r=t.slice(1,-1).join("\n");return`<pre>${e?`<code data-language="${e}">${r}</code>`:`<code>${r}</code>`}</pre>\n`},jn=t=>{const e=t.match(/^\d+\.\s/);if(e){let r=+e[1];return`<ol${1===r?"":` start=${r}`}>\n<li>${Ln(t.slice(e[0].length))}</li>\n</ol>\n`}return`<ul>\n<li>${Ln(t)}</li>\n</ul>\n`},Rn=t=>{const e=t.split("\n");let r="",s=!1,n=!1,i=[],o="";for(let t=0;t<e.length;t++){let a=e[t];if(a.startsWith("|"))s||(s=!0,r+="<table>\n"),r+=On(a);else if(s&&(s=!1,r+="</table>\n"),a.startsWith("```"))n?(n=!1,r+=Vn(i,o)):(n=!0,i=[],o=a.slice(3).trim());else if(n)i.push(a);else if(a.startsWith("# ")){const t=a.indexOf(" "),e=a.slice(t+1);r+=`<h${t}>${Ln(e)}</h${t}>\n`}else a.startsWith("- ")||a.startsWith("* ")||a.match(/^\d+\.\s/)?r+=jn(a):r+=`<p>${Ln(a)}</p>\n`}return r},Nn=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),Pn=(t,e=",")=>new ot(Nn(t,e)),zn=(t,e=",")=>{const[r,...s]=Nn(t,e);return s.map((t=>{const e={};return r.forEach(((r,s)=>{e[r]=t[s]})),e}))},$n=(t,e=",")=>JSON.stringify(zn(t,e)),Hn=(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")},Un=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],qn=(t,e)=>Un(t).map((t=>t.join(e))).join("\n"),Wn=t=>Un(t instanceof Object?t:JSON.parse(t)),Zn=(t,e=",")=>qn(t instanceof Object?t:JSON.parse(t),e),Xn=(t,e)=>{const r=Zn(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},Kn=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=Kn(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=Kn(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},Gn=(t,e="")=>Kn(t,e).join("\n"),Yn=(t,e)=>Gn(t instanceof Object?t:JSON.parse(t),e),Qn=(t,e)=>{const r=Yn(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},Jn=(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?Jn(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},ti=(t,e)=>{const r=Jn(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},ei=t=>(new XMLSerializer).serializeToString(t),ri=t=>btoa(ei(t)),si=t=>"data:image/svg+xml;base64,"+ri(t),ni=(t,e=!0)=>Ls(si(t)).render(e);function ii(t){const e={type:t.nodeName,attributes:{},children:[]};for(let r=0;r<t.attributes.length;r++){const s=t.attributes[r];e.attributes[s.name]=s.value}for(let r=0;r<t.childNodes.length;r++){const s=t.childNodes[r];s.nodeType===Node.ELEMENT_NODE?e.children.push(ii(s)):s.nodeType===Node.TEXT_NODE&&(e.text=s.textContent.trim())}return e}const oi=t=>{const e=new XMLHttpRequest;if(e.open("GET",t,!1),e.send(),200===e.status)return e.responseText;throw new Error(`Failed to fetch data from ${t}. Status: ${e.status}`)};globalThis.fetchdom=async function(t="https://github.com/zakarialaoui10"){const e=await fetch(t),r=await e.text();return(new DOMParser).parseFromString(r,"text/xml").documentElement},globalThis.fetchdomSync=function(t="https://github.com/zakarialaoui10"){const e=oi(t);return(new DOMParser).parseFromString(e,"text/xml").documentElement};const ai={parseXML:function(t){return ii((new DOMParser).parseFromString(t,"text/xml").documentElement)},preload:oi,markdown2html:Rn,csv2arr:Nn,csv2matrix:Pn,csv2object:zn,csv2json:$n,csv2sql:Hn,json2arr:Wn,json2csv:Zn,json2csvFile:Xn,json2yml:Yn,json2ymlFile:Qn,json2xml:Jn,json2xmlFile:ti,svg2str:ei,svg2ascii:ri,svg2imgUrl:si,svg2img:ni,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class hi{constructor(){this.cache={}}color({stroke:t,fill:e}){return this.element.setAttribute("stroke",t),this.element.setAttribute("fill",e),this}fill(t="none"){return this.element.setAttribute("fill",t),this}stroke(t="none",e){return this.element.setAttribute("stroke",t),e&&this.strokeWidth(e),this}strokeWidth(t=1){return this.element.setAttribute("stroke-width",t),this}opacity(t=1){return this.element.setAttribute("opacity",t),this}}class li extends hi{constructor(t,e,r,s,n=!0){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","rect"),this.setX(t).setY(e).width(r).height(s),this.rx=this.x+this.w/2,this.ty=this.y+this.h/2}setX(t){return this.element.x.baseVal.value=t,this.x=t,this}setY(t){return this.element.y.baseVal.value=t,this.y=t,this}r(t,e){return this.rx=t,this.ry=e,this.setX(this.rx-this.w/2),this.setY(this.ry-this.h/2),this}width(t){return this.element.width.baseVal.value=t,this.w=t,this}height(t){return this.element.height.baseVal.value=t,this.h=t,this}}const ci=(t,e,r,s,n)=>new li(t,e,r,s,n);class ui extends hi{constructor(t,e,r){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","circle"),this.cx(t).cy(e).r(r)}cx(t){return this.element.cx.baseVal.value=t,this}cy(t){return this.element.cy.baseVal.value=t,this}r(t){return this.element.r.baseVal.value=t,this}get R(){return this.element.r.baseVal.value}get Cx(){return this.element.cx.baseVal.value}get Cy(){return this.element.cy.baseVal.value}}const mi=(t,e,r)=>new ui(t,e,r);class pi extends hi{constructor(t,e,r,s){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","ellipse"),this.cx(t).cy(e).rx(r).ry(s)}cx(t){return this.element.cx.baseVal.value=t,this}cy(t){return this.element.cy.baseVal.value=t,this}rx(t){return this.element.rx.baseVal.value=t,this}ry(t){return this.element.ry.baseVal.value=t,this}}const di=(t,e,r,s)=>new pi(t,e,r,s);class fi extends hi{constructor(t,e,r,s){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","line"),this.x1(t).y1(e).x2(r).y2(s).stroke("black")}x1(t){return this.element.x1.baseVal.value=t,this}y1(t){return this.element.y1.baseVal.value=t,this}x2(t){return this.element.x2.baseVal.value=t,this}y2(t){return this.element.y2.baseVal.value=t,this}}const gi=(t,e,r,s)=>new fi(t,e,r,s);class yi extends hi{constructor(t=[],e=[]){super(),this.X=t,this.Y=e,this.element=document.createElementNS("http://www.w3.org/2000/svg","polygon"),this.element.setAttribute("points","")}addPoint(t,e){let r=this.element.parentElement.createSVGPoint();return r.x=t,r.y=e,this.element.points.appendItem(r),this}addPoints(t,e){for(let r=0;r<t.length;r++){let s=this.element.parentElement.createSVGPoint();s.x=t[r],s.y=e[r],this.element.points.appendItem(s)}return this}}const bi=(t,e)=>new yi(t,e);class xi extends hi{constructor(t="",e="100%",r="100%",s=0,n=0){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","image"),this.setSrc(t).width(e).height(r).x(s).y(n)}x(t){return this.element.x.baseVal.value=t,this}y(t){return this.element.y.baseVal.value=t,this}width(t){return this.element.setAttribute("width",t),this}height(t){return this.element.setAttribute("height",t),this}setSrc(t=""){return this.element.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),this}}const wi=(t,e,r,s,n)=>new xi(t,e,r,s,n);class Fi extends hi{constructor(t,e,r){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","text"),this.setText(t),this.x(e).y(r)}x(t){return this.element.setAttribute("x",t),this}y(t){return this.element.setAttribute("y",t),this}setText(t=""){return this.element.textContent=t,this}}const vi=(t,e,r)=>new Fi(t,e,r);class Ci extends hi{constructor(...t){super(),this.items=[],this.element=document.createElementNS("http://www.w3.org/2000/svg","g"),this.add(...t)}add(...t){for(let e=0;e<t.length;e++)this.element.appendChild(t[e].element),this.items.push(t[e]);return 1===t.length?t[0]:t}remove(...t){for(let e=0;e<t.length;e++)this.element.removeChild(t[e].element),this.items=this.items.filter((e=>!t));return this}}const Ei=(...t)=>new Ci(...t);class ki extends Er{constructor(t=360,e=300){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.setAttr("width",t),this.setAttr("height",e),this.style({border:"1px black solid"}),this.render()}view(t,e,r,s){let n=Math.abs(r-t),i=Math.abs(s-e);return this.setAttr("viewBox",[t,e,n,i].join(" ")),this}add(...t){for(let e=0;e<t.length;e++)this.element.appendChild(t[e].element),this.items.push(t[e]);return this.maintain(),this}remove(...t){for(let e=0;e<t.length;e++)this.element.removeChild(t[e].element),this.items=this.items.filter((e=>!t));return this.maintain(),this}mask(){}toString(){return(new XMLSerializer).serializeToString(this.element)}btoa(){return btoa(this.toString())}toImg(){return"data:image/svg+xml;base64,"+this.btoa()}toImg2(){return"data:image/svg+xml;charset=utf8,"+this.toString().replaceAll("<","%3C").replaceAll(">","%3E").replaceAll("#","%23").replaceAll('"',"'")}}const Ai=(t,e)=>new ki(t,e);class Di extends Er{constructor(t,e){super(),this.element=document.createElement("canvas"),this.ctx=this.element.getContext("2d"),this.style({border:"1px red solid"}),this.transformMatrix=new ot([[1,0,0],[0,1,0],[0,0,1]]),this.axisMatrix=new ot([[-10,-10],[10,10]]),this.render(),setTimeout((()=>this.resize(t,e)),0),this.on("sizeupdated",(()=>this.adjust()))}get Width(){return this.element.width}get Height(){return this.element.height}get Xmin(){return this.axisMatrix[0][0]}get Ymin(){return this.axisMatrix[0][1]}get Xmax(){return this.axisMatrix[1][0]}get Ymax(){return this.axisMatrix[1][1]}get ImageData(){return this.ctx.getImageData(0,0,c.Width,c.Height)}draw(t=!0){return t?(this.clear(),this.items.forEach((t=>{t.parent=this,t.draw(this.ctx)}))):(this.items.at(-1).parent=this,this.items.at(-1).draw(this.ctx)),this.maintain(),this}applyTransformMatrix(){return this.ctx.setTransform(this.transformMatrix[0][0],this.transformMatrix[1][0],this.transformMatrix[0][1],this.transformMatrix[1][1],this.transformMatrix[0][2],this.transformMatrix[1][2]),this}resize(t,e){return this.size(t,e),this.lineWidth(),this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this.emit("sizeupdated"),this}adjust(){return this.element.width=this.element.getBoundingClientRect().width,this.element.height=this.element.getBoundingClientRect().height,this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this}view(t,e,r,s){return this.transformMatrix[0][0]=this.Width/(r-t),this.transformMatrix[1][1]=-this.Height/(s-e),this.transformMatrix[0][2]=this.Width/2,this.transformMatrix[1][2]=this.Height/2,this.axisMatrix=new ot([[t,e],[r,s]]),this.applyTransformMatrix(),this.clear(),this.lineWidth(1),this.draw(),this}reset(){return this.ctx.setTransform(1,0,0,0,0,0),this}append(t){return this.items.push(t),this.draw(!1),this}background(t){this.ctx.fillStyle=t,this.ctx.setTransform(1,0,0,1,0,0),this.ctx.fillRect(0,0,this.Width,this.Height),this.applyTransformMatrix(),this.draw()}lineWidth(t){return this.ctx.lineWidth=t/this.transformMatrix[0][0],this}ImageData(t=0,e=0,r=this.Width,s=this.Height){return this.ctx.getImageData(t,e,r,s)}clear(){return this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.Width,this.Height),this.applyTransformMatrix(),this}clone(){console.log(this.Width);const t=new Di;return t.items=this.items,t.transformMatrix=this.transformMatrix,t.axisMatrix=this.axisMatrix,Object.assign(t.cache,{...this.cache}),this.size(element.style.width,element.style.width),this.applyTransformMatrix(),this.draw(),this.adjust(),t}toImage(){return this.img=document.createElement("img"),this.img.src=this.element.toDataURL("image/png"),this}toBlob(){this.element.toBlob((function(t){var e=document.createElement("img"),r=URL.createObjectURL(t);e.onload=function(){URL.revokeObjectURL(r)},e.src=r,console.log(e)}))}zoomIn(){}zoomOut(){}undo(t){}redo(t){}stream(){}}const Bi=(t,e)=>new Di(t,e);class _i{constructor(t,e){this.parent=null,this.position={x:t,y:e},this.cache={interact:null,config:{draggable:!1,selected:!1,highlighted:!1,rendered:!1},style:{normal:{strokeEnabled:!0,fillEnabled:!1,strokeColor:"#111111",fillColor:"#777777"},highlighted:{strokeEnabled:!0,fillEnabled:!1,strokeColor:null,fillColor:null}}},this.history={position:[],styles:[]},this.render()}get px(){return(this.position.x??0)+(this.parent?.position?.x??0)}get py(){return(this.position.y??0)+(this.parent?.position?.y??0)}isIntersectedWith(){}isInStroke(t,e){let r;return this.parent&&(this.parent.ctx.setTransform(1,0,0,1,0,0),r=this.parent.ctx.isPointInStroke(this.path,t,e),this.parent.applyTransformMatrix()),r}isInPath(t,e){let r;return this.parent&&(this.parent.ctx.setTransform(1,0,0,1,0,0),r=this.parent.ctx.isPointInPath(this.path,t,e),this.parent.applyTransformMatrix()),r}posX(t){return this.position.x=t,this.parent&&this.parent.draw(),this}posY(t){return this.position.y=t,this.parent&&this.parent.draw(),this}color({stroke:t=this.cache.style.normal.strokeColor,fill:e=this.cache.style.normal.fillColor}={stroke:t,fill:e}){return this.cache.style.normal.strokeColor=t,this.cache.style.normal.fillColor=e,this.parent&&this.parent.draw(),this}translate(t=0,e=0){this.position.x+=t,this.position.y+=e,this.parent&&this.parent.draw()}applyNormalStyle(t){return t.strokeStyle=this.cache.style.normal.strokeColor,t.fillStyle=this.cache.style.normal.fillColor,this}applyHighlightedStyle(t){return t.strokeStyle=this.cache.style.highlighted.strokeColor,t.fillStyle=this.cache.style.highlighted.fillColor,this}stroke(t=this.cache.style.normal.strokeColor,e=!0){return this.cache.style.normal.strokeEnabled=e,this.cache.style.normal.strokeColor=t,this.parent&&this.parent.draw(),this}fill(t=this.cache.style.normal.fillColor,e=!0){return this.cache.style.normal.fillEnabled=e,this.cache.style.normal.filleColor=t,this.parent&&this.parent.draw(),this}render(t=!0){return this.cache.config.rendered=t,this}}class Mi extends _i{constructor(t,e,r,s){super(t,e),this.r=r,this.angle=s,this.path=null}draw(t){if(this.cache.config.rendered){t.save(),this.applyNormalStyle(t),t.beginPath(),this.path=new Path2D,this.path.arc(this.px,this.py,this.r,0,this.angle);const{strokeEnabled:e,fillEnabled:r}=this.cache.style.normal;e&&t.stroke(this.path),r&&t.fill(this.path),t.closePath(),t.restore()}return this}radius(t){return this.r=t,this.parent&&this.parent.draw(),this}}const Ti=(t,e,r,s)=>new Mi(t,e,r,s),Ii=(t,e,r)=>new Mi(t,e,r,2*Math.PI);class Si extends _i{constructor(t,e){super(),this.pointsMatrix=null,this.path=new Path2D,this.fromXY(t,e)}get points(){return this.pointsMatrix.T.arr}draw(t){if(this.cache.config.rendered){t.save(),this.applyNormalStyle(t),t.beginPath(),this.path.moveTo(this.points[1][0]+this._x,this.points[1][1]+this._y);for(let t=1;t<this.points.length;t++)this.path.lineTo(this.points[t][0]+this._x,this.points[t][1]+this._y);t.stroke(this.path),t.restore()}return this}fromXY(t,e){return this.pointsMatrix=at([t,e]),this}push(t,e){return this.pointsMatrix.hstack(at([t,e])),this.parent&&this.parent.draw(),this}isIn(t,e){let r;return this.parent&&(this.parent.ctx.setTransform(1,0,0,1,0,0),r=this.parent.ctx.isPointInPath(this.path,t,e),this.parent.applyTransformMatrix()),r}}const Li=(t=[],e=[])=>new Si(t,e);class Oi extends _i{constructor(t,e,r,s){super(),this.x0=t,this.x1=r,this.y0=e,this.y1=s,delete this.fill}draw(t){return this.cache.config.rendered&&(t.save(),this.applyNormalStyle(t),t.beginPath(),t.moveTo(this.x0+this._x,this.y0+this._y_),t.lineTo(this.x1+this._x,this.y1+this._y),t.stroke(),this.cache.style.normal.strokeEnabled&&t.stroke(),t.restore()),this}}const Vi=(t,e,r,s)=>new Oi(t,e,r,s);class ji extends _i{constructor(t,e,r,s){super(t,e),this.w=r,this.h=s,this.path=new Path2D}draw(t){if(this.cache.config.rendered){t.save(),this.applyNormalStyle(t),t.beginPath(),this.path.rect(this.px,this.py,this.w,this.h);const{strokeEnabled:e,fillEnabled:r}=this.cache.style.normal;e&&t.stroke(this.path),r&&t.fill(this.path),t.closePath(),t.restore()}return this}width(t){return this.w=t,this.parent&&this.parent.draw(),this}height(t){return this.h=t,this.parent&&this.parent.draw(),this}}const Ri=(t,e,r,s)=>new ji(t,e,r,s),Ni={Svg:Ai,ZikoUISvg:ki,svgCircle:mi,svgEllipse:di,svgImage:wi,svgLine:gi,svgPolygon:bi,svgRect:ci,svgText:vi,svgGroupe:Ei,Canvas:Bi,canvasArc:Ti,canvasCircle:Ii,canvasPoints:Li,canvasLine:Vi,canvasRect:Ri,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class Pi{constructor(t,e){this.root_UI=t,this.routes=new Map([[404,Ar("Error 404")],...Object.entries(e)]),this.patterns=new Map,this.maintain(),window.onpopstate=this.render(location.pathname)}get(t,e){return t instanceof RegExp?this.patterns.set(t,e):this.routes.set(t,e),this.maintain(),this}maintain(){return this.root_UI.append(...this.routes.values()),[...this.routes.values()].map((t=>t.render(!1))),this.render(location.pathname),this}render(t){if(this.routes.get(t))this.routes.get(t).render(!0);else{const e=[...this.patterns.keys()].find((e=>e.test(t)));e?this.patterns.get(e)(t):this.routes.get(404).render(!0)}return window.history.pushState({},"",t),this}}const zi=(t,e,r)=>new Pi(t,e,r);var $i=null;globalThis?.document?.body&&($i=document.body);class Hi{constructor(t){this.app=t,this.meta={},this.#x("generator","zikojs")}#x(t,e){const r=document.querySelector(`meta[name=${t}]`);return this.meta=r||document.createElement("meta"),this.meta.setAttribute("name",t),this.meta.setAttribute("content",e),r||this.app.head.append(this.meta),this}charset(t="utf-8"){const e=document.querySelector("meta[charset]");return this.meta=e||document.createElement("meta"),this.meta.setAttribute("charset",t),e||this.app.head.append(this.meta),this}description(t){return this.#x("description",t),this}viewport(t="width=device-width, initial-scale=1.0"){return this.#x("viewport",t),this}keywords(...t){return t.push("zikojs"),t=[...new Set(t)].join(", "),this.#x("keywords",t),this}author(t="",e=""){const r=[t,e].join(", ");return this.#x("author",r),this}}class Ui extends Zs{constructor(){super("main"),this.root=document.documentElement,this.head=null,this.#s(),this.seo=new Hi(this),Object.assign(this.cache,{theme:null,isRoot:!0}),this.render()}#s(){this.root.setAttribute("data-engine","zikojs");const t=this.root.getElementsByTagName("head")[0];this.head=t||(this.head=document.createElement("head")),t||this.root.insertBefore(this.head,document.body);const e=this.head.getElementsByTagName("title")[0];this.Title=e||document.createElement("title"),e||this.head.append(this.Title)}title(t=this.title.textContent){return this.Title.textContent=t,this}prefetch(){}description(){}}const qi=(...t)=>(new Ui).append(...t),Wi={App:qi,Math:Qt,UI:Sn,Time:Fr,Graphics:Ni,Events:qe,Use:Cr,Data:ai,SPA:zi};globalThis.__Ziko__=Wi,globalThis.__UI__={text:[],p:[],pre:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],br:[],hr:[],btn:[],ol:[],ul:[],image:[],video:[],audio:[],Article:[],Main:[],Section:[],Aside:[],Nav:[],Header:[],Footer:[],Flex:[],FlexMain:[],FlexNav:[],FlexHeader:[],FlexFooter:[],FlexSection:[],FLexArticle:[],FlexAside:[],Table:[],Svg:[],Canvas:[]},globalThis.__Target__=$i,t.Accordion=Qs,t.App=qi,t.Article=yn,t.Aside=vn,t.Base=X,t.Canvas=Bi,t.Carousel=tn,t.CodeCell=on,t.CodeNote=rn,t.Combinaison=Y,t.Complex=r,t.DarkThemes=Ge,t.Data=ai,t.E=Et,t.EPSILON=kt,t.Ease=ur,t.Events=qe,t.ExtractAll=function(){return Sn.ExtractAll(),Qt.ExtractAll(),Fr.ExtractAll(),qe.ExtractAll(),Cr.ExtractAll(),Ni.ExtractAll(),ai.ExtractAll(),this},t.Fixed=p,t.Flex=Xs,t.Footer=wn,t.Graphics=Ni,t.Grid=Gs,t.Header=xn,t.LightThemes=Ke,t.LinearSystem=ut,t.Logic=K,t.Main=bn,t.Math=Qt,t.Matrix=ot,t.Nav=Fn,t.PI=Ct,t.Permutation=G,t.Random=J,t.RemoveAll=function(){Sn.RemoveAll(),Qt.RemoveAll(),Fr.RemoveAll(),qe.RemoveAll(),Cr.RemoveAll(),Ni.RemoveAll(),ai.RemoveAll()},t.SPA=zi,t.Section=gn,t.Signal=Yt,t.Svg=Ai,t.Table=In,t.Tabs=hn,t.Themes=Ye,t.Time=Fr,t.UI=Sn,t.Utils=Ut,t.ZikoHtml=qr,t.ZikoUIArticle=pn,t.ZikoUIAside=dn,t.ZikoUIAudio=Ns,t.ZikoUIBr=jr,t.ZikoUICanvas=Di,t.ZikoUICodeNote=en,t.ZikoUIElement=Er,t.ZikoUIFigure=Os,t.ZikoUIFooter=fn,t.ZikoUIHeader=cn,t.ZikoUIHr=Rr,t.ZikoUIHtmlTag=Vr,t.ZikoUIImage=Ss,t.ZikoUILink=Nr,t.ZikoUIMain=ln,t.ZikoUINav=un,t.ZikoUISection=mn,t.ZikoUISvg=ki,t.ZikoUIVideo=js,t.__init__=()=>document.documentElement.setAttribute("data-engine","zikojs"),t.abs=d,t.accum=h,t.acos=D,t.acosh=O,t.acot=M,t.add=bt,t.animation=wr,t.arange=St,t.asin=B,t.asinh=V,t.atan=_,t.atan2=z,t.atanh=j,t.audio=Ps,t.bessel=(t,e)=>{if("number"==typeof t){if("number"==typeof t)return u(t,e);console.warn("Not supported yet")}else if(t instanceof Array){if("number"==typeof e)return mt((t=>u(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>u(t[s],e)),...e));return r}}},t.beta=(t,e)=>{if("number"==typeof t){if("number"==typeof t)return m(t,e);console.warn("Not supported yet")}else if(t instanceof Array){if("number"==typeof e)return mt((t=>m(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>m(t[s],e)),...e));return r}}},t.br=Pr,t.brs=$r,t.btn=Jr,t.canvasArc=Ti,t.canvasCircle=Ii,t.canvasLine=Vi,t.canvasPoints=Li,t.canvasRect=Ri,t.cartesianProduct=zt,t.ceil=R,t.checkbox=_s,t.choleskyDecomposition=it,t.clamp=It,t.complex=s,t.cos=w,t.cosh=T,t.cot=A,t.coth=L,t.csc=k,t.csv2arr=Nn,t.csv2json=$n,t.csv2matrix=Pn,t.csv2object=zn,t.csv2sql=Hn,t.datalist=bs,t.default=Wi,t.deg2rad=jt,t.div=Ft,t.e=b,t.fact=$,t.figure=Vs,t.floor=N,t.gamma=(...t)=>mt(l,...t),t.geomspace=Vt,t.h1=Mr,t.h2=Tr,t.h3=Ir,t.h4=Sr,t.h5=Lr,t.h6=Or,t.hr=zr,t.hrs=Hr,t.hypot=q,t.image=Ls,t.inRange=Nt,t.input=ys,t.inputCamera=$s,t.inputColor=ks,t.inputDate=Ds,t.inputDateTime=Bs,t.inputEmail=Es,t.inputImage=vs,t.inputNumber=ws,t.inputPassword=Cs,t.inputTime=As,t.isApproximatlyEqual=Pt,t.json2arr=Wn,t.json2csv=Zn,t.json2csvFile=Xn,t.json2xml=Jn,t.json2xmlFile=ti,t.json2yml=Yn,t.json2ymlFile=Qn,t.lerp=Mt,t.li=t=>new Wr(t),t.link=Ur,t.linspace=Lt,t.ln=x,t.logspace=Ot,t.loop=cr,t.luDecomposition=tt,t.map=Tt,t.mapfun=mt,t.markdown2html=Rn,t.matrix=at,t.matrix2=ht,t.matrix3=lt,t.matrix4=ct,t.max=a,t.min=o,t.modulo=vt,t.mul=wt,t.norm=_t,t.nums=Bt,t.ol=Gr,t.ones=Dt,t.p=Br,t.pgcd=$t,t.pow=g,t.powerSet=W,t.ppcm=Ht,t.prod=i,t.qrDecomposition=nt,t.rad2deg=Rt,t.radio=Ms,t.round=P,t.search=Fs,t.sec=C,t.select=Is,t.sig=U,t.sign=H,t.sin=F,t.sinc=E,t.sinh=I,t.slider=xs,t.sqrt=f,t.sqrtn=y,t.sub=xt,t.subSet=Z,t.sum=n,t.svg2ascii=ri,t.svg2img=ni,t.svg2imgUrl=si,t.svg2str=ei,t.svgCircle=mi,t.svgEllipse=di,t.svgGroupe=Ei,t.svgImage=wi,t.svgLine=gi,t.svgPolygon=bi,t.svgRect=ci,t.svgText=vi,t.tan=v,t.tanh=S,t.text=Ar,t.textarea=rs,t.timeTaken=br,t.time_memory_Taken=dr,t.ul=Yr,t.useDebounce=mr,t.useThrottle=pr,t.video=Rs,t.wait=yr,t.waitForUIElm=fr,t.waitForUIElmSync=gr,t.zeros=At,Object.defineProperty(t,"__esModule",{value:!0})}));
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";class e{}class r extends e{constructor(t=0,e=0){super(),t instanceof r?(this.a=t.a,this.b=t.b):"object"==typeof t?"a"in e&&"b"in t?(this.a=t.a,this.b=t.b):"a"in e&&"z"in t?(this.a=t.a,this.b=f(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*v(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=f(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/v(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*x(t.phi),this.a=t.z*F(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}get clone(){return new r(this.a,this.b)}get z(){return q(this.a,this.b)}get phi(){return z(this.b,this.a)}static Zero(){return new r(0,0)}get conj(){return new r(this.a,-this.b)}get inv(){return new r(this.a/(g(this.a,2)+g(this.b,2)),-this.b/(g(this.a,2)+g(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+n(...e).toFixed(15),this.b+=+n(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+n(...e).toFixed(15),this.b-=+n(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=+i(this.z,...t.map((t=>t.z))).toFixed(15),s=+n(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*x(s).toFixed(15)).toFixed(14),this.b=+(e*F(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new r(t[e],0));let e=+(this.z/i(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-n(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*x(s).toFixed(15)).toFixed(15),this.b=+(e*F(s).toFixed(15)).toFixed(15),this}pow(t){if(N(t)===t&&t>0){let e=+(this.z**t).toFixed(15),r=+(this.phi*t).toFixed(15);this.a=+(e*x(r).toFixed(15)).toFixed(15),this.b=+(e*F(r).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new r(+(t*x(e)).toFixed(13),+(t*F(e)).toFixed(13))}get expo(){return[this.z,this.phi]}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}static mul(t,...e){return t.clone.mul(...e)}static div(t,...e){return t.clone.div(...e)}static pow(t,e){return t.clone.pow(e)}static xpowZ(t){return s(t**this.a*x(this.b*w(t)),t**this.a*F(this.b*w(t)))}sqrtn(t=2){return s(y(this.z,t)*x(this.phi/t),y(this.z,t)*F(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return s(this.z,this.phi)}get cos(){return s(x(this.a)*T(this.b),F(this.a)*I(this.b))}get sin(){return s(F(this.a)*T(this.b),x(this.a)*I(this.b))}get tan(){const t=x(2*this.a)+T(2*this.b);return s(F(2*this.a)/t,I(2*this.b)/t)}printInConsole(){let t=this.a+" + "+this.b+" * i";return console.log(t),t}print(){}UI(){return"<span>"+this.a+" + i * "+this.b+"</span>"}}const s=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((r,n)=>s(t[n],e[n])));if(t instanceof ot&&e instanceof ot){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const r=t.arr.map(((r,n)=>s(t.arr[n],e.arr[n])));return new ot(t.rows,t.cols,...r)}return new r(t,e)},n=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let r=1;r<t.length;r++)e+=t[r];return e}const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(n(...t[r])):t[r]instanceof Object&&e.push(n(...Object.values(t[r])));return 1===e.length?e[0]:e},i=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let r=1;r<t.length;r++)e*=t[r];return e}const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(i(...t[r])):t[r]instanceof Object&&e.push(i(...Object.values(t[r])));return 1===e.length?e[0]:e},o=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.min(...t);const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(o(...t[r])):t[r]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[r]).sort(((t,e)=>t[1]-e[1]))[0]]));return 1===e.length?e[0]:e},a=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.max(...t);const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(o(...t[r])):t[r]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[r]).sort(((t,e)=>e[1]-t[1]))[0]]));return 1===e.length?e[0]:e},h=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t.reduce(((t,e)=>[...t,t[t.length-1]+e]),[0]);return e.shift(),e}const e=[];for(let r=0;r<t.length;r++)t[r]instanceof Array?e.push(h(...t[r])):t[r]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},l=t=>{const e=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7];if(t<.5)return+(Math.PI/(Math.sin(Math.PI*t)*l(1-t))).toFixed(10);t-=1;let r=e[0];for(let s=1;s<9;s++)r+=e[s]/(t+s);const s=t+7+.5;return+(Math.sqrt(2*Math.PI)*Math.pow(s,t+.5)*Math.exp(-s)*r).toFixed(10)},u=(t,e)=>{let r=0;for(let s=0;s<100;s++){r+=Math.pow(-1,s)*Math.pow(e/2,t+2*s)/($(s)*$(t+s))}return r},m=(t,e)=>{let r=0;const s=r=>Math.pow(r,t-1)*Math.pow(1-r,e-1);r+=.5*(s(0)+s(1));for(let t=1;t<1e3;t++){r+=s(0+.001*t)}return.001*r},p={cos:t=>+Math.cos(t).toFixed(15),sin:t=>+Math.sin(t).toFixed(15),tan:t=>+Math.tan(t).toFixed(31),sinc:t=>+Math.sin(Math.PI*t)/(Math.PI*t),sec:t=>1/Math.cos(t).toFixed(15),csc:t=>1/Math.sin(t).toFixed(15),cot:t=>1/Math.tan(t).toFixed(15),acos:t=>+Math.acos(t).toFixed(15),asin:t=>+Math.asin(t).toFixed(15),atan:t=>+Math.atan(t).toFixed(15),acot:t=>+Math.PI/2-Math.atan(t).toFixed(15),cosh:t=>+Math.cosh(t).toFixed(15),sinh:t=>+Math.sinh(t).toFixed(15),tanh:t=>+Math.tanh(t).toFixed(15),coth:t=>+(.5*Math.log((1+t)/(1-t))).toFixed(15),acosh:t=>+Math.acosh(t).toFixed(15),asinh:t=>+Math.asinh(t).toFixed(15),atanh:t=>+Math.atanh(t).toFixed(15)},d=(...t)=>mt(Math.abs,...t),f=(...t)=>mt(Math.sqrt,...t),g=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof r?r.fromExpo(t**e.a,e.b*w(t)):mt((e=>g(t,e)),...e);if(t instanceof r)return"number"==typeof e?r.fromExpo(t.z**e,t.phi*e):e instanceof r?r.fromExpo(t.z**e.a*b(-t.phi*e.b),w(t.z)*e.b+e.a*t.phi):mt((e=>g(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return mt((t=>g(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>g(t[s],e)),...e));return r}}},y=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):mt((e=>y(t,e)),...e);if(t instanceof r)return"number"==typeof e?r.fromExpo(y(t.z,e),t.phi/e):mt((e=>y(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return mt((t=>y(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>y(t[s],e)),...e));return r}}},b=(...t)=>mt(Math.exp,...t),w=(...t)=>mt(Math.log,...t),x=(...t)=>mt(p.cos,...t),F=(...t)=>mt(p.sin,...t),v=(...t)=>mt(p.tan,...t),C=(...t)=>mt(p.sec,...t),E=(...t)=>mt(p.sinc,...t),k=(...t)=>mt(p.csc,...t),A=(...t)=>mt(p.cot,...t),D=(...t)=>mt(p.acos,...t),B=(...t)=>mt(p.asin,...t),_=(...t)=>mt(p.atan,...t),M=(...t)=>mt(p.acot,...t),T=(...t)=>mt(p.cosh,...t),I=(...t)=>mt(p.sinh,...t),S=(...t)=>mt(p.tanh,...t),L=(...t)=>mt(p.coth,...t),O=(...t)=>mt(p.acosh,...t),V=(...t)=>mt(p.asinh,...t),j=(...t)=>mt(p.atanh,...t),R=(...t)=>mt(Math.ceil,...t),N=(...t)=>mt(Math.floor,...t),P=(...t)=>mt(Math.round,...t),z=(t,e,r=!0)=>{if("number"==typeof t)return"number"==typeof e?r?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:mt((e=>z(t,e,r)),...e);if(t instanceof Array){if("number"==typeof e)return mt((t=>z(t,e,r)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>g(t[s],e)),...e));return r}}},$=(...t)=>mt((t=>{let e,r=1;if(0==t)r=1;else if(t>0)for(e=1;e<=t;e++)r*=e;else r=NaN;return r}),...t),H=(...t)=>mt(Math.sign,...t),U=(...t)=>mt((t=>1/(1+b(-t))),...t),q=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?mt(Math.hypot,...t):void 0,W=t=>{const e=[],r=2**t.length;for(let s=0;s<r;s+=1){const r=[];for(let e=0;e<t.length;e+=1)s&1<<e&&r.push(t[e]);e.push(r)}return e},Z=null,X={_mode:Number,_map:function(t,e,s){return e instanceof ot?new ot(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof r?new r(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},dec2base(t,e){return this._mode=e<=10?Number:String,"number"==typeof t?this._mode((t>>>0).toString(e)):this._map(this.dec2base,t,e)},dec2bin(t){return this.dec2base(t,2)},dec2oct(t){return this.dec2base(t,8)},dec2hex(t){return this.dec2base(t,16)},bin2base(t,e){return this.dec2base(this.bin2dec(t),e)},bin2dec(t){return this._mode("0b"+t)},bin2oct(t){return this.bin2base(t,8)},bin2hex(t){return this.bin2base(t,16)},oct2dec(t){return this._mode("0o"+t)},oct2bin(t){return this.dec2bin(this.oct2dec(t))},oct2hex(t){return this.dec2hex(this.oct2dec(t))},oct2base(t,e){return this.dec2base(this.oct2dec(t),e)},hex2dec(t){return this._mode("0x"+t)},hex2bin(t){return this.dec2bin(this.hex2dec(t))},hex2oct(t){return this.dec2oct(this.hex2dec(t))},hex2base(t,e){return this.dec2base(this.hex2dec(t),e)},IEEE32toDec(t){let e=t.split(" ").join("").padEnd(32,"0"),r=e[0],s=2**(+("0b"+e.slice(1,9))-127);return(-1)**r*(1+e.slice(9,32).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*s},IEEE64toDec(t){let e=t.split(" ").join("").padEnd(64,"0"),r=e[0],s=2**(+("0b"+e.slice(1,12))-1023);return(-1)**r*(1+e.slice(13,64).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*s}},K={_mode:Number,_map:function(t,e,s){return e instanceof ot?new ot(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof r?new r(t(e.a,s),t(e.b,s)):e instanceof Array?e.map((e=>t(e,s))):void 0},not:function(t){return["number","boolean"].includes(typeof t)?K._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?K._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?K._mode(e.reduce(((t,e)=>t|e),t)):this._map(this.or,t,e)},nand:function(t,...e){return this.not(this.and(t,e))},nor:function(t,...e){return this.not(this.or(t,e))},xor:function(t,...e){let r=[t,...e];return["number","boolean"].includes(typeof t)?this._mode(1===r.reduce(((t,e)=>(1==+e&&(t+=1),t)),0)):this._map(this.xor,t,e)},xnor:function(t,...e){return K.not(K.xor(t,e))}};class Y{static withDiscount(t,e=t.length){if(1===e)return t.map((t=>[t]));const r=[];let s;return s=this.withDiscount(t,e-1),t.forEach((t=>{s.forEach((e=>{r.push([t].concat(e))}))})),r}static withoutDiscount(t){if(1===t.length)return t.map((t=>[t]));const e=[],r=this.withoutDiscount(t.slice(1)),s=t[0];for(let t=0;t<r.length;t++){const n=r[t];for(let t=0;t<=n.length;t++){const r=n.slice(0,t),i=n.slice(t);e.push(r.concat([s],i))}}return e}}class G{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const r=[];return t.forEach(((s,n)=>{this.withDiscount(t.slice(n),e-1).forEach((t=>{r.push([s].concat(t))}))})),r}static withoutDiscount(t,e){if(1===e)return t.map((t=>[t]));const r=[];return t.forEach(((s,n)=>{this.withoutDiscount(t.slice(n+1),e-1).forEach((t=>{r.push([s].concat(t))}))})),r}}const Q={Logic:K,Base:X,Permutation:Y,Combinaison:G,combinaison:(t,e,r=!1)=>G[r?"withDiscount":"withoutDiscount"](t,e),powerSet:W,subSet:Z};class J{static float(t=1,e){return e?Math.random()*(e-t)+t:t*Math.random()}static int(t,e){return Math.floor(this.float(t,e))}static char(t){t=t??this.bool();const e=String.fromCharCode(this.int(97,120));return t?e.toUpperCase():e}static bool(){return[!1,!0][Math.floor(2*Math.random())]}static string(t,e){return t instanceof Array?new Array(this.int(...t)).fill(0).map((()=>this.char(e))).join(""):new Array(t).fill(0).map((()=>this.char(e))).join("")}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(8)}static hex(){return this.int(16)}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){let r=new Array(100);e=Ut.accum(...e).map((t=>100*t)),r.fill(t[0],0,e[0]);for(let s=1;s<t.length;s++)r.fill(t[s],e[s-1],e[s]);return r[this.int(r.length-1)]}static shuffleArr(t){return t.sort((()=>.5-Math.random()))}static shuffleMatrix(t){const{rows:e,cols:r,arr:s}=t;return at(e,r,s.flat().sort((()=>.5-Math.random())))}static floats(t,e,r){return new Array(t).fill(0).map((()=>this.float(e,r)))}static ints(t,e,r){return new Array(t).fill(0).map((()=>this.int(e,r)))}static bools(t){return new Array(t).fill(0).map((()=>this.bool()))}static bins(t){return new Array(t).fill(0).map((()=>this.int(2)))}static octs(t){return new Array(t).fill(0).map((()=>this.int(8)))}static decs(t){return new Array(t).fill(0).map((()=>this.int(10)))}static hexs(t){return new Array(t).fill(0).map((()=>this.int(16)))}static choices(t,e,r){return new Array(t).fill(0).map((()=>this.choice(e,r)))}static perm(...t){return t.permS[this.int(t.length)]}static color(){return"#"+X.dec2hex(this.float(16777216)).padStart(6,0)}static colors(t){return new Array(t).fill(null).map((()=>this.color()))}static complex(t=[0,1],e=[0,1]){return t instanceof Array?new r(this.float(t[0],t[1]),this.float(e[0],e[1])):new r(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new r(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new r(...this.bins(2))}static complexOct(){return new r(...this.octs(2))}static complexDec(){return new r(...this.decs(10))}static complexHex(){return new r(...this.octs(2))}static complexes(t,e=0,r=1){return new Array(t).fill(0).map((()=>this.complex(e,r)))}static complexesInt(t,e=0,r=1){return new Array(t).fill(0).map((()=>this.complexInt(e,r)))}static complexesBin(t){return new Array(t).fill(0).map((()=>this.complexBin()))}static complexesOct(t){return new Array(t).fill(0).map((()=>this.complexOct()))}static complexesDec(t){return new Array(t).fill(0).map((()=>this.complexDec()))}static complexesHex(t){return new Array(t).fill(0).map((()=>this.complexHex()))}static matrix(t,e,r,s){return at(t,e,this.floats(t*e,r,s))}static matrixInt(t,e,r,s){return at(t,e,this.ints(t*e,r,s))}static matrixBin(t,e){return at(t,e,this.bins(t*e))}static matrixOct(t,e){return at(t,e,this.octs(t*e))}static matrixDec(t,e){return at(t,e,this.decs(t*e))}static matrixHex(t,e){return at(t,e,this.hex(t*e))}static matrixColor(t,e){return at(t,e,this.colors(t*e))}static matrixComplex(t,e,r,s){return at(t,e,this.complexes(t*e,r,s))}static matrixComplexInt(t,e,r,s){return at(t,e,this.complexesInt(t*e,r,s))}static matrixComplexBin(t,e){return at(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return at(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return at(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return at(t,e,this.complexesBin(t*e))}}const tt=t=>{t instanceof ot&&(t=t.arr);const e=t.length,r=new Array(e).fill(0).map((()=>new Array(e).fill(0))),s=new Array(e).fill(0).map((()=>new Array(e).fill(0)));for(let n=0;n<e;n++){for(let i=n;i<e;i++){let e=0;for(let t=0;t<n;t++)e+=r[n][t]*s[t][i];s[n][i]=t[n][i]-e}for(let i=n;i<e;i++)if(n==i)r[n][n]=1;else{let e=0;for(let t=0;t<n;t++)e+=r[i][t]*s[t][n];r[i][n]=(t[i][n]-e)/s[n][n]}}return[r,s].map((t=>new ot(t)))},et=(t,e)=>t.reduce(((t,r,s)=>t+r*e[s]),0),rt=t=>Math.sqrt(t.reduce(((t,e)=>t+e*e),0)),st=t=>t.map((e=>e/rt(t))),nt=t=>{t instanceof ot&&(t=t.arr);const e=t.length,r=t[0].length,s=[],n=[];for(let t=0;t<e;t++)n.push(new Array(r).fill(0));for(let i=0;i<r;i++){let r=t.map((t=>t[i]));for(let o=0;o<i;o++){const a=s[o],h=et(a,t.map((t=>t[i])));for(let t=0;t<e;t++)r[t]-=h*a[t];n[o][i]=h}const o=rt(r);s.push(st(r)),n[i][i]=o}return[s,n].map((t=>new ot(t)))},it=t=>{t instanceof ot&&(t=t.arr);const e=t.length,r=new Array(e).fill(0).map((()=>new Array(e).fill(0)));for(let s=0;s<e;s++)for(let e=0;e<=s;e++){let n=0;for(let t=0;t<e;t++)n+=r[s][t]*r[e][t];r[s][e]=s===e?Math.sqrt(t[s][s]-n):1/r[e][e]*(t[s][e]-n)}return new ot(r)};class ot extends e{constructor(t,e,r=[]){if(super(),t instanceof ot)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let s,n,i=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,i=arguments[0];else for(s=0;s<t;s++)for(i.push([]),i[s].push(new Array(e)),n=0;n<e;n++)i[s][n]=r[s*e+n],null==r[s*e+n]&&(i[s][n]=0);this.rows=t,this.cols=e,this.arr=i}this._maintain()}at(t=0,e=void 0){return t<0&&(t=this.rows+t),null==e?this.arr[t]:(e<0&&(e=this.cols+e),this.arr[t][e])}reshape(t,e){if(t*e==this.rows*this.cols)return new ot(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new ot(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}get clone(){return new ot(this.rows,this.cols,this.arr.flat(1))}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}get reel(){return new ot(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new ot(this.cols,this.rows,this.arr.flat(1).imag)}_maintain(){for(let t=0;t<this.arr.length;t++)Object.assign(this,{[[t]]:this.arr[t]});return this}get(t=0,e=0){return-1==e?this.arr[t]:-1==t?this.arr.map((t=>t[e])):this.arr[t][e]}set(t=0,e=0,r){if(-1==e)return this.arr[t]=r;if(-1==t){for(let t=0;t<this.cols;t++)this.arr[t][e]=r[t]||0;return this.arr}return this.arr[t][e]=r}get isSquare(){return this.rows/this.cols==1}get isSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==ot.sub(e,t).max&&0==ot.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==ot.add(e,t).max&&0==ot.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,r=ot.mul(e,t),s=ot.dot(t,e);return 0==ot.sub(r,s).max&&0==ot.sub(r,s).min}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.clone,e=ot.dot(t,t);return 0==ot.sub(e,t).max&&0==ot.sub(e,t).min}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 ot(this.cols,this.rows,t.flat(1))}get det(){if(!this.isSquare)return new Error("is not square matrix");if(1==this.rows)return this.arr[0][0];function t(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}return function e(r){if(2==r.length)return r.flat(1).some((t=>t instanceof ot))?void console.warn("Tensors are not completely supported yet ..."):Ut.sub(Ut.mul(r[0][0],r[1][1]),Ut.mul(r[0][1],r[1][0]));for(var s=0,n=0;n<r.length;n++){const i=Ut.add(Ut.mul(g(-1,n),Ut.mul(r[0][n],e(t(r,n)))));s=Ut.add(s,i)}return s}(this.arr)}get inv(){if(!this.isSquare)return new Error("is not square matrix");if(0===this.det)return"determinat = 0 !!!";let t=function(t){if(t.length!==t[0].length)return;var e=0,r=0,s=0,n=t.length,i=0,o=[],a=[];for(e=0;e<n;e+=1)for(o[o.length]=[],a[a.length]=[],s=0;s<n;s+=1)o[e][s]=e==s?1:0,a[e][s]=t[e][s];for(e=0;e<n;e+=1){if(0==(i=a[e][e])){for(r=e+1;r<n;r+=1)if(0!=a[r][e]){for(s=0;s<n;s++)i=a[e][s],a[e][s]=a[r][s],a[r][s]=i,i=o[e][s],o[e][s]=o[r][s],o[r][s]=i;break}if(0==(i=a[e][e]))return}for(s=0;s<n;s++)a[e][s]=a[e][s]/i,o[e][s]=o[e][s]/i;for(r=0;r<n;r++)if(r!=e)for(i=a[r][e],s=0;s<n;s++)a[r][s]-=i*a[e][s],o[r][s]-=i*o[e][s]}return o}(this.arr);return new ot(this.rows,this.cols,t.flat(1))}static zeros(t,e){let r=new ot(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 ot(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 ot(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 rand(){return{int:(t,e,r,s)=>{let n=new ot(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=J.randInt(r,s);return n},bin:(t,e)=>{let r=new ot(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=J.randBin;return r},hex:(t,e)=>{let r=new ot(t,e);for(let s=0;s<t;s++)for(let t=0;t<e;t++)r.arr[s][t]=J.randHex;return r},choices:(t,e,r,s)=>{let n=new ot(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=J.choice(r,s);return n},permutation:(t,e,r)=>{}}}static rands(t,e,r=1,s){let n=new ot(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)n.arr[i][t]=J.rand(r,s);return n}map(t,e,r,s){return Ut.map(this,t,e,r,s)}lerp(t,e){return Ut.lerp(this,t,e)}norm(t,e){return Ut.norm(this,t,e)}clamp(t,e){return Ut.clamp(this,t,e)}static map(t,e,r,s,n){return Ut.map(t,e,r,s,n)}static lerp(t,e,r){return Ut.lerp(t,e,r)}static norm(t,e,r){return Ut.norm(t,e,r)}static clamp(t,e,r){return Ut.clamp(at,e,r)}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}get toBin(){let t=this.arr.flat(1).toBin;return new ot(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new ot(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new ot(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new ot(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new ot(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new ot(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new ot(this.rows,this.cols,e).T}filterByRows(t){var e=this.arr.map((e=>e.map((e=>+(""+e).includes(t))))).map((t=>!!Logic.or(...t))),r=this.arr.filter(((t,r)=>!0===e[r]));return 0===r.length&&r.push([]),console.log(r),new ot(r)}filterByCols(t){return new ot(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new ot(this.rows,this.cols,e)}count(t){return this.arr.flat(1).count(t)}toBase(t){let e=this.arr.flat(1).toBase(t);return new ot(this.rows,this.cols,e)}#t(t){if(this.rows!==t.rows)return;let e=this.arr;for(let r=0;r<this.rows;r++)for(let s=this.cols;s<this.cols+t.cols;s++)e[r][s]=t.arr[r][s-this.cols];return this.cols+=t.cols,new ot(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#t(e)));return Object.assign(this,e),this}static hstack(t,...e){return t.clone.hstack(...e)}#e(t){if(this.cols!==t.cols)return;let e=this.arr;for(let r=this.rows;r<this.rows+t.rows;r++){e[r]=[];for(let s=0;s<this.cols;s++)e[r][s]=t.arr[r-this.rows][s]}return this.rows+=t.rows,new ot(this.rows,this.cols,e.flat(1))}vstack(...t){const e=[this,...t].reduce(((t,e)=>t.#e(e)));return Object.assign(this,e),this}static vstack(t,...e){return t.clone.vstack(...e)}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#t(e)));return Object.assign(this,e),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#e(e)));return Object.assign(this,e),this}static hqueue(t,...e){return t.clone.hqueue(...e)}static vqueue(t,...e){return t.clone.vqueue(...e)}slice(t=0,e=0,r=this.rows-1,s=this.cols-1){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 new ot(n,i,o.flat(1))}static slice(t,e=0,r=0,s=this.rows-1,n=this.cols-1){return t.slice(e,r,s,n)}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)}static getRows(t,e,r=e+1){return t.slice(e,0,r,t.cols)}static getCols(t,e,r=e+1){return t.slice(0,e,t.rows,r)}add(...t){for(let s=0;s<t.length;s++){("number"==typeof t[s]||t[s]instanceof r)&&(t[s]=ot.nums(this.rows,this.cols,t[s]));for(let r=0;r<this.rows;r++)for(var e=0;e<this.cols;e++)this.arr[r][e]=Ut.add(this.arr[r][e],t[s].arr[r][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=ot.nums(this.rows,this.cols,t[r]));for(let s=0;s<this.rows;s++)for(var e=0;e<this.cols;e++)this.arr[s][e]=Ut.sub(this.arr[s][e],t[r].arr[s][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}static add(t,...e){return t.clone.add(...e)}static sub(t,...e){return t.clone.sub(...e)}mul(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=ot.nums(this.rows,this.cols,t[s]));for(var e=0;e<this.rows;e++)for(var r=0;r<this.cols;r++)this.arr[e][r]=Ut.mul(this.arr[e][r],t[s].arr[e][r])}return new ot(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=ot.nums(this.rows,this.cols,t[r]));for(let s=0;s<this.rows;s++)for(var e=0;e<this.cols;e++)this.arr[s][e]=Ut.div(this.arr[s][e],t[r].arr[s][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}static div(t,...e){return t.clone.div(...e)}static mul(t,...e){return t.clone.mul(...e)}modulo(...t){for(let r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=ot.nums(this.rows,this.cols,t[r]));for(let s=0;s<this.rows;s++)for(var e=0;e<this.cols;e++)this.arr[s][e]=Ut.modulo(this.arr[s][e],t[r].arr[s][e])}return new ot(this.rows,this.cols,this.arr.flat(1))}static modulo(t,...e){return t.clone.modulo(...e)}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]=Ut.add(e[r][s],Ut.mul(this.arr[r][n],t.arr[n][s]))}}return new ot(this.arr.length,t.arr[0].length,e.flat(1))}static dot(t,e){return t.dot(e)}pow(t){let e=this.clone,r=this.clone;for(let s=0;s<t-1;s++)r=r.dot(e);return r}static pow(t,e){return t.clone.pow(e)}get somme(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t+=this.arr[e][r];return t}get DoesItContainComplexNumbers(){return this.arr.flat(1/0).some((t=>t instanceof r))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(o(...this.arr[e]));return o(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(a(...this.arr[e]));return a(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(o(...this.arr[e]));return t}get maxRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(a(...this.arr[e]));return t}get minCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new ot(t.length,1,t)}get toArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.cols;r++)t.push(this.arr[e][r]);return t}get print(){let t="[";for(let e=0;e<this.arr.length;e++)t+=(0!=e?" ":"")+` [${this.arr[e].map((t=>" "+t.toString()+" "))}],\n`;console.log(t.substring(0,t.length-2)+" ]"),document.write(t.substring(0,t.length-2)+" ]")}get table(){console.table(this.arr)}get serialize(){return JSON.stringify(this)}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let e=new ot(t.rows,t.cols);return e.arr=t.arr,e}DecompositionLU(){const[t,e]=tt(this);return{L:t,U:e}}static DecompositionLU(...t){const e=t.map((t=>t.clone.LU()));return 1===e.length?e[0]:e}DecompositionQR(){const[t,e]=nt(this);return{Q:t,R:e}}static DecompositionQR(...t){const e=t.map((t=>t.clone.DecompositionQr()));return 1===e.length?e[0]:e}DecompositionCholesky(){return{L:it(this)}}static DecompositionCholesky(...t){const e=t.map((t=>t.clone.DecompositionCholesky()));return 1===e.length?e[0]:e}get decomposition(){return{LU:()=>this.DecompositionLU(),QR:()=>this.DecompositionQR(),Cholesky:()=>this.DecompositionCholesky()}}static get decomposition(){return{LU:(...t)=>ot.LU(...t),QR:(...t)=>ot.QR(...t),CHOLESKY:(...t)=>ot.CHOLESKY(...t)}}toTable(){var t=new DocumentFragment,e=new Array(this.rows).fill(null).map((()=>document.createElement("tr"))),r=this.arr.map((t=>t.map((()=>document.createElement("td")))));for(let t=0;t<r.length;t++)for(let s=0;s<r[0].length;s++)r[t][s].innerHTML=this.arr[t][s],e[t].appendChild(r[t][s]);return e.map((e=>t.appendChild(e))),t}toGrid(t,e={}){let r=Grid();return r.append(...this.map(t).arr.flat(1).map((t=>t.style(e)))),r.Columns(this.cols),r}sortTable(t=0,{type:e="num",order:r="asc"}={}){var s=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e}))))),n=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e})))));"num"===e?"asc"===r?s[t].sort(((t,e)=>t.x-e.x)):"desc"===r?s[t].sort(((t,e)=>e.x-t.x)):"toggle"===r&&(s[t][0].x>s[t][1].x?s[t].sort(((t,e)=>e.x-t.x)):s[t].sort(((t,e)=>t.x-e.x))):"alpha"===e&&("asc"===r?s[t].sort(((t,e)=>(""+t.x).localeCompare(""+e.x))):"desc"===r&&s[t].sort(((t,e)=>(""+e.x).localeCompare(""+t.x)))),r=s[t].map((t=>t.y));for(let e=0;e<s.length;e++)e!==t&&s[e].map(((t,e)=>t.y=r[e]));for(let e=0;e<s.length;e++)e!==t&&n[e].map(((t,n)=>t.x=s[e][r[n]].x));n[t]=s[t];var i=n.map((t=>t.map((t=>t.x))));return new ot(i).T}}const at=(t,e,r)=>new ot(t,e,r),ht=(...t)=>new ot(2,2,t),lt=(...t)=>new ot(3,3,t),ct=(...t)=>new ot(4,4,t);class ut{static resolve(t,e){return t.inv.dot(ot.fromVector(e)).arr.flat(1).map((t=>+t.toFixed(10)))}}const mt=(t,...e)=>{const n=e.map((e=>{if(null===e)return t(null);if(["number","string","boolean","bigint","undefined"].includes(typeof e))return t(e);if(e instanceof Array)return e.map((e=>mt(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(mt(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],mt(t,e[1])])));if(e instanceof ot)return new ot(e.rows,e.cols,mt(e.arr.flat(1)));if(e instanceof r){const[r,n,i,o]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return s(w(i),o);case Math.exp:return s(b(r)*x(n),b(r)*F(n));case Math.abs:return i;case Math.sqrt:return s(f(i)*x(o/2),f(i)*F(o/2));case p.cos:return s(x(r)*T(n),-F(r)*I(n));case p.sin:return s(F(r)*T(n),x(r)*I(n));case p.tan:{const t=x(2*r)+T(2*n);return s(F(2*r)/t,I(2*n)/t)}case p.cosh:return s(T(r)*x(n),I(r)*F(n));case p.sinh:return s(I(r)*x(n),T(r)*F(n));case p.tanh:{const t=T(2*r)+x(2*n);return s(I(2*r)/t,F(2*n)/t)}}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],mt(t,e[1])])))}));return 1==n.length?n[0]:n},pt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof r)return s(t+e.a,e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>bt(e,t)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.add(e))):t.clone.add(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>bt(t,e)));if(t.length===e.length)return t.map(((t,r)=>bt(t,e[r])))}}},dt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof r)return s(t-e.a,-e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>wt(e,t)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.sub(e))):t.clone.sub(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>wt(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,r)=>wt(t,e[r])))}}},ft=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof r)return s(t*e.a,t*e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>xt(t,e)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.mul(e))):t.clone.mul(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>xt(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,r)=>xt(t,e[r])))}}},gt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof r)return s(t/e.a,t/e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>Ft(t,e)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array){if(!(e instanceof Array))return t.map((t=>Ft(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,r)=>Ft(t,e[r])))}}},yt=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof r)return s(t%e.a,t%e.b);if(e instanceof ot)return ot.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>Ft(t,e)))}else{if(t instanceof r||t instanceof ot)return e instanceof Array?e.map((e=>t.clone.div(e))):t.clone.div(e);if(t instanceof Array&&!(e instanceof Array))return t.map((t=>bt(t,e)))}},bt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=pt(r,e[t]);return r},wt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=dt(r,e[t]);return r},xt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=ft(r,e[t]);return r},Ft=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=gt(r,e[t]);return r},vt=(t,...e)=>{var r=t;for(let t=0;t<e.length;t++)r=yt(r,e[t]);return r},{PI:Ct,E:Et}=Math,kt=Number.EPSILON,At=t=>new Array(t).fill(0),Dt=t=>new Array(t).fill(1),Bt=(t,e)=>new Array(e).fill(t),_t=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof ot)return new ot(t.rows,t.cols,_t(t.arr.flat(1),e,s));if(t instanceof r)return new r(_t(t.a,e,s),_t(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>_t(t,e,s)));{let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=_t(t[r])}}},Mt=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof ot)return new ot(t.rows,t.cols,Mt(t.arr.flat(1),e,s));if(t instanceof r)return new r(Mt(t.a,e,s),Mt(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>Mt(t,e,s)));{let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=Mt(t[r])}}},Tt=(t,e,s,n,i)=>{if("number"==typeof t)return Mt(_t(t,e,s),n,i);if(t instanceof ot)return new ot(t.rows,t.cols,Tt(t.arr.flat(1),e,s,n,i));if(t instanceof r)return new r(Tt(t.a,s,n,i),Tt(t.b,e,s,n,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>Tt(t,e,s,n,i)));{let r=new Array(t.length);for(let o=0;o<t.length;o++)r[o]=Tt(t[o],e,s,n,i)}}},It=(t,e,s)=>{const[n,i]=[o(e,s),a(e,s)];if("number"==typeof t)return o(a(t,n),i);if(t instanceof ot)return new ot(t.rows,t.cols,It(t.arr.flat(1),n,i));if(t instanceof r)return new r(It(t.a,n,i),It(t.b,n,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>It(t,n,i)));{let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=It(t[r],n,i)}}},St=(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},Lt=(t,e,n=d(e-t)+1,i=!0)=>{if(Math.floor(n)===n){if([t,e].every((t=>"number"==typeof t))){const[r,s]=[t,e].sort(((t,e)=>e-t));var o=[];let h;h=i?(r-s)/(n-1):(r-s)/n;for(var a=0;a<n;a++)t<e?o.push(s+h*a):o.push(r-h*a);return o}if([t,e].some((t=>t instanceof r))){const r=s(t),o=s(e);n=n||Math.abs(r.a-o.a)+1;const a=Lt(r.a,o.a,n,i),h=Lt(r.b,o.b,n,i);let l=new Array(n).fill(null);return l=l.map(((t,e)=>s(a[e],h[e]))),l}}},Ot=(t,e,r=e-t+1,s=Et,n=!0)=>Lt(t,e,r,n).map((t=>g(s,t))),Vt=(t,e,n=d(e-t)+1,i=!0)=>{if(Math.floor(n)===n){if([t,e].every((t=>"number"==typeof t))){const[r,s]=[t,e].sort(((t,e)=>e-t));let o;o=y(r/s,i?n-1:n);const a=[s];for(let t=1;t<n;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some((t=>t instanceof r))){const r=s(t),o=s(e);let a;n=n||Math.abs(r.a-o.a)+1,a=y(o.div(r),i?n-1:n);const h=[r];for(let t=1;t<n;t++)h.push(xt(h[t-1],a));return h}}},jt=(...t)=>mt((t=>t*Math.PI/180),...t),Rt=(...t)=>mt((t=>t/Math.PI*180),...t),Nt=(t,e,r)=>{const[s,n]=[Math.min(e,r),Math.max(e,r)];return t>=s&&t<=n},Pt=(t,e,r=1e-4)=>Math.abs(t-e)<=r,zt=(t,e)=>t.reduce(((t,r)=>[...t,...e.map((t=>[r,t]))]),[]),$t=(t,e)=>{let r,s=1;if(t==N(t)&&e==N(e)){for(r=2;r<=t&&r<=e;++r)t%r==0&&e%r==0&&(s=r);return s}console.log("error")},Ht=(t,e)=>{let r;if(t==N(t)&&e==N(e)){for(r=t>e?t:e;r%t!=0||r%e!=0;)++r;return r}console.log("error")},Ut={add:bt,sub:wt,mul:xt,div:Ft,modulo:vt,zeros:At,ones:Dt,nums:Bt,norm:_t,lerp:Mt,map:Tt,clamp:It,arange:St,linspace:Lt,logspace:Ot,geomspace:Vt,sum:n,prod:i,accum:h,cartesianProduct:zt,ppcm:Ht,pgcd:$t,deg2rad:jt,rad2deg:Rt,inRange:Nt,isApproximatlyEqual:Pt},qt=t=>{const e=[],n=t.length;t[0]instanceof r||(t=t.map((t=>s(t,0))));for(let r=0;r<n;r++){let i=0,o=0;for(let e=0;e<n;e++){const s=2*Ct*r*e/n;i+=t[e].a*x(s)+t[e].b*F(s),o+=-t[e].a*F(s)+t[e].b*x(s)}i/=n,o/=n,e[r]=s(i,o)}return{output:e,re:e.map((t=>t.a)),im:e.map((t=>t.b)),z:e.map((t=>t.z)),phi:e.map((t=>t.phi))}},Wt=t=>{const e=[],n=t.length;t[0]instanceof r||(t=t.map((t=>s(t,0))));for(let r=0;r<n;r++){let i=0,o=0;for(let e=0;e<n;e++){const s=2*Ct*r*e/n;i+=t[e].a*x(s)+t[e].b*F(s),o+=t[e].a*F(s)+t[e].b*x(s)}i/=n,o/=n,e[r]=s(i,o)}return{output:e,re:e.map((t=>t.a)),im:e.map((t=>t.b)),z:e.map((t=>t.z)),phi:e.map((t=>t.phi))}},Zt=(t,e,r=!0)=>{const s=t.length,n=e.length,i=[],o=r?Math.max(s,n):s+n-1;for(let r=0;r<o;r++){let o=0;for(let i=0;i<n;i++){const a=r+i-Math.floor(n/2);o+=(a>=0&&a<s?t[a]:0)*e[i]}i.push(o)}return i},Xt=(t,e,r=!0)=>{t instanceof ot||(t=at(t)),e instanceof ot||(e=at(e));const s=t.rows,n=t.cols,i=r?Math.max(t.rows,e.rows):t.rows+e.rows-1,o=r?Math.max(t.cols,e.cols):t.cols+e.cols-1,a=e.rows,h=[];for(let r=0;r<i;r++){const i=[];for(let h=0;h<o;h++){let o=0;for(let i=0;i<a;i++)for(let l=0;l<a;l++){const c=r+i-Math.floor(a/2),u=h+l-Math.floor(a/2);o+=(c>=0&&c<s&&u>=0&&u<n?t[c][u]:0)*e[i][l]}i.push(o)}h.push(i)}return h},Kt=(t,e,r)=>t instanceof ot||t instanceof Array&&t[0][0]?Xt(t,e,r):Zt(t,e,r);class Yt{constructor(t){this.input=t,this.input_fft=qt(this.input),this.output_fft=[]}lowPass(t){return this.input_fft.output.forEach(((e,r)=>{e=e.z<t?this.output_fft[r]=this.input_fft.output[r]:this.output_fft[r]=s(0,0)})),Wt(this.output_fft).re}highPass(t){return this.input_fft.output.forEach(((e,r)=>{e=e.z>t?this.output_fft[r]=this.input_fft.output[r]:this.output_fft[r]=s(0,0)})),Wt(this.output_fft).re}bandePass(){}bandeCoupe(){}}const Gt={zeros:At,ones:Dt,nums:Bt,arange:St,linspace:Lt,logspace:Ot,geomspace:Vt,map:Tt,norm:_t,lerp:Mt,clamp:It,noise:(t,e=0,r=1)=>J.floats(t,e,r),echelon(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>t>=e?1:0),...t);return s instanceof Array?s.map((t=>t*r)):s*r},rampe(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>t>=e?t-e:0),...t);return s instanceof Array?s.map((t=>t*r)):s*r},sign(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>Math.sign(t-e)),...t);return s instanceof Array?s.map((t=>t*r)):s*r},rect(t,e,r=0,s=1){t instanceof Array||(t=[t]);const n=mt((t=>r-e/2<t&&r+e/2>t?1-2*d(t/e):0),...t);return n instanceof Array?n.map((t=>t*s)):n*s},tri(t,e,r=0,s=1){t instanceof Array||(t=[t]);const n=mt((t=>r-e/2<t&&r+e/2>t?1-2*d(t/e):0),...t);return n instanceof Array?n.map((t=>t*s)):n*s},dirac:(t,e)=>mt((t=>t===e?1/0:0),...t),lorentz(t,e=0,r=1){t instanceof Array||(t=[t]);const s=mt((t=>1/(1+(t-e)**2)),...t);return s instanceof Array?s.map((t=>t*r)):s*r},sinc(t,e,r=1){t instanceof Array||(t=[t]);const s=mt((t=>E(t-e)),...t);return s instanceof Array?s.map((t=>t*r)):s*r},square(t,e=1,r=1){t instanceof Array||(t=[t]);const s=mt((t=>H(F(2*t*Math.PI/e))),...t);return s instanceof Array?s.map((t=>t*r)):s*r},sawtooth(){},conv:Kt,conv1d:Zt,conv2d:Xt,circularConv:(t,e)=>Kt(t,e,!0),linearConv:(t,e)=>Kt(t,e,!1),circularConv1d:(t,e)=>Zt(t,e,!0),linearConv1d:(t,e)=>Zt(t,e,!1),circularConv2d:(t,e)=>Xt(t,e,!0),linearConv2d:(t,e)=>Xt(t,e,!1),fft:qt,ifft:Wt,filter:t=>new Yt(t)},Qt={PI:Ct,E:Et,EPSILON:kt,Random:J,complex:s,Complex:r,Matrix:ot,LinearSystem:ut,matrix:at,matrix2:ht,matrix3:lt,matrix4:ct,cos:x,sin:F,tan:v,sinc:E,sec:C,csc:k,cot:A,abs:d,sqrt:f,pow:g,sqrtn:y,e:b,ln:w,acos:D,asin:B,atan:_,acot:M,cosh:T,sinh:I,tanh:S,coth:L,acosh:O,asinh:V,atanh:j,min:o,max:a,sign:H,floor:N,ceil:R,round:P,fact:$,hypot:q,sig:U,atan2:z,Utils:Ut,mapfun:mt,nums:Bt,zeros:At,ones:Dt,sum:n,prod:i,add:bt,mul:xt,div:Ft,sub:wt,modulo:vt,rad2deg:Rt,deg2rad:jt,arange:St,linspace:Lt,logspace:Ot,geomspace:Vt,norm:_t,lerp:Mt,map:Tt,clamp:It,pgcd:$t,ppcm:Ht,isApproximatlyEqual:Pt,inRange:Nt,cartesianProduct:zt,Discret:Q,Logic:K,Base:X,Permutation:Y,Combinaison:G,powerSet:W,subSet:Z,Signal:Gt,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}},Jt=(t,e="px")=>("number"==typeof t&&(t+=e),t instanceof Array&&(t=t.map((t=>"number"==typeof t?t+=e:t)).join(" ")),t);class te{constructor(t={}){this.target=null,this.styles=new Map([["default",t]]),this.cache={isHidden:!1,isFaddedOut:!1,transformation:{Flip:[0,0,0],matrix:new ot([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]])}}}style(t,{target:e="parent",maskVector:r=null}={}){return"parent"===e||0===e?((t,e)=>{t&&Object.assign(t.style,e)})(this.target.element,t):"parent"!==e&&0!==e||(r?this.items.map(((e,s)=>1==r[s]&&e.style(t))):this.items.map((e=>e.style(t)))),this}linkTo(t){return this.target=t,this}use(t="default"){return this.style(this.styles.get(t)),this}update(t,e){const r=this.styles.get(t);return r?this.styles.set(t,Object.assign(r,e)):this.styles.set(t,e),this}add(t,e){return this.styles.set(t,e),this}replace(t,e){return this.styles.set(t,e),this}delete(...t){return t.forEach((t=>this.styles.delete(t))),this}updateDefaultStyle(){const t=Object.fromEntries(Object.entries(this.target.element.style).filter((t=>isNaN(+t[0]))));return this.update("default",t),this}hover(t){return t&&this.add("hover",t),this.target.element.addEventListener("pointerenter",(()=>this.use("hover"))),this.target.element.addEventListener("pointerleave",(()=>this.use("default"))),this}isInline(){return getComputedStyle(this.target.element).display.includes("inline")}isBlock(){return!this.isInline()}size(t,e,{target:r,maskVector:s}={}){return this.style({width:t,height:e},{target:r,maskVector:s}),this}width(t,{target:e,maskVector:r}={}){if(t instanceof Object){if(t instanceof Array&&(t={min:t[0],max:t[1]}),"min"in t||"max"in t){let s=t.min??t.max,n=t.max??t.min;s=Jt(s,"px"),n=Jt(n,"px"),this.style({minWidth:s,maxWidth:n},{target:e,maskVector:r})}}else t=Jt(t,"px"),this.style({width:t},{target:e,maskVector:r});return this}height(t,{target:e,maskVector:r}={}){if(t instanceof Object){if(t instanceof Array&&(t={min:t[0],max:t[1]}),"min"in t||"max"in t){let s=t.min??t.max,n=t.max??t.min;s=Jt(s,"px"),n=Jt(n,"px"),this.style({minHeight:s,maxHeight:n},{target:e,maskVector:r})}}else t=Jt(t,"px"),this.style({height:t},{target:e,maskVector:r});return this}enableResize(t=!1,e=!1,{target:r,maskVector:s}={}){let n="none";return n=t?e?"both":"horizontal":e?"vertical":"none",this.style({resize:n,overflow:"hidden"},{target:r,maskVector:s}),this.isInline()&&(console.group("Ziko Issue : Temporarily Incompatible Method"),console.warn(".enableResize has no effect on inline elements!"),console.info("%cConsider using other display types such as block, inline-block, flex, or grid for proper resizing behavior.","color:gold;background-color:#3333cc;padding:5px"),console.groupEnd()),this}hide({after:t,target:e,maskVector:r}={}){if("number"==typeof t){const s=()=>this.hide({target:e,maskVector:r});setTimeout(s,t),clearTimeout(s)}else this.cache.isHidden=!0,this.style({display:"none"},{target:e,maskVector:r});return this}show({after:t,target:e,maskVector:r}={}){if("number"==typeof t){const s=()=>this.show({target:e,maskVector:r});setTimeout(s,t),clearTimeout(s)}else this.cache.isHidden=!1,this.style({display:""},{target:e,maskVector:r});return this}color(t,{target:e,maskVector:r}={}){return this.style({color:t},{target:e,maskVector:r}),this}background(t,{target:e,maskVector:r}={}){return this.style({background:t},{target:e,maskVector:r}),this}backgroundColor(t,{target:e,maskVector:r}={}){return this.style({backgroundColor:t},{target:e,maskVector:r}),this}opacity(t,{target:e,maskVector:r}={}){return this.style({opacity:t},{target:e,maskVector:r}),this}position(t,{target:e,maskVector:r}={}){return this.style({position:t},{target:e,maskVector:r}),this}display(t,{target:e,maskVector:r}={}){return this.style({display:t},{target:e,maskVector:r}),this}zIndex(t,{target:e,maskVector:r}={}){return this.style({zIndex:t},{target:e,maskVector:r}),this}float(t,{target:e,maskVector:r}={}){return this.style({float:t},{target:e,maskVector:r}),this}border(t="1px solid red",{target:e,maskVector:r}={}){return this.style({border:t},{target:e,maskVector:r}),this}borderTop(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderTop:t},{target:e,maskVector:r}),this}borderRight(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderRight:t},{target:e,maskVector:r}),this}borderBottom(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderBottom:t},{target:e,maskVector:r}),this}borderLeft(t="1px solid red",{target:e,maskVector:r}={}){return this.style({borderLeft:t},{target:e,maskVector:r}),this}borderRadius(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({borderRadius:t},{target:e,maskVector:r}),this}margin(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({margin:t},{target:e,maskVector:r}),this}marginTop(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginTop:t},{target:e,maskVector:r}),this}marginRight(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginRight:t},{target:e,maskVector:r}),this}marginBootom(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginBootom:t},{target:e,maskVector:r}),this}marginLeft(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({marginLeft:t},{target:e,maskVector:r}),this}padding(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({padding:t},{target:e,maskVector:r}),this}paddingTop(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingTop:t},{target:e,maskVector:r}),this}paddingRight(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingRight:t},{target:e,maskVector:r}),this}paddingBootom(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingBootom:t},{target:e,maskVector:r}),this}paddingLeft(t,{target:e,maskVector:r}={}){return t=Jt(t,"px"),this.style({paddingLeft:t},{target:e,maskVector:r}),this}font(t,{target:e,maskVector:r}={}){return this.style({font:t},{target:e,maskVector:r}),this}fontFamily(t="",{target:e,maskVector:r}={}){return this.style({fontFamily:t},{target:e,maskVector:r}),this}fontSize(t,{target:e,maskVector:r}={}){return this.style({fontSize:t},{target:e,maskVector:r}),this}cursor(t="pointer"){return this.style({cursor:t}),this}overflow(t,e,{target:r,maskVector:s}={}){const n=["hidden","auto"];return this.style({overflowX:"number"==typeof t?n[t]:t,overflowY:"number"==typeof e?n[e]:e},{target:r,maskVector:s}),this}clip(t,{target:e,maskVector:r}={}){return"string"==typeof t&&(t="polygon("+t+")"),this.style({clipPath:t},{target:e,maskVector:r}),this}fadeOut(t=1){return this.style({transition:t/1e3+"s",opacity:0}),this.cache.isFaddedOut=!0,this}fadeIn(t=1){return this.style({transition:t/1e3+"s",opacity:1}),this.cache.isFaddedOut=!1,this}toggleFade(t=1e3,e=t){return this.cache.isFaddedOut?this.fadeIn(t):this.fadeOut(e),this}#r(t){const e=this.cache.transformation.matrix.arr.join(",");this.style({transform:`matrix3d(${e})`,"-webkit-transform":`matrix3d(${e})`,"-moz-transform":`matrix3d(${e})`,"-ms-transform":`matrix3d(${e})`,"-o-transform":`matrix3d(${e})`}),0!=t&&this.style({transition:`transform ${t/1e3}s ease`})}translate(t,e=t,r=0,s=0){return this.cache.transformation.matrix.set(3,0,t),this.cache.transformation.matrix.set(3,1,e),this.cache.transformation.matrix.set(3,2,r),this.#r(s),this}translateX(t,e=0){return this.cache.transformation.matrix.set(3,0,t),this.#r(e),this}translateY(t,e=0){return this.cache.transformation.matrix.set(3,1,t),this.#r(e),this}translateZ(t,e=0){const r=-1/this.cache.transformation.matrix[2][2];return this.cache.transformation.matrix.set(3,2,t),this.cache.transformation.matrix.set(3,3,1-t/r),this.#r(e),this}perspective(t,e=0){const r=this.cache.transformation.matrix[3][2];return this.cache.transformation.matrix.set(2,2,-1/t),this.cache.transformation.matrix.set(3,3,1-r/t),this.#r(e),this}scale(t,e=t,r=0){return this.cache.transformation.matrix.set(0,0,t),this.cache.transformation.matrix.set(1,1,e),this.cache.transformation.matrix.arr.join(","),this.#r(r),this}scaleX(t=1,e=0){return this.cache.transformation.matrix.set(0,0,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}scaleY(t=1,e=0){return this.cache.transformation.matrix.set(1,1,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}skew(t,e=t,r=0){return this.cache.transformation.matrix.set(0,1,t),this.cache.transformation.matrix.set(1,0,e),this.cache.transformation.matrix.arr.join(","),this.#r(r),this}skewX(t=1,e=0){return this.cache.transformation.matrix.set(0,1,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}skewY(t=1,e=0){return this.cache.transformation.matrix.set(1,0,t),this.cache.transformation.matrix.arr.join(","),this.#r(e),this}rotateX(t,e=0){return this.cache.transformation.matrix.set(1,1,x(t)),this.cache.transformation.matrix.set(1,2,-F(t)),this.cache.transformation.matrix.set(2,1,F(t)),this.cache.transformation.matrix.set(1,2,x(t)),this.#r(e),this}rotateY(t,e=0){return this.cache.transformation.matrix.set(0,0,x(t)),this.cache.transformation.matrix.set(0,2,F(t)),this.cache.transformation.matrix.set(2,0,-F(t)),this.cache.transformation.matrix.set(2,2,x(t)),this.#r(e),this}rotateZ(t,e=0){return this.cache.transformation.matrix.set(0,0,x(t)),this.cache.transformation.matrix.set(0,1,-F(t)),this.cache.transformation.matrix.set(1,0,F(t)),this.cache.transformation.matrix.set(1,1,x(t)),this.#r(e),this}flipeX({t:t=1}={}){return this.cache.transformation.Flip[0]+=180,this.cache.transformation.Flip[0]%=360,this.rotateX(this.cache.transformation.Flip[0],t),this}flipeY(t=1){return this.cache.transformation.Flip[1]+=180,this.cache.transformation.Flip[1]%=360,this.rotateY(this.cache.transformation.Flip[1],t),this}flipeZ(t=1){return this.cache.transformation.Flip[2]+=180,this.cache.transformation.Flip[2]%=360,this.rotateZ(this.cache.transformation.Flip[2],t),this}slideHeightIn(t=1,e=this.h){return this.style({transition:t+"s",height:e}),this}slideHeightOut(t=1){return this.style({transition:t+"s",height:0}),this.target.element.addEventListener("transitionend",(()=>this.style({opacity:"none"}))),this}slideWidthIn(t=1,e=this.w){return this.style({transition:t+"s",width:e}),this}slideWidthOut(t=1){this.style({transition:t+"s",width:0});const e=()=>{this.style({opacity:"none"})};return this.target.element.addEventListener("transitionend",e),this.target.element.removeEventListener("transitionend",e),this}slideIn({t:t=1,w:e="100%",h:r="auto"}={}){return this.style({transition:t+"s",width:e,height:r,visibility:"visible"}),this}slideOut({t:t=1,width:e=0,height:r=0}={}){this.style({visibility:"hidden",transition:t+"s",opacity:"none",width:e,height:r});const s=()=>{this.style({opacity:"none"})};return this.target.element.addEventListener("transitionend",s),this.target.element.removeEventListener("transitionend",s),this}}function ee(t,e,r,s){return this.event=t,this.cache.preventDefault[e]&&t.preventDefault(),r&&r(),this.cache.stream.enabled[e]&&s&&this.cache.stream.history[e].push(s),this.cache.callbacks[e].map((t=>t(this))),this}class re{constructor(t){this.target=null,this.setTarget(t),this.__dispose=this.dispose.bind(this)}get targetElement(){return this.target.element}setTarget(t){return this.target=t,this}__handle(t,e,r){const s="drag"===t?t:`${this.cache.prefixe}${t}`;return this.dispose(r),this.targetElement.addEventListener(s,e),this}__onEvent(t,e,...r){if(0===r.length){if(!(this.cache.callbacks.length>1))return this;this.cache.callbacks.map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=r.map((t=>e=>t.call(this,e)));return this.__handle(t,this.__controller[t],e),this}preventDefault(t={}){return Object.assign(this.cache.preventDefault,t),this}pause(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement.removeEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!0);return this}resume(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.targetElement.addEventListener(`${this.cache.prefixe}${e}`,this.__controller[`${this.cache.prefixe}${e}`]),this.cache.paused[`${this.cache.prefixe}${e}`]=!1);return this}dispose(t={}){return this.pause(t),this}stream(t={}){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,!0]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(t={}){t={...Object.fromEntries(Object.keys(this.cache.stream.clear).map((t=>[t,!0]))),...t};for(let e in t)t[e]&&(this.cache.stream.history[e]=[]);return this}}function se(t){ee.call(this,t,"down",(()=>{this.dx=parseInt(t.offsetX),this.dy=parseInt(t.offsetY),this.isDown=!0}),{x:this.dx,y:this.dy,t:Date.now()-this.cache.stream.t0})}function ne(t){ee.call(this,t,"move",(()=>{this.mx=parseInt(t.offsetX),this.my=parseInt(t.offsetY),this.isMoving=!0}),{x:this.mx,y:this.my,t:Date.now()-this.cache.stream.t0})}function ie(t){ee.call(this,t,"up",(()=>{this.ux=parseInt(t.offsetX),this.uy=parseInt(t.offsetY),this.isDown=!1;const e=this.dx,r=this.dy,s=this.ux,n=this.uy,i=(s-e)/this.target.Width,o=(r-n)/this.target.Height,a=i<0?"left":i>0?"right":"none",h=o<0?"bottom":o>0?"top":"none";this.swippe={h:a,v:h,delta_x:i,delta_y:o}}),{x:this.ux,y:this.uy,t:Date.now()-this.cache.stream.t0})}function oe(t){ee.call(this,t,"enter",null,null)}function ae(t){ee.call(this,t,"leave",null,null)}function he(t){ee.call(this,t,"out",null,null)}class le extends re{constructor(t){super(t),this.event=null,this.dx=0,this.dy=0,this.dt=0,this.mx=0,this.my=0,this.mt=0,this.ux=0,this.uy=0,this.ut=0,this.swippe={h:null,v:null,delta_x:0,delta_y:0},this.isMoving=!1,this.isDown=!1,this.cache={prefixe:"pointer",preventDefault:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},paused:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},stream:{enabled:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},clear:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1},history:{down:[],move:[],up:[],enter:[],out:[],leave:[]}},callbacks:{down:[t=>console.log({dx:t.dx,dy:t.dy,down:t.down,move:t.move,t:t.dt})],move:[t=>console.log({mx:t.mx,my:t.my,down:t.down,move:t.move,t:t.dt})],up:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})],enter:[t=>console.log({dx:t.dx,dy:t.dy,down:t.down,move:t.move,t:t.dt})],out:[t=>console.log({mx:t.mx,my:t.my,down:t.down,move:t.move,t:t.dt})],leave:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})]}},this.__controller={down:se.bind(this),move:ne.bind(this),up:ie.bind(this),enter:oe.bind(this),out:he.bind(this),leave:ae.bind(this)}}onDown(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("down",{down:!0,move:!1,up:!1,enter:!1,out:!1,leave:!1},...t),this}onMove(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("move",{down:!1,move:!0,up:!1,enter:!1,out:!1,leave:!1},...t),this}onUp(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("up",{down:!1,move:!1,up:!0,enter:!1,out:!1,leave:!1},...t),this}onEnter(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("enter",{down:!1,move:!1,up:!1,enter:!0,out:!1,leave:!1},...t),this}onOut(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("out",{down:!1,move:!1,up:!1,enter:!1,out:!0,leave:!1},...t),this}onLeave(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("leave",{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!0},...t),this}}var ce=t=>new le(t);class ue extends re{constructor(t){super(t),this.event=null,this.dx=0,this.dy=0,this.dt=0,this.mx=0,this.my=0,this.mt=0,this.ux=0,this.uy=0,this.ut=0,this.swippe={h:null,v:null,delta_x:0,delta_y:0},this.isMoving=!1,this.isDown=!1,this.cache={prefixe:"mouse",preventDefault:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1,over:!1},paused:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1,over:!1},stream:{enabled:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1,over:!1},clear:{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1,over:!1},history:{down:[],move:[],up:[],enter:[],out:[],leave:[],over:[]}},callbacks:{down:[t=>console.log({dx:t.dx,dy:t.dy,down:t.down,move:t.move,t:t.dt})],move:[t=>console.log({mx:t.mx,my:t.my,down:t.down,move:t.move,t:t.dt})],up:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})],enter:[t=>console.log({dx:t.dx,dy:t.dy,down:t.down,move:t.move,t:t.dt})],out:[t=>console.log({mx:t.mx,my:t.my,down:t.down,move:t.move,t:t.dt})],leave:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})],over:[t=>console.log({ux:t.ux,uy:t.uy,down:t.down,move:t.move,t:t.dt})]}},this.__controller={down:me.bind(this),move:pe.bind(this),up:de.bind(this),enter:fe.bind(this),out:ye.bind(this),leave:ge.bind(this),over:be.bind(this)}}onDown(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("down",{down:!0,move:!1,up:!1,enter:!1,out:!1,leave:!1,over:!1},...t),this}onMove(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("move",{down:!1,move:!0,up:!1,enter:!1,out:!1,leave:!1,over:!1},...t),this}onUp(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("up",{down:!1,move:!1,up:!0,enter:!1,out:!1,leave:!1,over:!1},...t),this}onEnter(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("enter",{down:!1,move:!1,up:!1,enter:!0,out:!1,leave:!1,over:!1},...t),this}onOut(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("out",{down:!1,move:!1,up:!1,enter:!1,out:!0,leave:!1,over:!1},...t),this}onLeave(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("leave",{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!0,over:!1},...t),this}onOver(...t){return 0===t.length&&(t=[()=>{}]),this.__onEvent("over",{down:!1,move:!1,up:!1,enter:!1,out:!1,leave:!1,over:!0},...t),this}}function me(t){ee.call(this,t,"down",(()=>{this.dx=parseInt(t.offsetX),this.dy=parseInt(t.offsetY),this.isDown=!0}),{x:this.dx,y:this.dy,t:Date.now()-this.cache.stream.t0})}function pe(t){ee.call(this,t,"move",(()=>{this.mx=parseInt(t.offsetX),this.my=parseInt(t.offsetY),this.isMoving=!0}),{x:this.mx,y:this.my,t:Date.now()-this.cache.stream.t0})}function de(t){ee.call(this,t,"up",(()=>{this.ux=parseInt(t.offsetX),this.uy=parseInt(t.offsetY),this.isDown=!1;const e=this.dx,r=this.dy,s=this.ux,n=this.uy,i=(s-e)/this.target.Width,o=(r-n)/this.target.Height,a=i<0?"left":i>0?"right":"none",h=o<0?"bottom":o>0?"top":"none";this.swippe={h:a,v:h,delta_x:i,delta_y:o}}),{x:this.ux,y:this.uy,t:Date.now()-this.cache.stream.t0})}function fe(t){ee.call(this,t,"enter",null,null)}function ge(t){ee.call(this,t,"leave",null,null)}function ye(t){ee.call(this,t,"out",null,null)}function be(t){ee.call(this,t,"out",null,null)}const we=t=>new ue(t);function xe(t){ee.call(this,t,"wheel",null,null)}class Fe extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{wheel:!1},paused:{wheel:!1},stream:{enabled:{wheel:!1},clear:{wheel:!1},history:{wheel:[]}},callbacks:{click:[]}},this.__controller={wheel:xe.bind(this)}}onWheel(...t){return this.__onEvent("wheel",{},...t),this}}const ve=t=>new Fe(t);function Ce(t){ee.call(this,t,"down",(()=>this.kd=t.key),{key:t.key,t:10})}function Ee(t){ee.call(this,t,"press",(()=>this.kp=t.key),{key:t.key,t:10})}function ke(t){ee.call(this,t,"up",(()=>this.ku=t.key),{key:t.key,t:10})}class Ae extends re{constructor(t){super(t),this.kp=null,this.kd=null,this.ku=null,this.t=0,this.cache={prefixe:"key",preventDefault:{down:!1,press:!1,up:!1},paused:{down:!1,press:!1,up:!1},stream:{enabled:{down:!1,press:!1,up:!1},clear:{down:!0,press:!1,up:!1},history:{down:[],press:[],up:[]}},callbacks:{down:[t=>console.log({kd:t.kd})],press:[t=>console.log({kp:t.kp})],up:[t=>console.log({ku:t.ku})]},successifKeysCallback:{down:[t=>console.log(1111)],press:[t=>console.log(1112)],kyup:[t=>console.log(1113)]}},this.__controller={down:Ce.bind(this),press:Ee.bind(this),up:ke.bind(this)}}onDown(...t){return this.__onEvent("down",{down:!0},...t),this}onPress(...t){return this.__onEvent("press",{press:!0},...t),this}onUp(...t){return this.__onEvent("up",{up:!0},...t),this}}var De=t=>new Ae(t);function Be(t){ee(this,t,"start",null)}function _e(t){ee.call(this,t,"drag",null,null)}function Me(t){ee.call(this,t,"end",null,null)}function Te(t){ee.call(this,t,"drop",null,null)}class Ie extends re{constructor(t){super(t),this.target.setAttribute("draggable",!0),this.cache={prefixe:"drag",preventDefault:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},paused:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},enabled:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},callbacks:{drag:[],start:[],end:[],enter:[],leave:[],over:[]},stream:{enabled:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},clear:{drag:!1,start:!1,end:!1,enter:!1,leave:!1,over:!1},history:{drag:[],start:[],end:[],enter:[],leave:[],over:[]}}},this.__controller={start:Be.bind(this),drag:_e.bind(this),end:Me.bind(this)}}onStart(...t){return this.__onEvent("start",{},...t),this}onDrag(...t){return this.__onEvent("drag",{},...t),this}onEnd(...t){return this.__onEvent("end",{},...t),this}}class Se extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{drop:!1},paused:{drop:!1},stream:{enabled:{drop:!1},clear:{drop:!1},history:{drop:[]}},callbacks:{drop:[t=>console.log({dx:t.dx,dy:t.dy,drop:t.drop,move:t.move,t:t.dt})]}},this.__controller={drop:Te.bind(this)}}onDrop(...t){return this.__onEvent("drop",{},...t),this}}const Le=t=>new Ie(t),Oe=t=>new Se(t);function Ve(t){ee.call(this,t,"click",null,null)}function je(t){ee.call(this,t,"dbclick",null,null)}class Re extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{click:!1,dbclick:!1},paused:{click:!1,dbclick:!1},stream:{enabled:{click:!1,dbclick:!1},clear:{click:!1,dbclick:!1},history:{click:[],dbclick:[]}},callbacks:{click:[],dbclick:[]}},this.__controller={click:Ve.bind(this),dbclick:je.bind(this)}}onClick(...t){return this.__onEvent("click",{},...t),this}onDbClick(...t){return this.__onEvent("dbclick",{},...t),this}}const Ne=t=>new Re(t);function Pe(t){ee.call(this,t,"copy",null,null)}function ze(t){ee.call(this,t,"cut",null,null)}function $e(t){ee.call(this,t,"paste",null,null)}function He(t){ee.call(this,t,"select",null,null)}class Ue extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{copy:!1,cut:!1,paste:!1,select:!1},paused:{copy:!1,cut:!1,paste:!1,select:!1},stream:{enabled:{copy:!1,cut:!1,paste:!1,select:!1},clear:{copy:!1,cut:!1,paste:!1,select:!1},history:{copy:[],cut:[],paste:[],select:[]}},callbacks:{copy:[],cut:[],paste:[],select:[]}},this.__controller={copy:Pe.bind(this),cut:ze.bind(this),paste:$e.bind(this),select:He.bind(this)}}onCopy(...t){return this.__onEvent("copy",{},...t),this}onCut(...t){return this.__onEvent("cut",{},...t),this}onPaste(...t){return this.__onEvent("paste",{},...t),this}onSelect(...t){return this.__onEvent("select",{},...t),this}}const qe=t=>new Ue(t);function We(t){ee.call(this,t,"focus",null,null)}function Ze(t){ee.call(this,t,"blur",null,null)}class Xe extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{focus:!1,blur:!1},paused:{focus:!1,blur:!1},stream:{enabled:{focus:!1,blur:!1},clear:{focus:!1,blur:!1},history:{focus:[],blur:[]}},callbacks:{focus:[],blur:[]}},this.__controller={focus:We.bind(this),blur:Ze.bind(this)}}onFocus(...t){return this.__onEvent("focus",{},...t),this}onBlur(...t){return this.__onEvent("blur",{},...t),this}}const Ke=t=>new Xe(t);function Ye(t){ee.call(this,t,"input",null,null)}function Ge(t){ee.call(this,t,"change",null,null)}class Qe extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{input:!1,change:!1},paused:{input:!1,change:!1},stream:{enabled:{input:!1,change:!1},clear:{input:!1,change:!1},history:{input:[],change:[]}},callbacks:{input:[],change:[]}},this.__controller={input:Ye.bind(this),change:Ge.bind(this)}}get value(){return this.target.value}onInput(...t){return this.__onEvent("input",{},...t),this}onChange(...t){return this.__onEvent("change",{},...t),this}}const Je=t=>new Qe(t);function tr(t){ee.call(this,t,"hashchange",null,null)}class er extends re{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{hashchange:!1},paused:{hashchange:!1},stream:{enabled:{hashchange:!1},clear:{hashchange:!1},history:{hashchange:[]}},callbacks:{hashchange:[]}},this.__controller={hashchange:tr.bind(this)}}onChange(...t){return this.__onEvent("hashchange",{},...t),this}}const rr=t=>new er(t),sr=t=>new sr,nr={Pointer:ce,Mouse:we,Wheel:ve,Key:De,Drag:Le,Drop:Oe,Click:Ne,Clipboard:qe,Focus:Ke,Input:Je,HashEvent:rr,CustomEvent:CustomEvent,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class ir{constructor(t,e,{threshold:r=0,margin:s=0}={}){this.target=t,this.config={threshold:r,margin:s},this.observer=new IntersectionObserver((t=>{this.entrie=t[0],e(this)}),{threshold:this.threshold})}get ratio(){return this.entrie.intersectionRatio}get isIntersecting(){return this.entrie.isIntersecting}setThreshould(t){return this.config.threshold=t,this}setMargin(t){return t="number"==typeof t?t+"px":t,this.config.margin=t,this}start(){return this.observer.observe(this.target.element),this}stop(){return this}}class or{constructor(t,e){this.target=t,this.contentRect=null,this.observer=new ResizeObserver((()=>{e(this)}))}get BoundingRect(){return this.target.element.getBoundingClientRect()}get width(){return this.BoundingRect.width}get height(){return this.BoundingRect.height}get top(){return this.BoundingRect.top}get bottom(){return this.BoundingRect.bottom}get right(){return this.BoundingRect.right}get left(){return this.BoundingRect.left}get x(){return this.BoundingRect.x}get y(){return this.boundingRect.y}start(){return this.observer.observe(this.target.element),this}stop(){return this.observer.unobserve(this.target.element),this}}class ar{constructor(t,e=0){this.id="Ziko-Style-"+e,this.use(t),this.keys=new Set,this.styles={default:{fontSize:"1em"}}}get current(){return[...this.keys].reduce(((t,e)=>(t[e]=`var(--${e}-${this.id})`,t)),{})}add(t,e={}){return t instanceof Object?Object.assign(this.styles,t):Object.assign(this.styles,{[t]:e}),this}#s(t){const e=Object.keys(this.styles);for(let r in this.styles[e[t]])document.documentElement.style.setProperty(`--${r}-${this.id}`,this.styles[e[t]][r]),this.keys.add(r);return this}#n(t){for(let e in this.styles[t])document.documentElement.style.setProperty(`--${e}-${this.id}`,this.styles[t][e]),this.keys.add(e);return this}#i(t){for(let e in t)document.documentElement.style.setProperty(`--${e}-${this.id}`,t[e]),this.keys.add(e);return this}use(t){return"number"==typeof t&&this.#s(t),"string"==typeof t&&this.#n(t),t instanceof Object&&this.#i(t),this}}const hr={cozyCottonCandy:{background:"#FCE4EC",currentLine:"#F8BBD0",selection:"#FFCDD2",foreground:"#673AB7",comment:"#9575CD",cyan:"#00BCD4",green:"#4CAF50",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},crystalClear:{background:"#F6F8FA",currentLine:"#E8F0F5",selection:"#D4E9F7",foreground:"#485766",comment:"#8492A6",cyan:"#00ACC1",green:"#8BC34A",orange:"#FFA726",pink:"#FF4081",purple:"#7E57C2",red:"#EF5350",yellow:"#FFD740"},lightdreamyDusk:{background:"#F5F5F5",currentLine:"#E8E8E8",selection:"#DADADA",foreground:"#555555",comment:"#999999",cyan:"#5FB3B3",green:"#68C386",orange:"#FFB67A",pink:"#FF94B0",purple:"#B78BC3",red:"#FF6666",yellow:"#FFD666"},luminousLavender:{background:"#F3E5F5",currentLine:"#E1BEE7",selection:"#CE93D8",foreground:"#311B92",comment:"#673AB7",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},meadowMornings:{background:"#F3E5F5",currentLine:"#E1BEE7",selection:"#CE93D8",foreground:"#311B92",comment:"#673AB7",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},moonlitMauve:{background:"#F3E5F5",currentLine:"#E1BEE7",selection:"#CE93D8",foreground:"#311B92",comment:"#673AB7",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},morningMist:{background:"#F6F6F6",currentLine:"#EAEAEA",selection:"#D8D8D8",foreground:"#333333",comment:"#808080",cyan:"#00A6A6",green:"#4CAF50",orange:"#FFA726",pink:"#FF4081",purple:"#9C27B0",red:"#FF5252",yellow:"#FFD740"},oceanBreeze:{background:"#ECF1F4",currentLine:"#DDE8ED",selection:"#BFD3C1",foreground:"#37474F",comment:"#607D8B",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#673AB7",red:"#F44336",yellow:"#FFEB3B"},pastelParadise:{background:"#F5F5F5",currentLine:"#E8E8E8",selection:"#DADADA",foreground:"#555555",comment:"#999999",cyan:"#5FB3B3",green:"#68C386",orange:"#FFB67A",pink:"#FF94B0",purple:"#B78BC3",red:"#FF6666",yellow:"#FFD666"},pastelPetals:{background:"#FCE4EC",currentLine:"#F8BBD0",selection:"#FFCDD2",foreground:"#673AB7",comment:"#9575CD",cyan:"#00BCD4",green:"#4CAF50",orange:"#FF9800",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},sereneSnowfall:{background:"#F9F9F9",currentLine:"#EDEDED",selection:"#D8D8D8",foreground:"#454545",comment:"#888888",cyan:"#5FA5A5",green:"#5BC47E",orange:"#FFBC8D",pink:"#FFA7BF",purple:"#B88AAE",red:"#FF7575",yellow:"#FFD98F"},softSherbet:{background:"#FDF8F3",currentLine:"#FAF1EB",selection:"#FFEBEE",foreground:"#6D4C41",comment:"#A1887F",cyan:"#00BCD4",green:"#689F38",orange:"#FFA000",pink:"#EC407A",purple:"#8E24AA",red:"#E53935",yellow:"#FFC107"},subtleSerenity:{background:"#F3F5F7",currentLine:"#E8EDF2",selection:"#D1D9E6",foreground:"#2C3E50",comment:"#95A5A6",cyan:"#3498DB",green:"#2ECC71",orange:"#F39C12",pink:"#E74C3C",purple:"#9B59B6",red:"#C0392B",yellow:"#F1C40F"},summerSunset:{background:"#FCE4EC",currentLine:"#F8BBD0",selection:"#FFCDD2",foreground:"#4E342E",comment:"#795548",cyan:"#009688",green:"#43A047",orange:"#FF5722",pink:"#E91E63",purple:"#9C27B0",red:"#F44336",yellow:"#FFEB3B"},sunnyDay:{background:"#FFF8E1",currentLine:"#FFF3E0",selection:"#FFE0B2",foreground:"#4E342E",comment:"#795548",cyan:"#00BCD4",green:"#8BC34A",orange:"#FF9800",pink:"#E91E63",purple:"#673AB7",red:"#F44336",yellow:"#FFEB3B"},tranquilTwilight:{background:"#F9F9F9",currentLine:"#EDEDED",selection:"#D8D8D8",foreground:"#454545",comment:"#888888",cyan:"#5FA5A5",green:"#5BC47E",orange:"#FFBC8D",pink:"#FFA7BF",purple:"#B88AAE",red:"#FF7575",yellow:"#FFD98F"},tranquilWaves:{background:"#F9F9F9",currentLine:"#E4E4E4",selection:"#D4D4D4",foreground:"#2C3E50",comment:"#7F8C8D",cyan:"#3498DB",green:"#2ECC71",orange:"#F39C12",pink:"#E74C3C",purple:"#9B59B6",red:"#C0392B",yellow:"#F1C40F"},whisperingWillow:{background:"#F6F8FA",currentLine:"#E8F0F5",selection:"#D4E9F7",foreground:"#485766",comment:"#8492A6",cyan:"#00ACC1",green:"#8BC34A",orange:"#FFA726",pink:"#FF4081",purple:"#7E57C2",red:"#EF5350",yellow:"#FFD740"}},lr={antiqueRose:{background:"#1C1014",currentLine:"#2B1B21",selection:"#443034",foreground:"#D8B5B5",comment:"#7F5E5E",cyan:"#6FA2A2",green:"#66A66F",orange:"#FFB97A",pink:"#FFA8BD",purple:"#B78DA5",red:"#FF6C6C",yellow:"#FFD579"},auroraBorealis:{background:"#1D1426",currentLine:"#2B1E35",selection:"#432D4E",foreground:"#C2AABF",comment:"#7F6E8E",cyan:"#7EA5D3",green:"#77C992",orange:"#FFC476",pink:"#FFA8B3",purple:"#AE9AC3",red:"#FF6C6C",yellow:"#FFD576"},autumnHarvest:{background:"#291C10",currentLine:"#3A2A1E",selection:"#573C2C",foreground:"#D4C3A2",comment:"#7F6F52",cyan:"#82B4BF",green:"#7FB074",orange:"#FFAB6E",pink:"#FF8196",purple:"#B394A9",red:"#FF6565",yellow:"#FFD270"},aylin:{background:"#13161E",currentLine:"#161A28",selection:"#222B3E",foreground:"#D2D8E0",comment:"#697098",cyan:"#78D1E1",green:"#98C379",orange:"#EBCB8B",pink:"#D16D9E",purple:"#C678DD",red:"#E88388",yellow:"#EBCB8B"},azureBlue:{background:"#001B29",currentLine:"#002C3E",selection:"#004E6B",foreground:"#C3D7E2",comment:"#5F7C92",cyan:"#75B7D1",green:"#70C8A7",orange:"#FFB476",pink:"#FF92B0",purple:"#B88BC3",red:"#FF6666",yellow:"#FFD666"},cobalt2:{background:"#193549",currentLine:"#1F4662",selection:"#193549",foreground:"#B9BED0",comment:"#627D98",cyan:"#4DB5BD",green:"#86B300",orange:"#FFB86C",pink:"#FF7F7B",purple:"#9B64FB",red:"#FF6672",yellow:"#FFCC99"},cobaltMaterialTheme:{background:"#263238",currentLine:"#37474F",selection:"#80CBC4",foreground:"#CFD8DC",comment:"#78909C",cyan:"#80CBC4",green:"#A5D6A7",orange:"#FFD54F",pink:"#FF80AB",purple:"#CE93D8",red:"#EF5350",yellow:"#FFEE58"},cosmicBlue:{background:"#1B2836",currentLine:"#223348",selection:"#39516D",foreground:"#C0D4E5",comment:"#728CAB",cyan:"#75A6FF",green:"#5ED99F",orange:"#FFAD6F",pink:"#FF90B6",purple:"#A889C5",red:"#FF6E6E",yellow:"#FCD256"},cosmicSunset:{background:"#1B1921",currentLine:"#272530",selection:"#3C3948",foreground:"#B8B4CB",comment:"#7A738B",cyan:"#77B4D8",green:"#6CC09E",orange:"#FFA677",pink:"#FF95B2",purple:"#B48FC1",red:"#FF6565",yellow:"#FFD566"},cyberForest:{background:"#0D151D",currentLine:"#18262F",selection:"#2B3B47",foreground:"#CDD7E0",comment:"#667B8B",cyan:"#7EC4CF",green:"#68CC96",orange:"#FFAC6C",pink:"#FF89B4",purple:"#A889C5",red:"#FF6565",yellow:"#FFCB6B"},cyberPunkCity:{background:"#000000",currentLine:"#121212",selection:"#1F1F1F",foreground:"#DADADA",comment:"#626262",cyan:"#71B7FF",green:"#50D890",orange:"#FFB86C",pink:"#FF79C6",purple:"#BB86FC",red:"#FF5454",yellow:"#FDD663"},cyberpunkNeon:{background:"#121212",currentLine:"#1B1B1B",selection:"#262626",foreground:"#DADADA",comment:"#6C6C6C",cyan:"#69AEDB",green:"#4ECCA3",orange:"#FFB86C",pink:"#FF79C6",purple:"#D08EFF",red:"#FF5454",yellow:"#FDD663"},darkDesert:{background:"#1E2022",currentLine:"#282A2E",selection:"#393D42",foreground:"#C0C5CE",comment:"#5C6368",cyan:"#6FB3E0",green:"#88C076",orange:"#FFB454",pink:"#FF7F90",purple:"#B48EAD",red:"#FF6666",yellow:"#FFCC66"},darkMint:{background:"#11161A",currentLine:"#1B2128",selection:"#3D4853",foreground:"#D9DEE5",comment:"#65737E",cyan:"#88C0D0",green:"#98C379",orange:"#FFB86C",pink:"#FF7F8B",purple:"#C594C5",red:"#FF6561",yellow:"#FAD07B"},deepOcean:{background:"#121C2C",currentLine:"#182236",selection:"#2B3E50",foreground:"#BDC3C7",comment:"#6C7A89",cyan:"#59ABE3",green:"#26A65B",orange:"#F9690E",pink:"#EB3B5A",purple:"#D2527F",red:"#E74C3C",yellow:"#F5AB35"},deepOceanBlue:{background:"#1B2F40",currentLine:"#263B53",selection:"#3A536E",foreground:"#BFC9D4",comment:"#657C8E",cyan:"#6CB5FF",green:"#65C287",orange:"#FFA974",pink:"#FF87B4",purple:"#AE9BFF",red:"#FF6666",yellow:"#FFD67B"},deepOceanSunset:{background:"#151D2A",currentLine:"#1D2735",selection:"#31405B",foreground:"#D5D9E0",comment:"#6C7B8B",cyan:"#6FAAD4",green:"#66C295",orange:"#FFA476",pink:"#FF94B0",purple:"#B08FC0",red:"#FF6565",yellow:"#FFD466"},deepSpace:{background:"#0F1419",currentLine:"#1A232D",selection:"#3A4758",foreground:"#CDD9E5",comment:"#657C96",cyan:"#6CB6FF",green:"#4CAF50",orange:"#FFB454",pink:"#FF75B5",purple:"#9A76FF",red:"#FF5555",yellow:"#FFC857"},dracula:{background:"#282a36",currentLine:"#44475a",selection:"#44475a",foreground:"#f8f8f2",comment:"#6272a4",cyan:"#8be9fd",green:"#50fa7b",orange:"#ffb86c",pink:"#ff79c6",purple:"#bd93f9",red:"#ff5555",yellow:"#f1fa8c"},dreamyDusk:{background:"#22243D",currentLine:"#313558",selection:"#4C4F6D",foreground:"#A5A7C5",comment:"#6F728E",cyan:"#81A2BE",green:"#7FB074",orange:"#FFB476",pink:"#FF91A4",purple:"#AE8DC2",red:"#FF7272",yellow:"#FFD67A"},electricLagoon:{background:"#15232B",currentLine:"#20323E",selection:"#344E5F",foreground:"#A6C0B9",comment:"#6C8F81",cyan:"#80C7D1",green:"#7FCD97",orange:"#FFBC76",pink:"#FF9FB3",purple:"#AE8FC3",red:"#FF7272",yellow:"#FFD674"},emeraldCity:{background:"#112E26",currentLine:"#1B3F38",selection:"#2F6253",foreground:"#A6C0B9",comment:"#6C8F81",cyan:"#80C7D1",green:"#7FCD97",orange:"#FFBC76",pink:"#FF9FB3",purple:"#AE8FC3",red:"#FF7272",yellow:"#FFD674"},enchantedEclipse:{background:"#131A22",currentLine:"#1F2C3A",selection:"#2D4455",foreground:"#A7B6C2",comment:"#6B7B8C",cyan:"#5FA8D3",green:"#5CB8A4",orange:"#FFA96C",pink:"#FF8FA2",purple:"#A88ED1",red:"#FF6B6B",yellow:"#FFD575"},enchantedEvening:{background:"#1E1824",currentLine:"#2A2332",selection:"#3F3A4F",foreground:"#C2B4CB",comment:"#7F7292",cyan:"#76AAD8",green:"#6CC095",orange:"#FFB36C",pink:"#FF8FB0",purple:"#AB8CC2",red:"#FF6464",yellow:"#FFD164"},fireAndIce:{background:"#1F2532",currentLine:"#292F3D",selection:"#4E556A",foreground:"#D8DEE9",comment:"#69758E",cyan:"#7EC4CF",green:"#68CC98",orange:"#FFA071",pink:"#FF88B5",purple:"#AE9BFF",red:"#FF657E",yellow:"#FDCB83"},forestGreen:{background:"#1A1E22",currentLine:"#24292F",selection:"#394147",foreground:"#C8C8C8",comment:"#5C6370",cyan:"#7AAB9D",green:"#88B379",orange:"#FFAC6F",pink:"#F97B77",purple:"#A187BE",red:"#FF5C5C",yellow:"#F5D76E"},futuristicBlue:{background:"#111B26",currentLine:"#1B2E3F",selection:"#334D65",foreground:"#C0D2E3",comment:"#6E859E",cyan:"#77AADB",green:"#78C196",orange:"#FFAC6C",pink:"#FF8DBE",purple:"#A48ADA",red:"#FF6666",yellow:"#FFD66D"},gentlePurple:{background:"#2E2E3D",currentLine:"#383849",selection:"#4D4D5C",foreground:"#B2B2CC",comment:"#6E6E8F",cyan:"#6D77CC",green:"#81C995",orange:"#FFB16A",pink:"#FF7CAC",purple:"#8A80A1",red:"#FF657A",yellow:"#FDB26E"},githubDarkDimmed:{background:"#0D1117",currentLine:"#161B22",selection:"#1F6F8B",foreground:"#8B949E",comment:"#8B949E",cyan:"#79C0FF",green:"#2DD57A",orange:"#FFB454",pink:"#FF80AB",purple:"#D781D3",red:"#EF5252",yellow:"#D29922"},gruvbox:{background:"#282828",currentLine:"#3c3836",selection:"#bdae93",foreground:"#ebdbb2",comment:"#928374",cyan:"#83a598",green:"#b8bb26",orange:"#fe8019",pink:"#d3869b",purple:"#d3869b",red:"#fb4934",yellow:"#fabd2f"},materialTheme:{background:"#263238",currentLine:"#37474f",selection:"#90a4ae",foreground:"#eceff1",comment:"#546e7a",cyan:"#80cbc4",green:"#a5d6a7",orange:"#ffb74d",pink:"#f06292",purple:"#ba68c8",red:"#ef5350",yellow:"#ffee58"},midnightMystique:{background:"#1E1E27",currentLine:"#292935",selection:"#3F3F4F",foreground:"#C2C2D3",comment:"#757593",cyan:"#76D4D6",green:"#6CC18F",orange:"#FFB36C",pink:"#FF8FAB",purple:"#AB8BC7",red:"#FF6464",yellow:"#FFD164"},midnightSunset:{background:"#182233",currentLine:"#1D2D46",selection:"#384B66",foreground:"#B7C0CE",comment:"#6A788A",cyan:"#6B98FF",green:"#6BD49D",orange:"#FFA178",pink:"#FF8DAB",purple:"#B48EAD",red:"#F96263",yellow:"#FADA5E"},minimalMonochrome:{background:"#1C1C1C",currentLine:"#262626",selection:"#363636",foreground:"#D9D9D9",comment:"#757575",cyan:"#7DC1C7",green:"#7FB074",orange:"#FFB869",pink:"#FF81A2",purple:"#B48EAD",red:"#FF6B6B",yellow:"#FFD57B"},modernMarine:{background:"#0A0E19",currentLine:"#121929",selection:"#1E2B42",foreground:"#D5D8DE",comment:"#7F8493",cyan:"#6FB1D3",green:"#6CC792",orange:"#FFB577",pink:"#FF96B0",purple:"#B690C2",red:"#FF6666",yellow:"#FFD666"},monokai:{background:"#272822",currentLine:"#3e3d32",selection:"#49483e",foreground:"#f8f8f2",comment:"#75715e",cyan:"#66d9ef",green:"#a6e22e",orange:"#fd971f",pink:"#f92672",purple:"#ae81ff",red:"#f92672",yellow:"#e6db74"},moonlitMeadow:{background:"#12252C",currentLine:"#1D3B47",selection:"#24566E",foreground:"#A7C4BC",comment:"#5E7D84",cyan:"#82B7BD",green:"#87C38A",orange:"#F4B66A",pink:"#F77A92",purple:"#C58AC9",red:"#F0725E",yellow:"#E8C284"},mysticalMauve:{background:"#1A1A26",currentLine:"#252533",selection:"#3E3E57",foreground:"#B2B2CC",comment:"#757593",cyan:"#76D4D6",green:"#6CC18F",orange:"#FFB36C",pink:"#FF8FAB",purple:"#AB8BC7",red:"#FF6464",yellow:"#FFD164"},nebulaNights:{background:"#1B1821",currentLine:"#262330",selection:"#3C3A48",foreground:"#B8B4CB",comment:"#7A738B",cyan:"#77B4D8",green:"#6CC09E",orange:"#FFA677",pink:"#FF95B2",purple:"#B48FC1",red:"#FF6565",yellow:"#FFD566"},neonLights:{background:"#000000",currentLine:"#0D0D0D",selection:"#1A1A1A",foreground:"#DADADA",comment:"#7F7F7F",cyan:"#6FE3E3",green:"#60FFA0",orange:"#FFB67A",pink:"#FF9FBD",purple:"#BF8CC2",red:"#FF6666",yellow:"#FFD666"},nightSky:{background:"#17202A",currentLine:"#1C2732",selection:"#2E4053",foreground:"#D0D3D4",comment:"#566573",cyan:"#5DADE2",green:"#45B39D",orange:"#F5B041",pink:"#EB984E",purple:"#AF7AC5",red:"#EC7063",yellow:"#F4D03F"},nord:{background:"#2e3440",currentLine:"#3b4252",selection:"#4c566a",foreground:"#d8dee9",comment:"#616e88",cyan:"#88c0d0",green:"#a3be8c",orange:"#ebcb8b",pink:"#bf616a",purple:"#b48ead",red:"#bf616a",yellow:"#ebcb8b"},nova:{background:"#1F262D",currentLine:"#232A32",selection:"#414B56",foreground:"#D9E2EC",comment:"#525F69",cyan:"#89DDFF",green:"#64D989",orange:"#E7C664",pink:"#E95678",purple:"#C594C5",red:"#FF5656",yellow:"#FFC172"},novaDark:{background:"#1A2026",currentLine:"#212930",selection:"#36424F",foreground:"#C0C6D9",comment:"#5B6C7F",cyan:"#84CEE4",green:"#89DD6D",orange:"#FFB46E",pink:"#FF7CAB",purple:"#BB80B3",red:"#FC6161",yellow:"#FAB795"},oceanBlue:{background:"#12232E",currentLine:"#1D3B53",selection:"#205072",foreground:"#A8DADC",comment:"#5E81AC",cyan:"#7FB2F0",green:"#88C0D0",orange:"#FFB86C",pink:"#FFA0A0",purple:"#D4A3D9",red:"#EF8E8E",yellow:"#FFD180"},oceanicAzure:{background:"#001A23",currentLine:"#002B36",selection:"#004056",foreground:"#C0C5CE",comment:"#4D5767",cyan:"#75A4C0",green:"#68A3A8",orange:"#FFA45E",pink:"#FF94B0",purple:"#B48EAD",red:"#FF6363",yellow:"#FFD464"},oceanicGruvbox:{background:"#1d2021",currentLine:"#282828",selection:"#458588",foreground:"#ebdbb2",comment:"#928374",cyan:"#89b482",green:"#a9b665",orange:"#d79921",pink:"#d3869b",purple:"#b16286",red:"#fb4934",yellow:"#d5c4a1"},oceanicNext:{background:"#1B2B34",currentLine:"#343D46",selection:"#4F5B66",foreground:"#A7ADBA",comment:"#616E7C",cyan:"#7FB5DA",green:"#98C379",orange:"#EBCB8B",pink:"#EC5f67",purple:"#C594C5",red:"#EC5f67",yellow:"#D29922"},oneDark:{background:"#282c34",currentLine:"#3e4451",selection:"#4f5b66",foreground:"#abb2bf",comment:"#5c6370",cyan:"#56b6c2",green:"#98c379",orange:"#d19a66",pink:"#c678dd",purple:"#c678dd",red:"#e06c75",yellow:"#e5c07b"},polarNight:{background:"#2E3440",currentLine:"#3B4252",selection:"#4C566A",foreground:"#D8DEE9",comment:"#616E88",cyan:"#81A1C1",green:"#A3BE8C",orange:"#EBCB8B",pink:"#BF616A",purple:"#B48EAD",red:"#BF616A",yellow:"#EBCB8B"},radiantRainforest:{background:"#16231A",currentLine:"#1F3927",selection:"#355D43",foreground:"#A7C9A2",comment:"#6F8D77",cyan:"#80C3BB",green:"#76CC8F",orange:"#FFB56C",pink:"#FF8FA6",purple:"#AB8CC2",red:"#FF6C6C",yellow:"#FFD576"},retroTech:{background:"#0C0C0C",currentLine:"#141414",selection:"#1F1F1F",foreground:"#D9D9D9",comment:"#626262",cyan:"#77BFC9",green:"#69CC6D",orange:"#FFC46D",pink:"#FF7D99",purple:"#BB86FC",red:"#FF5555",yellow:"#FACD60"},royalPurple:{background:"#1E1B2E",currentLine:"#272337",selection:"#3E395B",foreground:"#D5D1E2",comment:"#76708E",cyan:"#76D7C4",green:"#47B87C",orange:"#FFC300",pink:"#F39C9D",purple:"#9B59B6",red:"#E74C3C",yellow:"#F1C40F"},sapphireSkies:{background:"#081125",currentLine:"#0F1F3A",selection:"#1E3874",foreground:"#D8DCE6",comment:"#6B7394",cyan:"#7EC4D9",green:"#7DCB9E",orange:"#FFB578",pink:"#FF8FB3",purple:"#B992CC",red:"#FF6767",yellow:"#FFD684"},shadesOfPurple:{background:"#2d2b55",currentLine:"#37355a",selection:"#444267",foreground:"#ecebf0",comment:"#9a99a3",cyan:"#a1efe4",green:"#72f1b8",orange:"#f78c6c",pink:"#ffcc99",purple:"#9a99a3",red:"#ff6188",yellow:"#ffcc99"},solarizedDark:{background:"#002b36",currentLine:"#073642",selection:"#586e75",foreground:"#839496",comment:"#586e75",cyan:"#2aa198",green:"#859900",orange:"#cb4b16",pink:"#d33682",purple:"#6c71c4",red:"#dc322f",yellow:"#b58900"},synthWave84:{background:"#2b213a",currentLine:"#3e3650",selection:"#564d7a",foreground:"#e0def4",comment:"#9c8c98",cyan:"#95e6cb",green:"#00ffb9",orange:"#f28779",pink:"#f771ac",purple:"#d3bfff",red:"#ff6188",yellow:"#ffd866"},tokyoNight:{background:"#1a1b26",currentLine:"#282a36",selection:"#44475a",foreground:"#eff0eb",comment:"#6b6e76",cyan:"#78d1e1",green:"#67b11d",orange:"#e1a80e",pink:"#ff79c6",purple:"#d27bff",red:"#ff5555",yellow:"#f3f99d"},tomorrowNight:{background:"#1d1f21",currentLine:"#282a36",selection:"#373b41",foreground:"#c5c8c6",comment:"#616e7c",cyan:"#81a2be",green:"#b5bd68",orange:"#de935f",pink:"#cc6666",purple:"#b294bb",red:"#cc6666",yellow:"#f0c674"},twilightMeadow:{background:"#14202A",currentLine:"#1F2E3F",selection:"#334D65",foreground:"#A6C0B9",comment:"#6C8F81",cyan:"#80C7D1",green:"#7FCD97",orange:"#FFBC76",pink:"#FF9FB3",purple:"#AE8FC3",red:"#FF7272",yellow:"#FFD674"},urbanTwilight:{background:"#161727",currentLine:"#1F2737",selection:"#35415B",foreground:"#BDC9D7",comment:"#7F8C9C",cyan:"#77AED8",green:"#6CC492",orange:"#FFB677",pink:"#FF95B1",purple:"#B48DC2",red:"#FF6C6C",yellow:"#FFD576"},vibrantInk:{background:"#1C1E26",currentLine:"#242730",selection:"#363B4A",foreground:"#BFC7D5",comment:"#5C6672",cyan:"#6A76FB",green:"#33CC95",orange:"#FF9A65",pink:"#FF75B5",purple:"#AE81FF",red:"#FF6188",yellow:"#FDD269"},vintageRust:{background:"#301F1A",currentLine:"#3E2A23",selection:"#5D3E35",foreground:"#D7C3A7",comment:"#7F6C55",cyan:"#83A4C4",green:"#7EAD90",orange:"#FFA45E",pink:"#FF8C9E",purple:"#B491A9",red:"#FF7262",yellow:"#FFD372"}},cr={...hr,...lr};class ur{constructor(t,e=0){this.id="Ziko-Theme-"+e,this.use(t)}get current(){return["background","currentLine","selection","foreground","comment","cyan","green","orange","pink","purple","red","yellow"].reduce(((t,e)=>(t[e]=`var(--${e}-${this.id})`,t)),{})}useThemeIndex(t){const e=Object.keys(cr);for(let r in cr[e[t]])document.documentElement.style.setProperty(`--${r}-${this.id}`,cr[e[t]][r]);return this}useThemeName(t){t=t.toLowerCase();const e=Object.fromEntries(Object.entries(cr).map((t=>[t[0].toLowerCase(),t[1]])));for(let r in e[t])document.documentElement.style.setProperty(`--${r}-${this.id}`,e[t][r]);return this}useThemeObject(t){for(let e in t)document.documentElement.style.setProperty(`--${e}-${this.id}`,t[e]);return this}use(t){return"number"==typeof t&&this.useThemeIndex(t),"string"==typeof t&&this.useThemeName(t),t instanceof Object&&this.useThemeObject(t),this}}class mr{constructor(){this.events={},this.maxListeners=10}on(t,e){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.`)}once(t,e){const r=s=>{this.off(t,r),e(s)};this.on(t,r)}off(t,e){const r=this.events[t];if(r){const t=r.indexOf(e);-1!==t&&r.splice(t,1)}}emit(t,e){const r=this.events[t];r&&r.forEach((t=>{t(e)}))}clear(t){t?delete this.events[t]:this.events={}}setMaxListener(t,e){this.maxListeners=e}removeAllListeners(t){t?this.events[t]=[]:this.events={}}}const pr=()=>new mr;class dr{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=pr(),this}set(t){return t!==document.title&&(document.title=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:title-changed")),this}get current(){return document.title}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:title-changed",t),this}}class fr{constructor(t,e=!0){this.#o(),this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}#o(){return this.__FavIcon__=document.querySelector("link[rel*='icon']")||document.createElement("link"),this.__FavIcon__.type="image/x-icon",this.__FavIcon__.rel="shortcut icon",this}set(t){return t!==this.__FavIcon__.href&&(this.__FavIcon__.href=t,this.cache.Emitter&&this.cache.Emitter.emit("ziko:favicon-changed")),this}get current(){return document.__FavIcon__.href}onChange(t){return this.cache.Emitter&&this.cache.Emitter.on("ziko:favicon-changed",t),this}useEventEmitter(){return this.cache.Emitter=pr(),this}}class gr{constructor(t=""){this.channel=new BroadcastChannel(t),this.EVENTS_DATAS_PAIRS=new Map,this.EVENTS_HANDLERS_PAIRS=new Map,this.LAST_RECEIVED_EVENT="",this.UUID="ziko-channel"+J.string(10),this.SUBSCRIBERS=new Set([this.UUID])}get broadcast(){return this}emit(t,e){return this.EVENTS_DATAS_PAIRS.set(t,e),this.#a(t),this}on(t,e=console.log){return this.EVENTS_HANDLERS_PAIRS.set(t,e),this.#h(),this}#h(){return this.channel.onmessage=t=>{this.LAST_RECEIVED_EVENT=t.data.last_sended_event;const e=t.data.userId;this.SUBSCRIBERS.add(e);const r=t.data.EVENTS_DATAS_PAIRS.get(this.LAST_RECEIVED_EVENT),s=this.EVENTS_HANDLERS_PAIRS.get(this.LAST_RECEIVED_EVENT);r&&s&&s(r)},this}#a(t){return this.channel.postMessage({EVENTS_DATAS_PAIRS:this.EVENTS_DATAS_PAIRS,last_sended_event:t,userId:this.UUID}),this}close(){return this.channel.close(),this}}const yr=t=>new gr(t);class br{#l;constructor(){this.#l=function(t){try{let e=new Function("return "+t.data.fun)()();postMessage({result:e})}catch(t){postMessage({error:t.message})}finally{t.data.close&&self.close()}}.toString(),this.blob=new Blob(["this.onmessage = "+this.#l],{type:"text/javascript"}),this.worker=new Worker(window.URL.createObjectURL(this.blob))}call(t,e,r=!0){return this.worker.postMessage({fun:t.toString(),close:r}),this.worker.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data.result)},this}}class wr{constructor(t={acceptAllDevices:!0}){this.options=t,this.__Emitter__=pr(),this.isSupported&&this.#o()}async#o(){this.promise=navigator.bluetooth.requestDevice(this.options).then((t=>this.device=t))}get isSupported(){return!!navigator.bluetooth}get current(){return this.device}connect(){return this.server=this.device.gatt.connect(),this.__Emitter__.emit("ziko:bluetooth-connected"),this}disconnect(){return this.device.gatt.disconnect(),this.__Emitter__.emit("ziko:bluetooth-disconnected"),this}onConnect(t){return this.__Emitter__.on("ziko:bluetooth-connected",t),this}onDisconnect(t){return this.__Emitter__.on("ziko:bluetooth-disconnected",t),this}dispose(){}async battery(t){const e=await this.server.getPrimaryService("battery_service"),r=await e.getCharacteristic("battery_level"),s=await r.readValue();t(await s.getUint8(0))}}class xr{constructor(){this.isSupported&&this.#o()}async#o(){this.__Battery__=await navigator.getBattery()}get isSupported(){return!!navigator.getBattery}get current(){const{level:t,charging:e,chargingTime:r,dischargingTime:s}=this.__Battery__;return{level:t,charging:e,chargingTime:r,dischargingTime:s}}onChargingChange(t){return this.__Battery__.addEventListener("chargingchange",t),this}onLevelChange(t){return this.__Battery__.addEventListener("levelchange",t),this}}class Fr{constructor(){this.isSupported&&this.#o()}async#o(){navigator.geolocation.getCurrentPosition((t=>this.__Geolocation__=t))}get isSupported(){return!!navigator.geolocation}get current(){return this.__Geolocation__}}class vr{constructor(t,{fps:e,step:r,t:s=[0,null],start:n=!0}={}){this.callback=t,this.cache={isRunning:!1,AnimationId:null,startTime:null,step:r,fps:e,t:s,started:n},this.adjust(),this.i=0}adjust(){if(this.cache.step&&this.cache.fps&&(console.warn(`Fps will be adjusted from ${this.cache.fps} to ${1e3/this.cache.step} to ensure a smoother animation`),this.cache.fps=1e3/this.cache.step),this.cache.started){const t=this.cache.t;t[0]?this.startAfter(t[0]):this.start(),t[1]&&this.stopAfter(t[1])}return this}get TIME_STEP(){return this.cache.step?this.cache.step:1e3/this.cache.fps}start(){return this.cache.isRunning||(this.i=0,this.cache.isRunning=!0,this.cache.startTime=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.AnimationId),this.cache.isRunning=!1),this}stop(){return this.pause(),this.i=0,this}resume(){return this.cache.isRunning=!0,this.animate(),this}startAfter(t=1e3){return setTimeout(this.start.bind(this),t),this}stopAfter(t=1e3){return setTimeout(this.stop.bind(this),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.startTime;e>this.TIME_STEP&&(this.callback(this),this.i++,this.cache.startTime=t-e%this.TIME_STEP),this.cache.AnimationId=setTimeout(this.animate,0)}}}const Cr=(t,e)=>new vr(t,e),Er={Linear:function(t){return t},InSin:t=>1-Math.cos(t*Math.PI/2),OutSin:t=>Math.sin(t*Math.PI/2),InOutSin:t=>-(Math.cos(Math.PI*t)-1)/2,InQuad:t=>t**2,OutQuad:t=>1-Math.pow(1-t,2),InOutQuad:t=>t<.5?2*Math.pow(t,2):1-Math.pow(-2*t+2,2)/2,InCubic:t=>t**3,OutCubic:t=>1-Math.pow(1-t,3),InOutCubic:t=>t<.5?4*Math.pow(t,3):1-Math.pow(-2*t+2,3)/2,InQuart:t=>t**4,OutQuart:t=>1-Math.pow(1-t,4),InOutQuart:t=>t<.5?8*Math.pow(t,4):1-Math.pow(-2*t+2,4)/2,InQuint:t=>t**5,OutQuint:t=>1-Math.pow(1-t,5),InOutQuint:t=>t<.5?16*Math.pow(t,5):1-Math.pow(-2*t+2,5)/2,InExpo:t=>0===t?0:Math.pow(2,10*t-10),OutExpo:t=>1===t?1:1-Math.pow(2,-10*t),InOutExpo:t=>0===t?0:1===t?1:t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2,InCirc:t=>1-Math.sqrt(1-Math.pow(t,2)),OutCirc:t=>Math.sqrt(1-Math.pow(t-1,2)),InOutCic:t=>t<.5?(1-Math.sqrt(1-Math.pow(2*t,2)))/2:(Math.sqrt(1-Math.pow(-2*t+2,2))+1)/2,Arc:t=>1-Math.sin(Math.acos(t)),Back:t=>Math.pow(t,2)*(2*t-1),Elastic:t=>-2*Math.pow(2,10*(t-1))*Math.cos(20*Math.PI*t/3*t),InBack(t){const e=1.70158;return 2.70158*Math.pow(t,3)-e*t**2},OutBack(t){const e=1.70158;return 1+2.70158*Math.pow(t-1,3)+e*Math.pow(t-1,2)},InOutBack(t){const e=2.5949095;return t<.5?Math.pow(2*t,2)*(7.189819*t-e)/2:(Math.pow(2*t-2,2)*((e+1)*(2*t-2)+e)+2)/2},InElastic(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:-Math.pow(2,10*t-10)*Math.sin((10*t-10.75)*e)},OutElastic(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin((10*t-.75)*e)+1},InOutElastic(t){const e=2*Math.PI/4.5;return 0===t?0:1===t?1:t<.5?-Math.pow(2,20*t-10)*Math.sin((20*t-11.125)*e)/2:Math.pow(2,-20*t+10)*Math.sin((20*t-11.125)*e)/2+1},InBounce:t=>1-Er.OutBounce(1-t),OutBounce(t){const e=7.5625,r=2.75;return 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},InOutBounce:t=>t<.5?(1-Er.OutBounce(1-2*t))/2:(1+Er.OutBounce(2*t-1))/2},kr=(t,e=1e3)=>(...r)=>setTimeout((()=>t(...r)),e),Ar=(t,e)=>{let r=0;return(...s)=>{const n=(new Date).getTime();n-r<e||(r=n,t(...s))}},Dr=t=>{const e=Date.now(),r=performance.memory.usedJSHeapSize,s=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-r,result:s}},Br=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})})),_r=(t,e=2e3)=>{const r=Date.now();for(;Date.now()-r<e;)if(t.element)return t.element},Mr=t=>new Promise((e=>setTimeout(e,t))),Tr=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e};class Ir{constructor(t,{ease:e=Er.Linear,step:r=50,t:s=[0,null],start:n=!0,duration:i=3e3}={}){this.cache={isRunning:!1,AnimationId:null,startTime:null,ease:e,step:r,intervall:s,started:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.callback=t}#c(){this.t+=this.cache.step,this.i++,this.tx=Tt(this.t,0,this.cache.duration,0,1),this.ty=this.cache.ease(this.tx),this.callback(this),this.t>=this.cache.duration&&(clearInterval(this.cache.AnimationId),this.cache.isRunning=!1)}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}#u(t=!0){return this.cache.isRunning||(t&&this.reset(!1),this.cache.isRunning=!0,this.cache.startTime=Date.now(),this.cache.AnimationId=setInterval(this.#c.bind(this),this.cache.step)),this}start(){return this.#u(!0),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.AnimationId),this.cache.isRunning=!1),this}resume(){return this.#u(!1),this}stop(){return this.pause(),this.reset(!1),this}}const Sr=(t,e)=>new Ir(t,e),Lr={wait:Mr,timeTaken:Tr,useThrottle:Ar,useDebounce:kr,Ease:Er,time_memory_Taken:Dr,loop:Cr,animation:Sr,waitForUIElm:Br,waitForUIElmSync:_r,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class Or{#m;constructor(t,e,r){this.#m={storage:t,globalKey:e,channel:yr(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#o(r),this.#p()}get items(){return JSON.parse(this.#m.storage[this.#m.globalKey]??null)}#p(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#o(t){this.#m.channel=yr(`Ziko:useStorage-${this.#m.globalKey}`),this.#m.channel.on("Ziko-Storage-Updated",(()=>this.#p())),t&&(this.#m.storage[this.#m.globalKey]?(Object.keys(this.items).forEach((t=>this.#m.oldItemKeys.add(t))),console.group("Ziko:useStorage"),console.warn(`Storage key '${this.#m.globalKey}' already exists. we will not overwrite it.`),console.info("%cWe'll keep the existing data.","background-color:#2222dd; color:gold;"),console.group("")):this.set(t))}set(t){return this.#m.storage.setItem(this.#m.globalKey,JSON.stringify(t)),this.#m.channel.emit("Ziko-Storage-Updated",{}),Object.keys(t).forEach((t=>this.#m.oldItemKeys.add(t))),this.#p(),this}add(t){const e={...this.items,...t};return this.#m.storage.setItem(this.#m.globalKey,JSON.stringify(e)),this.#p(),this}remove(...t){const e={...this.items};for(let r=0;r<t.length;r++)delete e[t[r]],delete this[t[r]];return this.set(e),this}get(t){return this.items[t]}clear(){return this.#m.storage.removeItem(this.#m.globalKey),this.#p(),this}}const Vr={useStyle:t=>e=>new ar(e,t),useTheme:(t=0)=>(e=0)=>new ur(e,t),useBattery:()=>new xr,useGeolocation:()=>new Fr,useEventEmitter:pr,useChannel:yr,useThread:(t,e,r)=>{const s=new br;return t&&s.call(t,e,r),s},useBluetooth:t=>new wr(t),useTitle:(t,e)=>new dr(t,e),useFavIcon:(t,e)=>new fr(t,e),useThrottle:Ar,useDebounce:kr,useLocaleStorage:(t,e)=>new Or(localStorage,t,e),useSessionStorage:(t,e)=>new Or(sessionStorage,t,e),useSuccesifKeys:(t,e=[],r=(()=>{}))=>{t.cache.stream.enabled.down=!0;const s=e.length,n=t.cache.stream.history.down.slice(-s).map((t=>t.key));e.join("")===n.join("")&&(t.event.preventDefault(),r.call(t,t))},ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class jr{constructor(t,e=""){var r;this.target=globalThis.__Target__||globalThis.document.body,"string"==typeof t&&(t=globalThis.document.createElement(t)),this.element=t,this.uuid=this.constructor.name+"-"+J.string(10),this.cache={name:e,parent:null,isRoot:!1,isHidden:!1,isFrozzen:!1,style:(r={},new te(r)),attributes:{},filters:{},temp:{}},this.items=[],this.events={ptr:null,mouse:null,Wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,custom:null},this.observer={resize:null,intersection:null},this.cache.style.linkTo(this),this.style({position:"relative",boxSizing:"border-box",fontFamily:"verdana",margin:0,padding:0}),this.size("auto","auto"),globalThis.__UI__[this.cache.name]?.push(this)}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.cache.events}get html(){return this.element.innerHTML}get __app__(){if(this.cache.isRoot)return this;let t=this.cache.parent;for(;;){if(!t)return null;if(t.cache.isRoot)return t;t=t.parent}}clone(t=!1){const e=new this.constructor;if(e.__proto__=this.__proto__,this.items.length){const t=[...this.items].map((t=>t.clone()));e.append(...t)}else e.element=this.element.cloneNode(!0);return e.render(t)}style(t,{target:e="parent",maskVector:r=null}={}){return this.st.style(t,{target:e,maskVector:r}),this}size(t,e,{target:r,maskVector:s}={}){return this.st.size(t,e,{target:r,maskVector:s}),this}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}freeze(t){return this.cache.isFrozzen=t,this}at(t){return this.items.at(t)}maintain(){for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this.length=this.items.length,this}setTarget(t){return t instanceof jr&&(t=t.element),this.remove(),this.target=t,this.render(),this}render(t=!0,e=this.target){return e instanceof jr&&(e=e.element),this.target=e,t?this.target.appendChild(this.element):this.remove(),this}append(...t){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let e=0;e<t.length;e++)["number","string"].includes(typeof t[e])&&(t[e]=Nr(t[e])),t[e]instanceof jr?(t[e].cache.parent=this,this.element.appendChild(t[e].element),t[e].Target=this.element,this.items.push(t[e])):t[e]instanceof Object&&(t[e]?.style&&this.style(t[e]?.style),t[e]?.attr&&Object.entries(t[e].attr).forEach((t=>this.setAttr(""+t[0],t[1]))));return this.maintain(),this}remove(...t){if(0==t.length)this.cache.parent?this.cache.parent.remove(this):this.target.children.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element);else{const e=t=>{"number"==typeof t&&(t=this.items[t]),t instanceof jr&&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}removeAfter(t=1){return setTimeout((()=>this.remove()),t),this}removeItem(...t){const e=t=>{t instanceof jr?this.element.removeChild(t.element):"number"==typeof t&&this.element.removeChild(this.element.children[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}insertAt(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]=Nr(e[r])),this.element.insertBefore(e[r].element,this.items[t].element),this.items.splice(t,0,e[r]);return this}setAttr(t,e){return this.element.setAttribute(t,e),Object.assign(this.cache.attributes,Object.fromEntries([[t,e]])),this}removeAttr(t){return this.element.removeAttribute(t),this}setContentEditable(t=!0){return this.setAttr("contenteditable",t),this}get children(){return[...this.element.children]}get cloneElement(){return this.element.cloneNode(!0)}setClasses(...t){return this.setAttr("class",t.join(" ")),this}get Classes(){const t=this.element.getAttribute("class");return null===t?[]:t.split(" ")}addClass(){}setId(t){return this.element.setAttribute("id",t),this}get Id(){return this.element.getAttribute("id")}forEach(t){return this.items.forEach(t),this}where(t,e,r){return this.items.filter(t).forEach(e),this}filter(t){return this.items.filter(t)}filterByTextContent(t,e=!1){return this.items.map((t=>t.render())),this.items.filter((r=>{const s=r.element.textContent;return!(e?s===t:s.includes(t))})).map((t=>t.render(!1))),this}filterByClass(t){return this.items.map((t=>t.render())),this.items.filter((e=>!e.Classes.includes(t))).map((t=>t.render(!1))),this}sortByTextContent(t,e){let r=this.children;return r.filter((e=>!e.textContent.toLowerCase().includes(t.toLowerCase()))).map((t=>{t.style.display="none"})),r.filter((e=>e.textContent.toLowerCase().includes(t.toLowerCase()))).map(((t,r)=>t.style.display=e[r])),r.filter((t=>"none"!=t.style.display)),this}onPtrMove(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onMove(...t),this}onPtrDown(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onDown(...t),this}onPtrUp(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onUp(...t),this}onPtrEnter(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onEnter(...t),this}onPtrLeave(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onLeave(...t),this}onPtrOut(...t){return this.events.ptr||(this.events.ptr=ce(this)),this.events.ptr.onOut(...t),this}onMouseMove(...t){return this.events.mouse||(this.events.mouse=we(this)),this.events.mouse.onMove(...t),this}onMouseDown(...t){return this.events.mouse||(this.events.mouse=we(this)),this.events.mouse.onDown(...t),this}onMouseUp(...t){return this.events.mouse||(this.events.mouse=we(this)),this.events.mouse.onUp(...t),this}onMouseEnter(...t){return this.events.mouse||(this.events.mouse=we(this)),this.events.mouse.onEnter(...t),this}onMouseLeave(...t){return this.events.mouse||(this.events.mouse=we(this)),this.events.mouse.onLeave(...t),this}onMouseOut(...t){return this.events.mouse||(this.events.mouse=we(this)),this.events.mouse.onOut(...t),this}onWheel(...t){return this.events.wheel||(this.events.wheel=ve(this)),this.events.wheel.onWheel(...t),this}onKeyDown(...t){return this.events.key||(this.events.key=De(this)),this.events.key.onDown(...t),this}onKeyPress(...t){return this.events.key||(this.events.key=De(this)),this.events.key.onPress(...t),this}onKeyUp(...t){return this.events.key||(this.events.key=De(this)),this.events.key.onUp(...t),this}onKeysDown({keys:t=[],callback:e}={}){return this.events.key||(this.events.key=De(this)),this.events.key.handleSuccessifKeys({keys:t,callback:e}),this}onDragStart(...t){return this.events.drag||(this.events.drag=Le(this)),this.events.drag.onStart(...t),this}onDrag(...t){return this.events.drag||(this.events.drag=Le(this)),this.events.drag.onDrag(...t),this}onDragEnd(...t){return this.events.drag||(this.events.drag=Le(this)),this.events.drag.onEnd(...t),this}onDrop(...t){return this.events.drop||(this.events.drop=Oe(this)),this.events.drop.onDrop(...t),this}onClick(...t){return this.events.click||(this.events.click=Ne(this)),this.events.click.onClick(...t),this}onDbClick(...t){return this.events.click||(this.events.click=Ne(this)),this.events.click.onDbClick(...t),this}onCopy(...t){return this.events.clipboard||(this.events.clipboard=qe(this)),this.events.clipboard.onCopy(...t),this}onCut(...t){return this.events.clipboard||(this.events.clipboard=qe(this)),this.events.clipboard.onCut(...t),this}onPaste(...t){return this.events.clipboard||(this.events.clipboard=qe(this)),this.events.clipboard.onPaste(...t),this}onSelect(...t){return this.events.clipboard||(this.events.clipboard=qe(this)),this.events.clipboard.onSelect(...t),this}onFocus(...t){return this.events.focus||(this.events.focus=Ke(this)),this.events.focus.onFocus(...t),this}onBlur(...t){return this.events.focus||(this.events.focus=Ke(this)),this.events.focus.onFocus(...t),this}on(t,...e){return this.events.custom||(this.events.custom=sr()),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=sr()),this.events.custom.emit(t,e),this}WatchAttributes(){}WatchChildren(){}WatchSize(t){return this.observer.resize||(this.observer.resize=((t,e)=>new or(t,e))(this,t)),this.observer.resize.start(),this}WatchIntersection(t,e){return this.observer.intersection||(this.observer.intersection=((t,e,r)=>new ir(t,e,r))(this,t,e)),this.observer.intersection.start(),this}get VisibleArea(){let t=this.element.getBoundingClientRect(),e=globalThis.document.documentElement.clientHeight,r=globalThis.document.documentElement.clientWidth,s=t.top>0&&t.top<e,n=t.bottom<e&&t.bottom>0,i=t.left>0&&t.left<r,o=t.right>0&&t.right<r;return{top:s,bottom:n,left:i,right:o,heightRatio:(t.height+t.y)/t.height,isVisible:s||n||o||i}}setFullScreen(t=!0,e){return this.element.requestFullscreen?(t?this.element.requestFullscreen(e):globalThis.document.exitFullscreen(),this):(console.error("Fullscreen API is not supported in this browser."),this)}toggleFullScreen(t){return globalThis.document.fullscreenElement?globalThis.document.exitFullscreen():this.element.requestFullscreen(t),this}}class Rr extends jr{constructor(...t){super("span","text"),this.element=document.createElement("span"),this.text="",this.addValue(...t),this.st.display("inline-block"),this.render()}clear(){return this.element.textContent="",this}get value(){return this.element.textContent}setValue(t="",e=!1){["string","number"].includes(typeof t)&&(this.text=""+t,this.text.includes("\n")&&(this.text=this.text.split("\n").map((t=>"<span>".concat(t,"</span></br>"))).join(""))),t instanceof r&&(this.text=""+t.UI()),e?this.element.innerHTML+=this.text:this.element.innerHTML=this.text,(t instanceof Array||t instanceof Set)&&(t instanceof Set&&(t=[...t]),this.addValue(...t))}addValue(...t){return t.map((t=>{this.setValue(" ",!0),this.setValue(t,!0)})),this}toggleValues(...t){let e=(t=t.map((t=>""+t))).indexOf(""+this.value);return-1!=e&&e!=t.length-1?this.setValue(t[e+1]):this.setValue(t[0]),this}}const Nr=(...t)=>new Rr(...t);class Pr extends jr{constructor(...t){super("p","p"),this.addValue(...t),this.style({margin:0,padding:0}),this.render()}addValue(...t){for(let e=0;e<t.length;e++)"string"==typeof t[e]||"number"==typeof t[e]?(this.element.appendChild(document.createTextNode(t[e])),this.element.appendChild(document.createElement("br"))):t[e]instanceof jr?this.element.appendChild(t[e].element):t[e]instanceof r&&Nr(t.a+" + "+t.b+"i");return this}clear(){return this.element.childNodes.forEach((t=>t.remove())),this}setValue(...t){return this.clear(),this.addValue(...t),this}}const zr=(...t)=>(new Pr).append(...t);class $r extends jr{constructor(t=1,e=""){super(`h${t}`,`h${t}`),this.element=document.createElement("h"+t),this.element.textContent=e,this.render()}get value(){return this.element.innerText}setValue(t=""){this.element.innerText=t}addValue(t=""){return this.element.innerText+=t,this}}const Hr=(t="")=>new $r(1,t),Ur=(t="")=>new $r(2,t),qr=(t="")=>new $r(3,t),Wr=(t="")=>new $r(4,t),Zr=(t="")=>new $r(5,t),Xr=(t="")=>new $r(6,t);class Kr extends jr{constructor(t){super(t,"ZikoHtml"),this.render()}}class Yr extends jr{constructor(){super("br","br"),this.render(),delete this.append}}class Gr extends jr{constructor(){super("hr","hr"),this.render(),delete this.append}}class Qr extends jr{constructor(t){super("a","link"),this.setHref(t),this.render()}setHref(t){this.element.href=t}}const Jr=()=>new Yr,ts=()=>new Gr,es=(t=1)=>new Array(t).fill(new Yr),rs=(t=1)=>new Array(t).fill(new Gr),ss=(t,...e)=>new Qr(t).append(...e),ns=(t,...e)=>new Kr(t).append(...e);class is extends jr{constructor(t){super(),this.element=document.createElement("li"),this.append(t),this.render()}}class os extends jr{constructor(t,e){super(t,e),delete this.append}append(...t){for(let e=0;e<t.length;e++){let r=null;["string","number"].includes(typeof t[e])&&(t[e]=Nr(t[e])),t[e]instanceof jr&&(r=new is(t[e])),r.setTarget(this.element),this.items.push(r[0]),this.maintain()}}remove(...t){if(0==t.length)this.Target.children.length&&this.Target.removeChild(this.element);else{const e=t=>{"number"==typeof t&&(t=this.items[t]),t instanceof jr&&this.element.removeChild(t.parent.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}insertAt(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let r=0;r<e.length;r++){let s=null;["number","string"].includes(typeof e[r])&&(e[r]=Nr(e[r])),e[r]instanceof jr&&(s=new is(e[r])),this.element.insertBefore(s.element,this.items[t].parent.element),this.items.splice(t,0,e[r][0])}return this}filterByTextContent(t,e=!1){return this.items.map((t=>t.parent.render())),this.items.filter((r=>{const s=r.element.textContent;return!(e?s===t:s.includes(t))})).map((t=>t.parent.render(!1))),this}sortByTextContent(t=1){return this.items.map((t=>t.parent.render(!1))),this.sortedItems=this.items.sort(((e,r)=>t*e.element.textContent.localeCompare(r.element.textContent))),this.append(...this.sortedItems),this}filterByClass(t){return this.items.map((t=>t.parent.render(!0))),this.items.filter((e=>!e.Classes.includes(t))).map((t=>t.parent.render(!1))),this}delete(t){return[...this.element.children].indexOf(t)}push(){}pop(){}unshift(){}shift(){}sort(){}filter(){}slice(){}}class as extends os{constructor(...t){super("ol","ol"),this.append(...t),this.render()}type(t=1){return this.element.setAttribute("type",t),this}start(t=1){return this.element.setAttribute("start",t),this}}class hs extends os{constructor(...t){super("ul","ul"),this.append(...t),this.render()}}const ls=(...t)=>new as(...t),cs=(...t)=>new hs(...t);class us extends jr{constructor(t="button"){super(),this.element=document.createElement("button"),this.setValue(t),this.render(),this.st.cursor("pointer")}setValue(t){return t instanceof jr?t.setTarget(this.element):(this.element.appendChild(document.createTextNode("")),this.element.childNodes[0].data=t),this}get value(){return this.element.innerText}toggleValues(...t){let e=(t=t.map((t=>""+t))).indexOf(""+this.value);return-1!=e&&e!=t.length-1?this.setValue(t[e+1]):this.setValue(t[0]),this}}const ms=t=>new us(t);class ps extends jr{constructor(t=""){super(),this.element=document.createElement("option"),t instanceof Object&&"value"in t?(this.setValue(t.value),this.setText(t?.text??t.value)):this.setValue(t)}setValue(t=""){return this.element.value=t,this}setText(t=""){return t&&(this.element.textContent=t),this}}class ds extends jr{constructor(){super(),this.element=document.createElement("textarea"),this.render()}get value(){return this.element.textContent}}const fs=()=>new ds;class gs extends jr{constructor(t="",e){super(),this.element=document.createElement("input"),Object.assign(this.events,{input:null}),this.setValue(t),e&&this.linkDatalist(e),this.render()}onInput(...t){return this.events.input||(this.events.input=Je(this)),this.events.input.onInput(...t),this}onChange(...t){return this.events.input||(this.events.input=Je(this)),this.events.input.onChange(...t),this}linkDatalist(t){let e;if(t instanceof _s)e=t.Id;else if(t instanceof Array){const r=new _s(...t);e=r.Id,console.log(r)}else e=t;return this.element.setAttribute("list",e),this}get value(){return this.element.value}_setType(t){return this.element.type=t,this}setValue(t=""){return this.element.value=t,this}useState(t){return this.setValue(t),[{value:this.value},t=>this.setValue(t)]}setPlaceholder(t){return t&&(this.element.placeholder=t),this}get isValide(){return this.element.checkValidity()}setRequired(t=!0){return this.element.required=t,this}select(){return this.element.select(),this}copy(){return this.element.select(),document.execCommand("copy"),this}cut(){return this.element.select(),document.execCommand("cut"),this}accept(t){return this.element.accept=t,this}}class ys extends gs{constructor(){super(),this._setType("search"),this.Length=0}onsearch(t){return this.element.addEventListener("search",(()=>t())),this}connect(...t){return this}displayLength(t){return this.element.addEventListener("keyup",(()=>t.setValue(this.Length))),this}}class bs extends gs{constructor(t,e,r=1){super(),this._setType("number"),this.setMin(t).setMax(e).setStep(r),this.render()}get value(){return+this.element.value}setMin(t){return this.element.min=t,this}setMax(t){return this.element.max=t,this}setStep(t){return this.element.step=t,this}}class ws extends bs{constructor(t=0,e=0,r=10,s=1){super(),this._setType("range"),this.setMin(e).setMax(r).setValue(t).setStep(s),this.render()}}class xs extends gs{constructor(){super(),this._setType("color"),this.background(this.value),this.render(),this.onInput((()=>this.background(this.value)))}}class Fs extends gs{constructor(){super(),this._setType("password"),this.render()}}class vs extends gs{constructor(){super(),this._setType("email"),this.render()}}class Cs extends gs{constructor(){super(),this._setType("time"),this.render()}}class Es extends gs{constructor(){super(),this._setType("date"),this.render()}}class ks extends gs{constructor(){super(),this._setType("datetime-local"),this.render()}}class As extends gs{constructor(){super(),this._setType("checkbox"),this.cursor("pointer")}get checked(){return this.element.checked}check(t=!0){return this.element.checked=t,this}color(t){return this.element.style.accentColor=t,this}}class Ds extends gs{constructor(){super(),this._setType("radio"),this.cursor("pointer")}get checked(){return this.element.checked}check(t=!0){return this.element.checked=t,this}color(t){return this.element.style.accentColor=t,this}}class Bs extends jr{constructor(t="File"){super(),this._aux_element=ms(t).setTarget(this.Target),this.element=document.createElement("input"),this.element.setAttribute("type","file"),this.element.setAttribute("accept","image"),this._aux_element.onClick((()=>this.element.click())),this.element.onChange=this.handleImage.bind(this)}handleImage(t){const e=new FileReader,r=new Image;e.onload=function(t){r.src=t.target.result,console.log(r.src)},e.readAsDataURL(t.target.files[0]),this.img=r}get value(){return this.img}render(t=!0){return t?this.Target.appendChild(this._aux_element.element):this.remove(),this}remove(){return this.Target.children.length&&this.Target.removeChild(this._aux_element.element),this}}class _s extends jr{constructor(...t){super(),this.element=document.createElement("datalist"),this.addOptions(...t).setId("ziko-datalist-id"+J.string(10)),this.render()}addOptions(...t){return t.map((t=>this.append(new ps(t)))),this}}const Ms=(t,e)=>{if(t instanceof Object){const{datalist:e,placeholder:r}=t;return t=t.value??"",new gs(t,e).setPlaceholder(r)}return new gs(t,e)},Ts=(...t)=>new _s(...t),Is=(t,e,r,s)=>{if(t instanceof Object){const{min:e=0,max:r=10,step:s=1}=t;return new ws(t=t?.value??5,e,r,s)}return new ws(t,e,r,s)},Ss=(t,e,r)=>{if(t instanceof Object){const{value:e,max:r=10,step:s=1,placeholder:n=""}=t;return new ws(t=t?.min??0,r,s).setValue(e).setPlaceholder(n)}return new bs(t,e,r)},Ls=(...t)=>(new ys).connect(...t),Os=t=>new Bs(t),Vs=()=>new Fs,js=()=>new vs,Rs=()=>new xs,Ns=()=>new Cs,Ps=()=>new Es,zs=()=>new ks,$s=()=>new As,Hs=()=>new Ds;class Us extends jr{constructor(){super(),this.element=document.createElement("select"),this.render()}addOptions(...t){return t.map((t=>this.append(new ps(t)))),this}}const qs=()=>new Us;class Ws extends jr{constructor(t,e,r){super("image","image"),this.value=t,"IMG"===t.nodeName?this.element.setAttribute("src",t.src):this.element.setAttribute("src",t),"number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({border:"1px solid black",width:e,height:r}),this.render()}updateSrc(t){return this.value=t,this.element.src=t,this}toggleSrc(...t){let e=(t=t.map((t=>""+t))).indexOf(""+this.value);return-1!=e&&e!=t.length-1?this.updateSrc(t[e+1]):this.updateSrc(t[0]),this}alt(t){return this.element.alt=t,this}}const Zs=(t,e,r)=>new Ws(t,e,r);class Xs extends jr{constructor(t,e){super("figure","figure"),this.img=t.width("100%").element,this.caption=document.createElement("figcaption"),this.caption.append(e.element),this.element.append(this.img),this.element.append(this.caption),this.render()}}const Ks=(t,e)=>new Xs(t,e);class Ys extends jr{constructor(t="",e="100%",r="50vh"){super("video","video"),"VIDEO"===t.nodeName?this.element.setAttribute("src",t.src):this.element.setAttribute("src",t),"number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({width:e,height:r}),this.render()}get t(){return this.element.currentTime}useControls(t=!0){return this.element.controls=t,this}play(){return this.element.play(),this}pause(){return this.element.pause(),this}poster(t=""){return this.element.poster=t,this}usePIP(t){return this.element.requestPictureInPicture(t),this}seekTo(t){return this.element.currentTime=t,this}onPlay(){}onPause(){}}const Gs=(t,e,r)=>new Ys(t,e,r);class Qs extends jr{constructor(t){super("audio","audio"),this.element.setAttribute("src",t),this.render(),this.useControls()}get t(){return this.element.currentTime}useControls(t=!0){return this.element.controls=t,this}play(){return this.element.play(),this}pause(){return this.element.pause(),this}seekTo(t){return this.element.currentTime=t,this}onPlay(){}onPause(){}}const Js=t=>new Qs(t);class tn extends Ys{constructor(){super(),this.element.setAttribute("src",""),this.constraints={audio:!0,video:{width:1280,height:720}}}start(){return navigator.mediaDevices.getUserMedia(this.constraints).then((t=>{this.element.srcObject=t,this.element.onloadedmetadata=()=>{this.element.play()}})).catch((function(t){console.log(t.name+": "+t.message)})),this}}const en=()=>new tn;class rn extends jr{constructor(t="div",e="100%",r="100%"){super(t,"Flex"),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({width:e,height:r}),this.style({display:"flex"}),this.render()}resp(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 nn.call(this,r),this.style({alignItems:"number"==typeof t?an.call(this,t):t,justifyContent:"number"==typeof e?hn.call(this,e):e}),this}horizontal(t,e,r=1){return on.call(this,r),this.style({alignItems:"number"==typeof e?hn.call(this,e):e,justifyContent:"number"==typeof t?an.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}const sn=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new rn(e).append(...t)};function nn(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function on(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function an(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function hn(t){return an(-t)}class ln extends jr{constructor(t="div",e="50vw",r="50vh"){super(t,"Grid"),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof r&&(r+="%"),this.style({border:"1px solid black",width:e,height:r}),this.style({display:"grid"}),this.render()}columns(t){let e="";for(let r=0;r<t;r++)e=e.concat(" auto");return this.#d(e),this}#d(t="auto auto"){return this.style({gridTemplateColumns:t}),this}gap(t=10,e=t){return"number"==typeof t&&(t+="px"),"number"==typeof e&&(e+="px"),this.style({gridColumnGap:t,gridRowGap:e}),this}}const cn=(...t)=>new ln("div").append(...t);class un extends jr{constructor(t,e,r="😁"){super("details","Accordion"),this.summary=ns("summary",t).style({fontSize:"1.1em",padding:"0.625rem",fontWeight:"bold",listStyleType:`"${r}"`,cursor:"pointer"}),this.summary[0].style({marginLeft:"0.5em"}),this.content=e.style({margin:"0.7em"}),this.append(this.summary,this.content),this.style({marginBottom:"0.7em"}),this.render()}get isOpen(){return this.element.open}open(){return this.element.open=!0,this}onOpen(t){return this}close(){return this.element.open=!0,this}onClose(t){return this}toggle(){return this.element.open=!this.element.open,this}}const mn=(t,e,r)=>new un(t,e,r);class pn extends rn{constructor(...t){super(),this.style({position:"relative",overflow:"hidden",touchAction:"none",userSelect:"none"}),this.horizontal("space-around",0),this.track=Section(...t).style({display:"inline-flex"}),this.track.size(100*this.track.children.length+"vw"),this.track.setTarget(this),this.track.items.map((t=>t.style({pointerEvents:"none",margin:"auto 10px"}))),this.x0=null,this.tx=0,this.onPtrMove((t=>{if(t.isDown){let e=t.event.pageX-this.x0;this.track.st.translateX(this.tx+e,0)}})),this.onPtrDown((t=>{console.log(t.event),this.x0=t.event.pageX;const e=window.getComputedStyle(this.track.element).getPropertyValue("transform");"none"!==e&&(this.tx=+e.split(",")[4])})),this.onPtrUp((t=>console.log(t.isDown))),this.onPtrLeave((t=>{}))}}const dn=(...t)=>new pn(...t);class fn extends rn{constructor(){super("section"),Object.assign(this.cache,{order:0,currentNote:null,currentNoteIndex:null}),this.vertical(0,0)}setCurrentNote(t){return this.cache.currentNote=t,this.cache.currentNoteIndex=this.items.findIndex((e=>e===t)),t.focus(),this.items.forEach((t=>t.Input.style({border:"1px solid #ccc"}))),t.Input.style({border:"2px lightgreen solid"}),this}addNote(t=""){return this.append(wn(t)),this}execute(){return this.cache.currentNote.execute(),this.incrementOrder(),this}incrementOrder(){return this.cache.order++,this.cache.currentNote.setOrder(this.cache.order),this}next(){return this.cache.currentNote===this.items.at(-1)?(this.addNote(),this.setCurrentNote(this.items.at(-1))):this.setCurrentNote(this.items[this.cache.currentNoteIndex+1]),this}previous(){return this.cache.currentNote!==this.items[0]&&this.setCurrentNote(this.items[this.cache.currentNoteIndex-1]),this}data(){return this.items.map((t=>t.cellData()))}serialize(){return JSON.stringify(this.data())}import(t=[]){return t.forEach(((e,r)=>this.addNote(t[r].input))),this}}const gn=()=>new fn,yn={background:"none",width:"25px",height:"25px",fontSize:"1.2rem",cursor:"pointer"};class bn extends rn{constructor(t="",{type:e="js",order:r=null}={}){var s;super("section"),Object.assign(this.cache,{state:null,order:r,type:e,metadata:{created:Date.now(),updated:null}}),this.Input=((t="")=>ns("code",t).style({width:"100%",height:"auto",padding:"10px",boxSizing:"border-box",border:"1px solid #ccc",outline:"none",fontSize:"1rem",fontFamily:"Lucida Console, Courier New, monospace",padding:"1rem 0.5rem",wordBreak:"break-all",background:"#f6f8fa",color:"#0062C3"}).setAttr("contenteditable",!0).setAttr("spellcheck",!1))(t),this.Output=ns("output").style({width:"100%",height:"auto",padding:"5px 0"}),this.InOut=sn(this.Input,this.Output).vertical().style({width:"100%",margin:"10px auto"}),this.RightControl=(s=this,sn(Nr("▶️").style(yn).onClick((t=>{s.parent instanceof fn&&s.parent.setCurrentNote(s),s.execute(),globalThis.__Target__=t.target.parent.parent[1][1]})),Nr("📋").style(yn).onClick((()=>{navigator.clipboard.writeText(s.codeText)})),Nr("✖️").style(yn).onClick((()=>s.remove())),Nr("✖️").style(yn).onClick((()=>s.remove()))).style({width:"70px",height:"50px",margin:"10px 0"}).horizontal(0,0).wrap(!0)),this.LeftControl=sn(Nr("[ ]")).style({width:"50px",height:"50px",margin:"10px 4px",padding:"5px",color:"darkblue",borderBottom:"4px solid gold"}).horizontal(0,0),this.append(this.LeftControl,this.InOut,this.RightControl),this.horizontal(-1,1).style({width:"95vw",margin:"0 auto",border:"1px darkblue dotted"}),this.Input.onKeyDown((t=>{"Enter"===t.kd&&t.event.shiftKey&&(t.event.preventDefault(),this.execute(this.cache.order)),this.cache.parent instanceof fn&&("ArrowDown"===t.kd&&t.event.shiftKey&&this.cache.parent.next(),"ArrowUp"===t.kd&&t.event.shiftKey&&this.cache.parent.previous())})),this.Input.onFocus((()=>{this.cache.parent instanceof fn&&(this.cache.parent.cache.currentNote=this,this.cache.parent.setCurrentNote(this))})),this.Input.onPaste((t=>{}))}get codeText(){return this.Input.element.innerText.trim()}get codeHTML(){return this.Input.element.innerHTML}get outputHTML(){return this.Output.element.innerHTML}setValue(t){return this.Input[0].setValue(t),this}cellData(){return{input:this.codeText,output:this.outputHTML,order:this.cache.order,type:this.cache.type}}execute(t){return this.clearOutput(),this.evaluate(t),this.cache.metadata.updated=Date.now(),this}#f(t){try{this.LeftControl[0].setValue("pending"),this.cache.state="pending",globalThis.eval(this.Input.element.innerText)}catch(t){console.log(t),text(`Error : ${t.message}`).style({color:"red",background:"gold",border:"2px red solid",padding:"10px",margin:"10px 0",display:"flex",justifyContent:"center"}),this.LeftControl[0].setValue("Err"),this.cache.state="Error"}finally{"pending"===this.cache.state&&(this.cache.state="success",this.setOrder(t),this.cache.parent instanceof fn&&(this.cache.parent.incrementOrder(),this.cache.parent.next()))}}#g(){}#y(){}evaluate(t){if(globalThis.__Target__=this.Output.element,"js"===this.cache.type)this.#f(t);return this}clearInput(){return this.Output.element.innerText="",this}clearOutput(){return this.Output.element.innerText="",this}setOrder(t,e=!0){return this.cache.order=t,e&&("number"==typeof t?this.LeftControl[0].setValue(`[${t}]`):this.LeftControl[0].setValue("[-]")),this}focus(){return this.Input.element.focus(),this}}const wn=(t,{type:e,order:r}={})=>new bn(t,{type:e,order:r});class xn extends rn{#b=0;constructor(t,e){super("div","Tabs"),this.style({boxSizing:"border-box",backgroundColor:"blanchedalmond",border:"1px red solid",margin:"30px"}),this.append(sn().size("auto","auto").style({boxSizing:"border-box",justifyContent:"center",alignItems:"center",textAlign:"center",minWidth:"50px",minHeight:"50px",backgroundColor:"darkblue",border:"1px darkblue solid"}),sn().style({boxSizing:"border-box",justifyContent:"center",alignItems:"center",textAlign:"center",width:"100%",height:"100%",backgroundColor:"darkslategrey"})),this.Controller=this.items[0].setAttr("role","tablist"),this.Content=this.items[1],t.length!==e.length?console.error(""):(this.Controller.append(...t),this.Content.append(...e)),this.init(),this.display(0)}init(){for(let t=0;t<this.Controller.length;t++)this.Controller[t].setAttr("role","tab").setAttr("aria-controls",`tab${t}`),this.Content[t].setAttr("role","tabpanel").setAttr("aria-labelledby",`tab${t}`).setAttr("tabindex",-1);return this.Controller.forEach((t=>t.onClick((t=>{const e=t.target.element.getAttribute("aria-controls"),r=+e.slice(3);this.Content.filter((t=>t.element.getAttribute("aria-labelledby")===e),(()=>{this.#b!==r&&this.display(r)}))})))),this}addPairs(t,e){this.Controller.append(t),this.Content.append(e);const r=this.Controller.length;return this.Controller.at(-1).setAttr("role","tab").setAttr("aria-controls","tab"+(r-1)),this.Content.at(-1).setAttr("role","tabpanel").setAttr("aria-labelledby","tab"+(r-1)).setAttr("tabindex",-1),this}removePairs(t){}display(t){return this.#b=t%this.Content.length,this.Controller.forEach((t=>t.setAttr("tabindex",-1).setAttr("aria-selected",!1))),this.Controller.at(this.#b).setAttr("tabindex",0).setAttr("aria-selected",!0),(async()=>{await this.Content.forEach((t=>t.st.hide())),await this.Content.at(this.#b).setAttr("tabindex",0).st.show()})(),this}next(t=1){return this.display(this.#b+t),this}previous(t=1){return this.display(this.#b-t),this}useHorizontalSwippe(){return this.onPtrDown(),this.onPtrUp((t=>this.next(Math.sign(t.swippe.delta_x)))),this}useVerticalSwippe(){return this.onPtrDown(),this.onPtrUp((t=>this.next(Math.sign(t.swippe.delta_y)))),this}}const Fn=(t,e)=>new xn(t,e);class vn extends jr{constructor(){super("main","Main"),this.render()}}class Cn extends jr{constructor(){super("header","Header"),this.render()}}class En extends jr{constructor(){super("nav","Nav"),this.render()}}class kn extends jr{constructor(){super("section","Section"),this.style({position:"relative"}),this.render()}}class An extends jr{constructor(){super("article","Article"),this.render()}}class Dn extends jr{constructor(){super("aside","Aside"),this.render()}}class Bn extends jr{constructor(){super("footer","Footer"),this.element=document.createElement("footer"),this.render()}}const _n=(...t)=>(new kn).append(...t),Mn=(...t)=>(new An).append(...t),Tn=(...t)=>(new vn).append(...t),In=(...t)=>(new Cn).append(...t),Sn=(...t)=>(new Bn).append(...t),Ln=(...t)=>(new En).append(...t),On=(...t)=>(new Dn).append(...t);class Vn extends jr{constructor(...t){super(),this.element=document.createElement("Tr"),this.append(...t)}}class jn extends jr{constructor(...t){super(),this.element=document.createElement("Td"),this.append(...t)}}class Rn extends jr{constructor(...t){super(),this.element=document.createElement("Thead"),this.append(...t)}}class Nn extends jr{constructor(...t){super(),this.element=document.createElement("Tbody"),this.append(...t)}}class Pn extends jr{constructor(t){super(),this.element=document.createElement("Caption"),this.append(t)}}const zn=(...t)=>(t=t.map((t=>(t instanceof jr||(t=Nr(t)),t))),new jn(...t)),$n=t=>new Pn(t),Hn=t=>{var e=new Array(t.rows).fill(null).map((()=>((...t)=>new Vn(...t))())),r=t.arr.map((t=>t.map((()=>null))));for(let s=0;s<r.length;s++)for(let n=0;n<r[0].length;n++)r[s][n]=zn(t.arr[s][n]),e[s].append(r[s][n]);return e};class Un extends jr{constructor(t,{caption:e=null,head:r=null,foot:s=null}={}){super("table","Table"),this.structure={caption:e,head:r,body:null,foot:s},t&&this.fromMatrix(t),e&&this.setCaption(e),this.render()}get caption(){return this.structure.caption}get header(){}get body(){}get footer(){}setCaption(t){return this.removeCaption(),this.structure.caption=$n(t),this.append(this.structure.caption),this}removeCaption(){return this.structure.caption&&this.removeItem(...this.items.filter((t=>t instanceof Pn))),this.structure.caption=null,this}setHeader(...t){return this.tHead=((...t)=>(t=t.map((t=>(t instanceof jr||(t=zn(t)),t))),new Rn(...UI)))(...t),this.append(this.tHead),this}removeHeader(){return this.removeItem(...this.items.filter((t=>t instanceof Pn))),this}setFooter(t){return this.structure.caption=$n(t),this.append(this.structure.caption),this}removeFooter(){return this.removeItem(...this.items.filter((t=>t instanceof Pn))),this}fromMatrix(t){return this.bodyMatrix=t instanceof Array?at(t):t,this.structure.body&&this.remove(this.structure.body),this.structure.body=((...t)=>new Nn(...t))(),this.append(this.structure.body),this.structure.body.append(...Hn(this.bodyMatrix)),this}transpose(){return this.fromMatrix(this.bodyMatrix.T),this}hstack(t){return t instanceof Un&&(t=t.bodyMatrix),this.fromMatrix(this.bodyMatrix.clone.hstack(t)),this}vstack(t){return t instanceof Un&&(t=t.bodyMatrix),this.fromMatrix(this.bodyMatrix.clone.vstack(t)),this}slice(t=0,e=0,r=this.bodyMatrix.rows-1,s=this.bodyMatrix.cols-1){return this.fromMatrix(this.bodyMatrix.slice(t,e,r,s)),this}sortByCols(t,e={type:"num",order:"asc"}){return this.fromMatrix(this.bodyMatrix.clone.sortTable(t,e)),this}sortByRows(t,e={type:"num",order:"asc"}){return this.fromMatrix(this.bodyMatrix.T.clone.sortTable(t,e).T),this}filterByRows(t){return this.fromMatrix(this.bodyMatrix.clone.filterByRows(t)),this}filterByCols(t){return this.fromMatrix(this.bodyMatrix.clone.filterByCols(t)),this}forEachRow(t){return this.structure.body.forEach(t),this}forEachItem(t){return this.structure.body.forEach((e=>e.forEach(t))),this}}const qn=(t,e)=>new Un(t,e),Wn={ZikoHtml:ns,text:Nr,p:zr,h1:Hr,h2:Ur,h3:qr,h4:Wr,h5:Zr,h6:Xr,btn:ms,br:Jr,hr:ts,brs:es,hrs:rs,link:ss,ol:ls,ul:cs,input:Ms,search:Ls,slider:Is,checkbox:$s,radio:Hs,datalist:Ts,inputNumber:Ss,inputColor:Rs,inputDate:Ps,inputDateTime:zs,inputEmail:js,inputImage:Os,inputPassword:Vs,inputTime:Ns,select:qs,textarea:fs,inputCamera:en,image:Zs,video:Gs,audio:Js,figure:Ks,Flex:sn,Carousel:dn,Grid:cn,Header:In,Main:Tn,Section:_n,Article:Mn,Aside:On,Nav:Ln,Footer:Sn,Table:qn,CodeCell:wn,CodeNote:gn,Tabs:Fn,Accordion:mn,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}},Zn=t=>t.replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/\[(.*?)\]\((.*?)\)/g,'<a href="$2">$1</a>').replace(/!\[(.*?)\]\((.*?)\)/g,'<img src="$2" alt="$1">'),Xn=t=>`<tr>${t.split("|").map((t=>t.trim())).filter((t=>""!==t)).map((t=>`<td>${Zn(t)}</td>`)).join("")}</tr>\n`,Kn=(t,e)=>{const r=t.slice(1,-1).join("\n");return`<pre>${e?`<code data-language="${e}">${r}</code>`:`<code>${r}</code>`}</pre>\n`},Yn=t=>{const e=t.match(/^\d+\.\s/);if(e){let r=+e[1];return`<ol${1===r?"":` start=${r}`}>\n<li>${Zn(t.slice(e[0].length))}</li>\n</ol>\n`}return`<ul>\n<li>${Zn(t)}</li>\n</ul>\n`},Gn=t=>{const e=t.split("\n");let r="",s=!1,n=!1,i=[],o="";for(let t=0;t<e.length;t++){let a=e[t];if(a.startsWith("|"))s||(s=!0,r+="<table>\n"),r+=Xn(a);else if(s&&(s=!1,r+="</table>\n"),a.startsWith("```"))n?(n=!1,r+=Kn(i,o)):(n=!0,i=[],o=a.slice(3).trim());else if(n)i.push(a);else if(a.startsWith("# ")){const t=a.indexOf(" "),e=a.slice(t+1);r+=`<h${t}>${Zn(e)}</h${t}>\n`}else a.startsWith("- ")||a.startsWith("* ")||a.match(/^\d+\.\s/)?r+=Yn(a):r+=`<p>${Zn(a)}</p>\n`}return r},Qn=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),Jn=(t,e=",")=>new ot(Qn(t,e)),ti=(t,e=",")=>{const[r,...s]=Qn(t,e);return s.map((t=>{const e={};return r.forEach(((r,s)=>{e[r]=t[s]})),e}))},ei=(t,e=",")=>JSON.stringify(ti(t,e)),ri=(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")},si=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ni=(t,e)=>si(t).map((t=>t.join(e))).join("\n"),ii=t=>si(t instanceof Object?t:JSON.parse(t)),oi=(t,e=",")=>ni(t instanceof Object?t:JSON.parse(t),e),ai=(t,e)=>{const r=oi(t,e),s=new Blob([r],{type:"text/csv;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},hi=(t,e)=>{const r=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){r.push(`${e}-`);const s=hi(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=hi(n,`${e} `);r.push(...t)}else r.push(`${e}${s}: ${n}`)}return r},li=(t,e="")=>hi(t,e).join("\n"),ci=(t,e)=>li(t instanceof Object?t:JSON.parse(t),e),ui=(t,e)=>{const r=ci(t,e),s=new Blob([r],{type:"text/yml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},mi=(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?mi(n,e+2):`${n}`,r+=`</${s}>`}return r.trim()},pi=(t,e)=>{const r=mi(t,e),s=new Blob([r],{type:"text/xml;charset=utf-8;"});return{str:r,blob:s,url:URL.createObjectURL(s)}},di=t=>(new XMLSerializer).serializeToString(t),fi=t=>btoa(di(t)),gi=t=>"data:image/svg+xml;base64,"+fi(t),yi=(t,e=!0)=>Zs(gi(t)).render(e);function bi(t){const e={type:t.nodeName,attributes:{},children:[]};for(let r=0;r<t.attributes.length;r++){const s=t.attributes[r];e.attributes[s.name]=s.value}for(let r=0;r<t.childNodes.length;r++){const s=t.childNodes[r];s.nodeType===Node.ELEMENT_NODE?e.children.push(bi(s)):s.nodeType===Node.TEXT_NODE&&(e.text=s.textContent.trim())}return e}const wi=t=>{const e=new XMLHttpRequest;if(e.open("GET",t,!1),e.send(),200===e.status)return e.responseText;throw new Error(`Failed to fetch data from ${t}. Status: ${e.status}`)};globalThis.fetchdom=async function(t="https://github.com/zakarialaoui10"){const e=await fetch(t),r=await e.text();return(new DOMParser).parseFromString(r,"text/xml").documentElement},globalThis.fetchdomSync=function(t="https://github.com/zakarialaoui10"){const e=wi(t);return(new DOMParser).parseFromString(e,"text/xml").documentElement};const xi={parseXML:function(t){return bi((new DOMParser).parseFromString(t,"text/xml").documentElement)},preload:wi,markdown2html:Gn,csv2arr:Qn,csv2matrix:Jn,csv2object:ti,csv2json:ei,csv2sql:ri,json2arr:ii,json2csv:oi,json2csvFile:ai,json2yml:ci,json2ymlFile:ui,json2xml:mi,json2xmlFile:pi,svg2str:di,svg2ascii:fi,svg2imgUrl:gi,svg2img:yi,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class Fi{constructor(){this.cache={}}color({stroke:t,fill:e}){return this.element.setAttribute("stroke",t),this.element.setAttribute("fill",e),this}fill(t="none"){return this.element.setAttribute("fill",t),this}stroke(t="none",e){return this.element.setAttribute("stroke",t),e&&this.strokeWidth(e),this}strokeWidth(t=1){return this.element.setAttribute("stroke-width",t),this}opacity(t=1){return this.element.setAttribute("opacity",t),this}}class vi extends Fi{constructor(t,e,r,s,n=!0){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","rect"),this.setX(t).setY(e).width(r).height(s),this.rx=this.x+this.w/2,this.ty=this.y+this.h/2}setX(t){return this.element.x.baseVal.value=t,this.x=t,this}setY(t){return this.element.y.baseVal.value=t,this.y=t,this}r(t,e){return this.rx=t,this.ry=e,this.setX(this.rx-this.w/2),this.setY(this.ry-this.h/2),this}width(t){return this.element.width.baseVal.value=t,this.w=t,this}height(t){return this.element.height.baseVal.value=t,this.h=t,this}}const Ci=(t,e,r,s,n)=>new vi(t,e,r,s,n);class Ei extends Fi{constructor(t,e,r){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","circle"),this.cx(t).cy(e).r(r)}cx(t){return this.element.cx.baseVal.value=t,this}cy(t){return this.element.cy.baseVal.value=t,this}r(t){return this.element.r.baseVal.value=t,this}get R(){return this.element.r.baseVal.value}get Cx(){return this.element.cx.baseVal.value}get Cy(){return this.element.cy.baseVal.value}}const ki=(t,e,r)=>new Ei(t,e,r);class Ai extends Fi{constructor(t,e,r,s){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","ellipse"),this.cx(t).cy(e).rx(r).ry(s)}cx(t){return this.element.cx.baseVal.value=t,this}cy(t){return this.element.cy.baseVal.value=t,this}rx(t){return this.element.rx.baseVal.value=t,this}ry(t){return this.element.ry.baseVal.value=t,this}}const Di=(t,e,r,s)=>new Ai(t,e,r,s);class Bi extends Fi{constructor(t,e,r,s){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","line"),this.x1(t).y1(e).x2(r).y2(s).stroke("black")}x1(t){return this.element.x1.baseVal.value=t,this}y1(t){return this.element.y1.baseVal.value=t,this}x2(t){return this.element.x2.baseVal.value=t,this}y2(t){return this.element.y2.baseVal.value=t,this}}const _i=(t,e,r,s)=>new Bi(t,e,r,s);class Mi extends Fi{constructor(t=[],e=[]){super(),this.X=t,this.Y=e,this.element=document.createElementNS("http://www.w3.org/2000/svg","polygon"),this.element.setAttribute("points","")}addPoint(t,e){let r=this.element.parentElement.createSVGPoint();return r.x=t,r.y=e,this.element.points.appendItem(r),this}addPoints(t,e){for(let r=0;r<t.length;r++){let s=this.element.parentElement.createSVGPoint();s.x=t[r],s.y=e[r],this.element.points.appendItem(s)}return this}}const Ti=(t,e)=>new Mi(t,e);class Ii extends Fi{constructor(t="",e="100%",r="100%",s=0,n=0){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","image"),this.setSrc(t).width(e).height(r).x(s).y(n)}x(t){return this.element.x.baseVal.value=t,this}y(t){return this.element.y.baseVal.value=t,this}width(t){return this.element.setAttribute("width",t),this}height(t){return this.element.setAttribute("height",t),this}setSrc(t=""){return this.element.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),this}}const Si=(t,e,r,s,n)=>new Ii(t,e,r,s,n);class Li extends Fi{constructor(t,e,r){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","text"),this.setText(t),this.x(e).y(r)}x(t){return this.element.setAttribute("x",t),this}y(t){return this.element.setAttribute("y",t),this}setText(t=""){return this.element.textContent=t,this}}const Oi=(t,e,r)=>new Li(t,e,r);class Vi extends Fi{constructor(...t){super(),this.items=[],this.element=document.createElementNS("http://www.w3.org/2000/svg","g"),this.add(...t)}add(...t){for(let e=0;e<t.length;e++)this.element.appendChild(t[e].element),this.items.push(t[e]);return 1===t.length?t[0]:t}remove(...t){for(let e=0;e<t.length;e++)this.element.removeChild(t[e].element),this.items=this.items.filter((e=>!t));return this}}const ji=(...t)=>new Vi(...t);class Ri extends jr{constructor(t=360,e=300){super(),this.element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.setAttr("width",t),this.setAttr("height",e),this.style({border:"1px black solid"}),this.render()}view(t,e,r,s){let n=Math.abs(r-t),i=Math.abs(s-e);return this.setAttr("viewBox",[t,e,n,i].join(" ")),this}add(...t){for(let e=0;e<t.length;e++)this.element.appendChild(t[e].element),this.items.push(t[e]);return this.maintain(),this}remove(...t){for(let e=0;e<t.length;e++)this.element.removeChild(t[e].element),this.items=this.items.filter((e=>!t));return this.maintain(),this}mask(){}toString(){return(new XMLSerializer).serializeToString(this.element)}btoa(){return btoa(this.toString())}toImg(){return"data:image/svg+xml;base64,"+this.btoa()}toImg2(){return"data:image/svg+xml;charset=utf8,"+this.toString().replaceAll("<","%3C").replaceAll(">","%3E").replaceAll("#","%23").replaceAll('"',"'")}}const Ni=(t,e)=>new Ri(t,e);class Pi extends jr{constructor(t,e){super(),this.element=document.createElement("canvas"),this.ctx=this.element.getContext("2d"),this.style({border:"1px red solid"}),this.transformMatrix=new ot([[1,0,0],[0,1,0],[0,0,1]]),this.axisMatrix=new ot([[-10,-10],[10,10]]),this.render(),setTimeout((()=>this.resize(t,e)),0),this.on("sizeupdated",(()=>this.adjust()))}get Width(){return this.element.width}get Height(){return this.element.height}get Xmin(){return this.axisMatrix[0][0]}get Ymin(){return this.axisMatrix[0][1]}get Xmax(){return this.axisMatrix[1][0]}get Ymax(){return this.axisMatrix[1][1]}get ImageData(){return this.ctx.getImageData(0,0,c.Width,c.Height)}draw(t=!0){return t?(this.clear(),this.items.forEach((t=>{t.parent=this,t.draw(this.ctx)}))):(this.items.at(-1).parent=this,this.items.at(-1).draw(this.ctx)),this.maintain(),this}applyTransformMatrix(){return this.ctx.setTransform(this.transformMatrix[0][0],this.transformMatrix[1][0],this.transformMatrix[0][1],this.transformMatrix[1][1],this.transformMatrix[0][2],this.transformMatrix[1][2]),this}resize(t,e){return this.size(t,e),this.lineWidth(),this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this.emit("sizeupdated"),this}adjust(){return this.element.width=this.element.getBoundingClientRect().width,this.element.height=this.element.getBoundingClientRect().height,this.view(this.axisMatrix[0][0],this.axisMatrix[0][1],this.axisMatrix[1][0],this.axisMatrix[1][1]),this}view(t,e,r,s){return this.transformMatrix[0][0]=this.Width/(r-t),this.transformMatrix[1][1]=-this.Height/(s-e),this.transformMatrix[0][2]=this.Width/2,this.transformMatrix[1][2]=this.Height/2,this.axisMatrix=new ot([[t,e],[r,s]]),this.applyTransformMatrix(),this.clear(),this.lineWidth(1),this.draw(),this}reset(){return this.ctx.setTransform(1,0,0,0,0,0),this}append(t){return this.items.push(t),this.draw(!1),this}background(t){this.ctx.fillStyle=t,this.ctx.setTransform(1,0,0,1,0,0),this.ctx.fillRect(0,0,this.Width,this.Height),this.applyTransformMatrix(),this.draw()}lineWidth(t){return this.ctx.lineWidth=t/this.transformMatrix[0][0],this}ImageData(t=0,e=0,r=this.Width,s=this.Height){return this.ctx.getImageData(t,e,r,s)}clear(){return this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.Width,this.Height),this.applyTransformMatrix(),this}clone(){console.log(this.Width);const t=new Pi;return t.items=this.items,t.transformMatrix=this.transformMatrix,t.axisMatrix=this.axisMatrix,Object.assign(t.cache,{...this.cache}),this.size(element.style.width,element.style.width),this.applyTransformMatrix(),this.draw(),this.adjust(),t}toImage(){return this.img=document.createElement("img"),this.img.src=this.element.toDataURL("image/png"),this}toBlob(){this.element.toBlob((function(t){var e=document.createElement("img"),r=URL.createObjectURL(t);e.onload=function(){URL.revokeObjectURL(r)},e.src=r,console.log(e)}))}zoomIn(){}zoomOut(){}undo(t){}redo(t){}stream(){}}const zi=(t,e)=>new Pi(t,e);class $i{constructor(t,e){this.parent=null,this.position={x:t,y:e},this.cache={interact:null,config:{draggable:!1,selected:!1,highlighted:!1,rendered:!1},style:{normal:{strokeEnabled:!0,fillEnabled:!1,strokeColor:"#111111",fillColor:"#777777"},highlighted:{strokeEnabled:!0,fillEnabled:!1,strokeColor:null,fillColor:null}}},this.history={position:[],styles:[]},this.render()}get px(){return(this.position.x??0)+(this.parent?.position?.x??0)}get py(){return(this.position.y??0)+(this.parent?.position?.y??0)}isIntersectedWith(){}isInStroke(t,e){let r;return this.parent&&(this.parent.ctx.setTransform(1,0,0,1,0,0),r=this.parent.ctx.isPointInStroke(this.path,t,e),this.parent.applyTransformMatrix()),r}isInPath(t,e){let r;return this.parent&&(this.parent.ctx.setTransform(1,0,0,1,0,0),r=this.parent.ctx.isPointInPath(this.path,t,e),this.parent.applyTransformMatrix()),r}posX(t){return this.position.x=t,this.parent&&this.parent.draw(),this}posY(t){return this.position.y=t,this.parent&&this.parent.draw(),this}color({stroke:t=this.cache.style.normal.strokeColor,fill:e=this.cache.style.normal.fillColor}={stroke:t,fill:e}){return this.cache.style.normal.strokeColor=t,this.cache.style.normal.fillColor=e,this.parent&&this.parent.draw(),this}translate(t=0,e=0){this.position.x+=t,this.position.y+=e,this.parent&&this.parent.draw()}applyNormalStyle(t){return t.strokeStyle=this.cache.style.normal.strokeColor,t.fillStyle=this.cache.style.normal.fillColor,this}applyHighlightedStyle(t){return t.strokeStyle=this.cache.style.highlighted.strokeColor,t.fillStyle=this.cache.style.highlighted.fillColor,this}stroke(t=this.cache.style.normal.strokeColor,e=!0){return this.cache.style.normal.strokeEnabled=e,this.cache.style.normal.strokeColor=t,this.parent&&this.parent.draw(),this}fill(t=this.cache.style.normal.fillColor,e=!0){return this.cache.style.normal.fillEnabled=e,this.cache.style.normal.filleColor=t,this.parent&&this.parent.draw(),this}render(t=!0){return this.cache.config.rendered=t,this}}class Hi extends $i{constructor(t,e,r,s){super(t,e),this.r=r,this.angle=s,this.path=null}draw(t){if(this.cache.config.rendered){t.save(),this.applyNormalStyle(t),t.beginPath(),this.path=new Path2D,this.path.arc(this.px,this.py,this.r,0,this.angle);const{strokeEnabled:e,fillEnabled:r}=this.cache.style.normal;e&&t.stroke(this.path),r&&t.fill(this.path),t.closePath(),t.restore()}return this}radius(t){return this.r=t,this.parent&&this.parent.draw(),this}}const Ui=(t,e,r,s)=>new Hi(t,e,r,s),qi=(t,e,r)=>new Hi(t,e,r,2*Math.PI);class Wi extends $i{constructor(t,e){super(),this.pointsMatrix=null,this.path=new Path2D,this.fromXY(t,e)}get points(){return this.pointsMatrix.T.arr}draw(t){if(this.cache.config.rendered){t.save(),this.applyNormalStyle(t),t.beginPath(),this.path.moveTo(this.points[1][0]+this._x,this.points[1][1]+this._y);for(let t=1;t<this.points.length;t++)this.path.lineTo(this.points[t][0]+this._x,this.points[t][1]+this._y);t.stroke(this.path),t.restore()}return this}fromXY(t,e){return this.pointsMatrix=at([t,e]),this}push(t,e){return this.pointsMatrix.hstack(at([t,e])),this.parent&&this.parent.draw(),this}isIn(t,e){let r;return this.parent&&(this.parent.ctx.setTransform(1,0,0,1,0,0),r=this.parent.ctx.isPointInPath(this.path,t,e),this.parent.applyTransformMatrix()),r}}const Zi=(t=[],e=[])=>new Wi(t,e);class Xi extends $i{constructor(t,e,r,s){super(),this.x0=t,this.x1=r,this.y0=e,this.y1=s,delete this.fill}draw(t){return this.cache.config.rendered&&(t.save(),this.applyNormalStyle(t),t.beginPath(),t.moveTo(this.x0+this._x,this.y0+this._y_),t.lineTo(this.x1+this._x,this.y1+this._y),t.stroke(),this.cache.style.normal.strokeEnabled&&t.stroke(),t.restore()),this}}const Ki=(t,e,r,s)=>new Xi(t,e,r,s);class Yi extends $i{constructor(t,e,r,s){super(t,e),this.w=r,this.h=s,this.path=new Path2D}draw(t){if(this.cache.config.rendered){t.save(),this.applyNormalStyle(t),t.beginPath(),this.path.rect(this.px,this.py,this.w,this.h);const{strokeEnabled:e,fillEnabled:r}=this.cache.style.normal;e&&t.stroke(this.path),r&&t.fill(this.path),t.closePath(),t.restore()}return this}width(t){return this.w=t,this.parent&&this.parent.draw(),this}height(t){return this.h=t,this.parent&&this.parent.draw(),this}}const Gi=(t,e,r,s)=>new Yi(t,e,r,s),Qi={Svg:Ni,ZikoUISvg:Ri,svgCircle:ki,svgEllipse:Di,svgImage:Si,svgLine:_i,svgPolygon:Ti,svgRect:Ci,svgText:Oi,svgGroupe:ji,Canvas:zi,canvasArc:Ui,canvasCircle:qi,canvasPoints:Zi,canvasLine:Ki,canvasRect:Gi,ExtractAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"ExtractAll"!==r&&"RemoveAll"!==r&&(globalThis[r]=this[r])}return this},RemoveAll:function(){const t=Object.keys(this);for(let e=0;e<t.length;e++){const r=t[e];"RemoveAll"!==r&&delete globalThis[r]}return this}};class Ji{constructor(t,e){this.root_UI=t,this.routes=new Map([[404,Nr("Error 404")],...Object.entries(e)]),this.patterns=new Map,this.maintain(),window.onpopstate=this.render(location.pathname)}get(t,e){return t instanceof RegExp?this.patterns.set(t,e):this.routes.set(t,e),this.maintain(),this}maintain(){return this.root_UI.append(...this.routes.values()),[...this.routes.values()].map((t=>t.render(!1))),this.render(location.pathname),this}render(t){if(this.routes.get(t))this.routes.get(t).render(!0);else{const e=[...this.patterns.keys()].find((e=>e.test(t)));e?this.patterns.get(e)(t):this.routes.get(404).render(!0)}return window.history.pushState({},"",t),this}}const to=(t,e,r)=>new Ji(t,e,r);var eo=null;globalThis?.document?.body&&(eo=document.body);class ro{constructor(t){this.app=t,this.meta={},this.#w("generator","zikojs")}#w(t,e){const r=document.querySelector(`meta[name=${t}]`);return this.meta=r||document.createElement("meta"),this.meta.setAttribute("name",t),this.meta.setAttribute("content",e),r||this.app.head.append(this.meta),this}charset(t="utf-8"){const e=document.querySelector("meta[charset]");return this.meta=e||document.createElement("meta"),this.meta.setAttribute("charset",t),e||this.app.head.append(this.meta),this}description(t){return this.#w("description",t),this}viewport(t="width=device-width, initial-scale=1.0"){return this.#w("viewport",t),this}keywords(...t){return t.push("zikojs"),t=[...new Set(t)].join(", "),this.#w("keywords",t),this}author(t="",e=""){const r=[t,e].join(", ");return this.#w("author",r),this}}class so extends rn{constructor(){super("main"),this.root=document.documentElement,this.head=null,this.#o(),this.seo=new ro(this),Object.assign(this.events,{hash:null}),Object.assign(this.cache,{theme:null,isRoot:!0}),this.render()}#o(){this.root.setAttribute("data-engine","zikojs");const t=this.root.getElementsByTagName("head")[0];this.head=t||(this.head=document.createElement("head")),t||this.root.insertBefore(this.head,document.body);const e=this.head.getElementsByTagName("title")[0];this.Title=e||document.createElement("title"),e||this.head.append(this.Title)}title(t=this.title.textContent){return this.Title.textContent=t,this}prefetch(){}description(){}onHashChange(...t){return this.events.hash||(this.events.hash=rr(this)),this.events.hash.onChange(...t),this}}const no=(...t)=>(new so).append(...t),io={App:no,Math:Qt,UI:Wn,Time:Lr,Graphics:Qi,Events:nr,Use:Vr,Data:xi,SPA:to};globalThis.__Ziko__=io,globalThis.__UI__={text:[],p:[],pre:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],br:[],hr:[],btn:[],ol:[],ul:[],image:[],video:[],audio:[],Article:[],Main:[],Section:[],Aside:[],Nav:[],Header:[],Footer:[],Flex:[],FlexMain:[],FlexNav:[],FlexHeader:[],FlexFooter:[],FlexSection:[],FLexArticle:[],FlexAside:[],Table:[],Svg:[],Canvas:[]},globalThis.__Target__=eo,t.Accordion=mn,t.App=no,t.Article=Mn,t.Aside=On,t.Base=X,t.Canvas=zi,t.Carousel=dn,t.CodeCell=wn,t.CodeNote=gn,t.Combinaison=G,t.Complex=r,t.DarkThemes=lr,t.Data=xi,t.E=Et,t.EPSILON=kt,t.Ease=Er,t.Events=nr,t.ExtractAll=function(){return Wn.ExtractAll(),Qt.ExtractAll(),Lr.ExtractAll(),nr.ExtractAll(),Vr.ExtractAll(),Qi.ExtractAll(),xi.ExtractAll(),this},t.Fixed=p,t.Flex=sn,t.Footer=Sn,t.Graphics=Qi,t.Grid=cn,t.Header=In,t.LightThemes=hr,t.LinearSystem=ut,t.Logic=K,t.Main=Tn,t.Math=Qt,t.Matrix=ot,t.Nav=Ln,t.PI=Ct,t.Permutation=Y,t.Random=J,t.RemoveAll=function(){Wn.RemoveAll(),Qt.RemoveAll(),Lr.RemoveAll(),nr.RemoveAll(),Vr.RemoveAll(),Qi.RemoveAll(),xi.RemoveAll()},t.SPA=to,t.Section=_n,t.Signal=Gt,t.Svg=Ni,t.Table=qn,t.Tabs=Fn,t.Themes=cr,t.Time=Lr,t.UI=Wn,t.Utils=Ut,t.ZikoHtml=ns,t.ZikoUIArticle=An,t.ZikoUIAside=Dn,t.ZikoUIAudio=Qs,t.ZikoUIBr=Yr,t.ZikoUICanvas=Pi,t.ZikoUICodeNote=fn,t.ZikoUIElement=jr,t.ZikoUIFigure=Xs,t.ZikoUIFooter=Bn,t.ZikoUIHeader=Cn,t.ZikoUIHr=Gr,t.ZikoUIHtmlTag=Kr,t.ZikoUIImage=Ws,t.ZikoUILink=Qr,t.ZikoUIMain=vn,t.ZikoUINav=En,t.ZikoUISection=kn,t.ZikoUISvg=Ri,t.ZikoUIVideo=Ys,t.__init__=()=>document.documentElement.setAttribute("data-engine","zikojs"),t.abs=d,t.accum=h,t.acos=D,t.acosh=O,t.acot=M,t.add=bt,t.animation=Sr,t.arange=St,t.asin=B,t.asinh=V,t.atan=_,t.atan2=z,t.atanh=j,t.audio=Js,t.bessel=(t,e)=>{if("number"==typeof t){if("number"==typeof t)return u(t,e);console.warn("Not supported yet")}else if(t instanceof Array){if("number"==typeof e)return mt((t=>u(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>u(t[s],e)),...e));return r}}},t.beta=(t,e)=>{if("number"==typeof t){if("number"==typeof t)return m(t,e);console.warn("Not supported yet")}else if(t instanceof Array){if("number"==typeof e)return mt((t=>m(t,e)),...t);if(e instanceof Array){const r=[];for(let s=0;s<t.length;s++)r.push(mt((e=>m(t[s],e)),...e));return r}}},t.br=Jr,t.brs=es,t.btn=ms,t.canvasArc=Ui,t.canvasCircle=qi,t.canvasLine=Ki,t.canvasPoints=Zi,t.canvasRect=Gi,t.cartesianProduct=zt,t.ceil=R,t.checkbox=$s,t.choleskyDecomposition=it,t.clamp=It,t.complex=s,t.cos=x,t.cosh=T,t.cot=A,t.coth=L,t.csc=k,t.csv2arr=Qn,t.csv2json=ei,t.csv2matrix=Jn,t.csv2object=ti,t.csv2sql=ri,t.datalist=Ts,t.default=io,t.deg2rad=jt,t.div=Ft,t.e=b,t.fact=$,t.figure=Ks,t.floor=N,t.gamma=(...t)=>mt(l,...t),t.geomspace=Vt,t.h1=Hr,t.h2=Ur,t.h3=qr,t.h4=Wr,t.h5=Zr,t.h6=Xr,t.hr=ts,t.hrs=rs,t.hypot=q,t.image=Zs,t.inRange=Nt,t.input=Ms,t.inputCamera=en,t.inputColor=Rs,t.inputDate=Ps,t.inputDateTime=zs,t.inputEmail=js,t.inputImage=Os,t.inputNumber=Ss,t.inputPassword=Vs,t.inputTime=Ns,t.isApproximatlyEqual=Pt,t.json2arr=ii,t.json2csv=oi,t.json2csvFile=ai,t.json2xml=mi,t.json2xmlFile=pi,t.json2yml=ci,t.json2ymlFile=ui,t.lerp=Mt,t.li=t=>new is(t),t.link=ss,t.linspace=Lt,t.ln=w,t.logspace=Ot,t.loop=Cr,t.luDecomposition=tt,t.map=Tt,t.mapfun=mt,t.markdown2html=Gn,t.matrix=at,t.matrix2=ht,t.matrix3=lt,t.matrix4=ct,t.max=a,t.min=o,t.modulo=vt,t.mul=xt,t.norm=_t,t.nums=Bt,t.ol=ls,t.ones=Dt,t.p=zr,t.pgcd=$t,t.pow=g,t.powerSet=W,t.ppcm=Ht,t.prod=i,t.qrDecomposition=nt,t.rad2deg=Rt,t.radio=Hs,t.round=P,t.search=Ls,t.sec=C,t.select=qs,t.sig=U,t.sign=H,t.sin=F,t.sinc=E,t.sinh=I,t.slider=Is,t.sqrt=f,t.sqrtn=y,t.sub=wt,t.subSet=Z,t.sum=n,t.svg2ascii=fi,t.svg2img=yi,t.svg2imgUrl=gi,t.svg2str=di,t.svgCircle=ki,t.svgEllipse=Di,t.svgGroupe=ji,t.svgImage=Si,t.svgLine=_i,t.svgPolygon=Ti,t.svgRect=Ci,t.svgText=Oi,t.tan=v,t.tanh=S,t.text=Nr,t.textarea=fs,t.timeTaken=Tr,t.time_memory_Taken=Dr,t.ul=cs,t.useDebounce=kr,t.useThrottle=Ar,t.video=Gs,t.wait=Mr,t.waitForUIElm=Br,t.waitForUIElmSync=_r,t.zeros=At,Object.defineProperty(t,"__esModule",{value:!0})}));