ziko 0.41.0 → 0.41.1

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.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  /*
3
3
  Project: ziko.js
4
4
  Author: Zakaria Elalaoui
5
- Date : Tue Aug 19 2025 09:41:09 GMT+0100 (UTC+01:00)
5
+ Date : Fri Aug 22 2025 10:51:33 GMT+0100 (UTC+01:00)
6
6
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
7
7
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
8
8
  Released under MIT License
@@ -1289,7 +1289,7 @@ const DomMethods = {
1289
1289
 
1290
1290
  };
1291
1291
 
1292
- function __addItem__(adder, pusher, ...ele) {
1292
+ async function __addItem__(adder, pusher, ...ele) {
1293
1293
  if (this.cache.isFrozzen) {
1294
1294
  console.warn("You can't append new item to frozzen element");
1295
1295
  return this;
@@ -1315,6 +1315,13 @@ function __addItem__(adder, pusher, ...ele) {
1315
1315
  ele[i].target = this.element;
1316
1316
  this.items[pusher](ele[i]);
1317
1317
  }
1318
+ else if(ele[i] instanceof Promise){
1319
+ const UIEle = await ele[i];
1320
+ UIEle.cache.parent = this;
1321
+ this.element?.[adder](UIEle.element);
1322
+ UIEle.target = this.element;
1323
+ this.items[pusher](UIEle);
1324
+ }
1318
1325
  else if (ele[i] instanceof Object) {
1319
1326
  if (ele[i]?.style) this.style(ele[i]?.style);
1320
1327
  if (ele[i]?.attr) {
@@ -3194,7 +3201,8 @@ const tags = new Proxy({}, {
3194
3201
  if(HTMLTags.includes(tag)) type = 'html';
3195
3202
  if(SVGTags.includes(tag)) type = 'svg';
3196
3203
  return (...args)=>{
3197
- console.log(isStateGetter(args[0]));
3204
+ // Fix undefined
3205
+ // console.log(isStateGetter(args[0]))
3198
3206
  if(
3199
3207
  ['string', 'number'].includes(typeof args[0])
3200
3208
  || args[0] instanceof UIElement
@@ -3648,6 +3656,44 @@ class ZikoUISvg extends UIElement {
3648
3656
 
3649
3657
  const Svg =(w,h)=>new ZikoUISvg(w,h);
3650
3658
 
3659
+ function defineWC(name, UIElement, props = {}, { mode = 'open'} = {}){
3660
+ globalThis.customElements?.define(
3661
+ name,
3662
+ class extends HTMLElement{
3663
+ static observedAttributes = ['style',...Object.keys(props)];
3664
+ constructor(){
3665
+ super();
3666
+ this.attachShadow({ mode });
3667
+ this.props = {};
3668
+ this.mask = {
3669
+ ...props,
3670
+ // ...{
3671
+ // style : { type : Object}
3672
+ // }
3673
+ };
3674
+ }
3675
+ connectedCallback(){
3676
+ this.render();
3677
+ // console.log(this.props)
3678
+ }
3679
+ render(){
3680
+ this.shadowRoot.innerHTML = '';
3681
+ // this.UIElement = UIElement(this.props).render(this.shadowRoot)
3682
+ UIElement({attrs:(key, value) => console.log({key, value})}).render(this.shadowRoot);
3683
+ UIElement(a => console.log(a)).render(this.shadowRoot);
3684
+ // this.UIElement = (()=>{
3685
+ // UIElement(this.props).render(this.shadowRoot);
3686
+ // })()
3687
+ // this.UIElement.setTarget(this.shadowRoot);
3688
+ }
3689
+ attributeChangedCallback(name, _, newValue) {
3690
+ Object.assign(this.props, {[name] : this.mask[name].type(newValue)});
3691
+ this.render();
3692
+ }
3693
+ }
3694
+ );
3695
+ }
3696
+
3651
3697
  const svg2str=svg=>(new XMLSerializer()).serializeToString(svg);
3652
3698
  const svg2ascii=svg=>btoa(svg2str(svg));
3653
3699
  const svg2imgUrl=svg=>'data:image/svg+xml;base64,'+svg2ascii(svg);
@@ -5933,6 +5979,7 @@ exports.csv2object = csv2object;
5933
5979
  exports.csv2sql = csv2sql;
5934
5980
  exports.debounce = debounce;
5935
5981
  exports.defineParamsGetter = defineParamsGetter;
5982
+ exports.defineWC = defineWC;
5936
5983
  exports.deg2rad = deg2rad;
5937
5984
  exports.div = div;
5938
5985
  exports.e = e;
package/dist/ziko.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /*
3
3
  Project: ziko.js
4
4
  Author: Zakaria Elalaoui
5
- Date : Tue Aug 19 2025 12:50:26 GMT+0100 (UTC+01:00)
5
+ Date : Fri Aug 22 2025 10:51:33 GMT+0100 (UTC+01:00)
6
6
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
7
7
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
8
8
  Released under MIT License
@@ -3205,7 +3205,8 @@
3205
3205
  if(HTMLTags.includes(tag)) type = 'html';
3206
3206
  if(SVGTags.includes(tag)) type = 'svg';
3207
3207
  return (...args)=>{
3208
- console.log(isStateGetter(args[0]));
3208
+ // Fix undefined
3209
+ // console.log(isStateGetter(args[0]))
3209
3210
  if(
3210
3211
  ['string', 'number'].includes(typeof args[0])
3211
3212
  || args[0] instanceof UIElement
@@ -3659,6 +3660,44 @@
3659
3660
 
3660
3661
  const Svg =(w,h)=>new ZikoUISvg(w,h);
3661
3662
 
3663
+ function defineWC(name, UIElement, props = {}, { mode = 'open'} = {}){
3664
+ globalThis.customElements?.define(
3665
+ name,
3666
+ class extends HTMLElement{
3667
+ static observedAttributes = ['style',...Object.keys(props)];
3668
+ constructor(){
3669
+ super();
3670
+ this.attachShadow({ mode });
3671
+ this.props = {};
3672
+ this.mask = {
3673
+ ...props,
3674
+ // ...{
3675
+ // style : { type : Object}
3676
+ // }
3677
+ };
3678
+ }
3679
+ connectedCallback(){
3680
+ this.render();
3681
+ // console.log(this.props)
3682
+ }
3683
+ render(){
3684
+ this.shadowRoot.innerHTML = '';
3685
+ // this.UIElement = UIElement(this.props).render(this.shadowRoot)
3686
+ UIElement({attrs:(key, value) => console.log({key, value})}).render(this.shadowRoot);
3687
+ UIElement(a => console.log(a)).render(this.shadowRoot);
3688
+ // this.UIElement = (()=>{
3689
+ // UIElement(this.props).render(this.shadowRoot);
3690
+ // })()
3691
+ // this.UIElement.setTarget(this.shadowRoot);
3692
+ }
3693
+ attributeChangedCallback(name, _, newValue) {
3694
+ Object.assign(this.props, {[name] : this.mask[name].type(newValue)});
3695
+ this.render();
3696
+ }
3697
+ }
3698
+ );
3699
+ }
3700
+
3662
3701
  const svg2str=svg=>(new XMLSerializer()).serializeToString(svg);
3663
3702
  const svg2ascii=svg=>btoa(svg2str(svg));
3664
3703
  const svg2imgUrl=svg=>'data:image/svg+xml;base64,'+svg2ascii(svg);
@@ -5944,6 +5983,7 @@
5944
5983
  exports.csv2sql = csv2sql;
5945
5984
  exports.debounce = debounce;
5946
5985
  exports.defineParamsGetter = defineParamsGetter;
5986
+ exports.defineWC = defineWC;
5947
5987
  exports.deg2rad = deg2rad;
5948
5988
  exports.div = div;
5949
5989
  exports.e = e;
package/dist/ziko.min.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  Project: ziko.js
3
3
  Author: Zakaria Elalaoui
4
- Date : Tue Aug 19 2025 09:41:09 GMT+0100 (UTC+01:00)
4
+ Date : Fri Aug 22 2025 10:51:33 GMT+0100 (UTC+01:00)
5
5
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
6
6
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
7
7
  Released under MIT License
8
8
  */
9
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,(function(t){"use strict";const{PI:e,E:s}=Math,r=Number.EPSILON,{PI:i,cos:n,sin:a,tan:o,acos:h,asin:l,atan:u,cosh:m,sinh:p,tanh:f,acosh:d,asinh:g,atanh:b,log:w}=Math;let y={cos:n,sin:a,tan:o,sinc:t=>a(i*t)/(i*t),sec:t=>1/n(t),csc:t=>1/a(t),cot:t=>1/o(t),acos:h,asin:l,atan:u,acot:t=>i/2-u(t),cosh:m,sinh:p,tanh:f,coth:t=>.5*w((1+t)/(1-t)),acosh:d,asinh:g,atanh:b};y=new Proxy(y,{get(t,e){if(e in t)return s=>+t[e](s).toFixed(15)}});class v{}const x=(t,...e)=>{const s=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=>x(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(x(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],x(t,e[1])])));if(e instanceof _s)return new _s(e.rows,e.cols,x(e.arr.flat(1)));if(e instanceof ks){const[s,r,i,n]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return Ts(Ms(i),n);case Math.exp:return Ts(Is(s)*js(r),Is(s)*Ds(r));case Math.abs:return i;case Math.sqrt:return Ts(Os(i)*js(n/2),Os(i)*Ds(n/2));case y.cos:return Ts(js(s)*Ps(r),-Ds(s)*Ls(r));case y.sin:return Ts(Ds(s)*Ps(r),js(s)*Ls(r));case y.tan:{const t=js(2*s)+Ps(2*r);return Ts(Ds(2*s)/t,Ls(2*r)/t)}case y.cosh:return Ts(Ps(s)*js(r),Ls(s)*Ds(r));case y.sinh:return Ts(Ls(s)*js(r),Ps(s)*Ds(r));case y.tanh:{const t=Ps(2*s)+js(2*r);return Ts(Ls(2*s)/t,Ds(2*r)/t)}default:return t(e)}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],x(t,e[1])])))}));return 1==s.length?s[0]:s},_=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof ks)return Ts(t+e.a,e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>O(e,t)))}else{if(t instanceof ks||t instanceof _s)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=>O(t,e)));if(t.length===e.length)return t.map(((t,s)=>O(t,e[s])))}}},E=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof ks)return Ts(t-e.a,-e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>S(e,t)))}else{if(t instanceof ks||t instanceof _s)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=>S(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>S(t,e[s])))}}},k=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof ks)return Ts(t*e.a,t*e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>C(t,e)))}else{if(t instanceof ks||t instanceof _s)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=>C(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>C(t,e[s])))}}},T=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof ks)return Ts(t/e.a,t/e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof ks||t instanceof _s)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=>I(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>I(t,e[s])))}}},A=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof ks)return Ts(t%e.a,t%e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof ks||t instanceof _s)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=>O(t,e)))}},O=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=_(s,e[t]);return s},S=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=E(s,e[t]);return s},C=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=k(s,e[t]);return s},I=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=T(s,e[t]);return s},M=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=A(s,e[t]);return s},j=t=>new Array(t).fill(0),D=t=>new Array(t).fill(1),R=(t,e)=>new Array(e).fill(t),P=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof _s)return new _s(t.rows,t.cols,P(t.arr.flat(1),e,s));if(t instanceof ks)return new ks(P(t.a,e,s),P(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>P(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=P(t[s])}}},L=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof _s)return new _s(t.rows,t.cols,L(t.arr.flat(1),e,s));if(t instanceof ks)return new ks(L(t.a,e,s),L(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>L(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=L(t[s])}}},$=(t,e,s,r,i)=>{if("number"==typeof t)return L(P(t,e,s),r,i);if(t instanceof _s)return new _s(t.rows,t.cols,$(t.arr.flat(1),e,s,r,i));if(t instanceof ks)return new ks($(t.a,s,r,i),$(t.b,e,s,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>$(t,e,s,r,i)));{let n=new Array(t.length);for(let a=0;a<t.length;a++)n[a]=$(t[a],e,s,r,i)}}},B=(t,e,s)=>{const[r,i]=[V(e,s),Y(e,s)];if("number"==typeof t)return V(Y(t,r),i);if(t instanceof _s)return new _s(t.rows,t.cols,B(t.arr.flat(1),r,i));if(t instanceof ks)return new ks(B(t.a,r,i),B(t.b,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>B(t,r,i)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=B(t[s],r,i)}}},z=(t,e,s,r=!1)=>{let i=[];if(t<e)for(let n=t;r?n<=e:n<e;n+=s)i.push(10*n/10);else for(let n=t;r?n>=e:n>e;n-=s)i.push(10*n/10);return i},N=(t,e,s=As(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[a,o]=[t,e].sort(((t,e)=>e-t));var i=[];let h;h=r?(a-o)/(s-1):(a-o)/s;for(var n=0;n<s;n++)t<e?i.push(o+h*n):i.push(a-h*n);return i}if([t,e].some((t=>t instanceof ks))){const i=Ts(t),n=Ts(e);s=s||Math.abs(i.a-n.a)+1;const a=N(i.a,n.a,s,r),o=N(i.b,n.b,s,r);let h=new Array(s).fill(null);return h=h.map(((t,e)=>Ts(a[e],o[e]))),h}}},Z=(t,e,r=e-t+1,i=s,n=!0)=>N(t,e,r,n).map((t=>Ss(i,t))),H=(t,e,s=As(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[i,n]=[t,e].sort(((t,e)=>e-t));let a;a=Cs(i/n,r?s-1:s);const o=[n];for(let t=1;t<s;t++)o.push(o[t-1]*a);return t<e?o:o.reverse()}if([t,e].some((t=>t instanceof ks))){const i=Ts(t),n=Ts(e);let a;s=s||Math.abs(i.a-n.a)+1,a=Cs(n.div(i),r?s-1:s);const o=[i];for(let t=1;t<s;t++)o.push(C(o[t-1],a));return o}}},F=(...t)=>mapfun((t=>t*Math.PI/180),...t),U=(...t)=>mapfun((t=>t/Math.PI*180),...t),W=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e+=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(W(...t[s])):t[s]instanceof Object&&e.push(W(...Object.values(t[s])));return 1===e.length?e[0]:e},q=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e*=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(q(...t[s])):t[s]instanceof Object&&e.push(q(...Object.values(t[s])));return 1===e.length?e[0]:e},V=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.min(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>t[1]-e[1]))[0]]));return 1===e.length?e[0]:e},Y=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.max(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>e[1]-t[1]))[0]]));return 1===e.length?e[0]:e},G=(...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 s=0;s<t.length;s++)t[s]instanceof Array?e.push(G(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},X=(t,e,s)=>{const[r,i]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=i},K=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Q=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),J=(t,e)=>{let s,r=1;if(t==$s(t)&&e==$s(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},tt=(t,e)=>{let s;if(t==$s(t)&&e==$s(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},et={add:O,sub:S,mul:C,div:I,modulo:M,zeros:j,ones:D,nums:R,norm:P,lerp:L,map:$,clamp:B,arange:z,linspace:N,logspace:Z,geomspace:H,sum:W,prod:q,accum:G,cartesianProduct:Q,ppcm:tt,pgcd:J,deg2rad:F,rad2deg:U,inRange:X,isApproximatlyEqual:K},st={_mode:Number,_map:function(t,e,s){return e instanceof _s?new _s(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof ks?new ks(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"),s=e[0],r=2**(+("0b"+e.slice(1,9))-127);return(-1)**s*(1+e.slice(9,32).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r},IEEE64toDec(t){let e=t.split(" ").join("").padEnd(64,"0"),s=e[0],r=2**(+("0b"+e.slice(1,12))-1023);return(-1)**s*(1+e.slice(13,64).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r}},rt={_mode:Number,_map:function(t,e,s){return e instanceof _s?new _s(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof ks?new ks(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)?rt._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?rt._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?rt._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 s=[t,...e];return["number","boolean"].includes(typeof t)?this._mode(1===s.reduce(((t,e)=>(1==+e&&(t+=1),t)),0)):this._map(this.xor,t,e)},xnor:function(t,...e){return rt.not(rt.xor(t,e))}};class it{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withDiscount(t.slice(i),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}static withoutDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withoutDiscount(t.slice(i+1),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}}class nt{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 s=new Array(100);e=et.accum(...e).map((t=>100*t)),s.fill(t[0],0,e[0]);for(let r=1;r<t.length;r++)s.fill(t[r],e[r-1],e[r]);return s[this.int(s.length-1)]}static shuffleArr(t){return t.sort((()=>.5-Math.random()))}static shuffleMatrix(t){const{rows:e,cols:s,arr:r}=t;return Es(e,s,r.flat().sort((()=>.5-Math.random())))}static floats(t,e,s){return new Array(t).fill(0).map((()=>this.float(e,s)))}static ints(t,e,s){return new Array(t).fill(0).map((()=>this.int(e,s)))}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,s){return new Array(t).fill(0).map((()=>this.choice(e,s)))}static perm(...t){return t.permS[this.int(t.length)]}static color(){return"#"+st.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 ks(this.float(t[0],t[1]),this.float(e[0],e[1])):new ks(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new ks(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new ks(...this.bins(2))}static complexOct(){return new ks(...this.octs(2))}static complexDec(){return new ks(...this.decs(10))}static complexHex(){return new ks(...this.octs(2))}static complexes(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complex(e,s)))}static complexesInt(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complexInt(e,s)))}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,s,r){return Es(t,e,this.floats(t*e,s,r))}static matrixInt(t,e,s,r){return Es(t,e,this.ints(t*e,s,r))}static matrixBin(t,e){return Es(t,e,this.bins(t*e))}static matrixOct(t,e){return Es(t,e,this.octs(t*e))}static matrixDec(t,e){return Es(t,e,this.decs(t*e))}static matrixHex(t,e){return Es(t,e,this.hex(t*e))}static matrixColor(t,e){return Es(t,e,this.colors(t*e))}static matrixComplex(t,e,s,r){return Es(t,e,this.complexes(t*e,s,r))}static matrixComplexInt(t,e,s,r){return Es(t,e,this.complexesInt(t*e,s,r))}static matrixComplexBin(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return Es(t,e,this.complexesBin(t*e))}}const at=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),ot=(t,e=",")=>{const[s,...r]=at(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},ht=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ct=(t,e)=>ht(t).map((t=>t.join(e))).join("\n"),lt=(t,e=",")=>ct(t instanceof Object?t:JSON.parse(t),e),ut=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=ut(t,`${e} `);s.push(...r)}else s.push(`${e}- ${t}`)}));else for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];if("object"==typeof i&&null!==i){s.push(`${e}${r}:`);const t=ut(i,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${i}`)}return s},mt=(t,e="")=>ut(t,e).join("\n"),pt=(t,e)=>mt(t instanceof Object?t:JSON.parse(t),e),ft=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof i?ft(i,e+2):`${i}`,s+=`</${r}>`}return s.trim()};class dt{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}function gt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}function bt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r?Object.defineProperty(t,e,r):"function"==typeof r.value?t[e]=r.value.bind(t):t[e]=r.value}}(t,e)))}globalThis.node=t=>new dt(t);function wt(t){let e=t;const s=new Set;let r=!1;return[function(){return{value:e,isStateGetter:()=>!0,_subscribe:t=>{s.add(t)}}},function(t){r||("function"==typeof t&&(t=t(e)),t!==e&&(e=t,s.forEach((t=>t(e)))))},{pause:()=>{r=!0},resume:()=>{r=!1},clear:()=>{s.clear()},force:t=>{"function"==typeof t&&(t=t(e)),e=t,s.forEach((t=>t(e)))},getSubscribers:()=>new Set(s)}]}const yt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),vt=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),xt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)},_t={setAttr(t,e){if(t instanceof Object){const[s,r]=[Object.keys(t),Object.values(t)];for(let t=0;t<s.length;t++)r[t]instanceof Array&&(e[t]=r[t].join(" ")),Et.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Et.call(this,t,e);return this},removeAttr(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},getAttr(t){return t=xt(t)?vt(t):t,this.element.attributes[t].value},setContentEditable(t=!0){return this.setAttr("contenteditable",t),this}};function Et(t,e){if("svg"!==this.element?.tagName&&(t=xt(t)?vt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(yt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}class kt extends dt{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const Tt=(...t)=>new kt(...t),At={append(...t){return Ot.call(this,"append","push",...t),this},prepend(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},insertAt(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=Tt(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},remove(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isZikoUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter((e=>e!==t))};for(let s=0;s<t.length;s++)e(t[s]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},clear(){return this?.items?.forEach((t=>t.unrender())),this.element.innerHTML="",this},render(t=this.target){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element),this},unrender(){return this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target?.children].includes(this.element)&&this.target.removeChild(this.element),this},renderAfter(t=1){return setTimeout((()=>this.render()),t),this},unrenderAfter(t=1){return setTimeout((()=>this.unrender()),t),this},after(t){return t?.isZikoUIElement&&(t=t.element),this.element?.after(t),this},before(t){return t?.isZikoUIElement&&(t=t.element),this.element?.before(t),this}};function Ot(t,e,...s){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let r=0;r<s.length;r++){if(["number","string"].includes(typeof s[r])&&(s[r]=Tt(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=Tt(t.value),t._subscribe((t=>s[r].element.textContent=t),s[r]))}"function"==typeof globalThis?.Node&&s[r]instanceof globalThis?.Node&&(s[r]=new this.constructor(s[r])),s[r]?.isZikoUINode?(s[r].cache.parent=this,this.element?.[t](s[r].element),s[r].target=this.element,this.items[e](s[r])):s[r]instanceof Object&&(s[r]?.style&&this.style(s[r]?.style),s[r]?.attr&&Object.entries(s[r].attr).forEach((t=>this.setAttr(""+t[0],t[1]))))}return this.maintain(),this}const St={Click:["Click","DblClick"],Ptr:["PtrMove","PtrDown","PtrUp","PtrLeave","PtrEnter","PtrOut","PtrCancel"],Mouse:["MouseMove","MouseDown","MouseUp","MouseEnter","MouseLeave","MouseOut"],Key:["KeyDown","KeyPress","KeyUp"],Clipboard:["Copy","Cut","Paste"],Focus:["focus","blur"],Drag:["Drag","DragStart","DragEnd","Drop"],Wheel:["Wheel"]},Ct=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();function It(t,e,s,r,i){this.cache.currentEvent=e,this.cache.event=t,s?.call(this),r?.hasOwnProperty("prototype")?r?.call(this):r?.call(null,this),this.cache.preventDefault[e]&&t.preventDefault(),this.cache.stopPropagation[e]&&t.stopPropagation(),this.cache.stopImmediatePropagation[e]&&t.stopImmediatePropagation(),this.cache.stream.enabled[e]&&i&&this.cache.stream.history[e].push(i),this.cache.callbacks[e]?.map((t=>t(this)))}class Mt{constructor(t=null,e=[],s,r){this.target=t,this.cache={currentEvent:null,event:null,options:{},preventDefault:{},stopPropagation:{},stopImmediatePropagation:{},event_flow:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{},__controllers__:{}},e&&this._register_events(e,s,r)}_register_events(t,e,s,r=!0){const i=t?.map((t=>Ct(t)));return i?.forEach(((i,n)=>{Object.assign(this.cache.preventDefault,{[i]:!1}),Object.assign(this.cache.options,{[i]:{}}),Object.assign(this.cache.paused,{[i]:!1}),Object.assign(this.cache.stream.enabled,{[i]:!1}),Object.assign(this.cache.stream.clear,{[i]:!1}),Object.assign(this.cache.stream.history,{[i]:[]}),Object.assign(this.cache.__controllers__,{[i]:t=>It.call(this,t,i,e,s)}),r&&Object.assign(this,{[`on${t[n]}`]:(...t)=>this.__onEvent(i,this.cache.options[i],{},...t)})})),this}get targetElement(){return this.target?.element}get isParent(){return this.target?.element===this.event.srcElement}get item(){return this.target.find((t=>t.element==this.event?.srcElement))?.[0]}get currentEvent(){return this.cache.currentEvent}get event(){return this.cache.event}setTarget(t){return this.target=t,this}__handle(t,e,s,r){return this.targetElement?.addEventListener(t,e,s),this}__onEvent(t,e,s,...r){if(0===r.length){if(console.log("00"),!this.cache.callbacks[t])return this;console.log("Call"),this.cache.callbacks[t].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.cache.__controllers__[t],e,s),this}#t(t,e,s){"default"===s&&Object.assign(this.cache[t],{...this.cache[t],...e});const r="default"===s?this.cache[t]:Object.fromEntries(Object.keys(this.cache.preventDefault).map((t=>[t,s])));return Object.assign(this.cache[t],{...r,...e}),this}preventDefault(t={},e="default"){return this.#t("preventDefault",t,e),this}stopPropagation(t={},e="default"){return this.#t("stopPropagation",t,e),this}stopImmediatePropagation(t={},e="default"){return this.#t("stopImmediatePropagation",t,e),this}setEventOptions(t,e){return this.pause({[t]:!0},"default"),Object.assign(this.cache.options[Ct(t)],e),this.resume({[t]:!0},"default"),this}pause(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.removeEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!0);return this}resume(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.addEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!1);return this}stream(t={},e="default"){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(){return this}dispose(t={},e="default"){return this.pause(t,e),this}}class jt extends Mt{constructor(t,e){super(t,St.Click,Dt,e)}}function Dt(){"click"===this.currentEvent?this.dx=0:this.dx=1}const Rt=(t,e)=>new jt(t,e);class Pt extends Mt{constructor(t,e){super(t,St.Clipboard,Lt,e)}}function Lt(){}const $t=(t,e)=>new Pt(t,e);class Bt extends Mt{constructor(t,e,s){super(t,e,zt,s)}_register_events(t){return super._register_events(t,null,null,!1),this}emit(t,e={}){const s=new Event(t);return this.targetElement.dispatchEvent(s),this}on(t,...e){return this.cache.options.hasOwnProperty(t)||this._register_events([t]),this.__onEvent(t,this.cache.options[t],{},...e),this}}function zt(){}class Nt extends Mt{constructor(t,e){super(t,St.Drag,Zt,e)}}function Zt(){}const Ht=(t,e)=>new Nt(t,e);class Ft extends Mt{constructor(t,e){super(t,St.Focus,Ut,e)}}function Ut(){}const Wt=(t,e)=>new Ft(t,e);let qt=class extends Mt{constructor(t,e){super(t,St.Hash,Vt,e)}};function Vt(){}class Yt extends Mt{constructor(t,e){super(t,St.Key,Gt,e)}}function Gt(){switch(this.currentEvent){case"keydown":this.kd=this.event.key;break;case"keypress":this.kp=this.event.key;break;case"keyup":this.ku=this.event.key}}const Xt=(t,e)=>new Yt(t,e);class Kt extends Mt{constructor(t,e){super(t,St.Mouse,Qt,e)}}function Qt(){}const Jt=(t,e)=>new Kt(t,e);class te extends Mt{constructor(t,e){super(t,St.Ptr,ee,e),this.isDown=!1}}function ee(){switch(this.currentEvent){case"pointerdown":this.dx=parseInt(this.event.offsetX),this.dy=parseInt(this.event.offsetY),this.isDown=!0;break;case"pointermove":this.mx=parseInt(this.event.offsetX),this.my=parseInt(this.event.offsetY),this.isMoving=!0;break;case"pointerup":{this.ux=parseInt(this.event.offsetX),this.uy=parseInt(this.event.offsetY),this.isDown=!1,console.log(this.target.width);const t=(this.ux-this.dx)/this.target.width,e=(this.dy-this.uy)/this.target.height,s=t<0?"left":t>0?"right":"none",r=e<0?"bottom":e>0?"top":"none";this.swippe={h:s,v:r,delta_x:t,delta_y:e}}}}const se=(t,e)=>new te(t,e);class re extends Mt{constructor(t,e){super(t,St.Touch,ie,e)}}function ie(){}class ne extends Mt{constructor(t,e){super(t,St.Wheel,ae,e)}}function ae(){}const oe=(t,e)=>new ne(t,e),he={ptr:se,mouse:Jt,key:Xt,click:Rt,drag:Ht,clipboard:$t,focus:Wt,wheel:oe},ce={};Object.entries(St).forEach((([t,e])=>{e.forEach((e=>{const s=`on${e}`;ce[s]=function(...e){return this.events[t]||(this.events[t]=he[t.toLowerCase()](this)),this.events[t][s](...e),this}}))}));const le={at(t){return this.items.at(t)},forEach(t){return this.items.forEach(t),this},map(t){return this.items.map(t)},find(t){return this.items.filter(t)}},ue={style(t){for(let e in t){const s=t[e];if(yt(s)){const t=s();Object.assign(this.element.style,{[e]:t.value}),t._subscribe((t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})}))}else Object.assign(this.element.style,{[e]:s})}return this},size(t,e){return this.style({width:t,height:e})},hide(){},show(){},animate(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this}};function me(t,e,s,r){return this.event=t,this.cache.preventDefault[e]&&t.preventDefault(),console.log({setter:s}),s&&s(),this.cache.stream.enabled[e]&&r&&this.cache.stream.history[e].push(r),this.cache.callbacks[e].map((t=>t(this))),this}class pe{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,s){const r="drag"===t?t:`${this.cache.prefixe}${t}`;return this.dispose(s),this.targetElement?.addEventListener(r,e),this}__onEvent(t,e,...s){if(0===s.length){if(!(this.cache.callbacks.length>1))return this;this.cache.callbacks.map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=s.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 fe(t){me.call(this,t,"input",null,null)}function de(t){me.call(this,t,"change",null,null)}class ge extends pe{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:fe.bind(this),change:de.bind(this)}}get value(){return this.target.value}onInput(...t){return this.__onEvent("input",{},...t),this}onChange(...t){return this.__onEvent("change",{},...t),this}}function be(t){me.call(this,t,"hashchange",null,null)}class we extends pe{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:be.bind(this)}}onChange(...t){return this.__onEvent("hashchange",{},...t),this}}const ye=t=>function(e){me.call(this,e,t,null,null)};class ve extends pe{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{}},this.__controller={}}#e(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]=ye(t).bind(this),this}on(t,...e){return this.__controller[t]||this.#e(t),this.__onEvent(t,{},...e),this}emit(t,e={}){this.__controller[t]||this.#e(t),this.detail=e;const s=new Event(t);return this.targetElement.dispatchEvent(s),this}}const xe=t=>new ve(t);class _e extends pe{constructor(t,e=.3,s=.3){super(t);const{removeListener:r,setWidthThreshold:i,setHeightThreshold:n}=function(t,e=.5,s=.5,r,i){let n=L(e,0,r),a=L(s,0,i),o=0,h=0,c=0,l=0;const u=t=>{o=t.clientX,h=t.clientY},m=t=>{c=t.clientX,l=t.clientY,p()};function p(){const t=c-o,e=l-h;(Math.abs(t)>n||Math.abs(e)>a)&&f(t,e)}function f(e,s){const o=globalThis?.CustomEvent?new CustomEvent("swipe",{detail:{deltaX:As(e)<n?0:zs(e)*P(As(e),0,r),deltaY:As(s)<a?0:zs(s)*P(As(s),0,i),direction:{x:As(e)<n?"none":e>0?"right":"left",y:As(s)<a?"none":s>0?"down":"up"}}}):null;t?.dispatchEvent(o)}function d(t){n=L(t,0,r)}function g(t){a=L(t,0,i)}return t?.addEventListener("pointerdown",u),t?.addEventListener("pointerup",m),{removeListener(){t?.removeEventListener("pointerdown",u),t?.removeEventListener("pointerup",m),console.log("Swipe event listeners removed")},setWidthThreshold:d,setHeightThreshold:g}}(this.target?.element,e,s,this.target.width,this.target.height);this.cache={width_threshold:e,height_threshold:s,removeListener:r,setWidthThreshold:i,setHeightThreshold:n,legacyTouchAction:globalThis?.document?.body?.style?.touchAction,prefixe:"",preventDefault:{swipe:!1},paused:{swipe:!1},stream:{enabled:{swipe:!1},clear:{swipe:!1},history:{swipe:[]}},callbacks:{swipe:[]}},this.__controller={swipe:Ee.bind(this)}}onSwipe(...t){return Object.assign(globalThis?.document?.body?.style,{touchAction:"none"}),this.__onEvent("swipe",{},...t),this}updateThresholds(t=this.cache.width_threshold,e=this.cache.height_threshold){return void 0!==t&&this.cache.setWidthThreshold(t),void 0!==e&&this.cache.setHeightThreshold(e),this}destroy(){return this.cache.removeListener(),Object.assign(globalThis?.document?.body?.style,{touchAction:this.cache.legacyTouchAction}),this}}function Ee(t){me.call(this,t,"swipe",null,null)}const ke=(t,e,s)=>new _e(t,e,s);class Te{constructor(t,e){this.target=t,this.observer=null,this.cache={options:e||{attributes:!0,childList:!0,subtree:!0},streamingEnabled:!0,lastMutation:null,mutationHistory:{}},this.observeCallback=(t,e)=>{if(this.cache.streamingEnabled)for(const e of t)switch(e.type){case"attributes":this.cache.mutationHistory.attributes.push(e.target.getAttribute(e.attributeName));break;case"childList":this.cache.mutationHistory.childList.push(e);break;case"subtree":this.cache.mutationHistory.subtree.push(e)}this.callback&&this.callback(t,e)}}observe(t){if(!this.observer){if(!globalThis.MutationObserver)return void console.log("MutationObserver Nor Supported");this.observer=new MutationObserver(this.cache.observeCallback),this.observer.observe(this.target.element,this.cache.options),this.callback=([e])=>t.call(e,this),this.cache.streamingEnabled=!0}}pause(t){this.observer&&(this.observer.disconnect(),t&&this.observer.observe(this.target,t))}reset(t){this.observer&&(this.observer.disconnect(),this.observer.observe(this.target,t||this.cache.options))}clear(){return this.observer&&(this.observer.disconnect(),this.observer=null,this.cache.mutationHistory={attributes:[],childList:[],subtree:[]}),this.cache.streamingEnabled=!1,this}getMutationHistory(){return this.cache.mutationHistory}enableStreaming(){return this.cache.streamingEnabled=!0,this}disableStreaming(){return this.cache.streamingEnabled=!1,this}}class Ae extends Te{constructor(t,e){super(t,{attributes:!0,childList:!1,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)this.cache.lastMutation={name:e.attributeName,value:e.target.getAttribute(e.attributeName)},this.cache.streamingEnabled&&this.cache.mutationHistory.attributes.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.attributes=[],e&&this.observe(e)}get history(){return this.cache.mutationHistory.attributes}}const Oe=(t,e)=>new Ae(t,e);class Se extends Te{constructor(t,e){super(t,{attributes:!1,childList:!0,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)e.addedNodes?this.cache.lastMutation={type:"add",item:this.target.find((t=>t.element===e.addedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}:e.addedNodes&&(this.cache.lastMutation={type:"remove",item:this.target.find((t=>t.element===e.removedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}),this.cache.streamingEnabled&&this.cache.mutationHistory.children.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.children=[],e&&this.observe(e)}get item(){return this.cache.lastMutation.item}get history(){return this.cache.mutationHistory.children}}const Ce=(t,e)=>new Se(t,e);class Ie{constructor(t,e,{threshold:s=0,margin:r=0}={}){this.target=t,this.config={threshold:s,margin:r},globalThis.IntersectionObserver?this.observer=new IntersectionObserver((t=>{this.entrie=t[0],e(this)}),{threshold:this.threshold}):console.log("IntersectionObserver Not Supported")}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}}const Me=(t,e,s)=>new Ie(t,e,s);class je{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}}const De=(t,e)=>new je(t,e);class Re{constructor(t=(t=>console.log({x:t.x,y:t.y}))){this.cache={},this.previousX=globalThis?.screenX,this.previousY=globalThis?.screenY}update(){Object.assign(this.cache,{screenXLeft:globalThis?.screenX,screenXRight:globalThis?.screen.availWidth-globalThis?.screenX,screenYTop:globalThis?.screenY,screenYBottom:globalThis?.screen.availHeight-globalThis?.screenY-globalThis?.outerHeight,screenCenterX:globalThis?.screen.availWidth/2,screenCenterY:globalThis?.screen.availHeight/2,windowCenterX:globalThis?.outerWidth/2+globalThis?.screenX,windowCenterY:globalThis?.outerHeight/2+globalThis?.screenY,deltaCenterX:globalThis?.screen.availWidth/2-globalThis?.outerWidth/2+globalThis?.screenX,deltaCenterY:null})}get x0(){return $(globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get y0(){return-$(globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}get x1(){return $(globalThis?.screenX+globalThis?.outerWidth,0,globalThis.screen.availWidth,-1,1)}get y1(){return-$(globalThis?.screenY+globalThis?.outerHeight,0,globalThis.screen.availHeight,-1,1)}get cx(){return $(globalThis?.outerWidth/2+globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get cy(){return-$(globalThis?.outerHeight/2+globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}}class Pe{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 s=r=>{this.off(t,s),e(r)};this.on(t,s)}off(t,e){const s=this.events[t];if(s){const t=s.indexOf(e);-1!==t&&s.splice(t,1)}}emit(t,e){const s=this.events[t];s&&s.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 Le=()=>new Pe;class $e{constructor(t,e=!0){this.#e(),this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}#e(){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=Le(),this}}const Be=(t,e)=>new $e(t,e);class ze{constructor({viewport:t,charset:e,description:s,author:r,keywords:i}){this.document=globalThis?.document,this.meta={},this.init({viewport:t,charset:e,description:s,author:r,keywords:i})}init({viewport:t,charset:e,description:s,author:r,keywords:i}){t&&this.setViewport(t),e&&this.setCharset(e),s&&this.describe(s),r&&this.setAuthor(r),i&&this.setKeywords(i)}set(t,e){const s="charset"===(t=t.toLowerCase()),r=s?document.querySelector("meta[charset]"):document.querySelector(`meta[name=${t}]`);return this.meta=r??document?.createElement("meta"),s?this.meta.setAttribute("charset",e):(this.meta.setAttribute("name",t),this.meta.setAttribute("content",e)),r||this.document.head.append(this.meta),this}setCharset(t="utf-8"){return this.set("charset",t),this}describe(t){return this.set("description",t),this}setViewport(t="width=device-width, initial-scale=1.0"){return this.set("viewport",t),this}setKeywords(...t){return t=[...new Set(t)].join(", "),this.set("keywords",t),this}setAuthor(t){return this.set("author",t),this}}const Ne=({viewport:t,charset:e,description:s,author:r,keywords:i})=>new ze({viewport:t,charset:e,description:s,author:r,keywords:i});class Ze{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=Le(),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}}const He=(t,e)=>new Ze(t,e);class Fe{constructor({title:t,lang:e,icon:s,meta:r,noscript:i}){this.html=globalThis?.document?.documentElement,this.head=globalThis?.document?.head,t&&He(t),e&&this.setLang(e),s&&Be(s),r&&Ne(r),i&&this.setNoScript()}setLang(t){this.html.setAttribute("lang",t)}setNoScript(t){}}const Ue=({title:t,lang:e,icon:s,meta:r,noscript:i})=>new Fe({title:t,lang:e,icon:s,meta:r,noscript:i});class We{constructor(t=[],e=(()=>{})){this.mediaQueryRules=t,this.fallback=e,this.lastCalledCallback=null,this.init()}init(){this.mediaQueryRules.forEach((({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.mediaQueryRules.some((({query:t})=>globalThis.matchMedia(t).matches));s.matches?(e(),this.lastCalledCallback=e):t||this.lastCalledCallback===this.fallback||(this.fallback(),this.lastCalledCallback=this.fallback)};r(),s.addListener(r)}))}}const qe={__all__(){return Object.values(this).filter(Array.isArray).flat()},querySelectorAll(){return this.__all__().filter((t=>t))},getElementByIndex(t){return this.__all__().find((e=>e.ui_index===t))},getElementById:t=>null,getElementsByClass(){},getElementsByTagName(){}},Ve={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},Ye={map:new Map,index:0,increment:function(){return this.index++}},Ge=new Map,Xe={ui_index:0,get_ui_index:function(){return this.ui_index++}};var Ke;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:qe,__HYDRATION__:Ye,__HYDRATION_MAP__:Ge,__Config__:Ve,__CACHE__:Xe},Ke=__Ziko__,Object.defineProperties(Ke,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class Qe extends dt{constructor({element:t,name:e="",type:s="html",useDefaultStyle:r=!1}={}){if(super(),this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);default:throw Error("Not supported")}else this.target=t?.parentElement;((t,...e)=>{"function"==typeof t?gt(t,...e):bt(t,...e)})(this,_t,At,ue,le,ce),Object.assign(this.cache,{name:e,isInteractive:[!0,!1][Math.floor(2*Math.random())],parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,legacyParent:null,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.uuid=`${this.cache.name}-${nt.string(16)}`,this.ui_index=globalThis.__Ziko__.__CACHE__.get_ui_index(),r&&this.style({position:"relative",boxSizing:"border-box",margin:0,padding:0,width:"auto",height:"auto"}),this.items=[],globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&globalThis.__Ziko__.__Config__.default.render&&this?.render?.(),this.isInteractive()&&(this.setAttr("ziko-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.map.set(globalThis.__Ziko__.__HYDRATION__.index,(()=>this)),globalThis.__Ziko__.__HYDRATION__.increment())}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}isZikoUIElement(){return!0}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}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)}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}freeze(t){return this.cache.isFrozzen=t,this}setTarget(t){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.unrender(),this.target=t,this.render(),this}describe(t){t&&this.setAttr("aria-label",t)}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.setAttr("id",t),this}get id(){return this.element.getAttribute("id")}onSwipe(t,e,...s){return this.events.swipe||(this.events.swipe=ke(this,t,e)),this.events.swipe.onSwipe(...s),this}on(t,...e){return this.events.custom||(this.events.custom=xe(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=xe(this)),this.events.custom.emit(t,e),this}watchAttr(t){return this.observer.attr||(this.observer.attr=Oe(this,t)),this}watchChildren(t){return this.observer.children||(this.observer.children=Ce(this,t)),this}watchSize(t){return this.observer.resize||(this.observer.resize=De(this,t)),this.observer.resize.start(),this}watchIntersection(t,e){return this.observer.intersection||(this.observer.intersection=Me(this,t,e)),this.observer.intersection.start(),this}}const Je=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],ts=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],es=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Je.includes(r)&&(s="html"),ts.includes(r)&&(s="svg"),(...t)=>(console.log(yt(t[0])),["string","number"].includes(typeof t[0])||t[0]instanceof Qe||"function"==typeof t[0]&&t[0]().isStateGetter()?new Qe({element:r,name:r,type:s}).append(...t):new Qe({element:r}).setAttr(t.shift()).append(...t))}});class ss extends Qe{constructor(t="div",e="100%",s="100%"){super({element:t,name:"Flex"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({width:e,height:s}),this.style({display:"flex"})}get isFlex(){return!0}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,s=1){return rs.call(this,s),this.style({alignItems:"number"==typeof t?ns.call(this,t):t,justifyContent:"number"==typeof e?as.call(this,e):e}),this}horizontal(t,e,s=1){return is.call(this,s),this.style({alignItems:"number"==typeof e?as.call(this,e):e,justifyContent:"number"==typeof t?ns.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function rs(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function is(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ns(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function as(t){return ns(-t)}class os extends Qe{constructor(t="div",e="50vw",s="50vh"){super({element:t,name:"Grid"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({border:"1px solid black",width:e,height:s}),this.style({display:"grid"})}get isGird(){return!0}columns(t){let e="";for(let s=0;s<t;s++)e=e.concat(" auto");return this.#s(e),this}#s(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}}class hs extends Qe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unrender(),this.append(s)}catch(t){console.log({error:t})}})()}}class cs extends Qe{constructor(t,e){super({element:"div",name:""}),this.element.append("svg"===e?function(t){if(globalThis?.DOMParser){return(new DOMParser).parseFromString(t.replace(/\s+/g," ").trim(),"image/svg+xml").documentElement}}(t):function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t))}}class ls extends cs{constructor(t){super(t,"html")}}class us extends cs{constructor(t){super(t,"svg")}}class ms extends Qe{constructor(t,e){super("canvas","canvas"),this.ctx=this.element?.getContext("2d"),this.style({border:"1px red solid"}),this.transformMatrix=new _s([[1,0,0],[0,1,0],[0,0,1]]),this.axisMatrix=new _s([[-10,-10],[10,10]]),requestAnimationFrame((()=>this.resize(t,e)),0),this.on("sizeupdated",(()=>this.adjust()))}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,s,r){return this.transformMatrix[0][0]=this.width/(s-t),this.transformMatrix[1][1]=-this.height/(r-e),this.transformMatrix[0][2]=this.width/2,this.transformMatrix[1][2]=this.height/2,this.axisMatrix=new _s([[t,e],[s,r]]),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}getImageData(t=0,e=0,s=this.width,r=this.height){return this.ctx.getImageData(t,e,s,r)}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 ms;return t.items=this.items,t.transformMatrix=this.transformMatrix,t.axisMatrix=this.axisMatrix,Object.assign(t.cache,{...this.cache}),this.size(this.element.style.width,this.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"),s=URL.createObjectURL(t);e.onload=function(){URL.revokeObjectURL(s)},e.src=s,console.log(e)}))}zoomIn(){}zoomOut(){}undo(t){}redo(t){}stream(){}}class ps extends Qe{constructor(t=360,e=300){super("svg","svg"),this.style({border:"1px black solid"}),this.size(t,e),this.view(-10,-10,10,10)}size(t,e){return this.setAttr({width:t,height:e}),this}view(t,e,s,r){let i=Math.abs(s-t),n=Math.abs(r-e);return this.setAttr("viewBox",[t,e,i,n].join(" ")),this.st.scaleY(-1),this}add(...t){for(let e=0;e<t.length;e++)this.element.append(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 fs=t=>(new XMLSerializer).serializeToString(t),ds=t=>btoa(fs(t)),gs=t=>"data:image/svg+xml;base64,"+ds(t),bs=t=>JSON.stringify(x((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof ks||t instanceof _s?t.toString():t instanceof Array?ys(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),ws=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=ws(s);t+1>e&&(e=t+1)}return e},ys=t=>{let e=0;return function t(s){let r=ws(s),i=0;return s.some((t=>Array.isArray(t)))&&(e++,i=1),"["+s.map(((r,i)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof ks?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${i===s.length-1?"\n":""}`:r instanceof Object?bs(r):void 0))+`${" ".repeat((r+e+1)*i)}]`}(t)},vs=(t,e=0)=>{t=xs(t);let s="";const r=" ".repeat(e);for(let i in t)if("object"==typeof t[i]){s+=`${r}${i} {\n`;const n=t[i];for(let t in n)"object"==typeof n[t]?s+=vs({[t]:n[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${n[t]};\n`;s+=`${r}}\n`}return s};function xs(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=xs(t[s]),e)),Array.isArray(t)?[]:{})}class _s extends v{constructor(t,e,s=[]){if(super(),t instanceof _s)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,i,n=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,n=arguments[0];else for(r=0;r<t;r++)for(n.push([]),n[r].push(new Array(e)),i=0;i<e;i++)n[r][i]=s[r*e+i],null==s[r*e+i]&&(n[r][i]=0);this.rows=t,this.cols=e,this.arr=n}this.#r()}toString(){return ys(this.arr)}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 _s(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new _s(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}get clone(){return new _s(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 _s(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new _s(this.cols,this.rows,this.arr.flat(1).imag)}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#r(){for(let t=0;t<this.arr.length;t++)Object.defineProperty(this,t,{value:this.arr[t],writable:!0,configurable:!0,enumerable:!1})}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,s){if(-1==e)return this.arr[t]=s;if(-1==t){for(let t=0;t<this.cols;t++)this.arr[t][e]=s[t]||0;return this.arr}return this.arr[t][e]=s}get isSquare(){return this.rows/this.cols==1}get isSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==_s.sub(e,t).max&&0==_s.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==_s.add(e,t).max&&0==_s.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,s=_s.mul(e,t),r=_s.dot(t,e);return 0==_s.sub(s,r).max&&0==_s.sub(s,r).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=_s.dot(t,t);return 0==_s.sub(e,t).max&&0==_s.sub(e,t).min}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new _s(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 s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}return function e(s){if(2==s.length)return s.flat(1).some((t=>t instanceof _s))?void console.warn("Tensors are not completely supported yet ..."):et.sub(et.mul(s[0][0],s[1][1]),et.mul(s[0][1],s[1][0]));for(var r=0,i=0;i<s.length;i++){const n=et.add(et.mul(Ss(-1,i),et.mul(s[0][i],e(t(s,i)))));r=et.add(r,n)}return r}(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,s=0,r=0,i=t.length,n=0,a=[],o=[];for(e=0;e<i;e+=1)for(a[a.length]=[],o[o.length]=[],r=0;r<i;r+=1)a[e][r]=e==r?1:0,o[e][r]=t[e][r];for(e=0;e<i;e+=1){if(0==(n=o[e][e])){for(s=e+1;s<i;s+=1)if(0!=o[s][e]){for(r=0;r<i;r++)n=o[e][r],o[e][r]=o[s][r],o[s][r]=n,n=a[e][r],a[e][r]=a[s][r],a[s][r]=n;break}if(0==(n=o[e][e]))return}for(r=0;r<i;r++)o[e][r]=o[e][r]/n,a[e][r]=a[e][r]/n;for(s=0;s<i;s++)if(s!=e)for(n=o[s][e],r=0;r<i;r++)o[s][r]-=n*o[e][r],a[s][r]-=n*a[e][r]}return a}(this.arr);return new _s(this.rows,this.cols,t.flat(1))}static zeros(t,e){let s=new _s(t,e);for(let i=0;i<t;i++)for(var r=0;r<e;r++)s.arr[i][r]=0;return s}static ones(t,e){let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new _s(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)r.arr[i][t]=s;return r}static get rand(){return{int:(t,e,s,r)=>{let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.randInt(s,r);return i},bin:(t,e)=>{let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randBin;return s},hex:(t,e)=>{let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randHex;return s},choices:(t,e,s,r)=>{let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.choice(s,r);return i},permutation:(t,e,s)=>{}}}static rands(t,e,s=1,r){let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.rand(s,r);return i}map(t,e,s,r){return et.map(this,t,e,s,r)}lerp(t,e){return et.lerp(this,t,e)}norm(t,e){return et.norm(this,t,e)}clamp(t,e){return et.clamp(this,t,e)}static map(t,e,s,r,i){return et.map(t,e,s,r,i)}static lerp(t,e,s){return et.lerp(t,e,s)}static norm(t,e,s){return et.norm(t,e,s)}static clamp(t,e,s){return et.clamp(Es,e,s)}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}get toBin(){let t=this.arr.flat(1).toBin;return new _s(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new _s(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new _s(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new _s(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new _s(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new _s(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new _s(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))),s=this.arr.filter(((t,s)=>!0===e[s]));return 0===s.length&&s.push([]),console.log(s),new _s(s)}filterByCols(t){return new _s(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new _s(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 _s(this.rows,this.cols,e)}#i(t){if(this.rows!==t.rows)return;let e=this.arr;for(let s=0;s<this.rows;s++)for(let r=this.cols;r<this.cols+t.cols;r++)e[s][r]=t.arr[s][r-this.cols];return this.cols+=t.cols,new _s(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#i(e)));return Object.assign(this,e),this}static hstack(t,...e){return t.clone.hstack(...e)}#n(t){if(this.cols!==t.cols)return;let e=this.arr;for(let s=this.rows;s<this.rows+t.rows;s++){e[s]=[];for(let r=0;r<this.cols;r++)e[s][r]=t.arr[s-this.rows][r]}return this.rows+=t.rows,new _s(this.rows,this.cols,e.flat(1))}vstack(...t){const e=[this,...t].reduce(((t,e)=>t.#n(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.#i(e)));return Object.assign(this,e),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#n(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,s=this.rows-1,r=this.cols-1){let i=s-t,n=r-e,a=new Array(n);for(let s=0;s<i;s++){a[s]=[];for(let r=0;r<n;r++)a[s][r]=this.arr[s+t][r+e]}return new _s(i,n,a.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,i=this.cols-1){return t.slice(e,s,r,i)}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}static getRows(t,e,s=e+1){return t.slice(e,0,s,t.cols)}static getCols(t,e,s=e+1){return t.slice(0,e,t.rows,s)}add(...t){for(let s=0;s<t.length;s++){("number"==typeof t[s]||t[s]instanceof ks)&&(t[s]=_s.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]=et.add(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.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]=et.sub(this.arr[r][e],t[s].arr[r][e])}return new _s(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 r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=_s.nums(this.rows,this.cols,t[r]));for(var e=0;e<this.rows;e++)for(var s=0;s<this.cols;s++)this.arr[e][s]=et.mul(this.arr[e][s],t[r].arr[e][s])}return new _s(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.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]=et.div(this.arr[r][e],t[s].arr[r][e])}return new _s(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 s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.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]=et.modulo(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}static modulo(t,...e){return t.clone.modulo(...e)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var i=0;i<this.arr[0].length;i++)e[s][r]=et.add(e[s][r],et.mul(this.arr[s][i],t.arr[i][r]))}}return new _s(this.arr.length,t.arr[0].length,e.flat(1))}static dot(t,e){return t.dot(e)}pow(t){let e=this.clone,s=this.clone;for(let r=0;r<t-1;r++)s=s.dot(e);return s}static pow(t,e){return t.clone.pow(e)}get somme(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t+=this.arr[e][s];return t}get DoesItContainComplexNumbers(){return this.arr.flat(1/0).some((t=>t instanceof ks))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...this.arr[e]));return V(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Y(...this.arr[e]));return Y(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...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(Y(...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 _s(t.length,1,t)}get toArray(){let t=[];for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t.push(this.arr[e][s]);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 _s(t.rows,t.cols);return e.arr=t.arr,e}toTable(){var t=new DocumentFragment,e=new Array(this.rows).fill(null).map((()=>document?.createElement("tr"))),s=this.arr.map((t=>t.map((()=>document?.createElement("td")))));for(let t=0;t<s.length;t++)for(let r=0;r<s[0].length;r++)s[t][r].innerHTML=this.arr[t][r],e[t].appendChild(s[t][r]);return e.map((e=>t.appendChild(e))),t}toGrid(t,e={}){let s=Grid();return s.append(...this.map(t).arr.flat(1).map((t=>t.style(e)))),s.Columns(this.cols),s}sortTable(t=0,{type:e="num",order:s="asc"}={}){var r=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e}))))),i=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e})))));"num"===e?"asc"===s?r[t].sort(((t,e)=>t.x-e.x)):"desc"===s?r[t].sort(((t,e)=>e.x-t.x)):"toggle"===s&&(r[t][0].x>r[t][1].x?r[t].sort(((t,e)=>e.x-t.x)):r[t].sort(((t,e)=>t.x-e.x))):"alpha"===e&&("asc"===s?r[t].sort(((t,e)=>(""+t.x).localeCompare(""+e.x))):"desc"===s&&r[t].sort(((t,e)=>(""+e.x).localeCompare(""+t.x)))),s=r[t].map((t=>t.y));for(let e=0;e<r.length;e++)e!==t&&r[e].map(((t,e)=>t.y=s[e]));for(let e=0;e<r.length;e++)e!==t&&i[e].map(((t,i)=>t.x=r[e][s[i]].x));i[t]=r[t];var n=i.map((t=>t.map((t=>t.x))));return new _s(n).T}}const Es=(t,e,s)=>new _s(t,e,s);class ks extends v{constructor(t=0,e=0){super(),t instanceof ks?(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=Os(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*Rs(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=Os(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/Rs(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*js(t.phi),this.a=t.z*Ds(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}get clone(){return new ks(this.a,this.b)}get z(){return Ns(this.a,this.b)}get phi(){return Bs(this.b,this.a)}static Zero(){return new ks(0,0)}get conj(){return new ks(this.a,-this.b)}get inv(){return new ks(this.a/(Ss(this.a,2)+Ss(this.b,2)),-this.b/(Ss(this.a,2)+Ss(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+W(...e).toFixed(15),this.b+=+W(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+W(...e).toFixed(15),this.b-=+W(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=+q(this.z,...t.map((t=>t.z))).toFixed(15),s=+W(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*js(s).toFixed(15)).toFixed(14),this.b=+(e*Ds(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=+(this.z/q(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-W(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*js(s).toFixed(15)).toFixed(15),this.b=+(e*Ds(s).toFixed(15)).toFixed(15),this}pow(t){if($s(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*js(s).toFixed(15)).toFixed(15),this.b=+(e*Ds(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new ks(+(t*js(e)).toFixed(13),+(t*Ds(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 Ts(t**this.a*js(this.b*Ms(t)),t**this.a*Ds(this.b*Ms(t)))}sqrtn(t=2){return Ts(Cs(this.z,t)*js(this.phi/t),Cs(this.z,t)*Ds(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return Ts(this.z,this.phi)}get cos(){return Ts(js(this.a)*Ps(this.b),Ds(this.a)*Ls(this.b))}get sin(){return Ts(Ds(this.a)*Ps(this.b),js(this.a)*Ls(this.b))}get tan(){const t=js(2*this.a)+Ps(2*this.b);return Ts(Ds(2*this.a)/t,Ls(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 Ts=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>Ts(t[r],e[r])));if(t instanceof _s&&e instanceof _s){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>Ts(t.arr[r],e.arr[r])));return new _s(t.rows,t.cols,...s)}return new ks(t,e)},As=(...t)=>x(Math.abs,...t),Os=(...t)=>x(Math.sqrt,...t),Ss=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof ks?ks.fromExpo(t**e.a,e.b*Ms(t)):x((e=>Ss(t,e)),...e);if(t instanceof ks)return"number"==typeof e?ks.fromExpo(t.z**e,t.phi*e):e instanceof ks?ks.fromExpo(t.z**e.a*Is(-t.phi*e.b),Ms(t.z)*e.b+e.a*t.phi):x((e=>Ss(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Ss(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ss(t[r],e)),...e));return s}}},Cs=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):x((e=>Cs(t,e)),...e);if(t instanceof ks)return"number"==typeof e?ks.fromExpo(Cs(t.z,e),t.phi/e):x((e=>Cs(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Cs(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Cs(t[r],e)),...e));return s}}},Is=(...t)=>x(Math.exp,...t),Ms=(...t)=>x(Math.log,...t),js=(...t)=>x(y.cos,...t),Ds=(...t)=>x(y.sin,...t),Rs=(...t)=>x(y.tan,...t),Ps=(...t)=>x(y.cosh,...t),Ls=(...t)=>x(y.sinh,...t),$s=(...t)=>x(Math.floor,...t),Bs=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:x((e=>Bs(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Bs(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ss(t[r],e)),...e));return s}}},zs=(...t)=>x(Math.sign,...t),Ns=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?x(Math.hypot,...t):void 0,{PI:Zs,sqrt:Hs,cos:Fs,sin:Us,acos:Ws,pow:qs}=Math,Vs=t=>t,Ys=(t,e=7.5625,s=2.75)=>t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375;class Gs{constructor(t,{ease:e=Vs,step:s=50,t0:r=0,start:i=!0,duration:n=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:i,duration:n},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#a=()=>{this.t+=this.state.step,this.i++,this.tx=$(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#o(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#a,this.state.step)),this}start(){return this.#o(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#o(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class Xs{constructor(t,e){this.ms=t,this.fn=e,this.id=null,this.running=!1}start(){return this.running||(this.running=!0,this.id=setInterval(this.fn,this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class Ks extends Xs{constructor(t=1e3/60){super(t,(()=>this._tick())),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class Qs{constructor(t=[],{repeat:e=1,loop:s=!1}={}){this.tasks=t,this.repeat=e,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map((({fn:t,delay:e=0})=>new Promise((async s=>{e>0&&await new Promise((t=>setTimeout(t,e))),this.onTask&&this.onTask(t),await t(),s()})))));else{const{fn:e,delay:s=0}=t;s>0&&await new Promise((t=>setTimeout(t,s))),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class Js{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:i=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:i,pauseTime:null,frame:0},i&&(s?this.startAfter(s):this.start(),r!==1/0&&this.stopAfter(r))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout((()=>this.start()),t),this}stopAfter(t=1e3){return setTimeout((()=>this.stop()),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}class tr{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.render(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isZikoUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}setHead(t){return this.head=t instanceof Fe?t:Ue(t),this}}function er(t){return/:\w+/.test(t)}class sr extends tr{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",Tt("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.render(location.pathname)}clear(){return[...this.routes].forEach((t=>{!er(t[0])&&t[1]?.isZikoUIElement&&t[1].unrender()})),this}render(t){const[e,s]=[...this.routes].find((e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(!e.startsWith(":")&&e!==i)return!1}return!0}(e[0],t)));let r;if(er(e)){const i=function(t,e){const s=t.split("/"),r=e.split("/"),i={};if(s.length!==r.length)return i;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(e.startsWith(":"))i[e.slice(1)]=n;else if(e!==n)return{}}return i}(e,t);r=s.call(this,i)}else s?.isZikoUIElement&&s.render(this.wrapper),"function"==typeof s&&(r=s());return r?.isZikoUIElement&&r.render(this.wrapper),r instanceof Promise&&r.then((t=>t.render(this.wrapper))),globalThis.history.pushState({},"",t),this}}const rr=({head:t,wrapper:e,target:s,routes:r})=>new sr({head:t,wrapper:e,target:s,routes:r});function ir(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),i=e.split("/"),n=r.indexOf(i[i.length-1]);if(-1!==n){const t=r.slice(n+1),e=t[t.length-1],i="index.js"===e||"index.ts"===e,a=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(i)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class nr{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"+nt.string(10),this.SUBSCRIBERS=new Set([this.UUID])}get broadcast(){return this}emit(t,e){return this.EVENTS_DATAS_PAIRS.set(t,e),this.#h(t),this}on(t,e=console.log){return this.EVENTS_HANDLERS_PAIRS.set(t,e),this.#c(),this}#c(){return this.channel.onmessage=t=>{this.LAST_RECEIVED_EVENT=t.data.last_sended_event;const e=t.data.userId;this.SUBSCRIBERS.add(e);const s=t.data.EVENTS_DATAS_PAIRS.get(this.LAST_RECEIVED_EVENT),r=this.EVENTS_HANDLERS_PAIRS.get(this.LAST_RECEIVED_EVENT);s&&r&&r(s)},this}#h(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 ar=t=>new nr(t);class or{#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,s=!0){return this.worker.postMessage({fun:t.toString(),close:s}),this.worker.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data.result)},this}}class hr{constructor(t,{namespace:e="Ziko",register:s,ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(let s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#r(),this}#r(){const t=globalThis?.document?.documentElement?.style;for(let e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}class cr{constructor(t,e,s){this.cache={storage:t,globalKey:e,channel:ar(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#e(s),this.#r()}get items(){return JSON.parse(this.cache.storage[this.cache.globalKey]??null)}#r(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#e(t){this.cache.channel=ar(`Ziko:useStorage-${this.cache.globalKey}`),this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#r())),t&&(this.cache.storage[this.cache.globalKey]?(Object.keys(this.items).forEach((t=>this.cache.oldItemKeys.add(t))),console.group("Ziko:useStorage"),console.warn(`Storage key '${this.cache.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.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel.emit("Ziko-Storage-Updated",{}),Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#r(),this}add(t){const e={...this.items,...t};return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(e)),this.#r(),this}remove(...t){const e={...this.items};for(let s=0;s<t.length;s++)delete e[t[s]],delete this[t[s]];return this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#r(),this}}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new tr({head:t,wrapper:e,target:s}),t.Arc=t=>1-Us(Ws(t)),t.Back=(t,e=1)=>t**2*((e+1)*t-e),t.Base=st,t.Canvas=(t,e)=>new ms(t,e),t.Clock=Ks,t.Combinaison=it,t.Complex=ks,t.Discret=(t,e=5)=>Math.ceil(t*e)/e,t.E=s,t.EPSILON=r,t.Elastic=t=>-2*qs(2,10*(t-1))*Fs(20*Zs*t/3*t),t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map((t=>t.split("/"))),s=Math.min(...e.map((t=>t.length)));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every((e=>e[t]===s||e[t].startsWith("["))))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let i=0;i<e.length;i++){const n=await t[e[i]](),a=await n.default;Object.assign(r,{[ir(e[i],s)]:a})}return rr({target:document.body,routes:{"/":()=>{},...r},wrapper:es.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new ss(e).append(...t)},t.Grid=(...t)=>new os("div").append(...t),t.HTMLWrapper=t=>new ls(t),t.InBack=(t,e=1.70158,s=e+1)=>s*qs(t,3)-e*t**2,t.InBounce=(t,e=7.5625,s=2.75)=>1-Ys(1-t,e,s),t.InCirc=t=>1-Hs(1-t**2),t.InCubic=t=>t**3,t.InElastic=(t,e=2*Zs/3)=>0===t?0:1===t?1:-qs(2,10*t-10)*Us((10*t-10.75)*e),t.InExpo=t=>0===t?0:2**(10*t-10),t.InOutBack=(t,e=1.70158,s=1.525*e)=>t<.5?qs(2*t,2)*(2*(s+1)*t-s)/2:(qs(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.InOutBounce=(t,e=7.5625,s=2.75)=>t<.5?Ys(1-2*t,e,s)/2:Ys(2*t-1,e,s)/2,t.InOutCirc=t=>t<.5?(1-Hs(1-(2*t)**2))/2:(Hs(1-(-2*t+2)**2)+1)/2,t.InOutCubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.InOutElastic=(t,e=2*Zs/4.5)=>0===t?0:1===t?1:t<.5?-qs(2,20*t-10)*Us((20*t-11.125)*e)/2:qs(2,-20*t+10)*Us((20*t-11.125)*e)/2+1,t.InOutExpo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.InOutQuad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.InOutQuart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.InOutQuint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.InOutSin=t=>-(Fs(Zs*t)-1)/2,t.InQuad=t=>t**2,t.InQuart=t=>t**4,t.InQuint=t=>t**5,t.InSin=t=>1-Fs(t*Zs/2),t.Linear=Vs,t.Logic=rt,t.Matrix=_s,t.OutBack=(t,e=1.70158,s=e+1)=>1+s*qs(t-1,3)+e*qs(t-1,2),t.OutBounce=Ys,t.OutCirc=t=>Hs(1-(t-1)**2),t.OutCubic=t=>1-(1-t)**3,t.OutElastic=(t,e=2*Zs/3)=>0===t?0:1===t?1:qs(2,-10*t)*Us((10*t-.75)*e)+1,t.OutExpo=t=>1===t?1:1-2**(-10*t),t.OutQuad=t=>1-(1-t)**2,t.OutQuart=t=>1-(1-t)**4,t.OutQuint=t=>1-(1-t)**5,t.OutSin=t=>Us(t*Zs/2),t.PI=e,t.Permutation=class{static withDiscount(t,e=t.length){if(1===e)return t.map((t=>[t]));const s=[];let r;return r=this.withDiscount(t,e-1),t.forEach((t=>{r.forEach((e=>{s.push([t].concat(e))}))})),s}static withoutDiscount(t){if(1===t.length)return t.map((t=>[t]));const e=[],s=this.withoutDiscount(t.slice(1)),r=t[0];for(let t=0;t<s.length;t++){const i=s[t];for(let t=0;t<=i.length;t++){const s=i.slice(0,t),n=i.slice(t);e.push(s.concat([r],n))}}return e}},t.Random=nt,t.SPA=rr,t.SVGWrapper=t=>new us(t),t.Scheduler=(t,{repeat:e=null}={})=>new Qs(t,{repeat:e}),t.Step=(t,e=5)=>Math.floor(t*e)/e,t.Suspense=(t,e)=>new hs(t,e),t.Svg=(t,e)=>new ps(t,e),t.Tick=Xs,t.TimeAnimation=Gs,t.TimeLoop=Js,t.TimeScheduler=Qs,t.UIElement=Qe,t.UINode=dt,t.Utils=et,t.ZikoApp=tr,t.ZikoCustomEvent=ve,t.ZikoEventClick=jt,t.ZikoEventClipboard=Pt,t.ZikoEventCustom=Bt,t.ZikoEventDrag=Nt,t.ZikoEventFocus=Ft,t.ZikoEventInput=ge,t.ZikoEventKey=Yt,t.ZikoEventMouse=Kt,t.ZikoEventPointer=te,t.ZikoEventSwipe=_e,t.ZikoEventTouch=re,t.ZikoEventWheel=ne,t.ZikoHead=Fe,t.ZikoMutationObserver=Te,t.ZikoSPA=sr,t.ZikoUICanvas=ms,t.ZikoUIFlex=ss,t.ZikoUIGrid=os,t.ZikoUIHTMLWrapper=ls,t.ZikoUISVGWrapper=us,t.ZikoUISuspense=hs,t.ZikoUISvg=ps,t.ZikoUIText=kt,t.ZikoUIXMLWrapper=cs,t.ZikoUseRoot=hr,t.__ZikoEvent__=Mt,t.abs=As,t.accum=G,t.acos=(...t)=>x(y.acos,...t),t.acosh=(...t)=>x(y.acosh,...t),t.acot=(...t)=>x(y.acot,...t),t.add=O,t.animation=(t,{ease:e,t0:s,t1:r,start:i,duration:n}={})=>new Gs(t,{ease:e,t0:s,t1:r,start:i,duration:n}),t.arange=z,t.arr2str=ys,t.asin=(...t)=>x(y.asin,...t),t.asinh=(...t)=>x(y.asinh,...t),t.atan=(...t)=>x(y.atan,...t),t.atan2=Bs,t.atanh=(...t)=>x(y.atanh,...t),t.bindClickEvent=Rt,t.bindClipboardEvent=$t,t.bindCustomEvent=(t,e,s)=>new Bt(t,e,s),t.bindDragEvent=Ht,t.bindFocusEvent=Wt,t.bindHashEvent=(t,e)=>new qt(t,e),t.bindKeyEvent=Xt,t.bindMouseEvent=Jt,t.bindPointerEvent=se,t.bindTouchEvent=(t,e)=>new re(t,e),t.bindWheelEvent=oe,t.cartesianProduct=Q,t.ceil=(...t)=>x(Math.ceil,...t),t.clamp=B,t.clock=t=>new Ks(t),t.combinaison=(t,e,s=!1)=>it[s?"withDiscount":"withoutDiscount"](t,e),t.complex=Ts,t.cos=js,t.cosh=Ps,t.cot=(...t)=>x(y.cot,...t),t.coth=(...t)=>x(y.coth,...t),t.csc=(...t)=>x(y.csc,...t),t.csv2arr=at,t.csv2json=(t,e=",")=>JSON.stringify(ot(t,e)),t.csv2matrix=(t,e=",")=>new _s(at(t,e)),t.csv2object=ot,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter((t=>t));let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,i=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");i.push(`(${e})`)}return r+i.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout((()=>t(...s)),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.deg2rad=F,t.div=I,t.e=Is,t.fact=(...t)=>x((t=>{let e,s=1;if(0==t)s=1;else if(t>0)for(e=1;e<=t;e++)s*=e;else s=NaN;return s}),...t),t.floor=$s,t.geomspace=H,t.getEvent=Ct,t.hypot=Ns,t.inRange=X,t.isApproximatlyEqual=K,t.isStateGetter=yt,t.json2arr=t=>ht(t instanceof Object?t:JSON.parse(t)),t.json2css=vs,t.json2csv=lt,t.json2csvFile=(t,e)=>{const s=lt(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=ft,t.json2xmlFile=(t,e)=>{const s=ft(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=pt,t.json2ymlFile=(t,e)=>{const s=pt(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=L,t.linspace=N,t.ln=Ms,t.logspace=Z,t.loop=(t,e={})=>new Js(t,e),t.map=$,t.mapfun=x,t.matrix=Es,t.matrix2=(...t)=>new _s(2,2,t),t.matrix3=(...t)=>new _s(3,3,t),t.matrix4=(...t)=>new _s(4,4,t),t.max=Y,t.min=V,t.modulo=M,t.mul=C,t.norm=P,t.nums=R,t.obj2str=bs,t.ones=D,t.pgcd=J,t.pow=Ss,t.powerSet=t=>{const e=[],s=2**t.length;for(let r=0;r<s;r+=1){const s=[];for(let e=0;e<t.length;e+=1)r&1<<e&&s.push(t[e]);e.push(s)}return e},t.ppcm=tt,t.preload=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}`)},t.prod=q,t.rad2deg=U,t.round=(...t)=>x(Math.round,...t),t.sec=(...t)=>x(y.sec,...t),t.sig=(...t)=>x((t=>1/(1+Is(-t))),...t),t.sign=zs,t.sin=Ds,t.sinc=(...t)=>x(y.sinc,...t),t.sinh=Ls,t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=Os,t.sqrtn=Cs,t.step_fps=t=>1e3/t,t.sub=S,t.subSet=null,t.sum=W,t.svg2ascii=ds,t.svg2img=(t,e=!0)=>es.img(gs(t)).render(e),t.svg2imgUrl=gs,t.svg2str=fs,t.tags=es,t.tan=Rs,t.tanh=(...t)=>x(y.tanh,...t),t.text=Tt,t.throttle=(t,e)=>{let s=0;return(...r)=>{const i=(new Date).getTime();i-s<e||(s=i,t(...r))}},t.tick=(t,e)=>new Xs(t,e),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.timeout=function(t,e){let s;const r=new Promise((r=>{s=setTimeout((()=>{e&&e(),r()}),t)}));return{id:s,clear:()=>clearTimeout(s),promise:r}},t.useChannel=ar,t.useCustomEvent=xe,t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;let i=!1;const n={pause:()=>{i=!0},resume:()=>{i=!1},clear:()=>{r.clear()},force:t=>{"function"==typeof t&&(t=t(s)),s=t,r.forEach((t=>t(s)))},getSubscribers:()=>new Set(r)};return e.forEach((n=>{n()._subscribe((()=>{if(!i){const i=t(...e.map((t=>t().value)));i!==s&&(s=i,r.forEach((t=>t(s))))}}),{element:document.body})})),[function(){return{value:s,isStateGetter:()=>!0,_subscribe:(t,e)=>{r.add(t);const s=new MutationObserver((()=>{document.body.contains(e.element)||(r.delete(t),s.disconnect())}));s.observe(document.body,{childList:!0,subtree:!0})}}},function(t){i||("function"==typeof t&&(t=t(s)),t!==s&&(s=t,r.forEach((t=>t(s)))))},n]},t.useEventEmitter=Le,t.useFavIcon=Be,t.useHashEvent=t=>new we(t),t.useHead=Ue,t.useInputEvent=t=>new ge(t),t.useLocaleStorage=(t,e)=>new cr(localStorage,t,e),t.useMediaQuery=(t,e)=>new We(t,e),t.useMeta=Ne,t.useReactive=t=>x((t=>wt(t)),t),t.useRoot=(t,{namespace:e,register:s,ValidateCssProps:r}={})=>new hr(t,{namespace:e,register:s,ValidateCssProps:r}),t.useSessionStorage=(t,e)=>new cr(sessionStorage,t,e),t.useState=wt,t.useSuccesifKeys=(t,e=[],s=(()=>{}))=>{t.cache.stream.enabled.down=!0;const r=e.length,i=t.cache.stream.history.down.slice(-r).map((t=>t.key));e.join("")===i.join("")&&(t.event.preventDefault(),s.call(t,t))},t.useSwipeEvent=ke,t.useThread=(t,e,s)=>{const r=new or;return t&&r.call(t,e,s),r},t.useTitle=He,t.wait=t=>new Promise((e=>setTimeout(e,t))),t.waitForUIElm=t=>new Promise((e=>{if(t.element)return e(t.element);const s=new MutationObserver((()=>{t.element&&(e(t.element),s.disconnect())}));s.observe(document?.body,{childList:!0,subtree:!0})})),t.waitForUIElmSync=(t,e=2e3)=>{const s=Date.now();for(;Date.now()-s<e;)if(t.element)return t.element},t.watch=(t,e={},s=null)=>{const r=new Te(t,e);return s&&r.observe(s),r},t.watchAttr=Oe,t.watchChildren=Ce,t.watchIntersection=Me,t.watchScreen=t=>new Re(t),t.watchSize=De,t.zeros=j}));
9
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,(function(t){"use strict";const{PI:e,E:s}=Math,r=Number.EPSILON,{PI:i,cos:n,sin:a,tan:o,acos:h,asin:l,atan:u,cosh:m,sinh:p,tanh:f,acosh:d,asinh:g,atanh:b,log:w}=Math;let y={cos:n,sin:a,tan:o,sinc:t=>a(i*t)/(i*t),sec:t=>1/n(t),csc:t=>1/a(t),cot:t=>1/o(t),acos:h,asin:l,atan:u,acot:t=>i/2-u(t),cosh:m,sinh:p,tanh:f,coth:t=>.5*w((1+t)/(1-t)),acosh:d,asinh:g,atanh:b};y=new Proxy(y,{get(t,e){if(e in t)return s=>+t[e](s).toFixed(15)}});class v{}const x=(t,...e)=>{const s=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=>x(t,e)));if(ArrayBuffer.isView(e))return e.map((e=>t(e)));if(e instanceof Set)return new Set(x(t,...e));if(e instanceof Map)return new Map([...e].map((e=>[e[0],x(t,e[1])])));if(e instanceof _s)return new _s(e.rows,e.cols,x(e.arr.flat(1)));if(e instanceof ks){const[s,r,i,n]=[e.a,e.b,e.z,e.phi];switch(t){case Math.log:return Ts(Ms(i),n);case Math.exp:return Ts(Is(s)*js(r),Is(s)*Ds(r));case Math.abs:return i;case Math.sqrt:return Ts(Os(i)*js(n/2),Os(i)*Ds(n/2));case y.cos:return Ts(js(s)*Ps(r),-Ds(s)*Ls(r));case y.sin:return Ts(Ds(s)*Ps(r),js(s)*Ls(r));case y.tan:{const t=js(2*s)+Ps(2*r);return Ts(Ds(2*s)/t,Ls(2*r)/t)}case y.cosh:return Ts(Ps(s)*js(r),Ls(s)*Ds(r));case y.sinh:return Ts(Ls(s)*js(r),Ps(s)*Ds(r));case y.tanh:{const t=Ps(2*s)+js(2*r);return Ts(Ls(2*s)/t,Ds(2*r)/t)}default:return t(e)}}else if(e instanceof Object)return Object.fromEntries(Object.entries(e).map((e=>[e[0],x(t,e[1])])))}));return 1==s.length?s[0]:s},_=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e instanceof ks)return Ts(t+e.a,e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>O(e,t)))}else{if(t instanceof ks||t instanceof _s)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=>O(t,e)));if(t.length===e.length)return t.map(((t,s)=>O(t,e[s])))}}},E=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e instanceof ks)return Ts(t-e.a,-e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>S(e,t)))}else{if(t instanceof ks||t instanceof _s)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=>S(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>S(t,e[s])))}}},k=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e instanceof ks)return Ts(t*e.a,t*e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>C(t,e)))}else{if(t instanceof ks||t instanceof _s)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=>C(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>C(t,e[s])))}}},T=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e instanceof ks)return Ts(t/e.a,t/e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof ks||t instanceof _s)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=>I(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>I(t,e[s])))}}},A=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e instanceof ks)return Ts(t%e.a,t%e.b);if(e instanceof _s)return _s.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>I(t,e)))}else{if(t instanceof ks||t instanceof _s)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=>O(t,e)))}},O=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=_(s,e[t]);return s},S=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=E(s,e[t]);return s},C=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=k(s,e[t]);return s},I=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=T(s,e[t]);return s},M=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=A(s,e[t]);return s},j=t=>new Array(t).fill(0),D=t=>new Array(t).fill(1),R=(t,e)=>new Array(e).fill(t),P=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t instanceof _s)return new _s(t.rows,t.cols,P(t.arr.flat(1),e,s));if(t instanceof ks)return new ks(P(t.a,e,s),P(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>P(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=P(t[s])}}},L=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t instanceof _s)return new _s(t.rows,t.cols,L(t.arr.flat(1),e,s));if(t instanceof ks)return new ks(L(t.a,e,s),L(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>L(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=L(t[s])}}},$=(t,e,s,r,i)=>{if("number"==typeof t)return L(P(t,e,s),r,i);if(t instanceof _s)return new _s(t.rows,t.cols,$(t.arr.flat(1),e,s,r,i));if(t instanceof ks)return new ks($(t.a,s,r,i),$(t.b,e,s,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>$(t,e,s,r,i)));{let n=new Array(t.length);for(let a=0;a<t.length;a++)n[a]=$(t[a],e,s,r,i)}}},B=(t,e,s)=>{const[r,i]=[V(e,s),Y(e,s)];if("number"==typeof t)return V(Y(t,r),i);if(t instanceof _s)return new _s(t.rows,t.cols,B(t.arr.flat(1),r,i));if(t instanceof ks)return new ks(B(t.a,r,i),B(t.b,r,i));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>B(t,r,i)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=B(t[s],r,i)}}},z=(t,e,s,r=!1)=>{let i=[];if(t<e)for(let n=t;r?n<=e:n<e;n+=s)i.push(10*n/10);else for(let n=t;r?n>=e:n>e;n-=s)i.push(10*n/10);return i},N=(t,e,s=As(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[a,o]=[t,e].sort(((t,e)=>e-t));var i=[];let h;h=r?(a-o)/(s-1):(a-o)/s;for(var n=0;n<s;n++)t<e?i.push(o+h*n):i.push(a-h*n);return i}if([t,e].some((t=>t instanceof ks))){const i=Ts(t),n=Ts(e);s=s||Math.abs(i.a-n.a)+1;const a=N(i.a,n.a,s,r),o=N(i.b,n.b,s,r);let h=new Array(s).fill(null);return h=h.map(((t,e)=>Ts(a[e],o[e]))),h}}},Z=(t,e,r=e-t+1,i=s,n=!0)=>N(t,e,r,n).map((t=>Ss(i,t))),H=(t,e,s=As(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[i,n]=[t,e].sort(((t,e)=>e-t));let a;a=Cs(i/n,r?s-1:s);const o=[n];for(let t=1;t<s;t++)o.push(o[t-1]*a);return t<e?o:o.reverse()}if([t,e].some((t=>t instanceof ks))){const i=Ts(t),n=Ts(e);let a;s=s||Math.abs(i.a-n.a)+1,a=Cs(n.div(i),r?s-1:s);const o=[i];for(let t=1;t<s;t++)o.push(C(o[t-1],a));return o}}},F=(...t)=>mapfun((t=>t*Math.PI/180),...t),U=(...t)=>mapfun((t=>t/Math.PI*180),...t),W=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e+=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(W(...t[s])):t[s]instanceof Object&&e.push(W(...Object.values(t[s])));return 1===e.length?e[0]:e},q=(...t)=>{if(t.every((t=>"number"==typeof t))){let e=t[0];for(let s=1;s<t.length;s++)e*=t[s];return e}const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(q(...t[s])):t[s]instanceof Object&&e.push(q(...Object.values(t[s])));return 1===e.length?e[0]:e},V=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.min(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>t[1]-e[1]))[0]]));return 1===e.length?e[0]:e},Y=(...t)=>{if(t.every((t=>"number"==typeof t)))return Math.max(...t);const e=[];for(let s=0;s<t.length;s++)t[s]instanceof Array?e.push(V(...t[s])):t[s]instanceof Object&&e.push(Object.fromEntries([Object.entries(t[s]).sort(((t,e)=>e[1]-t[1]))[0]]));return 1===e.length?e[0]:e},G=(...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 s=0;s<t.length;s++)t[s]instanceof Array?e.push(G(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},X=(t,e,s)=>{const[r,i]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=i},K=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Q=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),J=(t,e)=>{let s,r=1;if(t==$s(t)&&e==$s(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},tt=(t,e)=>{let s;if(t==$s(t)&&e==$s(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},et={add:O,sub:S,mul:C,div:I,modulo:M,zeros:j,ones:D,nums:R,norm:P,lerp:L,map:$,clamp:B,arange:z,linspace:N,logspace:Z,geomspace:H,sum:W,prod:q,accum:G,cartesianProduct:Q,ppcm:tt,pgcd:J,deg2rad:F,rad2deg:U,inRange:X,isApproximatlyEqual:K},st={_mode:Number,_map:function(t,e,s){return e instanceof _s?new _s(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof ks?new ks(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"),s=e[0],r=2**(+("0b"+e.slice(1,9))-127);return(-1)**s*(1+e.slice(9,32).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r},IEEE64toDec(t){let e=t.split(" ").join("").padEnd(64,"0"),s=e[0],r=2**(+("0b"+e.slice(1,12))-1023);return(-1)**s*(1+e.slice(13,64).split("").map((t=>+t)).map(((t,e)=>t*2**(-e-1))).reduce(((t,e)=>t+e),0))*r}},rt={_mode:Number,_map:function(t,e,s){return e instanceof _s?new _s(e.rows,e.cols,e.arr.flat(1).map((e=>t(e,s)))):e instanceof ks?new ks(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)?rt._mode(!t):this._map(this.not,t)},and:function(t,...e){return["number","boolean"].includes(typeof t)?rt._mode(e.reduce(((t,e)=>t&e),t)):this._map(this.and,t,e)},or:function(t,...e){return["number","boolean"].includes(typeof t)?rt._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 s=[t,...e];return["number","boolean"].includes(typeof t)?this._mode(1===s.reduce(((t,e)=>(1==+e&&(t+=1),t)),0)):this._map(this.xor,t,e)},xnor:function(t,...e){return rt.not(rt.xor(t,e))}};class it{static withDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withDiscount(t.slice(i),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}static withoutDiscount(t,e){if(1===e)return t.map((t=>[t]));const s=[];return t.forEach(((r,i)=>{this.withoutDiscount(t.slice(i+1),e-1).forEach((t=>{s.push([r].concat(t))}))})),s}}class nt{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 s=new Array(100);e=et.accum(...e).map((t=>100*t)),s.fill(t[0],0,e[0]);for(let r=1;r<t.length;r++)s.fill(t[r],e[r-1],e[r]);return s[this.int(s.length-1)]}static shuffleArr(t){return t.sort((()=>.5-Math.random()))}static shuffleMatrix(t){const{rows:e,cols:s,arr:r}=t;return Es(e,s,r.flat().sort((()=>.5-Math.random())))}static floats(t,e,s){return new Array(t).fill(0).map((()=>this.float(e,s)))}static ints(t,e,s){return new Array(t).fill(0).map((()=>this.int(e,s)))}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,s){return new Array(t).fill(0).map((()=>this.choice(e,s)))}static perm(...t){return t.permS[this.int(t.length)]}static color(){return"#"+st.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 ks(this.float(t[0],t[1]),this.float(e[0],e[1])):new ks(...this.floats(2,t,e))}static complexInt(t=[0,1],e=[0,1]){return new ks(this.int(t[0],t[1]),this.int(e[0],e[1]))}static complexBin(){return new ks(...this.bins(2))}static complexOct(){return new ks(...this.octs(2))}static complexDec(){return new ks(...this.decs(10))}static complexHex(){return new ks(...this.octs(2))}static complexes(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complex(e,s)))}static complexesInt(t,e=0,s=1){return new Array(t).fill(0).map((()=>this.complexInt(e,s)))}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,s,r){return Es(t,e,this.floats(t*e,s,r))}static matrixInt(t,e,s,r){return Es(t,e,this.ints(t*e,s,r))}static matrixBin(t,e){return Es(t,e,this.bins(t*e))}static matrixOct(t,e){return Es(t,e,this.octs(t*e))}static matrixDec(t,e){return Es(t,e,this.decs(t*e))}static matrixHex(t,e){return Es(t,e,this.hex(t*e))}static matrixColor(t,e){return Es(t,e,this.colors(t*e))}static matrixComplex(t,e,s,r){return Es(t,e,this.complexes(t*e,s,r))}static matrixComplexInt(t,e,s,r){return Es(t,e,this.complexesInt(t*e,s,r))}static matrixComplexBin(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexOct(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexDec(t,e){return Es(t,e,this.complexesBin(t*e))}static matrixComplexHex(t,e){return Es(t,e,this.complexesBin(t*e))}}const at=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),ot=(t,e=",")=>{const[s,...r]=at(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},ht=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ct=(t,e)=>ht(t).map((t=>t.join(e))).join("\n"),lt=(t,e=",")=>ct(t instanceof Object?t:JSON.parse(t),e),ut=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=ut(t,`${e} `);s.push(...r)}else s.push(`${e}- ${t}`)}));else for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];if("object"==typeof i&&null!==i){s.push(`${e}${r}:`);const t=ut(i,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${i}`)}return s},mt=(t,e="")=>ut(t,e).join("\n"),pt=(t,e)=>mt(t instanceof Object?t:JSON.parse(t),e),ft=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const i=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof i?ft(i,e+2):`${i}`,s+=`</${r}>`}return s.trim()};class dt{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}function gt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}function bt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r?Object.defineProperty(t,e,r):"function"==typeof r.value?t[e]=r.value.bind(t):t[e]=r.value}}(t,e)))}globalThis.node=t=>new dt(t);function wt(t){let e=t;const s=new Set;let r=!1;return[function(){return{value:e,isStateGetter:()=>!0,_subscribe:t=>{s.add(t)}}},function(t){r||("function"==typeof t&&(t=t(e)),t!==e&&(e=t,s.forEach((t=>t(e)))))},{pause:()=>{r=!0},resume:()=>{r=!1},clear:()=>{s.clear()},force:t=>{"function"==typeof t&&(t=t(e)),e=t,s.forEach((t=>t(e)))},getSubscribers:()=>new Set(s)}]}const yt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),vt=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),xt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)},_t={setAttr(t,e){if(t instanceof Object){const[s,r]=[Object.keys(t),Object.values(t)];for(let t=0;t<s.length;t++)r[t]instanceof Array&&(e[t]=r[t].join(" ")),Et.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Et.call(this,t,e);return this},removeAttr(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},getAttr(t){return t=xt(t)?vt(t):t,this.element.attributes[t].value},setContentEditable(t=!0){return this.setAttr("contenteditable",t),this}};function Et(t,e){if("svg"!==this.element?.tagName&&(t=xt(t)?vt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(yt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}class kt extends dt{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const Tt=(...t)=>new kt(...t),At={append(...t){return Ot.call(this,"append","push",...t),this},prepend(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},insertAt(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=Tt(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},remove(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isZikoUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter((e=>e!==t))};for(let s=0;s<t.length;s++)e(t[s]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},clear(){return this?.items?.forEach((t=>t.unrender())),this.element.innerHTML="",this},render(t=this.target){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element),this},unrender(){return this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target?.children].includes(this.element)&&this.target.removeChild(this.element),this},renderAfter(t=1){return setTimeout((()=>this.render()),t),this},unrenderAfter(t=1){return setTimeout((()=>this.unrender()),t),this},after(t){return t?.isZikoUIElement&&(t=t.element),this.element?.after(t),this},before(t){return t?.isZikoUIElement&&(t=t.element),this.element?.before(t),this}};async function Ot(t,e,...s){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let r=0;r<s.length;r++){if(["number","string"].includes(typeof s[r])&&(s[r]=Tt(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=Tt(t.value),t._subscribe((t=>s[r].element.textContent=t),s[r]))}if("function"==typeof globalThis?.Node&&s[r]instanceof globalThis?.Node&&(s[r]=new this.constructor(s[r])),s[r]?.isZikoUINode)s[r].cache.parent=this,this.element?.[t](s[r].element),s[r].target=this.element,this.items[e](s[r]);else if(s[r]instanceof Promise){const i=await s[r];i.cache.parent=this,this.element?.[t](i.element),i.target=this.element,this.items[e](i)}else s[r]instanceof Object&&(s[r]?.style&&this.style(s[r]?.style),s[r]?.attr&&Object.entries(s[r].attr).forEach((t=>this.setAttr(""+t[0],t[1]))))}return this.maintain(),this}const St={Click:["Click","DblClick"],Ptr:["PtrMove","PtrDown","PtrUp","PtrLeave","PtrEnter","PtrOut","PtrCancel"],Mouse:["MouseMove","MouseDown","MouseUp","MouseEnter","MouseLeave","MouseOut"],Key:["KeyDown","KeyPress","KeyUp"],Clipboard:["Copy","Cut","Paste"],Focus:["focus","blur"],Drag:["Drag","DragStart","DragEnd","Drop"],Wheel:["Wheel"]},Ct=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();function It(t,e,s,r,i){this.cache.currentEvent=e,this.cache.event=t,s?.call(this),r?.hasOwnProperty("prototype")?r?.call(this):r?.call(null,this),this.cache.preventDefault[e]&&t.preventDefault(),this.cache.stopPropagation[e]&&t.stopPropagation(),this.cache.stopImmediatePropagation[e]&&t.stopImmediatePropagation(),this.cache.stream.enabled[e]&&i&&this.cache.stream.history[e].push(i),this.cache.callbacks[e]?.map((t=>t(this)))}class Mt{constructor(t=null,e=[],s,r){this.target=t,this.cache={currentEvent:null,event:null,options:{},preventDefault:{},stopPropagation:{},stopImmediatePropagation:{},event_flow:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{},__controllers__:{}},e&&this._register_events(e,s,r)}_register_events(t,e,s,r=!0){const i=t?.map((t=>Ct(t)));return i?.forEach(((i,n)=>{Object.assign(this.cache.preventDefault,{[i]:!1}),Object.assign(this.cache.options,{[i]:{}}),Object.assign(this.cache.paused,{[i]:!1}),Object.assign(this.cache.stream.enabled,{[i]:!1}),Object.assign(this.cache.stream.clear,{[i]:!1}),Object.assign(this.cache.stream.history,{[i]:[]}),Object.assign(this.cache.__controllers__,{[i]:t=>It.call(this,t,i,e,s)}),r&&Object.assign(this,{[`on${t[n]}`]:(...t)=>this.__onEvent(i,this.cache.options[i],{},...t)})})),this}get targetElement(){return this.target?.element}get isParent(){return this.target?.element===this.event.srcElement}get item(){return this.target.find((t=>t.element==this.event?.srcElement))?.[0]}get currentEvent(){return this.cache.currentEvent}get event(){return this.cache.event}setTarget(t){return this.target=t,this}__handle(t,e,s,r){return this.targetElement?.addEventListener(t,e,s),this}__onEvent(t,e,s,...r){if(0===r.length){if(console.log("00"),!this.cache.callbacks[t])return this;console.log("Call"),this.cache.callbacks[t].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.cache.__controllers__[t],e,s),this}#t(t,e,s){"default"===s&&Object.assign(this.cache[t],{...this.cache[t],...e});const r="default"===s?this.cache[t]:Object.fromEntries(Object.keys(this.cache.preventDefault).map((t=>[t,s])));return Object.assign(this.cache[t],{...r,...e}),this}preventDefault(t={},e="default"){return this.#t("preventDefault",t,e),this}stopPropagation(t={},e="default"){return this.#t("stopPropagation",t,e),this}stopImmediatePropagation(t={},e="default"){return this.#t("stopImmediatePropagation",t,e),this}setEventOptions(t,e){return this.pause({[t]:!0},"default"),Object.assign(this.cache.options[Ct(t)],e),this.resume({[t]:!0},"default"),this}pause(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.removeEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!0);return this}resume(t={},e="default"){t={..."default"===e?this.cache.stream.enabled:Object.entries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t};for(let e in t)t[e]&&(this.targetElement?.addEventListener(e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]=!1);return this}stream(t={},e="default"){this.cache.stream.t0=Date.now();return t={...Object.fromEntries(Object.keys(this.cache.stream.enabled).map((t=>[t,e]))),...t},Object.assign(this.cache.stream.enabled,t),this}clear(){return this}dispose(t={},e="default"){return this.pause(t,e),this}}class jt extends Mt{constructor(t,e){super(t,St.Click,Dt,e)}}function Dt(){"click"===this.currentEvent?this.dx=0:this.dx=1}const Rt=(t,e)=>new jt(t,e);class Pt extends Mt{constructor(t,e){super(t,St.Clipboard,Lt,e)}}function Lt(){}const $t=(t,e)=>new Pt(t,e);class Bt extends Mt{constructor(t,e,s){super(t,e,zt,s)}_register_events(t){return super._register_events(t,null,null,!1),this}emit(t,e={}){const s=new Event(t);return this.targetElement.dispatchEvent(s),this}on(t,...e){return this.cache.options.hasOwnProperty(t)||this._register_events([t]),this.__onEvent(t,this.cache.options[t],{},...e),this}}function zt(){}class Nt extends Mt{constructor(t,e){super(t,St.Drag,Zt,e)}}function Zt(){}const Ht=(t,e)=>new Nt(t,e);class Ft extends Mt{constructor(t,e){super(t,St.Focus,Ut,e)}}function Ut(){}const Wt=(t,e)=>new Ft(t,e);let qt=class extends Mt{constructor(t,e){super(t,St.Hash,Vt,e)}};function Vt(){}class Yt extends Mt{constructor(t,e){super(t,St.Key,Gt,e)}}function Gt(){switch(this.currentEvent){case"keydown":this.kd=this.event.key;break;case"keypress":this.kp=this.event.key;break;case"keyup":this.ku=this.event.key}}const Xt=(t,e)=>new Yt(t,e);class Kt extends Mt{constructor(t,e){super(t,St.Mouse,Qt,e)}}function Qt(){}const Jt=(t,e)=>new Kt(t,e);class te extends Mt{constructor(t,e){super(t,St.Ptr,ee,e),this.isDown=!1}}function ee(){switch(this.currentEvent){case"pointerdown":this.dx=parseInt(this.event.offsetX),this.dy=parseInt(this.event.offsetY),this.isDown=!0;break;case"pointermove":this.mx=parseInt(this.event.offsetX),this.my=parseInt(this.event.offsetY),this.isMoving=!0;break;case"pointerup":{this.ux=parseInt(this.event.offsetX),this.uy=parseInt(this.event.offsetY),this.isDown=!1,console.log(this.target.width);const t=(this.ux-this.dx)/this.target.width,e=(this.dy-this.uy)/this.target.height,s=t<0?"left":t>0?"right":"none",r=e<0?"bottom":e>0?"top":"none";this.swippe={h:s,v:r,delta_x:t,delta_y:e}}}}const se=(t,e)=>new te(t,e);class re extends Mt{constructor(t,e){super(t,St.Touch,ie,e)}}function ie(){}class ne extends Mt{constructor(t,e){super(t,St.Wheel,ae,e)}}function ae(){}const oe=(t,e)=>new ne(t,e),he={ptr:se,mouse:Jt,key:Xt,click:Rt,drag:Ht,clipboard:$t,focus:Wt,wheel:oe},ce={};Object.entries(St).forEach((([t,e])=>{e.forEach((e=>{const s=`on${e}`;ce[s]=function(...e){return this.events[t]||(this.events[t]=he[t.toLowerCase()](this)),this.events[t][s](...e),this}}))}));const le={at(t){return this.items.at(t)},forEach(t){return this.items.forEach(t),this},map(t){return this.items.map(t)},find(t){return this.items.filter(t)}},ue={style(t){for(let e in t){const s=t[e];if(yt(s)){const t=s();Object.assign(this.element.style,{[e]:t.value}),t._subscribe((t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})}))}else Object.assign(this.element.style,{[e]:s})}return this},size(t,e){return this.style({width:t,height:e})},hide(){},show(){},animate(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this}};function me(t,e,s,r){return this.event=t,this.cache.preventDefault[e]&&t.preventDefault(),console.log({setter:s}),s&&s(),this.cache.stream.enabled[e]&&r&&this.cache.stream.history[e].push(r),this.cache.callbacks[e].map((t=>t(this))),this}class pe{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,s){const r="drag"===t?t:`${this.cache.prefixe}${t}`;return this.dispose(s),this.targetElement?.addEventListener(r,e),this}__onEvent(t,e,...s){if(0===s.length){if(!(this.cache.callbacks.length>1))return this;this.cache.callbacks.map((t=>e=>t.call(this,e)))}else this.cache.callbacks[t]=s.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 fe(t){me.call(this,t,"input",null,null)}function de(t){me.call(this,t,"change",null,null)}class ge extends pe{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:fe.bind(this),change:de.bind(this)}}get value(){return this.target.value}onInput(...t){return this.__onEvent("input",{},...t),this}onChange(...t){return this.__onEvent("change",{},...t),this}}function be(t){me.call(this,t,"hashchange",null,null)}class we extends pe{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:be.bind(this)}}onChange(...t){return this.__onEvent("hashchange",{},...t),this}}const ye=t=>function(e){me.call(this,e,t,null,null)};class ve extends pe{constructor(t){super(t),this.event=null,this.cache={prefixe:"",preventDefault:{},paused:{},stream:{enabled:{},clear:{},history:{}},callbacks:{}},this.__controller={}}#e(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]=ye(t).bind(this),this}on(t,...e){return this.__controller[t]||this.#e(t),this.__onEvent(t,{},...e),this}emit(t,e={}){this.__controller[t]||this.#e(t),this.detail=e;const s=new Event(t);return this.targetElement.dispatchEvent(s),this}}const xe=t=>new ve(t);class _e extends pe{constructor(t,e=.3,s=.3){super(t);const{removeListener:r,setWidthThreshold:i,setHeightThreshold:n}=function(t,e=.5,s=.5,r,i){let n=L(e,0,r),a=L(s,0,i),o=0,h=0,c=0,l=0;const u=t=>{o=t.clientX,h=t.clientY},m=t=>{c=t.clientX,l=t.clientY,p()};function p(){const t=c-o,e=l-h;(Math.abs(t)>n||Math.abs(e)>a)&&f(t,e)}function f(e,s){const o=globalThis?.CustomEvent?new CustomEvent("swipe",{detail:{deltaX:As(e)<n?0:zs(e)*P(As(e),0,r),deltaY:As(s)<a?0:zs(s)*P(As(s),0,i),direction:{x:As(e)<n?"none":e>0?"right":"left",y:As(s)<a?"none":s>0?"down":"up"}}}):null;t?.dispatchEvent(o)}function d(t){n=L(t,0,r)}function g(t){a=L(t,0,i)}return t?.addEventListener("pointerdown",u),t?.addEventListener("pointerup",m),{removeListener(){t?.removeEventListener("pointerdown",u),t?.removeEventListener("pointerup",m),console.log("Swipe event listeners removed")},setWidthThreshold:d,setHeightThreshold:g}}(this.target?.element,e,s,this.target.width,this.target.height);this.cache={width_threshold:e,height_threshold:s,removeListener:r,setWidthThreshold:i,setHeightThreshold:n,legacyTouchAction:globalThis?.document?.body?.style?.touchAction,prefixe:"",preventDefault:{swipe:!1},paused:{swipe:!1},stream:{enabled:{swipe:!1},clear:{swipe:!1},history:{swipe:[]}},callbacks:{swipe:[]}},this.__controller={swipe:Ee.bind(this)}}onSwipe(...t){return Object.assign(globalThis?.document?.body?.style,{touchAction:"none"}),this.__onEvent("swipe",{},...t),this}updateThresholds(t=this.cache.width_threshold,e=this.cache.height_threshold){return void 0!==t&&this.cache.setWidthThreshold(t),void 0!==e&&this.cache.setHeightThreshold(e),this}destroy(){return this.cache.removeListener(),Object.assign(globalThis?.document?.body?.style,{touchAction:this.cache.legacyTouchAction}),this}}function Ee(t){me.call(this,t,"swipe",null,null)}const ke=(t,e,s)=>new _e(t,e,s);class Te{constructor(t,e){this.target=t,this.observer=null,this.cache={options:e||{attributes:!0,childList:!0,subtree:!0},streamingEnabled:!0,lastMutation:null,mutationHistory:{}},this.observeCallback=(t,e)=>{if(this.cache.streamingEnabled)for(const e of t)switch(e.type){case"attributes":this.cache.mutationHistory.attributes.push(e.target.getAttribute(e.attributeName));break;case"childList":this.cache.mutationHistory.childList.push(e);break;case"subtree":this.cache.mutationHistory.subtree.push(e)}this.callback&&this.callback(t,e)}}observe(t){if(!this.observer){if(!globalThis.MutationObserver)return void console.log("MutationObserver Nor Supported");this.observer=new MutationObserver(this.cache.observeCallback),this.observer.observe(this.target.element,this.cache.options),this.callback=([e])=>t.call(e,this),this.cache.streamingEnabled=!0}}pause(t){this.observer&&(this.observer.disconnect(),t&&this.observer.observe(this.target,t))}reset(t){this.observer&&(this.observer.disconnect(),this.observer.observe(this.target,t||this.cache.options))}clear(){return this.observer&&(this.observer.disconnect(),this.observer=null,this.cache.mutationHistory={attributes:[],childList:[],subtree:[]}),this.cache.streamingEnabled=!1,this}getMutationHistory(){return this.cache.mutationHistory}enableStreaming(){return this.cache.streamingEnabled=!0,this}disableStreaming(){return this.cache.streamingEnabled=!1,this}}class Ae extends Te{constructor(t,e){super(t,{attributes:!0,childList:!1,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)this.cache.lastMutation={name:e.attributeName,value:e.target.getAttribute(e.attributeName)},this.cache.streamingEnabled&&this.cache.mutationHistory.attributes.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.attributes=[],e&&this.observe(e)}get history(){return this.cache.mutationHistory.attributes}}const Oe=(t,e)=>new Ae(t,e);class Se extends Te{constructor(t,e){super(t,{attributes:!1,childList:!0,subtree:!1}),Object.assign(this.cache,{observeCallback:(t,e)=>{for(const e of t)e.addedNodes?this.cache.lastMutation={type:"add",item:this.target.find((t=>t.element===e.addedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}:e.addedNodes&&(this.cache.lastMutation={type:"remove",item:this.target.find((t=>t.element===e.removedNodes[0]))[0],previous:this.target.find((t=>t.element===e.previousSibling))[0]}),this.cache.streamingEnabled&&this.cache.mutationHistory.children.push(this.cache.lastMutation);this.callback&&this.callback(t,e)}}),this.cache.mutationHistory.children=[],e&&this.observe(e)}get item(){return this.cache.lastMutation.item}get history(){return this.cache.mutationHistory.children}}const Ce=(t,e)=>new Se(t,e);class Ie{constructor(t,e,{threshold:s=0,margin:r=0}={}){this.target=t,this.config={threshold:s,margin:r},globalThis.IntersectionObserver?this.observer=new IntersectionObserver((t=>{this.entrie=t[0],e(this)}),{threshold:this.threshold}):console.log("IntersectionObserver Not Supported")}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}}const Me=(t,e,s)=>new Ie(t,e,s);class je{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}}const De=(t,e)=>new je(t,e);class Re{constructor(t=(t=>console.log({x:t.x,y:t.y}))){this.cache={},this.previousX=globalThis?.screenX,this.previousY=globalThis?.screenY}update(){Object.assign(this.cache,{screenXLeft:globalThis?.screenX,screenXRight:globalThis?.screen.availWidth-globalThis?.screenX,screenYTop:globalThis?.screenY,screenYBottom:globalThis?.screen.availHeight-globalThis?.screenY-globalThis?.outerHeight,screenCenterX:globalThis?.screen.availWidth/2,screenCenterY:globalThis?.screen.availHeight/2,windowCenterX:globalThis?.outerWidth/2+globalThis?.screenX,windowCenterY:globalThis?.outerHeight/2+globalThis?.screenY,deltaCenterX:globalThis?.screen.availWidth/2-globalThis?.outerWidth/2+globalThis?.screenX,deltaCenterY:null})}get x0(){return $(globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get y0(){return-$(globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}get x1(){return $(globalThis?.screenX+globalThis?.outerWidth,0,globalThis.screen.availWidth,-1,1)}get y1(){return-$(globalThis?.screenY+globalThis?.outerHeight,0,globalThis.screen.availHeight,-1,1)}get cx(){return $(globalThis?.outerWidth/2+globalThis?.screenX,0,globalThis.screen.availWidth,-1,1)}get cy(){return-$(globalThis?.outerHeight/2+globalThis?.screenY,0,globalThis.screen.availHeight,-1,1)}}class Pe{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 s=r=>{this.off(t,s),e(r)};this.on(t,s)}off(t,e){const s=this.events[t];if(s){const t=s.indexOf(e);-1!==t&&s.splice(t,1)}}emit(t,e){const s=this.events[t];s&&s.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 Le=()=>new Pe;class $e{constructor(t,e=!0){this.#e(),this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}#e(){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=Le(),this}}const Be=(t,e)=>new $e(t,e);class ze{constructor({viewport:t,charset:e,description:s,author:r,keywords:i}){this.document=globalThis?.document,this.meta={},this.init({viewport:t,charset:e,description:s,author:r,keywords:i})}init({viewport:t,charset:e,description:s,author:r,keywords:i}){t&&this.setViewport(t),e&&this.setCharset(e),s&&this.describe(s),r&&this.setAuthor(r),i&&this.setKeywords(i)}set(t,e){const s="charset"===(t=t.toLowerCase()),r=s?document.querySelector("meta[charset]"):document.querySelector(`meta[name=${t}]`);return this.meta=r??document?.createElement("meta"),s?this.meta.setAttribute("charset",e):(this.meta.setAttribute("name",t),this.meta.setAttribute("content",e)),r||this.document.head.append(this.meta),this}setCharset(t="utf-8"){return this.set("charset",t),this}describe(t){return this.set("description",t),this}setViewport(t="width=device-width, initial-scale=1.0"){return this.set("viewport",t),this}setKeywords(...t){return t=[...new Set(t)].join(", "),this.set("keywords",t),this}setAuthor(t){return this.set("author",t),this}}const Ne=({viewport:t,charset:e,description:s,author:r,keywords:i})=>new ze({viewport:t,charset:e,description:s,author:r,keywords:i});class Ze{constructor(t=document.title,e=!0){this.cache={Emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.Emitter=Le(),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}}const He=(t,e)=>new Ze(t,e);class Fe{constructor({title:t,lang:e,icon:s,meta:r,noscript:i}){this.html=globalThis?.document?.documentElement,this.head=globalThis?.document?.head,t&&He(t),e&&this.setLang(e),s&&Be(s),r&&Ne(r),i&&this.setNoScript()}setLang(t){this.html.setAttribute("lang",t)}setNoScript(t){}}const Ue=({title:t,lang:e,icon:s,meta:r,noscript:i})=>new Fe({title:t,lang:e,icon:s,meta:r,noscript:i});class We{constructor(t=[],e=(()=>{})){this.mediaQueryRules=t,this.fallback=e,this.lastCalledCallback=null,this.init()}init(){this.mediaQueryRules.forEach((({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.mediaQueryRules.some((({query:t})=>globalThis.matchMedia(t).matches));s.matches?(e(),this.lastCalledCallback=e):t||this.lastCalledCallback===this.fallback||(this.fallback(),this.lastCalledCallback=this.fallback)};r(),s.addListener(r)}))}}const qe={__all__(){return Object.values(this).filter(Array.isArray).flat()},querySelectorAll(){return this.__all__().filter((t=>t))},getElementByIndex(t){return this.__all__().find((e=>e.ui_index===t))},getElementById:t=>null,getElementsByClass(){},getElementsByTagName(){}},Ve={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},Ye={map:new Map,index:0,increment:function(){return this.index++}},Ge=new Map,Xe={ui_index:0,get_ui_index:function(){return this.ui_index++}};var Ke;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:qe,__HYDRATION__:Ye,__HYDRATION_MAP__:Ge,__Config__:Ve,__CACHE__:Xe},Ke=__Ziko__,Object.defineProperties(Ke,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}));class Qe extends dt{constructor({element:t,name:e="",type:s="html",useDefaultStyle:r=!1}={}){if(super(),this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);default:throw Error("Not supported")}else this.target=t?.parentElement;((t,...e)=>{"function"==typeof t?gt(t,...e):bt(t,...e)})(this,_t,At,ue,le,ce),Object.assign(this.cache,{name:e,isInteractive:[!0,!1][Math.floor(2*Math.random())],parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,legacyParent:null,attributes:{},filters:{},temp:{}}),this.events={ptr:null,mouse:null,wheel:null,key:null,drag:null,drop:null,click:null,clipboard:null,focus:null,swipe:null,custom:null},this.observer={resize:null,intersection:null},t&&Object.assign(this.cache,{element:t}),this.uuid=`${this.cache.name}-${nt.string(16)}`,this.ui_index=globalThis.__Ziko__.__CACHE__.get_ui_index(),r&&this.style({position:"relative",boxSizing:"border-box",margin:0,padding:0,width:"auto",height:"auto"}),this.items=[],globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&globalThis.__Ziko__.__Config__.default.render&&this?.render?.(),this.isInteractive()&&(this.setAttr("ziko-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.map.set(globalThis.__Ziko__.__HYDRATION__.index,(()=>this)),globalThis.__Ziko__.__HYDRATION__.increment())}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}isZikoUIElement(){return!0}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}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)}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}freeze(t){return this.cache.isFrozzen=t,this}setTarget(t){if(!this.isBody)return t?.isZikoUIElement&&(t=t.element),this.unrender(),this.target=t,this.render(),this}describe(t){t&&this.setAttr("aria-label",t)}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.setAttr("id",t),this}get id(){return this.element.getAttribute("id")}onSwipe(t,e,...s){return this.events.swipe||(this.events.swipe=ke(this,t,e)),this.events.swipe.onSwipe(...s),this}on(t,...e){return this.events.custom||(this.events.custom=xe(this)),this.events.custom.on(t,...e),this}emit(t,e={}){return this.events.custom||(this.events.custom=xe(this)),this.events.custom.emit(t,e),this}watchAttr(t){return this.observer.attr||(this.observer.attr=Oe(this,t)),this}watchChildren(t){return this.observer.children||(this.observer.children=Ce(this,t)),this}watchSize(t){return this.observer.resize||(this.observer.resize=De(this,t)),this.observer.resize.start(),this}watchIntersection(t,e){return this.observer.intersection||(this.observer.intersection=Me(this,t,e)),this.observer.intersection.start(),this}}const Je=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],ts=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],es=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Je.includes(r)&&(s="html"),ts.includes(r)&&(s="svg"),(...t)=>["string","number"].includes(typeof t[0])||t[0]instanceof Qe||"function"==typeof t[0]&&t[0]().isStateGetter()?new Qe({element:r,name:r,type:s}).append(...t):new Qe({element:r}).setAttr(t.shift()).append(...t)}});class ss extends Qe{constructor(t="div",e="100%",s="100%"){super({element:t,name:"Flex"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({width:e,height:s}),this.style({display:"flex"})}get isFlex(){return!0}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,s=1){return rs.call(this,s),this.style({alignItems:"number"==typeof t?ns.call(this,t):t,justifyContent:"number"==typeof e?as.call(this,e):e}),this}horizontal(t,e,s=1){return is.call(this,s),this.style({alignItems:"number"==typeof e?as.call(this,e):e,justifyContent:"number"==typeof t?ns.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function rs(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function is(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ns(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function as(t){return ns(-t)}class os extends Qe{constructor(t="div",e="50vw",s="50vh"){super({element:t,name:"Grid"}),this.direction="cols","number"==typeof e&&(e+="%"),"number"==typeof s&&(s+="%"),this.style({border:"1px solid black",width:e,height:s}),this.style({display:"grid"})}get isGird(){return!0}columns(t){let e="";for(let s=0;s<t;s++)e=e.concat(" auto");return this.#s(e),this}#s(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}}class hs extends Qe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unrender(),this.append(s)}catch(t){console.log({error:t})}})()}}class cs extends Qe{constructor(t,e){super({element:"div",name:""}),this.element.append("svg"===e?function(t){if(globalThis?.DOMParser){return(new DOMParser).parseFromString(t.replace(/\s+/g," ").trim(),"image/svg+xml").documentElement}}(t):function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t))}}class ls extends cs{constructor(t){super(t,"html")}}class us extends cs{constructor(t){super(t,"svg")}}class ms extends Qe{constructor(t,e){super("canvas","canvas"),this.ctx=this.element?.getContext("2d"),this.style({border:"1px red solid"}),this.transformMatrix=new _s([[1,0,0],[0,1,0],[0,0,1]]),this.axisMatrix=new _s([[-10,-10],[10,10]]),requestAnimationFrame((()=>this.resize(t,e)),0),this.on("sizeupdated",(()=>this.adjust()))}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,s,r){return this.transformMatrix[0][0]=this.width/(s-t),this.transformMatrix[1][1]=-this.height/(r-e),this.transformMatrix[0][2]=this.width/2,this.transformMatrix[1][2]=this.height/2,this.axisMatrix=new _s([[t,e],[s,r]]),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}getImageData(t=0,e=0,s=this.width,r=this.height){return this.ctx.getImageData(t,e,s,r)}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 ms;return t.items=this.items,t.transformMatrix=this.transformMatrix,t.axisMatrix=this.axisMatrix,Object.assign(t.cache,{...this.cache}),this.size(this.element.style.width,this.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"),s=URL.createObjectURL(t);e.onload=function(){URL.revokeObjectURL(s)},e.src=s,console.log(e)}))}zoomIn(){}zoomOut(){}undo(t){}redo(t){}stream(){}}class ps extends Qe{constructor(t=360,e=300){super("svg","svg"),this.style({border:"1px black solid"}),this.size(t,e),this.view(-10,-10,10,10)}size(t,e){return this.setAttr({width:t,height:e}),this}view(t,e,s,r){let i=Math.abs(s-t),n=Math.abs(r-e);return this.setAttr("viewBox",[t,e,i,n].join(" ")),this.st.scaleY(-1),this}add(...t){for(let e=0;e<t.length;e++)this.element.append(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 fs=t=>(new XMLSerializer).serializeToString(t),ds=t=>btoa(fs(t)),gs=t=>"data:image/svg+xml;base64,"+ds(t),bs=t=>JSON.stringify(x((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof ks||t instanceof _s?t.toString():t instanceof Array?ys(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),ws=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=ws(s);t+1>e&&(e=t+1)}return e},ys=t=>{let e=0;return function t(s){let r=ws(s),i=0;return s.some((t=>Array.isArray(t)))&&(e++,i=1),"["+s.map(((r,i)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof ks?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${i===s.length-1?"\n":""}`:r instanceof Object?bs(r):void 0))+`${" ".repeat((r+e+1)*i)}]`}(t)},vs=(t,e=0)=>{t=xs(t);let s="";const r=" ".repeat(e);for(let i in t)if("object"==typeof t[i]){s+=`${r}${i} {\n`;const n=t[i];for(let t in n)"object"==typeof n[t]?s+=vs({[t]:n[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${n[t]};\n`;s+=`${r}}\n`}return s};function xs(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=xs(t[s]),e)),Array.isArray(t)?[]:{})}class _s extends v{constructor(t,e,s=[]){if(super(),t instanceof _s)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,i,n=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,n=arguments[0];else for(r=0;r<t;r++)for(n.push([]),n[r].push(new Array(e)),i=0;i<e;i++)n[r][i]=s[r*e+i],null==s[r*e+i]&&(n[r][i]=0);this.rows=t,this.cols=e,this.arr=n}this.#r()}toString(){return ys(this.arr)}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 _s(t,e,this.arr.flat(1));console.error("Err")}static eye(t){let e=new _s(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}get clone(){return new _s(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 _s(this.cols,this.rows,this.arr.flat(1).reel)}get imag(){return new _s(this.cols,this.rows,this.arr.flat(1).imag)}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#r(){for(let t=0;t<this.arr.length;t++)Object.defineProperty(this,t,{value:this.arr[t],writable:!0,configurable:!0,enumerable:!1})}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,s){if(-1==e)return this.arr[t]=s;if(-1==t){for(let t=0;t<this.cols;t++)this.arr[t][e]=s[t]||0;return this.arr}return this.arr[t][e]=s}get isSquare(){return this.rows/this.cols==1}get isSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==_s.sub(e,t).max&&0==_s.sub(e,t).min}get isAntiSym(){if(!this.isSquare)return!1;const t=this.T,e=this.clone;return 0==_s.add(e,t).max&&0==_s.add(e,t).min}get isDiag(){if(!this.isSquare)return!1;const t=this.T,e=this.clone,s=_s.mul(e,t),r=_s.dot(t,e);return 0==_s.sub(s,r).max&&0==_s.sub(s,r).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=_s.dot(t,t);return 0==_s.sub(e,t).max&&0==_s.sub(e,t).min}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new _s(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 s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}return function e(s){if(2==s.length)return s.flat(1).some((t=>t instanceof _s))?void console.warn("Tensors are not completely supported yet ..."):et.sub(et.mul(s[0][0],s[1][1]),et.mul(s[0][1],s[1][0]));for(var r=0,i=0;i<s.length;i++){const n=et.add(et.mul(Ss(-1,i),et.mul(s[0][i],e(t(s,i)))));r=et.add(r,n)}return r}(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,s=0,r=0,i=t.length,n=0,a=[],o=[];for(e=0;e<i;e+=1)for(a[a.length]=[],o[o.length]=[],r=0;r<i;r+=1)a[e][r]=e==r?1:0,o[e][r]=t[e][r];for(e=0;e<i;e+=1){if(0==(n=o[e][e])){for(s=e+1;s<i;s+=1)if(0!=o[s][e]){for(r=0;r<i;r++)n=o[e][r],o[e][r]=o[s][r],o[s][r]=n,n=a[e][r],a[e][r]=a[s][r],a[s][r]=n;break}if(0==(n=o[e][e]))return}for(r=0;r<i;r++)o[e][r]=o[e][r]/n,a[e][r]=a[e][r]/n;for(s=0;s<i;s++)if(s!=e)for(n=o[s][e],r=0;r<i;r++)o[s][r]-=n*o[e][r],a[s][r]-=n*a[e][r]}return a}(this.arr);return new _s(this.rows,this.cols,t.flat(1))}static zeros(t,e){let s=new _s(t,e);for(let i=0;i<t;i++)for(var r=0;r<e;r++)s.arr[i][r]=0;return s}static ones(t,e){let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new _s(t,e);for(let i=0;i<t;i++)for(let t=0;t<e;t++)r.arr[i][t]=s;return r}static get rand(){return{int:(t,e,s,r)=>{let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.randInt(s,r);return i},bin:(t,e)=>{let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randBin;return s},hex:(t,e)=>{let s=new _s(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=nt.randHex;return s},choices:(t,e,s,r)=>{let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.choice(s,r);return i},permutation:(t,e,s)=>{}}}static rands(t,e,s=1,r){let i=new _s(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)i.arr[n][t]=nt.rand(s,r);return i}map(t,e,s,r){return et.map(this,t,e,s,r)}lerp(t,e){return et.lerp(this,t,e)}norm(t,e){return et.norm(this,t,e)}clamp(t,e){return et.clamp(this,t,e)}static map(t,e,s,r,i){return et.map(t,e,s,r,i)}static lerp(t,e,s){return et.lerp(t,e,s)}static norm(t,e,s){return et.norm(t,e,s)}static clamp(t,e,s){return et.clamp(Es,e,s)}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}get toBin(){let t=this.arr.flat(1).toBin;return new _s(this.rows,this.cols,t)}get toOct(){let t=this.arr.flat(1).toOct;return new _s(this.rows,this.cols,t)}get toHex(){let t=this.arr.flat(1).toHex;return new _s(this.rows,this.cols,t)}max2min(){let t=this.arr.flat(1).max2min;return new _s(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new _s(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new _s(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new _s(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))),s=this.arr.filter(((t,s)=>!0===e[s]));return 0===s.length&&s.push([]),console.log(s),new _s(s)}filterByCols(t){return new _s(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new _s(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 _s(this.rows,this.cols,e)}#i(t){if(this.rows!==t.rows)return;let e=this.arr;for(let s=0;s<this.rows;s++)for(let r=this.cols;r<this.cols+t.cols;r++)e[s][r]=t.arr[s][r-this.cols];return this.cols+=t.cols,new _s(this.rows,this.cols,e.flat(1))}hstack(...t){const e=[this,...t].reduce(((t,e)=>t.#i(e)));return Object.assign(this,e),this}static hstack(t,...e){return t.clone.hstack(...e)}#n(t){if(this.cols!==t.cols)return;let e=this.arr;for(let s=this.rows;s<this.rows+t.rows;s++){e[s]=[];for(let r=0;r<this.cols;r++)e[s][r]=t.arr[s-this.rows][r]}return this.rows+=t.rows,new _s(this.rows,this.cols,e.flat(1))}vstack(...t){const e=[this,...t].reduce(((t,e)=>t.#n(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.#i(e)));return Object.assign(this,e),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>t.#n(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,s=this.rows-1,r=this.cols-1){let i=s-t,n=r-e,a=new Array(n);for(let s=0;s<i;s++){a[s]=[];for(let r=0;r<n;r++)a[s][r]=this.arr[s+t][r+e]}return new _s(i,n,a.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,i=this.cols-1){return t.slice(e,s,r,i)}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}static getRows(t,e,s=e+1){return t.slice(e,0,s,t.cols)}static getCols(t,e,s=e+1){return t.slice(0,e,t.rows,s)}add(...t){for(let s=0;s<t.length;s++){("number"==typeof t[s]||t[s]instanceof ks)&&(t[s]=_s.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]=et.add(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}sub(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.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]=et.sub(this.arr[r][e],t[s].arr[r][e])}return new _s(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 r=0;r<t.length;r++){"number"==typeof t[r]&&(t[r]=_s.nums(this.rows,this.cols,t[r]));for(var e=0;e<this.rows;e++)for(var s=0;s<this.cols;s++)this.arr[e][s]=et.mul(this.arr[e][s],t[r].arr[e][s])}return new _s(this.rows,this.cols,this.arr.flat(1))}div(...t){for(let s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.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]=et.div(this.arr[r][e],t[s].arr[r][e])}return new _s(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 s=0;s<t.length;s++){"number"==typeof t[s]&&(t[s]=_s.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]=et.modulo(this.arr[r][e],t[s].arr[r][e])}return new _s(this.rows,this.cols,this.arr.flat(1))}static modulo(t,...e){return t.clone.modulo(...e)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var i=0;i<this.arr[0].length;i++)e[s][r]=et.add(e[s][r],et.mul(this.arr[s][i],t.arr[i][r]))}}return new _s(this.arr.length,t.arr[0].length,e.flat(1))}static dot(t,e){return t.dot(e)}pow(t){let e=this.clone,s=this.clone;for(let r=0;r<t-1;r++)s=s.dot(e);return s}static pow(t,e){return t.clone.pow(e)}get somme(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t+=this.arr[e][s];return t}get DoesItContainComplexNumbers(){return this.arr.flat(1/0).some((t=>t instanceof ks))}get min(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...this.arr[e]));return V(...t)}get max(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Y(...this.arr[e]));return Y(...t)}get minRows(){this.DoesItContainComplexNumbers&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(V(...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(Y(...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 _s(t.length,1,t)}get toArray(){let t=[];for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t.push(this.arr[e][s]);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 _s(t.rows,t.cols);return e.arr=t.arr,e}toTable(){var t=new DocumentFragment,e=new Array(this.rows).fill(null).map((()=>document?.createElement("tr"))),s=this.arr.map((t=>t.map((()=>document?.createElement("td")))));for(let t=0;t<s.length;t++)for(let r=0;r<s[0].length;r++)s[t][r].innerHTML=this.arr[t][r],e[t].appendChild(s[t][r]);return e.map((e=>t.appendChild(e))),t}toGrid(t,e={}){let s=Grid();return s.append(...this.map(t).arr.flat(1).map((t=>t.style(e)))),s.Columns(this.cols),s}sortTable(t=0,{type:e="num",order:s="asc"}={}){var r=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e}))))),i=this.T.arr.map((t=>t.map(((t,e)=>Object.assign({},{x:t,y:e})))));"num"===e?"asc"===s?r[t].sort(((t,e)=>t.x-e.x)):"desc"===s?r[t].sort(((t,e)=>e.x-t.x)):"toggle"===s&&(r[t][0].x>r[t][1].x?r[t].sort(((t,e)=>e.x-t.x)):r[t].sort(((t,e)=>t.x-e.x))):"alpha"===e&&("asc"===s?r[t].sort(((t,e)=>(""+t.x).localeCompare(""+e.x))):"desc"===s&&r[t].sort(((t,e)=>(""+e.x).localeCompare(""+t.x)))),s=r[t].map((t=>t.y));for(let e=0;e<r.length;e++)e!==t&&r[e].map(((t,e)=>t.y=s[e]));for(let e=0;e<r.length;e++)e!==t&&i[e].map(((t,i)=>t.x=r[e][s[i]].x));i[t]=r[t];var n=i.map((t=>t.map((t=>t.x))));return new _s(n).T}}const Es=(t,e,s)=>new _s(t,e,s);class ks extends v{constructor(t=0,e=0){super(),t instanceof ks?(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=Os(t.z**2-t.a**2)):"a"in e&&"phi"in t?(this.a=t.a,this.b=t.a*Rs(t.phi)):"b"in e&&"z"in t?(this.b=t.b,this.a=Os(t.z**2-t.b**2)):"b"in e&&"phi"in t?(this.b=e,this.a=t.b/Rs(t.phi)):"z"in e&&"phi"in t&&(this.a=t.z*js(t.phi),this.a=t.z*Ds(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}get clone(){return new ks(this.a,this.b)}get z(){return Ns(this.a,this.b)}get phi(){return Bs(this.b,this.a)}static Zero(){return new ks(0,0)}get conj(){return new ks(this.a,-this.b)}get inv(){return new ks(this.a/(Ss(this.a,2)+Ss(this.b,2)),-this.b/(Ss(this.a,2)+Ss(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+W(...e).toFixed(15),this.b+=+W(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+W(...e).toFixed(15),this.b-=+W(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=+q(this.z,...t.map((t=>t.z))).toFixed(15),s=+W(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*js(s).toFixed(15)).toFixed(14),this.b=+(e*Ds(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new ks(t[e],0));let e=+(this.z/q(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-W(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*js(s).toFixed(15)).toFixed(15),this.b=+(e*Ds(s).toFixed(15)).toFixed(15),this}pow(t){if($s(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*js(s).toFixed(15)).toFixed(15),this.b=+(e*Ds(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new ks(+(t*js(e)).toFixed(13),+(t*Ds(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 Ts(t**this.a*js(this.b*Ms(t)),t**this.a*Ds(this.b*Ms(t)))}sqrtn(t=2){return Ts(Cs(this.z,t)*js(this.phi/t),Cs(this.z,t)*Ds(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return Ts(this.z,this.phi)}get cos(){return Ts(js(this.a)*Ps(this.b),Ds(this.a)*Ls(this.b))}get sin(){return Ts(Ds(this.a)*Ps(this.b),js(this.a)*Ls(this.b))}get tan(){const t=js(2*this.a)+Ps(2*this.b);return Ts(Ds(2*this.a)/t,Ls(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 Ts=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>Ts(t[r],e[r])));if(t instanceof _s&&e instanceof _s){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>Ts(t.arr[r],e.arr[r])));return new _s(t.rows,t.cols,...s)}return new ks(t,e)},As=(...t)=>x(Math.abs,...t),Os=(...t)=>x(Math.sqrt,...t),Ss=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e instanceof ks?ks.fromExpo(t**e.a,e.b*Ms(t)):x((e=>Ss(t,e)),...e);if(t instanceof ks)return"number"==typeof e?ks.fromExpo(t.z**e,t.phi*e):e instanceof ks?ks.fromExpo(t.z**e.a*Is(-t.phi*e.b),Ms(t.z)*e.b+e.a*t.phi):x((e=>Ss(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Ss(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ss(t[r],e)),...e));return s}}},Cs=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):x((e=>Cs(t,e)),...e);if(t instanceof ks)return"number"==typeof e?ks.fromExpo(Cs(t.z,e),t.phi/e):x((e=>Cs(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Cs(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Cs(t[r],e)),...e));return s}}},Is=(...t)=>x(Math.exp,...t),Ms=(...t)=>x(Math.log,...t),js=(...t)=>x(y.cos,...t),Ds=(...t)=>x(y.sin,...t),Rs=(...t)=>x(y.tan,...t),Ps=(...t)=>x(y.cosh,...t),Ls=(...t)=>x(y.sinh,...t),$s=(...t)=>x(Math.floor,...t),Bs=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:x((e=>Bs(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return x((t=>Bs(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(x((e=>Ss(t[r],e)),...e));return s}}},zs=(...t)=>x(Math.sign,...t),Ns=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?x(Math.hypot,...t):void 0,{PI:Zs,sqrt:Hs,cos:Fs,sin:Us,acos:Ws,pow:qs}=Math,Vs=t=>t,Ys=(t,e=7.5625,s=2.75)=>t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375;class Gs{constructor(t,{ease:e=Vs,step:s=50,t0:r=0,start:i=!0,duration:n=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:i,duration:n},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#a=()=>{this.t+=this.state.step,this.i++,this.tx=$(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#o(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#a,this.state.step)),this}start(){return this.#o(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#o(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class Xs{constructor(t,e){this.ms=t,this.fn=e,this.id=null,this.running=!1}start(){return this.running||(this.running=!0,this.id=setInterval(this.fn,this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class Ks extends Xs{constructor(t=1e3/60){super(t,(()=>this._tick())),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class Qs{constructor(t=[],{repeat:e=1,loop:s=!1}={}){this.tasks=t,this.repeat=e,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map((({fn:t,delay:e=0})=>new Promise((async s=>{e>0&&await new Promise((t=>setTimeout(t,e))),this.onTask&&this.onTask(t),await t(),s()})))));else{const{fn:e,delay:s=0}=t;s>0&&await new Promise((t=>setTimeout(t,s))),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class Js{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:i=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:i,pauseTime:null,frame:0},i&&(s?this.startAfter(s):this.start(),r!==1/0&&this.stopAfter(r))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout((()=>this.start()),t),this}stopAfter(t=1e3){return setTimeout((()=>this.stop()),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}class tr{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.render(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isZikoUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}setHead(t){return this.head=t instanceof Fe?t:Ue(t),this}}function er(t){return/:\w+/.test(t)}class sr extends tr{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",Tt("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.render(location.pathname)}clear(){return[...this.routes].forEach((t=>{!er(t[0])&&t[1]?.isZikoUIElement&&t[1].unrender()})),this}render(t){const[e,s]=[...this.routes].find((e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(!e.startsWith(":")&&e!==i)return!1}return!0}(e[0],t)));let r;if(er(e)){const i=function(t,e){const s=t.split("/"),r=e.split("/"),i={};if(s.length!==r.length)return i;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(e.startsWith(":"))i[e.slice(1)]=n;else if(e!==n)return{}}return i}(e,t);r=s.call(this,i)}else s?.isZikoUIElement&&s.render(this.wrapper),"function"==typeof s&&(r=s());return r?.isZikoUIElement&&r.render(this.wrapper),r instanceof Promise&&r.then((t=>t.render(this.wrapper))),globalThis.history.pushState({},"",t),this}}const rr=({head:t,wrapper:e,target:s,routes:r})=>new sr({head:t,wrapper:e,target:s,routes:r});function ir(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),i=e.split("/"),n=r.indexOf(i[i.length-1]);if(-1!==n){const t=r.slice(n+1),e=t[t.length-1],i="index.js"===e||"index.ts"===e,a=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(i)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(a)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class nr{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"+nt.string(10),this.SUBSCRIBERS=new Set([this.UUID])}get broadcast(){return this}emit(t,e){return this.EVENTS_DATAS_PAIRS.set(t,e),this.#h(t),this}on(t,e=console.log){return this.EVENTS_HANDLERS_PAIRS.set(t,e),this.#c(),this}#c(){return this.channel.onmessage=t=>{this.LAST_RECEIVED_EVENT=t.data.last_sended_event;const e=t.data.userId;this.SUBSCRIBERS.add(e);const s=t.data.EVENTS_DATAS_PAIRS.get(this.LAST_RECEIVED_EVENT),r=this.EVENTS_HANDLERS_PAIRS.get(this.LAST_RECEIVED_EVENT);s&&r&&r(s)},this}#h(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 ar=t=>new nr(t);class or{#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,s=!0){return this.worker.postMessage({fun:t.toString(),close:s}),this.worker.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data.result)},this}}class hr{constructor(t,{namespace:e="Ziko",register:s,ValidateCssProps:r=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=r,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(let s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#r(),this}#r(){const t=globalThis?.document?.documentElement?.style;for(let e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}class cr{constructor(t,e,s){this.cache={storage:t,globalKey:e,channel:ar(`Ziko:useStorage-${e}`),oldItemKeys:new Set},this.#e(s),this.#r()}get items(){return JSON.parse(this.cache.storage[this.cache.globalKey]??null)}#r(){for(let t in this.items)Object.assign(this,{[[t]]:this.items[t]})}#e(t){this.cache.channel=ar(`Ziko:useStorage-${this.cache.globalKey}`),this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#r())),t&&(this.cache.storage[this.cache.globalKey]?(Object.keys(this.items).forEach((t=>this.cache.oldItemKeys.add(t))),console.group("Ziko:useStorage"),console.warn(`Storage key '${this.cache.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.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel.emit("Ziko-Storage-Updated",{}),Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#r(),this}add(t){const e={...this.items,...t};return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(e)),this.#r(),this}remove(...t){const e={...this.items};for(let s=0;s<t.length;s++)delete e[t[s]],delete this[t[s]];return this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.#r(),this}}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new tr({head:t,wrapper:e,target:s}),t.Arc=t=>1-Us(Ws(t)),t.Back=(t,e=1)=>t**2*((e+1)*t-e),t.Base=st,t.Canvas=(t,e)=>new ms(t,e),t.Clock=Ks,t.Combinaison=it,t.Complex=ks,t.Discret=(t,e=5)=>Math.ceil(t*e)/e,t.E=s,t.EPSILON=r,t.Elastic=t=>-2*qs(2,10*(t-1))*Fs(20*Zs*t/3*t),t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map((t=>t.split("/"))),s=Math.min(...e.map((t=>t.length)));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every((e=>e[t]===s||e[t].startsWith("["))))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let i=0;i<e.length;i++){const n=await t[e[i]](),a=await n.default;Object.assign(r,{[ir(e[i],s)]:a})}return rr({target:document.body,routes:{"/":()=>{},...r},wrapper:es.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new ss(e).append(...t)},t.Grid=(...t)=>new os("div").append(...t),t.HTMLWrapper=t=>new ls(t),t.InBack=(t,e=1.70158,s=e+1)=>s*qs(t,3)-e*t**2,t.InBounce=(t,e=7.5625,s=2.75)=>1-Ys(1-t,e,s),t.InCirc=t=>1-Hs(1-t**2),t.InCubic=t=>t**3,t.InElastic=(t,e=2*Zs/3)=>0===t?0:1===t?1:-qs(2,10*t-10)*Us((10*t-10.75)*e),t.InExpo=t=>0===t?0:2**(10*t-10),t.InOutBack=(t,e=1.70158,s=1.525*e)=>t<.5?qs(2*t,2)*(2*(s+1)*t-s)/2:(qs(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.InOutBounce=(t,e=7.5625,s=2.75)=>t<.5?Ys(1-2*t,e,s)/2:Ys(2*t-1,e,s)/2,t.InOutCirc=t=>t<.5?(1-Hs(1-(2*t)**2))/2:(Hs(1-(-2*t+2)**2)+1)/2,t.InOutCubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.InOutElastic=(t,e=2*Zs/4.5)=>0===t?0:1===t?1:t<.5?-qs(2,20*t-10)*Us((20*t-11.125)*e)/2:qs(2,-20*t+10)*Us((20*t-11.125)*e)/2+1,t.InOutExpo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.InOutQuad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.InOutQuart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.InOutQuint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.InOutSin=t=>-(Fs(Zs*t)-1)/2,t.InQuad=t=>t**2,t.InQuart=t=>t**4,t.InQuint=t=>t**5,t.InSin=t=>1-Fs(t*Zs/2),t.Linear=Vs,t.Logic=rt,t.Matrix=_s,t.OutBack=(t,e=1.70158,s=e+1)=>1+s*qs(t-1,3)+e*qs(t-1,2),t.OutBounce=Ys,t.OutCirc=t=>Hs(1-(t-1)**2),t.OutCubic=t=>1-(1-t)**3,t.OutElastic=(t,e=2*Zs/3)=>0===t?0:1===t?1:qs(2,-10*t)*Us((10*t-.75)*e)+1,t.OutExpo=t=>1===t?1:1-2**(-10*t),t.OutQuad=t=>1-(1-t)**2,t.OutQuart=t=>1-(1-t)**4,t.OutQuint=t=>1-(1-t)**5,t.OutSin=t=>Us(t*Zs/2),t.PI=e,t.Permutation=class{static withDiscount(t,e=t.length){if(1===e)return t.map((t=>[t]));const s=[];let r;return r=this.withDiscount(t,e-1),t.forEach((t=>{r.forEach((e=>{s.push([t].concat(e))}))})),s}static withoutDiscount(t){if(1===t.length)return t.map((t=>[t]));const e=[],s=this.withoutDiscount(t.slice(1)),r=t[0];for(let t=0;t<s.length;t++){const i=s[t];for(let t=0;t<=i.length;t++){const s=i.slice(0,t),n=i.slice(t);e.push(s.concat([r],n))}}return e}},t.Random=nt,t.SPA=rr,t.SVGWrapper=t=>new us(t),t.Scheduler=(t,{repeat:e=null}={})=>new Qs(t,{repeat:e}),t.Step=(t,e=5)=>Math.floor(t*e)/e,t.Suspense=(t,e)=>new hs(t,e),t.Svg=(t,e)=>new ps(t,e),t.Tick=Xs,t.TimeAnimation=Gs,t.TimeLoop=Js,t.TimeScheduler=Qs,t.UIElement=Qe,t.UINode=dt,t.Utils=et,t.ZikoApp=tr,t.ZikoCustomEvent=ve,t.ZikoEventClick=jt,t.ZikoEventClipboard=Pt,t.ZikoEventCustom=Bt,t.ZikoEventDrag=Nt,t.ZikoEventFocus=Ft,t.ZikoEventInput=ge,t.ZikoEventKey=Yt,t.ZikoEventMouse=Kt,t.ZikoEventPointer=te,t.ZikoEventSwipe=_e,t.ZikoEventTouch=re,t.ZikoEventWheel=ne,t.ZikoHead=Fe,t.ZikoMutationObserver=Te,t.ZikoSPA=sr,t.ZikoUICanvas=ms,t.ZikoUIFlex=ss,t.ZikoUIGrid=os,t.ZikoUIHTMLWrapper=ls,t.ZikoUISVGWrapper=us,t.ZikoUISuspense=hs,t.ZikoUISvg=ps,t.ZikoUIText=kt,t.ZikoUIXMLWrapper=cs,t.ZikoUseRoot=hr,t.__ZikoEvent__=Mt,t.abs=As,t.accum=G,t.acos=(...t)=>x(y.acos,...t),t.acosh=(...t)=>x(y.acosh,...t),t.acot=(...t)=>x(y.acot,...t),t.add=O,t.animation=(t,{ease:e,t0:s,t1:r,start:i,duration:n}={})=>new Gs(t,{ease:e,t0:s,t1:r,start:i,duration:n}),t.arange=z,t.arr2str=ys,t.asin=(...t)=>x(y.asin,...t),t.asinh=(...t)=>x(y.asinh,...t),t.atan=(...t)=>x(y.atan,...t),t.atan2=Bs,t.atanh=(...t)=>x(y.atanh,...t),t.bindClickEvent=Rt,t.bindClipboardEvent=$t,t.bindCustomEvent=(t,e,s)=>new Bt(t,e,s),t.bindDragEvent=Ht,t.bindFocusEvent=Wt,t.bindHashEvent=(t,e)=>new qt(t,e),t.bindKeyEvent=Xt,t.bindMouseEvent=Jt,t.bindPointerEvent=se,t.bindTouchEvent=(t,e)=>new re(t,e),t.bindWheelEvent=oe,t.cartesianProduct=Q,t.ceil=(...t)=>x(Math.ceil,...t),t.clamp=B,t.clock=t=>new Ks(t),t.combinaison=(t,e,s=!1)=>it[s?"withDiscount":"withoutDiscount"](t,e),t.complex=Ts,t.cos=js,t.cosh=Ps,t.cot=(...t)=>x(y.cot,...t),t.coth=(...t)=>x(y.coth,...t),t.csc=(...t)=>x(y.csc,...t),t.csv2arr=at,t.csv2json=(t,e=",")=>JSON.stringify(ot(t,e)),t.csv2matrix=(t,e=",")=>new _s(at(t,e)),t.csv2object=ot,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter((t=>t));let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,i=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");i.push(`(${e})`)}return r+i.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout((()=>t(...s)),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.defineWC=function(t,e,s={},{mode:r="open"}={}){globalThis.customElements?.define(t,class extends HTMLElement{static observedAttributes=["style",...Object.keys(s)];constructor(){super(),this.attachShadow({mode:r}),this.props={},this.mask={...s}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="",e({attrs:(t,e)=>console.log({key:t,value:e})}).render(this.shadowRoot),e((t=>console.log(t))).render(this.shadowRoot)}attributeChangedCallback(t,e,s){Object.assign(this.props,{[t]:this.mask[t].type(s)}),this.render()}})},t.deg2rad=F,t.div=I,t.e=Is,t.fact=(...t)=>x((t=>{let e,s=1;if(0==t)s=1;else if(t>0)for(e=1;e<=t;e++)s*=e;else s=NaN;return s}),...t),t.floor=$s,t.geomspace=H,t.getEvent=Ct,t.hypot=Ns,t.inRange=X,t.isApproximatlyEqual=K,t.isStateGetter=yt,t.json2arr=t=>ht(t instanceof Object?t:JSON.parse(t)),t.json2css=vs,t.json2csv=lt,t.json2csvFile=(t,e)=>{const s=lt(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=ft,t.json2xmlFile=(t,e)=>{const s=ft(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=pt,t.json2ymlFile=(t,e)=>{const s=pt(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=L,t.linspace=N,t.ln=Ms,t.logspace=Z,t.loop=(t,e={})=>new Js(t,e),t.map=$,t.mapfun=x,t.matrix=Es,t.matrix2=(...t)=>new _s(2,2,t),t.matrix3=(...t)=>new _s(3,3,t),t.matrix4=(...t)=>new _s(4,4,t),t.max=Y,t.min=V,t.modulo=M,t.mul=C,t.norm=P,t.nums=R,t.obj2str=bs,t.ones=D,t.pgcd=J,t.pow=Ss,t.powerSet=t=>{const e=[],s=2**t.length;for(let r=0;r<s;r+=1){const s=[];for(let e=0;e<t.length;e+=1)r&1<<e&&s.push(t[e]);e.push(s)}return e},t.ppcm=tt,t.preload=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}`)},t.prod=q,t.rad2deg=U,t.round=(...t)=>x(Math.round,...t),t.sec=(...t)=>x(y.sec,...t),t.sig=(...t)=>x((t=>1/(1+Is(-t))),...t),t.sign=zs,t.sin=Ds,t.sinc=(...t)=>x(y.sinc,...t),t.sinh=Ls,t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=Os,t.sqrtn=Cs,t.step_fps=t=>1e3/t,t.sub=S,t.subSet=null,t.sum=W,t.svg2ascii=ds,t.svg2img=(t,e=!0)=>es.img(gs(t)).render(e),t.svg2imgUrl=gs,t.svg2str=fs,t.tags=es,t.tan=Rs,t.tanh=(...t)=>x(y.tanh,...t),t.text=Tt,t.throttle=(t,e)=>{let s=0;return(...r)=>{const i=(new Date).getTime();i-s<e||(s=i,t(...r))}},t.tick=(t,e)=>new Xs(t,e),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.timeout=function(t,e){let s;const r=new Promise((r=>{s=setTimeout((()=>{e&&e(),r()}),t)}));return{id:s,clear:()=>clearTimeout(s),promise:r}},t.useChannel=ar,t.useCustomEvent=xe,t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;let i=!1;const n={pause:()=>{i=!0},resume:()=>{i=!1},clear:()=>{r.clear()},force:t=>{"function"==typeof t&&(t=t(s)),s=t,r.forEach((t=>t(s)))},getSubscribers:()=>new Set(r)};return e.forEach((n=>{n()._subscribe((()=>{if(!i){const i=t(...e.map((t=>t().value)));i!==s&&(s=i,r.forEach((t=>t(s))))}}),{element:document.body})})),[function(){return{value:s,isStateGetter:()=>!0,_subscribe:(t,e)=>{r.add(t);const s=new MutationObserver((()=>{document.body.contains(e.element)||(r.delete(t),s.disconnect())}));s.observe(document.body,{childList:!0,subtree:!0})}}},function(t){i||("function"==typeof t&&(t=t(s)),t!==s&&(s=t,r.forEach((t=>t(s)))))},n]},t.useEventEmitter=Le,t.useFavIcon=Be,t.useHashEvent=t=>new we(t),t.useHead=Ue,t.useInputEvent=t=>new ge(t),t.useLocaleStorage=(t,e)=>new cr(localStorage,t,e),t.useMediaQuery=(t,e)=>new We(t,e),t.useMeta=Ne,t.useReactive=t=>x((t=>wt(t)),t),t.useRoot=(t,{namespace:e,register:s,ValidateCssProps:r}={})=>new hr(t,{namespace:e,register:s,ValidateCssProps:r}),t.useSessionStorage=(t,e)=>new cr(sessionStorage,t,e),t.useState=wt,t.useSuccesifKeys=(t,e=[],s=(()=>{}))=>{t.cache.stream.enabled.down=!0;const r=e.length,i=t.cache.stream.history.down.slice(-r).map((t=>t.key));e.join("")===i.join("")&&(t.event.preventDefault(),s.call(t,t))},t.useSwipeEvent=ke,t.useThread=(t,e,s)=>{const r=new or;return t&&r.call(t,e,s),r},t.useTitle=He,t.wait=t=>new Promise((e=>setTimeout(e,t))),t.waitForUIElm=t=>new Promise((e=>{if(t.element)return e(t.element);const s=new MutationObserver((()=>{t.element&&(e(t.element),s.disconnect())}));s.observe(document?.body,{childList:!0,subtree:!0})})),t.waitForUIElmSync=(t,e=2e3)=>{const s=Date.now();for(;Date.now()-s<e;)if(t.element)return t.element},t.watch=(t,e={},s=null)=>{const r=new Te(t,e);return s&&r.observe(s),r},t.watchAttr=Oe,t.watchChildren=Ce,t.watchIntersection=Me,t.watchScreen=t=>new Re(t),t.watchSize=De,t.zeros=j}));
package/dist/ziko.mjs CHANGED
@@ -2,7 +2,7 @@
2
2
  /*
3
3
  Project: ziko.js
4
4
  Author: Zakaria Elalaoui
5
- Date : Tue Aug 19 2025 12:50:26 GMT+0100 (UTC+01:00)
5
+ Date : Fri Aug 22 2025 10:51:33 GMT+0100 (UTC+01:00)
6
6
  Git-Repo : https://github.com/zakarialaoui10/ziko.js
7
7
  Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
8
8
  Released under MIT License
@@ -3199,7 +3199,8 @@ const tags = new Proxy({}, {
3199
3199
  if(HTMLTags.includes(tag)) type = 'html';
3200
3200
  if(SVGTags.includes(tag)) type = 'svg';
3201
3201
  return (...args)=>{
3202
- console.log(isStateGetter(args[0]));
3202
+ // Fix undefined
3203
+ // console.log(isStateGetter(args[0]))
3203
3204
  if(
3204
3205
  ['string', 'number'].includes(typeof args[0])
3205
3206
  || args[0] instanceof UIElement
@@ -3653,6 +3654,44 @@ class ZikoUISvg extends UIElement {
3653
3654
 
3654
3655
  const Svg =(w,h)=>new ZikoUISvg(w,h);
3655
3656
 
3657
+ function defineWC(name, UIElement, props = {}, { mode = 'open'} = {}){
3658
+ globalThis.customElements?.define(
3659
+ name,
3660
+ class extends HTMLElement{
3661
+ static observedAttributes = ['style',...Object.keys(props)];
3662
+ constructor(){
3663
+ super();
3664
+ this.attachShadow({ mode });
3665
+ this.props = {};
3666
+ this.mask = {
3667
+ ...props,
3668
+ // ...{
3669
+ // style : { type : Object}
3670
+ // }
3671
+ };
3672
+ }
3673
+ connectedCallback(){
3674
+ this.render();
3675
+ // console.log(this.props)
3676
+ }
3677
+ render(){
3678
+ this.shadowRoot.innerHTML = '';
3679
+ // this.UIElement = UIElement(this.props).render(this.shadowRoot)
3680
+ UIElement({attrs:(key, value) => console.log({key, value})}).render(this.shadowRoot);
3681
+ UIElement(a => console.log(a)).render(this.shadowRoot);
3682
+ // this.UIElement = (()=>{
3683
+ // UIElement(this.props).render(this.shadowRoot);
3684
+ // })()
3685
+ // this.UIElement.setTarget(this.shadowRoot);
3686
+ }
3687
+ attributeChangedCallback(name, _, newValue) {
3688
+ Object.assign(this.props, {[name] : this.mask[name].type(newValue)});
3689
+ this.render();
3690
+ }
3691
+ }
3692
+ );
3693
+ }
3694
+
3656
3695
  const svg2str=svg=>(new XMLSerializer()).serializeToString(svg);
3657
3696
  const svg2ascii=svg=>btoa(svg2str(svg));
3658
3697
  const svg2imgUrl=svg=>'data:image/svg+xml;base64,'+svg2ascii(svg);
@@ -5802,4 +5841,4 @@ if(globalThis?.document){
5802
5841
  document?.addEventListener("DOMContentLoaded", __Ziko__.__Config__.init());
5803
5842
  }
5804
5843
 
5805
- export { App, Arc, Back, Base, Canvas, Clock, Combinaison, Complex, Discret, E, EPSILON, Elastic, FileBasedRouting, Flex, Grid$1 as Grid, HTMLWrapper, InBack, InBounce, InCirc, InCubic, InElastic, InExpo, InOutBack, InOutBounce, InOutCirc, InOutCubic, InOutElastic, InOutExpo, InOutQuad, InOutQuart, InOutQuint, InOutSin, InQuad, InQuart, InQuint, InSin, Linear, Logic$1 as Logic, Matrix, OutBack, OutBounce, OutCirc, OutCubic, OutElastic, OutExpo, OutQuad, OutQuart, OutQuint, OutSin, PI$2 as PI, Permutation, Random, SPA, SVGWrapper, Scheduler, Step, Suspense, Svg, Tick, TimeAnimation, TimeLoop, TimeScheduler, UIElement, UINode, Utils, ZikoApp, ZikoCustomEvent, ZikoEventClick, ZikoEventClipboard, ZikoEventCustom, ZikoEventDrag, ZikoEventFocus, ZikoEventInput, ZikoEventKey, ZikoEventMouse, ZikoEventPointer, ZikoEventSwipe, ZikoEventTouch, ZikoEventWheel, ZikoHead, ZikoMutationObserver, ZikoSPA, ZikoUICanvas, ZikoUIFlex, ZikoUIGrid, ZikoUIHTMLWrapper, ZikoUISVGWrapper, ZikoUISuspense, ZikoUISvg, ZikoUIText, ZikoUIXMLWrapper, ZikoUseRoot, __ZikoEvent__, abs, accum, acos$1 as acos, acosh, acot, add, animation, arange, arr2str, asin, asinh, atan, atan2, atanh, bindClickEvent, bindClipboardEvent, bindCustomEvent, bindDragEvent, bindFocusEvent, bindHashEvent, bindKeyEvent, bindMouseEvent, bindPointerEvent, bindTouchEvent, bindWheelEvent, cartesianProduct, ceil, clamp, clock, combinaison, complex, cos$1 as cos, cosh, cot, coth, csc, csv2arr, csv2json, csv2matrix, csv2object, csv2sql, debounce, defineParamsGetter, deg2rad, div, e, fact, floor, geomspace, getEvent, hypot, inRange, isApproximatlyEqual, isStateGetter, json2arr, json2css, json2csv, json2csvFile, json2xml, json2xmlFile, json2yml, json2ymlFile, lerp, linspace, ln, logspace, loop, map, mapfun$1 as mapfun, matrix, matrix2, matrix3, matrix4, max, min, modulo, mul, norm, nums, obj2str, ones, pgcd, pow$1 as pow, powerSet, ppcm, preload, prod, rad2deg, round, sec, sig, sign, sin$1 as sin, sinc, sinh, sleep, sqrt$1 as sqrt, sqrtn, step_fps, sub, subSet, sum, svg2ascii, svg2img, svg2imgUrl, svg2str, tags, tan, tanh, text, throttle, tick, timeTaken, time_memory_Taken, timeout, useChannel, useCustomEvent, useDerived, useEventEmitter, useFavIcon, useHashEvent, useHead, useInputEvent, useLocaleStorage, useMediaQuery, useMeta, useReactive, useRoot, useSessionStorage, useState, useSuccesifKeys, useSwipeEvent, useThread, useTitle, wait, waitForUIElm, waitForUIElmSync, watch, watchAttr, watchChildren, watchIntersection, watchScreen, watchSize, zeros };
5844
+ export { App, Arc, Back, Base, Canvas, Clock, Combinaison, Complex, Discret, E, EPSILON, Elastic, FileBasedRouting, Flex, Grid$1 as Grid, HTMLWrapper, InBack, InBounce, InCirc, InCubic, InElastic, InExpo, InOutBack, InOutBounce, InOutCirc, InOutCubic, InOutElastic, InOutExpo, InOutQuad, InOutQuart, InOutQuint, InOutSin, InQuad, InQuart, InQuint, InSin, Linear, Logic$1 as Logic, Matrix, OutBack, OutBounce, OutCirc, OutCubic, OutElastic, OutExpo, OutQuad, OutQuart, OutQuint, OutSin, PI$2 as PI, Permutation, Random, SPA, SVGWrapper, Scheduler, Step, Suspense, Svg, Tick, TimeAnimation, TimeLoop, TimeScheduler, UIElement, UINode, Utils, ZikoApp, ZikoCustomEvent, ZikoEventClick, ZikoEventClipboard, ZikoEventCustom, ZikoEventDrag, ZikoEventFocus, ZikoEventInput, ZikoEventKey, ZikoEventMouse, ZikoEventPointer, ZikoEventSwipe, ZikoEventTouch, ZikoEventWheel, ZikoHead, ZikoMutationObserver, ZikoSPA, ZikoUICanvas, ZikoUIFlex, ZikoUIGrid, ZikoUIHTMLWrapper, ZikoUISVGWrapper, ZikoUISuspense, ZikoUISvg, ZikoUIText, ZikoUIXMLWrapper, ZikoUseRoot, __ZikoEvent__, abs, accum, acos$1 as acos, acosh, acot, add, animation, arange, arr2str, asin, asinh, atan, atan2, atanh, bindClickEvent, bindClipboardEvent, bindCustomEvent, bindDragEvent, bindFocusEvent, bindHashEvent, bindKeyEvent, bindMouseEvent, bindPointerEvent, bindTouchEvent, bindWheelEvent, cartesianProduct, ceil, clamp, clock, combinaison, complex, cos$1 as cos, cosh, cot, coth, csc, csv2arr, csv2json, csv2matrix, csv2object, csv2sql, debounce, defineParamsGetter, defineWC, deg2rad, div, e, fact, floor, geomspace, getEvent, hypot, inRange, isApproximatlyEqual, isStateGetter, json2arr, json2css, json2csv, json2csvFile, json2xml, json2xmlFile, json2yml, json2ymlFile, lerp, linspace, ln, logspace, loop, map, mapfun$1 as mapfun, matrix, matrix2, matrix3, matrix4, max, min, modulo, mul, norm, nums, obj2str, ones, pgcd, pow$1 as pow, powerSet, ppcm, preload, prod, rad2deg, round, sec, sig, sign, sin$1 as sin, sinc, sinh, sleep, sqrt$1 as sqrt, sqrtn, step_fps, sub, subSet, sum, svg2ascii, svg2img, svg2imgUrl, svg2str, tags, tan, tanh, text, throttle, tick, timeTaken, time_memory_Taken, timeout, useChannel, useCustomEvent, useDerived, useEventEmitter, useFavIcon, useHashEvent, useHead, useInputEvent, useLocaleStorage, useMediaQuery, useMeta, useReactive, useRoot, useSessionStorage, useState, useSuccesifKeys, useSwipeEvent, useThread, useTitle, wait, waitForUIElm, waitForUIElmSync, watch, watchAttr, watchChildren, watchIntersection, watchScreen, watchSize, zeros };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ziko",
3
- "version": "0.41.0",
3
+ "version": "0.41.1",
4
4
  "description": "A versatile JavaScript library offering a rich set of Hyperscript Based UI components, advanced mathematical utilities, interactivity ,animations, client side routing and more ...",
5
5
  "keywords": [
6
6
  "front-end",
package/readme.md CHANGED
@@ -96,7 +96,7 @@ setInterval(()=>{
96
96
  - 📱 Single Page Application With File Based Routing
97
97
  ```js
98
98
  import { FileBasedRouting } from "ziko";
99
- FileBasedRouting(import.meta.glob("./src/pages/**/*.js"))
99
+ FileBasedRouting(import.meta.glob("./pages/**/*.js"))
100
100
  ```
101
101
  - 🤝 One Way Interleaving With [Vanjs]()
102
102
  - ⏰ Time loop and animations support
@@ -110,7 +110,7 @@ FileBasedRouting(import.meta.glob("./src/pages/**/*.js"))
110
110
  - ➡️ Uni-directional (ZikoJS → X) :
111
111
  - `Astro` : (SSR + Client Hydration)
112
112
  - 📦 Growing Add-On Ecosystem :
113
- - Ziko-Gl : WebGL/3D Graphics, Built on Top of [Threejs](https://github.com/zakarialaoui10/ziko-gl)
113
+ - Ziko-Tgl : WebGL/3D Graphics, Built on Top of [Threejs](https://github.com/zakarialaoui10/ziko-gl)
114
114
  - Ziko-Chart
115
115
  - Ziko-Code
116
116
  - Ziko-Lottie
@@ -20,7 +20,8 @@ const tags = new Proxy({}, {
20
20
  if(HTMLTags.includes(tag)) type = 'html'
21
21
  if(SVGTags.includes(tag)) type = 'svg'
22
22
  return (...args)=>{
23
- console.log(isStateGetter(args[0]))
23
+ // Fix undefined
24
+ // console.log(isStateGetter(args[0]))
24
25
  if(
25
26
  ['string', 'number'].includes(typeof args[0])
26
27
  || args[0] instanceof UIElement
@@ -1,33 +1,36 @@
1
- export function defineWC(name, UIElement, props = {}, { mode = 'open'} = {}){
1
+ export function defineWC(name, UIElement, props = {}, { mode = 'open'} = {}) {
2
2
  globalThis.customElements?.define(
3
3
  name,
4
- class extends HTMLElement{
5
- static observedAttributes = ['style',...Object.keys(props)];
6
- constructor(){
7
- super()
4
+ class extends HTMLElement {
5
+ static get observedAttributes() {
6
+ return ['style', ...Object.keys(props)];
7
+ }
8
+
9
+ constructor() {
10
+ super();
8
11
  this.attachShadow({ mode });
9
12
  this.props = {};
10
- this.PropsMask = {
13
+ this.mask = {
11
14
  ...props,
12
- ...{
13
- style : { type : Object}
14
- }
15
- }
15
+ // style: { type: Object }
16
+ };
16
17
  }
17
- connectedCallback(){
18
- this.render()
19
- console.log(this.props)
18
+
19
+ connectedCallback() {
20
+ this.render();
20
21
  }
21
- render(){
22
- this.shadowRoot.innerHTML = ''
23
- this.UIElement = UIElement(this.props);
24
- this.UIElement.setTarget(this.shadowRoot)
22
+
23
+ render() {
24
+ this.shadowRoot.innerHTML = '';
25
+ this.UIElement = UIElement(this.props).render(this.shadowRoot);
25
26
  }
27
+
26
28
  attributeChangedCallback(name, _, newValue) {
27
- Object.assign(this.props, {[name] : this.PropsMask[name].type(newValue)});
28
- // if(name === "style") this.
29
- this.render()
29
+ Object.assign(this.props, {
30
+ [name]: this.mask[name].type(newValue)
31
+ });
32
+ this.render();
30
33
  }
31
34
  }
32
- )
33
- }
35
+ );
36
+ }