ziko
Version:
A versatile JavaScript library offering a rich set of Hyperscript Based UI components, advanced mathematical utilities, interactivity ,animations, client side routing and more ...
9 lines • 77.8 kB
JavaScript
/*
Project: ziko.js
Author: Zakaria Elalaoui
Date : Fri Dec 05 2025 11:33:57 GMT+0100 (UTC+01:00)
Git-Repo : https://github.com/zakarialaoui10/ziko.js
Git-Wiki : https://github.com/zakarialaoui10/ziko.js/wiki
Released under MIT License
*/
!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:n,cos:i,sin:o,tan:c,atan:h,cosh:l,sinh:u,tanh:f,acosh:m,asinh:p,atanh:d,log:g}=Math;let w={cos:t=>t.isComplex?.()?new t.constructor(i(t.a)*l(t.b),-o(t.a)*u(t.b)):i(t),sin:t=>t?.isComplex?new t.constructor(o(t.a)*l(t.b),i(t.a)*u(t.b)):o(t),tan:t=>{if(t?.isComplex){const e=i(2*t.a)+l(2*t.b);return new t.constructor(o(2*t.a)/e,u(2*t.b)/e)}return c(t)},sinc:t=>o(n*t)/(n*t),sec:t=>1/i(t),csc:t=>1/o(t),cot:t=>1/c(t),acos:t=>{if(!t?.isComplex)return o(t)},asin:t=>{if(!t?.isComplex)return o(t)},atan:t=>{if(!t?.isComplex)return o(t)},acot:t=>n/2-h(t),cosh:t=>t?.isComplex?new t.constructor(l(t.a)*i(t.b),u(t.a)*o(t.b)):l(t),sinh:t=>t?.isComplex?new t.constructor(u(t.a)*i(t.b),l(t.a)*o(t.b)):u(t),tanh:t=>{if(t?.isComplex){const e=l(2*a)+i(2*b);return new t.constructor(u(2*a)/e,o(2*b)/e)}return f(t)},coth:t=>.5*g((1+t)/(1-t)),acosh:m,asinh:p,atanh:d};const y=(t,...e)=>{const s=e.map((e=>null===e||["number","string","boolean","bigint","undefined"].includes(typeof e)||e?.__mapfun__?t(e):e instanceof Array?e.map((e=>y(t,e))):ArrayBuffer.isView(e)?e.map((e=>t(e))):e instanceof Set?new Set(y(t,...e)):e instanceof Map?new Map([...e].map((e=>[e[0],y(t,e[1])]))):e.isMatrix?.()?new e.constructor(e.rows,e.cols,y(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map((e=>[e[0],y(t,e[1])]))):void 0));return 1==s.length?s[0]:s},v=(...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(v(...t[s])):t[s]instanceof Object&&e.push(v(...Object.values(t[s])));return 1===e.length?e[0]:e},_=(...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(_(...t[s])):t[s]instanceof Object&&e.push(_(...Object.values(t[s])));return 1===e.length?e[0]:e},x=(...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(x(...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},E=(...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(x(...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},k=(...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(k(...t[s])):t[s]instanceof Object&&e.push(null);return 1===e.length?e[0]:e},C=(...t)=>y(Math.abs,...t),A=(...t)=>y(Math.sqrt,...t),M=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,e):e?.isComplex?.()?e.constructor.fromExpo(t**e.a,e.b*O(t)):y((e=>M(t,e)),...e);if(t.isComplex?.())return"number"==typeof e?t.constructor.fromExpo(t.z**e,t.phi*e):e.isComplex?.()?t.constructor.fromExpo(t.z**e.a*S(-t.phi*e.b),O(t.z)*e.b+e.a*t.phi):y((e=>M(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return y((t=>M(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(y((e=>M(t[r],e)),...e));return s}}},T=(t,e)=>{if("number"==typeof t)return"number"==typeof e?Math.pow(t,1/e):y((e=>T(t,e)),...e);if(t.isComplex?.())return"number"==typeof e?t.constructor.fromExpo(T(t.z,e),t.phi/e):y((e=>T(t,e)),...e);if(t instanceof Array){if("number"==typeof e)return y((t=>T(t,e)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(y((e=>T(t[r],e)),...e));return s}}},S=(...t)=>y(Math.exp,...t),O=(...t)=>y(Math.log,...t),j=(...t)=>y(w.cos,...t),P=(...t)=>y(w.sin,...t),I=(...t)=>y(w.tan,...t),D=(...t)=>y(w.cosh,...t),R=(...t)=>y(w.sinh,...t),z=(...t)=>y(Math.floor,...t),F=(t,e,s=!0)=>{if("number"==typeof t)return"number"==typeof e?s?Math.atan2(t,e):180*Math.atan2(t,e)/Math.PI:y((e=>F(t,e,s)),...e);if(t instanceof Array){if("number"==typeof e)return y((t=>F(t,e,s)),...t);if(e instanceof Array){const s=[];for(let r=0;r<t.length;r++)s.push(y((e=>M(t[r],e)),...e));return s}}},$=(...t)=>t.every((t=>"number"==typeof t))?Math.hypot(...t):t.every((t=>t instanceof Array))?y(Math.hypot,...t):void 0,L=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t+e;if(e.isComplex?.())return new e.constructor(t+e.a,e.b);if(e.isMatrix?.())return e.constructor.nums(e.rows,e.cols,t).add(e);if(e instanceof Array)return e.map((e=>B(e,t)))}else{if(t.isComplex?.()||t.isMatrix?.())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=>B(t,e)));if(t.length===e.length)return t.map(((t,s)=>B(t,e[s])))}}},q=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t-e;if(e.isComplex?.())return new e.constructor(t-e.a,-e.b);if(e.isMatrix?.())return e.constructor.nums(e.rows,e.cols,t).sub(e);if(e instanceof Array)return e.map((e=>W(e,t)))}else{if(t.isComplex?.()||t.isMatrix?.())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=>W(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>W(t,e[s])))}}},U=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t*e;if(e.isComplex?.())return new e.constructor(t*e.a,t*e.b);if(e.isMatrix?.())return e.constructor.nums(e.rows,e.cols,t).mul(e);if(e instanceof Array)return e.map((e=>H(t,e)))}else{if(t.isComplex?.()||t.isMatrix?.())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=>H(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>H(t,e[s])))}}},N=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t/e;if(e.isComplex?.())return new e.constructor(t/e.a,t/e.b);if(e.isMatrix?.())return e.constructor.nums(e.rows,e.cols,t).div(e);if(e instanceof Array)return e.map((e=>V(t,e)))}else{if(t.isComplex?.()||t.isMatrix?.())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=>V(t,e)));if(e instanceof Array&&t.length===e.length)return t.map(((t,s)=>V(t,e[s])))}}},Z=(t,e)=>{if("number"==typeof t){if("number"==typeof e)return t%e;if(e.isComplex?.())return new e.constructor(t%e.a,t%e.b);if(e.isMatrix?.())return e.constructor.nums(e.rows,e.cols,t).modulo(e);if(e instanceof Array)return e.map((e=>V(t,e)))}else{if(t.isComplex?.()||t.isMatrix?.())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=>B(t,e)))}},B=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=L(s,e[t]);return s},W=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=q(s,e[t]);return s},H=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=U(s,e[t]);return s},V=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=N(s,e[t]);return s},G=(t,...e)=>{var s=t;for(let t=0;t<e.length;t++)s=Z(s,e[t]);return s},K=t=>new Array(t).fill(0),J=t=>new Array(t).fill(1),Y=(t,e)=>new Array(e).fill(t),X=(t,e,s)=>{if("number"==typeof t)return e!==s?(t-e)/(s-e):0;if(t.isMatrix?.())return new t.constructor(t.rows,t.cols,X(t.arr.flat(1),e,s));if(t.isComplex?.())return new t.constructor(X(t.a,e,s),X(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>X(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=X(t[s])}}},Q=(t,e,s)=>{if("number"==typeof t)return(s-e)*t+e;if(t.isMatrix?.())return new t.constructor(t.rows,t.cols,Q(t.arr.flat(1),e,s));if(t.isComplex?.())return new t.constructor(Q(t.a,e,s),Q(t.b,e,s));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>Q(t,e,s)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=Q(t[s])}}},tt=(t,e,s,r,n)=>{if("number"==typeof t)return Q(X(t,e,s),r,n);if(t.isMatrix?.())return new t.constructor(t.rows,t.cols,tt(t.arr.flat(1),e,s,r,n));if(t.isComplex?.())return new t.constructor(tt(t.a,s,r,n),tt(t.b,e,s,r,n));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>tt(t,e,s,r,n)));{let i=new Array(t.length);for(let o=0;o<t.length;o++)i[o]=tt(t[o],e,s,r,n)}}},et=(t,e,s)=>{const[r,n]=[x(e,s),E(e,s)];if("number"==typeof t)return x(E(t,r),n);if(t.isMatrix?.())return new t.constructor(t.rows,t.cols,et(t.arr.flat(1),r,n));if(t.isComplex?.())return new t.constructor(et(t.a,r,n),et(t.b,r,n));if(t instanceof Array){if(t.every((t=>typeof("number"===t))))return t.map((t=>et(t,r,n)));{let e=new Array(t.length);for(let s=0;s<t.length;s++)e[s]=et(t[s],r,n)}}},st=(t,e,s,r=!1)=>{let n=[];if(t<e)for(let i=t;r?i<=e:i<e;i+=s)n.push(10*i/10);else for(let i=t;r?i>=e:i>e;i-=s)n.push(10*i/10);return n},rt=(t,e,s=C(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[o,a]=[t,e].sort(((t,e)=>e-t));var n=[];let c;c=r?(o-a)/(s-1):(o-a)/s;for(var i=0;i<s;i++)t<e?n.push(a+c*i):n.push(o-c*i);return n}if([t,e].some((t=>t.isComplex?.()))){const n=new s.constructor(t),i=new s.constructor(e);s=s||Math.abs(n.a-i.a)+1;const o=rt(n.a,i.a,s,r),a=rt(n.b,i.b,s,r);let c=new Array(s).fill(null);return c=c.map(((t,e)=>new t.constructor(o[e],a[e]))),c}}},nt=(t,e,r=e-t+1,n=s,i=!0)=>rt(t,e,r,i).map((t=>M(n,t))),it=(t,e,s=C(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[n,i]=[t,e].sort(((t,e)=>e-t));let o;o=T(n/i,r?s-1:s);const a=[i];for(let t=1;t<s;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some((t=>t.isComplex?.()))){const n=new s.constructor(t),i=new s.constructor(e);let o;s=s||Math.abs(n.a-i.a)+1,o=T(i.div(n),r?s-1:s);const a=[n];for(let t=1;t<s;t++)a.push(H(a[t-1],o));return a}}},ot=(...t)=>mapfun((t=>t*Math.PI/180),...t),at=(...t)=>mapfun((t=>t/Math.PI*180),...t),ct=(t,e,s)=>{const[r,n]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=n},ht=(t,e,s=1e-4)=>Math.abs(t-e)<=s,lt=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),ut=(t,e)=>{let s,r=1;if(t==z(t)&&e==z(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},ft=(t,e)=>{let s;if(t==z(t)&&e==z(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},mt={add:B,sub:W,mul:H,div:V,modulo:G,zeros:K,ones:J,nums:Y,norm:X,lerp:Q,map:tt,clamp:et,arange:st,linspace:rt,logspace:nt,geomspace:it,sum:v,prod:_,accum:k,cartesianProduct:lt,ppcm:ft,pgcd:ut,deg2rad:ot,rad2deg:at,inRange:ct,isApproximatlyEqual:ht};class pt{constructor(t=0,e=0){t instanceof pt?(this.a=t.a,this.b=t.b):"object"==typeof t?"a"in t&&"b"in t?(this.a=t.a,this.b=t.b):"a"in t&&"z"in t?(this.a=t.a,this.b=A(t.z**2-t.a**2)):"a"in t&&"phi"in t?(this.a=t.a,this.b=t.a*I(t.phi)):"b"in t&&"z"in t?(this.b=t.b,this.a=A(t.z**2-t.b**2)):"b"in t&&"phi"in t?(this.b=e,this.a=t.b/I(t.phi)):"z"in t&&"phi"in t&&(this.a=t.z*j(t.phi),this.a=t.z*P(t.phi)):"number"==typeof t&&"number"==typeof e&&(this.a=+t.toFixed(32),this.b=+e.toFixed(32))}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}get clone(){return new pt(this.a,this.b)}get z(){return $(this.a,this.b)}get phi(){return F(this.b,this.a)}static Zero(){return new pt(0,0)}get conj(){return new pt(this.a,-this.b)}get inv(){return new pt(this.a/(M(this.a,2)+M(this.b,2)),-this.b/(M(this.a,2)+M(this.b,2)))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new pt(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a+=+v(...e).toFixed(15),this.b+=+v(...s).toFixed(15),this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new pt(t[e],0));let e=t.map((t=>t.a)),s=t.map((t=>t.b));return this.a-=+v(...e).toFixed(15),this.b-=+v(...s).toFixed(15),this}mul(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new pt(t[e],0));let e=+_(this.z,...t.map((t=>t.z))).toFixed(15),s=+v(this.phi,...t.map((t=>t.phi))).toFixed(15);return this.a=+(e*j(s).toFixed(15)).toFixed(14),this.b=+(e*P(s).toFixed(15)).toFixed(14),this}div(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new pt(t[e],0));let e=+(this.z/_(...t.map((t=>t.z)))).toFixed(15),s=+(this.phi-v(...t.map((t=>t.phi)))).toFixed(15);return this.a=+(e*j(s).toFixed(15)).toFixed(15),this.b=+(e*P(s).toFixed(15)).toFixed(15),this}pow(t){if(z(t)===t&&t>0){let e=+(this.z**t).toFixed(15),s=+(this.phi*t).toFixed(15);this.a=+(e*j(s).toFixed(15)).toFixed(15),this.b=+(e*P(s).toFixed(15)).toFixed(15)}return this}static fromExpo(t,e){return new pt(+(t*j(e)).toFixed(13),+(t*P(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 dt(t**this.a*j(this.b*O(t)),t**this.a*P(this.b*O(t)))}sqrtn(t=2){return dt(T(this.z,t)*j(this.phi/t),T(this.z,t)*P(this.phi/t))}get sqrt(){return this.sqrtn(2)}get log(){return dt(this.z,this.phi)}get cos(){return dt(j(this.a)*D(this.b),P(this.a)*R(this.b))}get sin(){return dt(P(this.a)*D(this.b),j(this.a)*R(this.b))}get tan(){const t=j(2*this.a)+D(2*this.b);return dt(P(2*this.a)/t,R(2*this.b)/t)}}const dt=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>dt(t[r],e[r])));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>dt(t.arr[r],e.arr[r])));return new t.constructor(t.rows,t.cols,...s)}return new pt(t,e)},gt=t=>{const e=new XMLHttpRequest;if(e.open("GET",t,!1),e.send(),200===e.status)return e.responseText;throw new Error(`Failed to fetch data from ${t}. Status: ${e.status}`)};globalThis.fetchdom=async function(t="https://github.com/zakarialaoui10"){try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const s=await e.text();return(new DOMParser).parseFromString(s,"text/html").documentElement}catch(t){throw console.error("Failed to fetch DOM:",t),t}},globalThis.fetchdomSync=function(t="https://github.com/zakarialaoui10"){try{const e=gt(t);return(new DOMParser).parseFromString(e,"text/html").documentElement}catch(t){throw console.error("Failed to fetch DOM synchronously:",t),t}};const bt=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),wt=(t,e=",")=>{const[s,...r]=bt(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},yt=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],vt=(t,e)=>yt(t).map((t=>t.join(e))).join("\n"),_t=(t,e=",")=>vt(t instanceof Object?t:JSON.parse(t),e),xt=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=xt(t,`${e} `);s.push(...r)}else s.push(`${e}- ${t}`)}));else for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];if("object"==typeof n&&null!==n){s.push(`${e}${r}:`);const t=xt(n,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${n}`)}return s},Et=(t,e="")=>xt(t,e).join("\n"),kt=(t,e)=>Et(t instanceof Object?t:JSON.parse(t),e),Ct=(t,e=1)=>{let s="";for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];s+="\n"+" ".repeat(e)+`<${r}>`,s+="object"==typeof n?Ct(n,e+2):`${n}`,s+=`</${r}>`}return s.trim()};class At{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}class Mt extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find((e=>e.element.id===t))}getItemsByTagName(t){return this.filter((e=>e.element.tagName.toLowerCase()===t.toLowerCase()))}getElementsByClassName(t){return this.filter((e=>e.element.classList?.contains(t)))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find((t=>t.element===e))||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map((t=>this.find((e=>e.element===t)))).filter(Boolean)}}const Tt=new Mt,St={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},Ot={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},jt={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class Pt{#t;#e;#s;#r;#n;#i;constructor(t=""){this.#t=new BroadcastChannel(t),this.#e=new Map,this.#s=new Map,this.#r="ziko-channel:"+1e17*Math.random(),this.#n=new Set([this.#r]),this.#i=new Set,this.#t.addEventListener("message",(t=>{const{last_sent_event:e,userId:s,eventData:r,rooms:n}=t.data;if(s===this.#r)return;if(n&&n.length&&!n.some((t=>this.#i.has(t))))return;this.#n.add(s),this.#e=new Map(r);const i=this.#s.get(e);i&&i.forEach((({fn:t,rooms:s})=>{s&&0!==s.length&&n&&!n.some((t=>s.includes(t)))||t(this.#e.get(e))}))}))}emit(t,e,s){return this.#e.set(t,e),"string"==typeof s&&(s=[s]),this.#t.postMessage({eventData:Array.from(this.#e.entries()),last_sent_event:t,userId:this.#r,rooms:s&&s.length?s:void 0}),this}on(t,e=console.log,s){return this.#s.has(t)||this.#s.set(t,[]),"string"==typeof s&&(s=[s]),this.#s.get(t).push({fn:e,rooms:s}),this}off(t,e){return this.#s.has(t)?(this.#s.set(t,this.#s.get(t).filter((t=>t.fn!==e))),this):this}once(t,e,s){const r=s=>{e(s),this.off(t,r)};return this.on(t,r,s),this}join(...t){return t.forEach((t=>this.#i.add(t))),this}leave(...t){return t.length?t.forEach((t=>this.#i.delete(t))):this.#i.clear(),this}close(){return this.#t.close(),this}}const It=t=>new Pt(t);class Dt{constructor(t,e,s,r=!0){this.cache={storage:t,globalKey:e,channel:r?It(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#o(s,r)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#a(){const t=this.items;this.cache.oldItemKeys.forEach((t=>delete this[t]));for(const e in t)this[e]=t[e],this.cache.oldItemKeys.add(e)}#o(t,e){if(e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#a())),t)if(this.cache.storage.getItem(this.cache.globalKey)){const t=this.items;Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#a()}else this.set(t);else this.#a()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#a(),this}add(t){return this.set({...this.items,...t}),this}remove(...t){const e={...this.items};return t.forEach((t=>{delete e[t],delete this[t],this.cache.oldItemKeys.delete(t)})),this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.cache.oldItemKeys.forEach((t=>delete this[t])),this.cache.oldItemKeys.clear(),this.#a(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}const Rt=(t,e,s=!0)=>new Dt(sessionStorage,t,e,s);var zt={store:new Map,index:0,session_storage:null,register:function(t){if(!(void 0).SSR&&(void 0).DEV){this.session||(this.session_storage=Rt("ziko-state",{}));const e=this.session_storage.get(this.index);e?t.value=e:this.session_storage.add({[this.index]:t.value})}this.store.set(this.index++,t)},update:function(t,e){!(void 0).SSR&&(void 0).DEV&&this.session_storage.add({[t]:e})}};function Ft(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:Tt,__HYDRATION__:Ot,__State__:zt,__Config__:St,__CACHE__:jt},t=__Ziko__,Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}))}Ft();class $t extends At{constructor(){super()}init(t,e,s,r){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,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.items=new Mt,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&r&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function Lt(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}var qt=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout((()=>this.mount(t,0)),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout((()=>this.unmount(0)),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function Ut(t){const{store:e,index:s}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});let r=e.get(s);return[function(){return{value:r.value,isStateGetter:()=>!0,_subscribe:t=>r.subscribers.add(t)}},function(t){r.paused||("function"==typeof t&&(t=t(r.value)),t!==r.value&&(r.value=t,r.subscribers.forEach((t=>t(r.value))),__Ziko__.__State__.update(s,t)))},{pause:()=>{r.paused=!0},resume:()=>{r.paused=!1},clear:()=>{r.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(r.value)),r.value=t,r.subscribers.forEach((t=>t(r.value)))},getSubscribers:()=>new Set(r.subscribers)}]}globalThis.__Ziko__||Ft();const Nt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),Zt=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),Bt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};class Wt extends At{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const Ht=(...t)=>new Wt(...t);async function Vt(t,e,...s){if(this.cache.isFrozzen)return console.warn("You can't append new item to frozzen element"),this;for(let r=0;r<s.length;r++){if(["number","string"].includes(typeof s[r])&&(s[r]=Ht(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=Ht(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 n=await s[r];n.cache.parent=this,this.element?.[t](n.element),n.target=this.element,this.items[e](n)}else s[r]instanceof Object&&(s[r]?.style&&this.style(s[r]?.style),s[r]?.attr&&Object.entries(s[r].attr).forEach((t=>this.setAttr(""+t[0],t[1]))))}return this.maintain(),this}function Gt(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=Bt(t)?Zt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(Nt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var Kt=Object.freeze({__proto__:null,getAttr:function(t){return t=is_camelcase(t)?camel2hyphencase(t):t,this.element.attributes[t].value},removeAttr:function(...t){for(let e=0;e<t.length;e++)this.element?.removeAttribute(t[e]);return this},setAttr:function(t,e){if(t instanceof Object){const[s,r]=[Object.keys(t),Object.values(t)];for(let t=0;t<s.length;t++)r[t]instanceof Array&&(e[t]=r[t].join(" ")),Gt.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Gt.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});var Jt=Object.freeze({__proto__:null,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return Vt.call(this,"append","push",...t),this},before:function(t){return t?.isUIElement&&(t=t.element),this.element?.before(t),this},clear:function(){return this?.items?.forEach((t=>t.unmount())),this.element.innerHTML="",this},insertAt:function(t,...e){if(t>=this.element.children.length)this.append(...e);else for(let s=0;s<e.length;s++)["number","string"].includes(typeof e[s])&&(e[s]=Ht(e[s])),this.element?.insertBefore(e[s].element,this.items[t].element),this.items.splice(t,0,e[s]);return this},prepend:function(...t){return this.__addItem__.call(this,"prepend","unshift",...t),this},remove:function(...t){const e=t=>{"number"==typeof t&&(t=this.items[t]),t?.isUIElement&&this.element?.removeChild(t.element),this.items=this.items.filter((e=>e!==t))};for(let s=0;s<t.length;s++)e(t[s]);for(let t=0;t<this.items.length;t++)Object.assign(this,{[[t]]:this.items[t]});return this},replaceElementWith:function(t){return this.cache.element.replaceWith(t),this.cache.element=t,this}});const Yt={Click:["Click","DblClick","ClickAway"],Ptr:["PtrMove","PtrDown","PtrUp","PtrLeave","PtrEnter","PtrOut","PtrCancel"],Mouse:["MouseMove","MouseDown","MouseUp","MouseEnter","MouseLeave","MouseOut"],Key:["KeyDown","KeyPress","KeyUp"],Clipboard:["Copy","Cut","Paste"],Focus:["focus","blur"],Drag:["Drag","DragStart","DragEnd","Drop"],Wheel:["Wheel"],View:["EnterView","ExitView","ResizeView"],Swipe:["SwipeLeft","SwipeUp","SwipeRight","SwipeDown"]};function Xt(t,e,s,r){this.cache.currentEvent=e,this.cache.event=t,s?.call(this),r?.hasOwnProperty("prototype")?r?.call(this):r?.call(null,this),this.cache.preventDefault[e]&&t.preventDefault(),this.cache.stopPropagation[e]&&t.stopPropagation(),this.cache.stopImmediatePropagation[e]&&t.stopImmediatePropagation(),this.cache.callbacks[e]?.(this)}function Qt(t,...e){return(0===e.length?Object.keys(this.cache.paused):e).forEach((e=>{this.cache.paused.hasOwnProperty(e)&&(this.targetElement?.[t](e,this.cache.__controllers__[e],this.cache.options[e]),this.cache.paused[e]="removeEventListener"===t)})),this}const te=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();class ee{constructor(t,e=null,s=[],r,n){this.target=e,this.cache={signature:t,currentEvent:null,event:null,options:{},preventDefault:{},stopPropagation:{},stopImmediatePropagation:{},paused:{},callbacks:{},__controllers__:{}},s&&this._register_events(s,r,n)}_register_events(t,e,s,r=!0){const n=t?.map((t=>te(t)));return n?.forEach(((n,i)=>{this.cache.preventDefault[n]=!1,this.cache.options[n]={},this.cache.paused[n]=!1,this.cache.__controllers__[n]=t=>Xt.call(this,t,n,e,s),r&&(this[`on${t[i]}`]=t=>this.__onEvent(n,this.cache.options[n],{},t))})),this}__onEvent(t,e,s,r){return r?(this.cache.callbacks[t]=r,this.__handle(t,this.cache.__controllers__[t],e,s),this):this}get targetElement(){return this.target?.element}get isParent(){return this.target?.element===this.event?.srcElement}get item(){return this.target.find((t=>t.element==this.event?.srcElement))?.[0]}get currentEvent(){return this.cache.currentEvent}get event(){return this.cache.event}get detail(){return this.cache.event.detail}setTarget(t){return this.target=t,this}__handle(t,e,s){return this.targetElement?.addEventListener(t,e,s),this}#c(t,...e){return(0===e.length?Object.keys(this.cache[t]):e).forEach((e=>{this.cache[t].hasOwnProperty(e)&&(this.cache[t][e]=!0)})),this}preventDefault(...t){return this.#c("preventDefault",...t)}stopPropagation(...t){return this.#c("stopPropagation",...t)}stopImmediatePropagation(...t){return this.#c("stopImmediatePropagation",...t)}setEventOptions(t,e){const s=te(t);return this.pause(),Object.assign(this.cache.options[s],e),this.resume(),this}pause(...t){return Qt.call(this,"removeEventListener",...t)}resume(...t){return Qt.call(this,"addEventListener",...t)}dispose(){return this.pause(),this.target.events[this.cache.signature]=null,this}}function se(){switch(this.currentEvent){case"keydown":this.kd=this.event.key;break;case"keypress":this.kp=this.event.key;break;case"keyup":this.ku=this.event.key}}function re(){const t=this.targetElement.getBoundingClientRect(),e=this.event;let s=e.clientX-t.left|0,r=e.clientY-t.top|0;if(this.cache.useNormalisedCoordinates){const t=this.targetElement.clientWidth,e=this.targetElement.clientHeight;s=+(s/t*2-1).toFixed(8),r=+(r/e*-2+1).toFixed(8)}switch(this.currentEvent){case"pointerdown":this.dx=s,this.dy=r,this.isDown=!0;break;case"pointermove":this.mx=s,this.my=r,this.isMoving=!0;break;case"pointerup":this.ux=s,this.uy=r,this.isDown=!1,this.isMoving=!1}}function ne(){const t=this.targetElement.getBoundingClientRect(),e=this.event;let s=e.clientX-t.left|0,r=e.clientY-t.top|0;if(this.cache.useNormalisedCoordinates){const t=this.targetElement.clientWidth,e=this.targetElement.clientHeight;s=+(s/t*2-1).toFixed(8),r=+(r/e*-2+1).toFixed(8)}switch(this.currentEvent){case"mousedown":this.dx=s,this.dy=r,this.isDown=!0;break;case"mousemove":this.mx=s,this.my=r,this.isMoving=!0;break;case"mouserup":this.ux=s,this.uy=r,this.isDown=!1,this.isMoving=!1}}function ie(){const t=this.event,e=t.touches?.[0]||t.changedTouches?.[0];if(!e)return;const s=this.targetElement.getBoundingClientRect();let r=e.clientX-s.left,n=e.clientY-s.top;if(this.cache.useNormalisedCoordinates){const t=this.targetElement.clientWidth,e=this.targetElement.clientHeight;r=+(r/t*2-1).toFixed(8),n=+(n/e*-2+1).toFixed(8)}switch(this.currentEvent){case"touchstart":this.dx=r,this.dy=n,this.isDown=!0;break;case"touchmove":this.mx=r,this.my=n,this.isMoving=!0;break;case"touchend":this.ux=r,this.uy=n,this.isDown=!1}}class oe extends ee{constructor(t,e=null,s=[],r,n){super(t,e,s,r,n),Object.assign(this.cache,{useNormalisedCoordinates:!1}),this.isDown=!1,this.isMoving=!1,this.dx=0,this.dy=0,this.mx=0,this.my=0,this.ux=0,this.uy=0}get isDragging(){return this.isDown&&this.isMoving}useNormalisedCoordinates(t=!0){return this.cache.useNormalisedCoordinates=t,this}}class ae extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}const ce=(t,e)=>{let s=0;return(...r)=>{const n=(new Date).getTime();n-s<e||(s=n,t(...r))}};class he extends CustomEvent{constructor(t,e,{bubbles:s=!0,cancelable:r=!0}={}){super(t,{detail:e,bubbles:s,cancelable:r})}}class le extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}const ue=(t,e)=>(function(t){function e(e){if(!t.contains(e.target)){const s=new ae(e,t);t.dispatchEvent(s)}}console.log(t),globalThis?.document?.addEventListener("click",e)}(t.element),new ee("click",t,Yt.Click,null,e)),fe=(t,e)=>new ee("clipboard",t,Yt.Clipboard,null,e),me=(t,e)=>new ee("drag",t,Yt.Drag,null,e),pe=(t,e)=>new ee("focus",t,Yt.Focus,null,e),de=(t,e)=>new ee("key",t,Yt.Key,se,e),ge=(t,e)=>new oe("mouse",t,Yt.Mouse,ne,e),be=(t,e)=>new oe("ptr",t,Yt.Ptr,re,e),we=(t,e)=>new ee("wheel",t,Yt.Wheel,null,e),ye=(t,e)=>(function(t,{intersection:e=!0,resize:s=!0,threshold:r=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let o,a;const c=e=>{for(let s of e){const{width:e,height:r}=s.contentRect;t.dispatchEvent(new he("resizeview",{width:e,height:r,entry:s}))}},h=n>0?ce(c,n):c,l=e=>{for(let s of e){const e=s.isIntersecting?"enterview":"exitview";t.dispatchEvent(new he(e,s))}},u=i>0?ce(l,i):l;e&&(o=new IntersectionObserver(u,{threshold:r}),o.observe(t)),s&&(a=new ResizeObserver(h),a.observe(t))}(t.element),new ee("view",t,Yt.View,null,e)),ve=(t,e)=>(function(t,e=50,s=100,r=500){let n=0,i=0,o=0,a=!1;function c(t){n=t.clientX,i=t.clientY,o=performance.now(),a=!0}function h(c){if(!a)return;a=!1;const h=c.clientX-n,l=c.clientY-i;let u=null,f=null;performance.now()-o<=r&&(Math.abs(h)>=e&&Math.abs(l)<=s?(u=h<0?"left":"right",f="swipe"+u):Math.abs(l)>=e&&Math.abs(h)<=s&&(u=l<0?"up":"down",f="swipe"+u)),f&&t.dispatchEvent(new le(f,{direction:u,distX:h,distY:l,originalEvent:c}))}t.addEventListener("pointerdown",c,{passive:!0}),t.addEventListener("pointerup",h,{passive:!0})}(t.element),new ee("swipe",t,Yt.Swipe,null,e));class _e extends ee{constructor(t,e,s){super("custom",t,e,xe,s)}_register_events(t){return super._register_events(t,null,null,!1),this}emit(t,e={}){const s=new CustomEvent(t,{detail:e,bubbles:!0,cancelable:!0});return this.targetElement.dispatchEvent(s),this}on(t,...e){return this.cache.options.hasOwnProperty(t)||this._register_events([t]),this.__onEvent(t,this.cache.options[t],{},...e),this}}function xe(){}const Ee=(t,e,s)=>new _e(t,e,s),ke={ptr:be,mouse:ge,key:de,click:ue,drag:me,clipboard:fe,focus:pe,wheel:we,view:ye,swipe:ve},Ce={on(t,...e){return this.events.custom||(this.events.custom=Ee(this)),this.events.custom.on(t,...e),this},emit(t,e={}){return this.events.custom||(this.events.custom=Ee(this)),this.events.custom.emit(t,e),this}};Object.entries(Yt).forEach((([t,e])=>{const s=t.toLowerCase();e.forEach((t=>{const e=`on${t}`;Ce[e]=function(t){return this.events[s]||(this.events[s]=ke[s](this)),this.events[s][e](t),this}}))}));var Ae=Object.freeze({__proto__:null,at:function(t){return this.items.at(t)},find:function(t){return this.items.filter(t)},forEach:function(t){return this.items.forEach(t),this},map:function(t){return this.items.map(t)}});var Me=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const s=t[e];if(Nt(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}});let Te=class extends $t{constructor({element:t,name:e="",type:s="html",render:r=__Ziko__.__Config__.default.render}={}){super(),Lt(this,qt,Kt,Jt,Me,Ae,Ce),t&&this.init(t,e,s,r)}get element(){return this.cache.element}isInteractive(){return this.cache.isInteractive}useClient(t){return this.cache.isInteractive||(this.element.setAttribute("data-hydration-index",globalThis.__Ziko__.__HYDRATION__.index),globalThis.__Ziko__.__HYDRATION__.register((()=>this)),this.cache.isInteractive=!0),t&&this.element.setAttribute("data-hydration-directive",t),this}get st(){return this.cache.style}get attr(){return this.cache.attributes}get evt(){return this.events}get html(){return this.element.innerHTML}get text(){return this.element.textContent}get isBody(){return this.element===globalThis?.document.body}get parent(){return this.cache.parent}get width(){return this.element.getBoundingClientRect().width}get height(){return this.element.getBoundingClientRect().height}get top(){return this.element.getBoundingClientRect().top}get right(){return this.element.getBoundingClientRect().right}get bottom(){return this.element.getBoundingClientRect().bottom}get left(){return this.element.getBoundingClientRect().left}};class Se extends Te{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const Oe=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],je=["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"],Pe=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return Oe.includes(r)&&(s="html"),je.includes(r)&&(s="svg"),(...t)=>0===t.length?new Te({element:r,name:r,type:s}):["string","number"].includes(typeof t[0])||t[0]instanceof Te||"function"==typeof t[0]&&t[0]().isStateGetter()?new Te({element:r,name:r,type:s}).append(...t):new Te({element:r,type:s}).setAttr(t.shift()).append(...t)}});class Ie extends Te{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 De.call(this,s),this.style({alignItems:"number"==typeof t?ze.call(this,t):t,justifyContent:"number"==typeof e?Fe.call(this,e):e}),this}horizontal(t,e,s=1){return Re.call(this,s),this.style({alignItems:"number"==typeof e?Fe.call(this,e):e,justifyContent:"number"==typeof t?ze.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function De(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function Re(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ze(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function Fe(t){return ze(-t)}class $e extends $t{constructor({element:t,name:e,type:s,render:r}){super({element:t,name:e,type:s,render:r})}}class Le extends $e{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unmount(),this.append(s)}catch(t){console.log({error:t})}})()}}class qe extends Te{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class Ue extends Te{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:s,attributes:r}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of r)n.setAttribute(t,e);return n.append(...s),globalThis.svg=e,globalThis.children=s,globalThis.attributes=r,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class Ne extends Te{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter((t=>t!=this.current)).forEach((t=>t.unmount())),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find((t=>t==this.key))??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const Ze=t=>(new XMLSerializer).serializeToString(t),Be=t=>btoa(Ze(t)),We=t=>"data:image/svg+xml;base64,"+Be(t),He=t=>JSON.stringify(y((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof pt||t instanceof ts?t.toString():t instanceof Array?Ge(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Ve=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=Ve(s);t+1>e&&(e=t+1)}return e},Ge=t=>{let e=0;return function t(s){let r=Ve(s),n=0;return s.some((t=>Array.isArray(t)))&&(e++,n=1),"["+s.map(((r,n)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof pt?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${n===s.length-1?"\n":""}`:r instanceof Object?He(r):void 0))+`${" ".repeat((r+e+1)*n)}]`}(t)},Ke=(t,e=0)=>{t=Je(t);let s="";const r=" ".repeat(e);for(let n in t)if("object"==typeof t[n]){s+=`${r}${n} {\n`;const i=t[n];for(let t in i)"object"==typeof i[t]?s+=Ke({[t]:i[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${i[t]};\n`;s+=`${r}}\n`}return s};function Je(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=Je(t[s]),e)),Array.isArray(t)?[]:{})}function Ye(t,e){var s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}function Xe(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let s=t.arr;for(let r=0;r<t.rows;r++)for(let n=t.cols;n<t.cols+e.cols;n++)s[r][n]=e.arr[r][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,s.flat(1))}function Qe(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let s=t.arr;for(let r=t.rows;r<t.rows+e.rows;r++){s[r]=[];for(let n=0;n<t.cols;n++)s[r][n]=e.arr[r-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,s.flat(1))}class ts{constructor(t,e,s=[]){if(t instanceof ts)this.arr=t.arr,this.rows=t.rows,this.cols=t.cols;else{let r,n,i=[];if(arguments[0]instanceof Array)t=arguments[0].length,e=arguments[0][0].length,i=arguments[0];else for(r=0;r<t;r++)for(i.push([]),i[r].push(new Array(e)),n=0;n<e;n++)i[r][n]=s[r*e+n],null==s[r*e+n]&&(i[r][n]=0);this.rows=t,this.cols=e,this.arr=i}this.#a()}isMatrix(){return!0}clone(){return new ts(this.rows,this.cols,this.arr.flat(1))}[Symbol.iterator](){return this.arr[Symbol.iterator]()}#a(){for(let t=0;t<this.arr.length;t++)Object.defineProperty(this,t,{value:this.arr[t],writable:!0,configurable:!0,enumerable:!1})}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}toString(){return Ge(this.arr)}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,s=this.rows-1,r=this.cols-1){let n=s-t,i=r-e,o=new Array(i);for(let s=0;s<n;s++){o[s]=[];for(let r=0;r<i;r++)o[s][r]=this.arr[s+t][r+e]}return new ts(n,i,o.flat(1))}static slice(t,e=0,s=0,r=this.rows-1,n=this.cols-1){return t.slice(e,s,r,n)}reshape(t,e){if(t*e!=this.rows*this.cols)throw Error("size not matched");return new ts(t,e,this.arr.flat(1))}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 ts(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some((t=>t?.isMatrix?.()))?void console.warn("Tensors are not completely supported yet ..."):W(H(e[0][0],e[1][1]),H(e[0][1],e[1][0]));for(var s=0,r=0;r<e.length;r++){const n=B(H(M(-1,r),H(e[0][r],t(Ye(e,r)))));s=B(s,n)}return s}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var s=0,r=0,n=0,i=e.length,o=0,a=[],c=[];for(s=0;s<i;s+=1)for(a[a.length]=[],c[c.length]=[],n=0;n<i;n+=1)a[s][n]=s==n?1:0,c[s][n]=e[s][n];for(s=0;s<i;s+=1){if(0==(o=c[s][s])){for(r=s+1;r<i;r+=1)if(0!=c[r][s]){for(n=0;n<i;n++)o=c[s][n],c[s][n]=c[r][n],c[r][n]=o,o=a[s][n],a[s][n]=a[r][n],a[r][n]=o;break}if(0==(o=c[s][s]))return}for(n=0;n<i;n++)c[s][n]=c[s][n]/o,a[s][n]=a[s][n]/o;for(r=0;r<i;r++)if(r!=s)for(o=c[r][s],n=0;n<i;n++)c[r][n]-=o*c[s][n],a[r][n]-=o*a[s][n]}return new t.constructor(a)}}(this)}static eye(t){let e=new ts(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}static zeros(t,e){let s=new ts(t,e);for(let n=0;n<t;n++)for(var r=0;r<e;r++)s.arr[n][r]=0;return s}static ones(t,e){let s=new ts(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 ts(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)r.arr[n][t]=s;return r}hstack(...t){const e=[this,...t].reduce(((t,e)=>Xe(t,e)));return Object.assign(this,e),this.#a(),this}static hstack(t,...e){return t.clone().hstack(...e)}vstack(...t){const e=[this,...t].reduce(((t,e)=>Qe(t,e)));return Object.assign(this,e),this.#a(),this}static vstack(t,...e){return t.clone().vstack(...e)}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>Xe(t,e)));return Object.assign(this,e),this}static hqueue(t,...e){return t.clone().hqueue(...e)}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>Qe(t,e)));return Object.assign(this,e),this}static vqueue(t,...e){return t.clone().vqueue(...e)}shuffle(){return this.arr=this.arr.sort((()=>.5-Math.random())),this}static shuffle(t){return t.clone().shuffle()}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let s=e+1;s<t;s++)if(this.arr[e][s]!==-this.arr[s][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s]||0!==this.arr[s][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,s=[];for(let r=0;r<t;r++){s[r]=[];for(let n=0;n<t;n++){let i=0;for(let s=0;s<t;s++)i+=e[r][s]*e[s][n];s[r][n]=i}}for(let r=0;r<t;r++)for(let n=0;n<t;n++)if(s[r][n]!==e[r][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s])return!1;return!0}map(t,e,s,r){return this.arr=tt(this.arr,t,e,s,r),this}lerp(t,e){return this.arr=Q(this.arr,t,e),this}norm(t,e){return this.arr=X(this.arr,t,e),this}clamp(t,e){return this.arr=et(this.arr,t,e),this}static map(t,e,s,r,n){return t.clone().map(e,s,r,n)}static lerp(t,e,s){return t.clone().lerp(e,s)}static norm(t,e,s){return t.clone().norm(e,s)}static clamp(t,e,s){return t.clone().clamp(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}max2min(){let t=this.arr.flat(1).max2min;return new ts(this.rows,this.cols,t)}min2max(){let t=this.arr.flat(1).min2max;return new ts(this.rows,this.cols,t)}sortRows(t=void 0){let e=this.arr.map((e=>e.sort(t))).flat(1);return new ts(this.rows,this.cols,e)}sortCols(t=void 0){let e=this.T.arr.map((e=>e.sort(t))).flat(1);return new ts(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 ts(s)}filterByCols(t){return new ts(this.T.arr.filter((e=>e.includes(t))))}sortAll(t=void 0){let e=this.arr.flat(1).sort(t);return new ts(this.rows,this.cols,e)}count(t){return this.arr.flat(1).count(t)}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)}s