ziko 0.60.1 → 0.61.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 +36 -36
- package/dist/ziko.js +36 -36
- package/dist/ziko.min.js +2 -2
- package/dist/ziko.mjs +36 -36
- package/package.json +1 -1
- package/src/provider/index.js +15 -0
- package/src/ui/flex/index.js +20 -34
- package/src/ui/flex/utils/index.js +20 -0
package/dist/ziko.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date :
|
|
5
|
+
Date : Sat Feb 07 2026 12:44:38 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
|
|
@@ -3702,22 +3702,40 @@ const tags = new Proxy({}, {
|
|
|
3702
3702
|
}
|
|
3703
3703
|
});
|
|
3704
3704
|
|
|
3705
|
-
|
|
3706
|
-
|
|
3705
|
+
function set_vertical(direction){
|
|
3706
|
+
direction == 1
|
|
3707
|
+
? this.style({ flexDirection: "column" })
|
|
3708
|
+
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
3709
|
+
return this;
|
|
3710
|
+
}
|
|
3711
|
+
function set_horizontal(direction){
|
|
3712
|
+
direction == 1
|
|
3713
|
+
? this.style({ flexDirection: "row" })
|
|
3714
|
+
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
3715
|
+
return this;
|
|
3716
|
+
}
|
|
3717
|
+
function map_pos_x(align){
|
|
3718
|
+
let pos = ["flex-start", "center", "flex-end"];
|
|
3719
|
+
if (typeof align === "number") align = pos[align + 1];
|
|
3720
|
+
return align;
|
|
3721
|
+
}
|
|
3722
|
+
function map_pos_y(align){
|
|
3723
|
+
return map_pos_x(-align);
|
|
3724
|
+
}
|
|
3725
|
+
|
|
3726
|
+
class UIFlex extends UIElement$1 {
|
|
3727
|
+
constructor({tag = "div", orientation = "h", order, w = "100%", h = "100%"} = {}) {
|
|
3707
3728
|
super({element : tag , name : "Flex"});
|
|
3708
3729
|
this.direction = "cols";
|
|
3709
|
-
if (typeof w == "number") w += "%";
|
|
3710
|
-
if (typeof h == "number") h += "%";
|
|
3711
|
-
this.style({ width: w, height: h });
|
|
3712
3730
|
this.style({ display: "flex" });
|
|
3713
3731
|
// this.mount();
|
|
3714
3732
|
}
|
|
3715
|
-
|
|
3733
|
+
isFlex(){
|
|
3716
3734
|
return true;
|
|
3717
3735
|
}
|
|
3718
|
-
|
|
3736
|
+
responsify(respBreakPoint, wrap = true) {
|
|
3719
3737
|
this.wrap(wrap);
|
|
3720
|
-
if (this.element.clientWidth <
|
|
3738
|
+
if (this.element.clientWidth < respBreakPoint) this.vertical();
|
|
3721
3739
|
else this.horizontal();
|
|
3722
3740
|
return this;
|
|
3723
3741
|
}
|
|
@@ -3749,16 +3767,18 @@ class ZikoUIFlex extends UIElement$1 {
|
|
|
3749
3767
|
this.style({ justifyContent: align });
|
|
3750
3768
|
return this;
|
|
3751
3769
|
}
|
|
3752
|
-
|
|
3753
|
-
|
|
3770
|
+
// verticalize
|
|
3771
|
+
vertical(x, y, order = 1) {
|
|
3772
|
+
set_vertical.call(this, order);
|
|
3754
3773
|
this.style({
|
|
3755
3774
|
alignItems: typeof(x)==="number"?map_pos_x.call(this,x):x,
|
|
3756
3775
|
justifyContent: typeof(y)=="number"?map_pos_y.call(this,y):y
|
|
3757
3776
|
});
|
|
3758
3777
|
return this;
|
|
3759
3778
|
}
|
|
3760
|
-
|
|
3761
|
-
|
|
3779
|
+
// horizontalize
|
|
3780
|
+
horizontal(x, y, order = 1) {
|
|
3781
|
+
set_horizontal.call(this, order);
|
|
3762
3782
|
this.style({
|
|
3763
3783
|
alignItems: typeof(y)=="number"?map_pos_y.call(this,y):y,
|
|
3764
3784
|
justifyContent: typeof(x)==="number"?map_pos_x.call(this,x):x
|
|
@@ -3778,28 +3798,8 @@ const Flex = (...UIElement) =>{
|
|
|
3778
3798
|
tag=UIElement[0];
|
|
3779
3799
|
UIElement.pop();
|
|
3780
3800
|
}
|
|
3781
|
-
return new
|
|
3782
|
-
};
|
|
3783
|
-
function set_vertical(direction){
|
|
3784
|
-
direction == 1
|
|
3785
|
-
? this.style({ flexDirection: "column" })
|
|
3786
|
-
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
3787
|
-
return this;
|
|
3788
|
-
}
|
|
3789
|
-
function set_horizontal(direction){
|
|
3790
|
-
direction == 1
|
|
3791
|
-
? this.style({ flexDirection: "row" })
|
|
3792
|
-
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
3793
|
-
return this;
|
|
3794
|
-
}
|
|
3795
|
-
function map_pos_x(align){
|
|
3796
|
-
let pos = ["flex-start", "center", "flex-end"];
|
|
3797
|
-
if (typeof align === "number") align = pos[align + 1];
|
|
3798
|
-
return align;
|
|
3799
|
-
}
|
|
3800
|
-
function map_pos_y(align){
|
|
3801
|
-
return map_pos_x(-align);
|
|
3802
|
-
}
|
|
3801
|
+
return new UIFlex(tag).append(...UIElement);
|
|
3802
|
+
};
|
|
3803
3803
|
|
|
3804
3804
|
class UIElement extends UIElementCore{
|
|
3805
3805
|
constructor({element, name, type, render}){
|
|
@@ -5428,6 +5428,7 @@ exports.TimeAnimation = TimeAnimation;
|
|
|
5428
5428
|
exports.TimeLoop = TimeLoop;
|
|
5429
5429
|
exports.TimeScheduler = TimeScheduler;
|
|
5430
5430
|
exports.UIElement = UIElement$1;
|
|
5431
|
+
exports.UIFlex = UIFlex;
|
|
5431
5432
|
exports.UIHTMLWrapper = UIHTMLWrapper;
|
|
5432
5433
|
exports.UINode = UINode;
|
|
5433
5434
|
exports.UISVGWrapper = UISVGWrapper;
|
|
@@ -5440,7 +5441,6 @@ exports.View = View;
|
|
|
5440
5441
|
exports.ZikoApp = ZikoApp;
|
|
5441
5442
|
exports.ZikoEvent = ZikoEvent;
|
|
5442
5443
|
exports.ZikoSPA = ZikoSPA;
|
|
5443
|
-
exports.ZikoUIFlex = ZikoUIFlex;
|
|
5444
5444
|
exports.ZikoUISuspense = ZikoUISuspense;
|
|
5445
5445
|
exports.ZikoUIText = ZikoUIText;
|
|
5446
5446
|
exports.abs = abs;
|
package/dist/ziko.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date :
|
|
5
|
+
Date : Sat Feb 07 2026 12:44:38 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
|
|
@@ -3706,22 +3706,40 @@
|
|
|
3706
3706
|
}
|
|
3707
3707
|
});
|
|
3708
3708
|
|
|
3709
|
-
|
|
3710
|
-
|
|
3709
|
+
function set_vertical(direction){
|
|
3710
|
+
direction == 1
|
|
3711
|
+
? this.style({ flexDirection: "column" })
|
|
3712
|
+
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
3713
|
+
return this;
|
|
3714
|
+
}
|
|
3715
|
+
function set_horizontal(direction){
|
|
3716
|
+
direction == 1
|
|
3717
|
+
? this.style({ flexDirection: "row" })
|
|
3718
|
+
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
3719
|
+
return this;
|
|
3720
|
+
}
|
|
3721
|
+
function map_pos_x(align){
|
|
3722
|
+
let pos = ["flex-start", "center", "flex-end"];
|
|
3723
|
+
if (typeof align === "number") align = pos[align + 1];
|
|
3724
|
+
return align;
|
|
3725
|
+
}
|
|
3726
|
+
function map_pos_y(align){
|
|
3727
|
+
return map_pos_x(-align);
|
|
3728
|
+
}
|
|
3729
|
+
|
|
3730
|
+
class UIFlex extends UIElement$1 {
|
|
3731
|
+
constructor({tag = "div", orientation = "h", order, w = "100%", h = "100%"} = {}) {
|
|
3711
3732
|
super({element : tag , name : "Flex"});
|
|
3712
3733
|
this.direction = "cols";
|
|
3713
|
-
if (typeof w == "number") w += "%";
|
|
3714
|
-
if (typeof h == "number") h += "%";
|
|
3715
|
-
this.style({ width: w, height: h });
|
|
3716
3734
|
this.style({ display: "flex" });
|
|
3717
3735
|
// this.mount();
|
|
3718
3736
|
}
|
|
3719
|
-
|
|
3737
|
+
isFlex(){
|
|
3720
3738
|
return true;
|
|
3721
3739
|
}
|
|
3722
|
-
|
|
3740
|
+
responsify(respBreakPoint, wrap = true) {
|
|
3723
3741
|
this.wrap(wrap);
|
|
3724
|
-
if (this.element.clientWidth <
|
|
3742
|
+
if (this.element.clientWidth < respBreakPoint) this.vertical();
|
|
3725
3743
|
else this.horizontal();
|
|
3726
3744
|
return this;
|
|
3727
3745
|
}
|
|
@@ -3753,16 +3771,18 @@
|
|
|
3753
3771
|
this.style({ justifyContent: align });
|
|
3754
3772
|
return this;
|
|
3755
3773
|
}
|
|
3756
|
-
|
|
3757
|
-
|
|
3774
|
+
// verticalize
|
|
3775
|
+
vertical(x, y, order = 1) {
|
|
3776
|
+
set_vertical.call(this, order);
|
|
3758
3777
|
this.style({
|
|
3759
3778
|
alignItems: typeof(x)==="number"?map_pos_x.call(this,x):x,
|
|
3760
3779
|
justifyContent: typeof(y)=="number"?map_pos_y.call(this,y):y
|
|
3761
3780
|
});
|
|
3762
3781
|
return this;
|
|
3763
3782
|
}
|
|
3764
|
-
|
|
3765
|
-
|
|
3783
|
+
// horizontalize
|
|
3784
|
+
horizontal(x, y, order = 1) {
|
|
3785
|
+
set_horizontal.call(this, order);
|
|
3766
3786
|
this.style({
|
|
3767
3787
|
alignItems: typeof(y)=="number"?map_pos_y.call(this,y):y,
|
|
3768
3788
|
justifyContent: typeof(x)==="number"?map_pos_x.call(this,x):x
|
|
@@ -3782,28 +3802,8 @@
|
|
|
3782
3802
|
tag=UIElement[0];
|
|
3783
3803
|
UIElement.pop();
|
|
3784
3804
|
}
|
|
3785
|
-
return new
|
|
3786
|
-
};
|
|
3787
|
-
function set_vertical(direction){
|
|
3788
|
-
direction == 1
|
|
3789
|
-
? this.style({ flexDirection: "column" })
|
|
3790
|
-
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
3791
|
-
return this;
|
|
3792
|
-
}
|
|
3793
|
-
function set_horizontal(direction){
|
|
3794
|
-
direction == 1
|
|
3795
|
-
? this.style({ flexDirection: "row" })
|
|
3796
|
-
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
3797
|
-
return this;
|
|
3798
|
-
}
|
|
3799
|
-
function map_pos_x(align){
|
|
3800
|
-
let pos = ["flex-start", "center", "flex-end"];
|
|
3801
|
-
if (typeof align === "number") align = pos[align + 1];
|
|
3802
|
-
return align;
|
|
3803
|
-
}
|
|
3804
|
-
function map_pos_y(align){
|
|
3805
|
-
return map_pos_x(-align);
|
|
3806
|
-
}
|
|
3805
|
+
return new UIFlex(tag).append(...UIElement);
|
|
3806
|
+
};
|
|
3807
3807
|
|
|
3808
3808
|
class UIElement extends UIElementCore{
|
|
3809
3809
|
constructor({element, name, type, render}){
|
|
@@ -5432,6 +5432,7 @@
|
|
|
5432
5432
|
exports.TimeLoop = TimeLoop;
|
|
5433
5433
|
exports.TimeScheduler = TimeScheduler;
|
|
5434
5434
|
exports.UIElement = UIElement$1;
|
|
5435
|
+
exports.UIFlex = UIFlex;
|
|
5435
5436
|
exports.UIHTMLWrapper = UIHTMLWrapper;
|
|
5436
5437
|
exports.UINode = UINode;
|
|
5437
5438
|
exports.UISVGWrapper = UISVGWrapper;
|
|
@@ -5444,7 +5445,6 @@
|
|
|
5444
5445
|
exports.ZikoApp = ZikoApp;
|
|
5445
5446
|
exports.ZikoEvent = ZikoEvent;
|
|
5446
5447
|
exports.ZikoSPA = ZikoSPA;
|
|
5447
|
-
exports.ZikoUIFlex = ZikoUIFlex;
|
|
5448
5448
|
exports.ZikoUISuspense = ZikoUISuspense;
|
|
5449
5449
|
exports.ZikoUIText = ZikoUIText;
|
|
5450
5450
|
exports.abs = abs;
|
package/dist/ziko.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
2
|
Project: ziko.js
|
|
3
3
|
Author: Zakaria Elalaoui
|
|
4
|
-
Date :
|
|
4
|
+
Date : Sat Feb 07 2026 12:44:38 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,n=(t,...e)=>{const s=e.map((e=>{return"object"!=typeof(s=e)&&"function"!=typeof s||null===s||e?.__mapfun__?t(e):e instanceof Array?e.map((e=>n(t,e))):ArrayBuffer.isView(e)?e.map((e=>t(e))):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map((e=>[e[0],n(t,e[1])]))):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map((e=>[e[0],n(t,e[1])]))):void 0;var s}));return 1==s.length?s[0]:s},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e,s)=>{if("number"==typeof e){if("number"==typeof s)switch(t){case"add":return e+s;case"sub":return e-s;case"mul":return e*s;case"div":return e/s;case"modulo":return e%s}return s?.isComplex?.()&&(e=new s.constructor(e,0)),s?.isMatrix?.()&&(e=s.constructor.nums(s.rows,s.cols,e)),e[t](s)}if(e?.isComplex?.()){if("number"==typeof s||s?.isComplex?.())return e.clone()[t](s);if(s?.isMatrix?.())return(e=s.constructor.nums(s.rows,s.cols,e)).clone()[t](s)}if(e?.isMatrix?.())return e.clone()[t](s)},h=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("add",s,e[t]);return s},c=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("sub",s,e[t]);return s},l=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("mul",s,e[t]);return s},u=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("div",s,e[t]);return s},m=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("modulo",s,e[t]);return s},p=(...t)=>t.reduce(((t,e)=>t+e))/t.length,f=(...t)=>{const e=t.length;if(0===e)return NaN;const s=p(...t);return t.reduce(((t,e)=>t+(e-s)**2),0)/e},d=(...t)=>{let e,s=[],r=0,n=t.length;for(e=0;e<n;e++)r=h(r,t[e]),s.push(r);return s},g=(t,e)=>{if(0===t.length)return NaN;let s=[...t].sort(((t,e)=>t-e)),r=e/100*(s.length-1),n=Math.floor(r),i=r-n;return n===s.length-1?s[n]:s[n]*(1-i)+s[n+1]*i};class w{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,s)=>{const r=parseInt(t,e);if(Number.isNaN(r))throw new TypeError("Invalid value for the given base");return r.toString(s)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,s,r]=Array.from({length:4},(()=>this.int(255).toString(16).padStart(2,"0")));return`#${t}${e}${s}${r}`},rgb:()=>{const[t,e,s]=Array.from({length:3},(()=>this.int(255)));return`rgb(${t}, ${e}, ${s})`},rgba:()=>{const[t,e,s]=Array.from({length:3},(()=>this.int(255)));return`rgba(${t}, ${e}, ${s}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,s,r)=>Array.from({length:e},(()=>t.int(s,r))),float:(e,s,r)=>Array.from({length:e},(()=>t.float(s,r))),char:(e,s=!1)=>Array.from({length:e},(()=>t.char(s))),bool:e=>Array.from({length:e},(()=>t.bool())),bin:e=>Array.from({length:e},(()=>t.bin())),oct:e=>Array.from({length:e},(()=>t.oct())),dec:e=>Array.from({length:e},(()=>t.dec())),hex:e=>Array.from({length:e},(()=>t.hex())),get color(){return{hex:e=>Array.from({length:e},(()=>t.color.hex())),hexa:e=>Array.from({length:e},(()=>t.color.hexa())),rgb:e=>Array.from({length:e},(()=>t.color.rgb())),rgba:e=>Array.from({length:e},(()=>t.color.rgba())),hsl:e=>Array.from({length:e},(()=>t.color.hsl())),hsla:e=>Array.from({length:e},(()=>t.color.hsla())),gray:e=>Array.from({length:e},(()=>t.color.gray()))}},choice:(e,s,r)=>Array.from({length:e},(()=>t.choice(s,r)))}}static shuffle(t){return[...t].sort((()=>.5-Math.random()))}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const s=d(...e).map((t=>100*t)),r=new Array(100);r.fill(t[0],0,s[0]);for(let e=1;e<t.length;e++)r.fill(t[e],s[e-1],s[e]);return r[this.int(r.length)]}}globalThis.Random=w;class y{constructor(t=0,e=0){[this.a,this.b]=((t,e,s)=>{let r,n;return e instanceof t?(r=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(r=e.a,n=e.b):"a"in e&&"z"in e?(r=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(r=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,r=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=s,r=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(r=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof s&&(r=+e.toFixed(32),n=+s.toFixed(32)),[r,n]})(y,t,e)}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:s}=t;return"complex"===s&&"a"in e&&"b"in e?new y(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new y(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new y(0,0)}static fromPolar(t,e){return new y(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new y(...w.sample.int(2,t,e)),float:(t,e)=>new y(...w.sample.float(2,t,e))}}static twiddle(t,e){const s=-2*Math.PI*t/e;return new y(Math.cos(s),Math.sin(s))}get conj(){return new y(this.a,-this.b)}get inv(){return new y(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e*=t[r].z,s+=t[r].phi;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this.toFixed(8)}div(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e/=t[r].z,s-=t[r].phi;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e*=Math.exp(t[r].a*Math.log(e)-t[r].b*s),s+=t[r].b*Math.log(e)+t[r].a*s;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this}get expo(){return[this.z,this.phi]}nthr(t=2){return v({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return v(this.z,this.phi)}get cos(){return v(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return v(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return v(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const v=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>v(t[r],e[r])));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>v(t.arr[r],e.arr[r])));return new t.constructor(t.rows,t.cols,...s)}return new y(t,e)},_=(...t)=>n((t=>t.isComplex?.()?t.z:Math.abs(t)),...t),x=(...t)=>{const e=t.pop();return n((t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e)),...t)},M=(...t)=>n((t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?v(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8)),...t),E=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n((t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?v(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8)),...t)},k=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8)),...t),C=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t)),...t),T=(t,e,s)=>i(t,(t=>e!==s?(t-e)/(s-e):0)),S=(t,e,s)=>i(t,(t=>(s-e)*t+e)),O=(t,e,s)=>i(t,(t=>Math.min(Math.max(t,e),s))),A=(t,e,s,r,n)=>i(t,(t=>S(T(t,e,s),r,n))),j=(t,e,s=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n((t=>j(t,e,s)),...t);if(e instanceof Array&&!(t instanceof Array))return n((e=>j(t,e,s)),...e);if(t instanceof Array&&e instanceof Array)return t.map(((t,r)=>j(t,e[r],s)));const r=Math.atan2(t,e);return s?r:180*r/Math.PI},P=t=>t.isComplex?.()?new t.constructor(P(t.a),P(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(P)):+!t,I=(t,e)=>{if(t.every((t=>t.isComplex?.()))){const s=t.map((t=>t.a)),r=t.map((t=>t.b));return new t[0].constructor(e(...s),e(...r))}if(t.every((t=>t.isMatrix?.()))){if(!t.every((e=>e.rows===t[0].rows&&e.cols===t[0].cols)))return TypeError("All matrices must have the same shape");const{rows:s,cols:r}=t[0],n=Array.from({length:s},((s,n)=>Array.from({length:r},((s,r)=>e(...t.map((t=>t.arr[n][r])))))));return new t[0].constructor(n)}return null},R=(...t)=>{const e=I(t,R);return null!==e?e:t.reduce(((t,e)=>t&e),1)},F=(...t)=>{const e=I(t,F);return null!==e?e:t.reduce(((t,e)=>t|e),0)},z=(...t)=>{const e=I(t,z);return null!==e?e:t.reduce(((t,e)=>t^e),0)},$=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let s=t.arr.length;s<e;s++)delete t[s]};function D(t,e){var s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}function L(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let s=t.arr;for(let r=0;r<t.rows;r++)for(let n=t.cols;n<t.cols+e.cols;n++)s[r][n]=e.arr[r][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,s.flat(1))}function N(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let s=t.arr;for(let r=t.rows;r<t.rows+e.rows;r++){s[r]=[];for(let n=0;n<t.cols;n++)s[r][n]=e.arr[r-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,s.flat(1))}class U{constructor(t,e,s=[]){[this.rows,this.cols,this.arr]=((t,e,s,r)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,s=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(s)),n=0;n<s;n++)i[t][n]=r[t*s+n],null==r[t*s+n]&&(i[t][n]=0);return[e,s,i]}arr=e.arr,s=(e=e.rows).cols})(U,t,e,s),$(this)}isMatrix(){return!0}clone(){return new U(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n((t=>t?.isComplex?.()?t:new y(t,0)),...this.arr),$(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,s=this.rows-1,r=this.cols-1){s<0&&(s=this.rows+s),r<0&&(r=this.cols+r);let n=s-t,i=r-e,o=new Array(i);for(let s=0;s<n;s++){o[s]=[];for(let r=0;r<i;r++)o[s][r]=this.arr[s+t][r+e]}return this.arr=o,$(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!=this.rows*this.cols)throw Error("size not matched");const s=this.rows;return Object.assign(this,new U(t,e,this.arr.flat(1))),$(s),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new U(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some((t=>t?.isMatrix?.()))?void console.warn("Tensors are not completely supported yet ..."):c(l(e[0][0],e[1][1]),l(e[0][1],e[1][0]));for(var s=0,r=0;r<e.length;r++){const n=h(l(x(-1,r),l(e[0][r],t(D(e,r)))));s=h(s,n)}return s}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var s=0,r=0,n=0,i=e.length,o=0,a=[],h=[];for(s=0;s<i;s+=1)for(a[a.length]=[],h[h.length]=[],n=0;n<i;n+=1)a[s][n]=s==n?1:0,h[s][n]=e[s][n];for(s=0;s<i;s+=1){if(0==(o=h[s][s])){for(r=s+1;r<i;r+=1)if(0!=h[r][s]){for(n=0;n<i;n++)o=h[s][n],h[s][n]=h[r][n],h[r][n]=o,o=a[s][n],a[s][n]=a[r][n],a[r][n]=o;break}if(0==(o=h[s][s]))return}for(n=0;n<i;n++)h[s][n]=h[s][n]/o,a[s][n]=a[s][n]/o;for(r=0;r<i;r++)if(r!=s)for(o=h[r][s],n=0;n<i;n++)h[r][n]-=o*h[s][n],a[r][n]-=o*a[s][n]}return new t.constructor(a)}}(this)}static eye(t){let e=new U(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}static zeros(t,e){let s=new U(t,e);for(let n=0;n<t;n++)for(var r=0;r<e;r++)s.arr[n][r]=0;return s}static ones(t,e){let s=new U(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new U(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)r.arr[n][t]=s;return r}static get random(){return{int:(t,e,s,r)=>new U(t,e,w.sample.int(t*e,s,r)),float:(t,e,s)=>new U(t,e,w.sample.float(t*e,s,b))}}get range(){return{map:(t,e,s,r)=>(this.arr=A(this.arr,t,e,s,r),this),norm:(t,e)=>(this.arr=T(this.arr,t,e),this),lerp:(t,e)=>(this.arr=S(this.arr,t,e),this),clamp:(t,e)=>(this.arr=O(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce(((t,e)=>L(t,e)));return Object.assign(this,e),$(this),this}vstack(...t){const e=[this,...t].reduce(((t,e)=>N(t,e)));return Object.assign(this,e),$(this),this}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>L(t,e)));return Object.assign(this,e),$(this),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>N(t,e)));return Object.assign(this,e),$(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new U(this.rows,this.cols,e)}mapRows(t=(()=>{})){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=(()=>{})){const e=this.arr.flat(1).sort(t);return new U(this.rows,this.cols,e)}shuffle(){return this.sort((()=>.5-Math.random()))}sortRows(t=(()=>{})){return this.arr=this.arr.map((e=>e.sort(t))),this}shuffleRows(){return this.sortRows((()=>.5-Math.random()))}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols((()=>.5-Math.random()))}reduce(t,e){const s=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new U([[s]])}reduceRows(t,e){const s=e?this.arr.map((s=>s.reduce(t,e))):this.arr.map((e=>e.reduce(t)));return new U(1,this.cols,s)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map((e=>e.some((e=>t(e))))),s=[];let r;for(r=0;r<e.length;r++)e[r]&&s.push(this.arr[r]);return new U(s)}filterCols(t){const e=this.T.filterRows(t);return new U(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map((e=>e.every(t)))}everyCol(t){return this.T.arr.map((e=>e.every(t)))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map((e=>e.some(t)))}someCol(t){return this.T.arr.map((e=>e.some(t)))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let s=e+1;s<t;s++)if(this.arr[e][s]!==-this.arr[s][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s]||0!==this.arr[s][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,s=[];for(let r=0;r<t;r++){s[r]=[];for(let n=0;n<t;n++){let i=0;for(let s=0;s<t;s++)i+=e[r][s]*e[s][n];s[r][n]=i}}for(let r=0;r<t;r++)for(let n=0;n<t;n++)if(s[r][n]!==e[r][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toFixed(t);return this}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}#t(t,...e){for(let r=0;r<e.length;r++){("number"==typeof e[r]||e[r]?.isComplex?.())&&(e[r]=U.nums(this.rows,this.cols,e[r]));for(let n=0;n<this.rows;n++)for(var s=0;s<this.cols;s++)this.arr[n][s]=t(this.arr[n][s],e[r].arr[n][s])}return new U(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(h,...t)}sub(...t){return this.#t(c,...t)}mul(...t){return this.#t(l,...t)}div(...t){return this.#t(u,...t)}modulo(...t){return this.#t(m,...t)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var n=0;n<this.arr[0].length;n++)e[s][r]=h(e[s][r],l(this.arr[s][n],t.arr[n][r]))}}return new U(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),s=this.clone();for(let r=0;r<t-1;r++)s=s.dot(e);return s}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t=h(t,this.arr[e][s]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t=l(t,this.arr[e][s]);return t}hasComplex(){return this.arr.flat(1/0).some((t=>t instanceof y))}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new U(t.length,1,t)}serialize(){const t=n((t=>t.serialize?.()||t),...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:s}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:r}=s;return r=n((t=>{if("string"==typeof t){const e=JSON.parse(t),{type:s}=e;if("complex"===s)return y.deserialize(e)}return t}),...r),new U(r)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map((t=>[...t].reverse())),$(this),this}flipeV(){return this.arr=this.arr.reverse(),$(this),this}}const q=t=>new Array(t).fill(0),Z=t=>new Array(t).fill(1),B=(t,e)=>new Array(e).fill(t),H=(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},V=(t,e,s=_(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[o,a]=[t,e].sort(((t,e)=>e-t));var n=[];let h;h=r?(o-a)/(s-1):(o-a)/s;for(var i=0;i<s;i++)t<e?n.push(a+h*i):n.push(o-h*i);return n}if([t,e].some((t=>t.isComplex?.()))){const n=new s.constructor(t),i=new s.constructor(e);s=s||Math.abs(n.a-i.a)+1;const o=V(n.a,i.a,s,r),a=V(n.b,i.b,s,r);let h=new Array(s).fill(null);return h=h.map(((t,e)=>new t.constructor(o[e],a[e]))),h}}},W=(t,e,r=e-t+1,n=s,i=!0)=>V(t,e,r,i).map((t=>x(n,t))),G=(t,e,s=_(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[n,i]=[t,e].sort(((t,e)=>e-t));let o;o=E(n/i,r?s-1:s);const a=[i];for(let t=1;t<s;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some((t=>t.isComplex?.()))){const n=new s.constructor(t),i=new s.constructor(e);let o;s=s||Math.abs(n.a-i.a)+1,o=E(i.div(n),r?s-1:s);const a=[n];for(let t=1;t<s;t++)a.push(l(a[t-1],o));return a}}},K=(t,e,s)=>{const[r,n]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=n},J=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Y=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),X=(t,e)=>{let s,r=1;if(t==C(t)&&e==C(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},Q=(t,e)=>{let s;if(t==C(t)&&e==C(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},tt={zeros:q,ones:Z,nums:B,arange:H,linspace:V,logspace:W,geomspace:G,cartesianProduct:Y,ppcm:Q,pgcd:X,inRange:K,isApproximatlyEqual:J};class et{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}class st extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find((e=>e.element.id===t))}getItemsByTagName(t){return this.filter((e=>e.element.tagName.toLowerCase()===t.toLowerCase()))}getElementsByClassName(t){return this.filter((e=>e.element.classList?.contains(t)))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find((t=>t.element===e))||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map((t=>this.find((e=>e.element===t)))).filter(Boolean)}}const rt=new st,nt={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},it={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},ot={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class at{#e;#s;#r;#n;#i;#o;constructor(t=""){this.#e=new BroadcastChannel(t),this.#s=new Map,this.#r=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#o=new Set,this.#e.addEventListener("message",(t=>{const{last_sent_event:e,userId:s,eventData:r,rooms:n}=t.data;if(s===this.#n)return;if(n&&n.length&&!n.some((t=>this.#o.has(t))))return;this.#i.add(s),this.#s=new Map(r);const i=this.#r.get(e);i&&i.forEach((({fn:t,rooms:s})=>{s&&0!==s.length&&n&&!n.some((t=>s.includes(t)))||t(this.#s.get(e))}))}))}emit(t,e,s){return this.#s.set(t,e),"string"==typeof s&&(s=[s]),this.#e.postMessage({eventData:Array.from(this.#s.entries()),last_sent_event:t,userId:this.#n,rooms:s&&s.length?s:void 0}),this}on(t,e=console.log,s){return this.#r.has(t)||this.#r.set(t,[]),"string"==typeof s&&(s=[s]),this.#r.get(t).push({fn:e,rooms:s}),this}off(t,e){return this.#r.has(t)?(this.#r.set(t,this.#r.get(t).filter((t=>t.fn!==e))),this):this}once(t,e,s){const r=s=>{e(s),this.off(t,r)};return this.on(t,r,s),this}join(...t){return t.forEach((t=>this.#o.add(t))),this}leave(...t){return t.length?t.forEach((t=>this.#o.delete(t))):this.#o.clear(),this}close(){return this.#e.close(),this}}const ht=t=>new at(t);class ct{constructor(t,e,s,r=!0){this.cache={storage:t,globalKey:e,channel:r?ht(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#a(s,r)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items;this.cache.oldItemKeys.forEach((t=>delete this[t]));for(const e in t)this[e]=t[e],this.cache.oldItemKeys.add(e)}#a(t,e){if(e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#h())),t)if(this.cache.storage.getItem(this.cache.globalKey)){const t=this.items;Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#h()}else this.set(t);else this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t}),this}remove(...t){const e={...this.items};return t.forEach((t=>{delete e[t],delete this[t],this.cache.oldItemKeys.delete(t)})),this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.cache.oldItemKeys.forEach((t=>delete this[t])),this.cache.oldItemKeys.clear(),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}const lt=(t,e,s=!0)=>new ct(sessionStorage,t,e,s);var ut={store:new Map,index:0,session_storage:null,register:function(t){if(!(void 0).SSR&&(void 0).DEV){this.session||(this.session_storage=lt("ziko-state",{}));const e=this.session_storage.get(this.index);e?t.value=e:this.session_storage.add({[this.index]:t.value})}this.store.set(this.index++,t)},update:function(t,e){!(void 0).SSR&&(void 0).DEV&&this.session_storage.add({[t]:e})}};function mt(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:rt,__HYDRATION__:it,__State__:ut,__Config__:nt,__CACHE__:ot},t=__Ziko__,Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}))}mt();class pt extends et{constructor(){super()}init(t,e,s,r){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,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 st,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&r&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function ft(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}var dt=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout((()=>this.mount(t,0)),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout((()=>this.unmount(0)),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function gt(t){const{store:e,index:s}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});let r=e.get(s);return[function(){return{value:r.value,isStateGetter:()=>!0,_subscribe:t=>r.subscribers.add(t)}},function(t){r.paused||("function"==typeof t&&(t=t(r.value)),t!==r.value&&(r.value=t,r.subscribers.forEach((t=>t(r.value))),__Ziko__.__State__.update(s,t)))},{pause:()=>{r.paused=!0},resume:()=>{r.paused=!1},clear:()=>{r.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(r.value)),r.value=t,r.subscribers.forEach((t=>t(r.value)))},getSubscribers:()=>new Set(r.subscribers)}]}globalThis.__Ziko__||mt();const bt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),wt=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),yt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};class vt extends et{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const _t=(...t)=>new vt(...t);async function xt(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]=_t(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=_t(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 Mt(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=yt(t)?wt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(bt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var Et=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(" ")),Mt.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Mt.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});var kt=Object.freeze({__proto__:null,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return xt.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]=_t(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 Ct={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 Tt(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 St(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 Ot=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();class At{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=>Ot(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=>Tt.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=Ot(t);return this.pause(),Object.assign(this.cache.options[s],e),this.resume(),this}pause(...t){return St.call(this,"removeEventListener",...t)}resume(...t){return St.call(this,"addEventListener",...t)}dispose(){return this.pause(),this.target.events[this.cache.signature]=null,this}}function jt(){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 Pt(){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 It(){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 Rt(){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 Ft extends At{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 zt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}const $t=(t,e)=>{let s=0;return(...r)=>{const n=(new Date).getTime();n-s<e||(s=n,t(...r))}};class Dt extends CustomEvent{constructor(t,e,{bubbles:s=!0,cancelable:r=!0}={}){super(t,{detail:e,bubbles:s,cancelable:r})}}class Lt extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}const Nt=(t,e)=>(function(t){function e(e){if(!t.contains(e.target)){const s=new zt(e,t);t.dispatchEvent(s)}}console.log(t),globalThis?.document?.addEventListener("click",e)}(t.element),new At("click",t,Ct.Click,null,e)),Ut=(t,e)=>new At("clipboard",t,Ct.Clipboard,null,e),qt=(t,e)=>new At("drag",t,Ct.Drag,null,e),Zt=(t,e)=>new At("focus",t,Ct.Focus,null,e),Bt=(t,e)=>new At("key",t,Ct.Key,jt,e),Ht=(t,e)=>new Ft("mouse",t,Ct.Mouse,It,e),Vt=(t,e)=>new Ft("ptr",t,Ct.Ptr,Pt,e),Wt=(t,e)=>new At("wheel",t,Ct.Wheel,null,e),Gt=(t,e)=>(function(t,{intersection:e=!0,resize:s=!0,threshold:r=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let o,a;const h=e=>{for(let s of e){const{width:e,height:r}=s.contentRect;t.dispatchEvent(new Dt("resizeview",{width:e,height:r,entry:s}))}},c=n>0?$t(h,n):h,l=e=>{for(let s of e){const e=s.isIntersecting?"enterview":"exitview";t.dispatchEvent(new Dt(e,s))}},u=i>0?$t(l,i):l;e&&(o=new IntersectionObserver(u,{threshold:r}),o.observe(t)),s&&(a=new ResizeObserver(c),a.observe(t))}(t.element),new At("view",t,Ct.View,null,e)),Kt=(t,e)=>(function(t,e=50,s=100,r=500){let n=0,i=0,o=0,a=!1;function h(t){n=t.clientX,i=t.clientY,o=performance.now(),a=!0}function c(h){if(!a)return;a=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-o<=r&&(Math.abs(c)>=e&&Math.abs(l)<=s?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=s&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new Lt(m,{direction:u,distX:c,distY:l,originalEvent:h}))}t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0})}(t.element),new At("swipe",t,Ct.Swipe,null,e));class Jt extends At{constructor(t,e,s){super("custom",t,e,Yt,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 Yt(){}const Xt=(t,e,s)=>new Jt(t,e,s),Qt={ptr:Vt,mouse:Ht,key:Bt,click:Nt,drag:qt,clipboard:Ut,focus:Zt,wheel:Wt,view:Gt,swipe:Kt},te={on(t,...e){return this.events.custom||(this.events.custom=Xt(this)),this.events.custom.on(t,...e),this},emit(t,e={}){return this.events.custom||(this.events.custom=Xt(this)),this.events.custom.emit(t,e),this}};Object.entries(Ct).forEach((([t,e])=>{const s=t.toLowerCase();e.forEach((t=>{const e=`on${t}`;te[e]=function(t){return this.events[s]||(this.events[s]=Qt[s](this)),this.events[s][e](t),this}}))}));var ee=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 se=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const s=t[e];if(bt(s)){const t=s();Object.assign(this.element.style,{[e]:t.value}),t._subscribe((t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})}))}else Object.assign(this.element.style,{[e]:s})}return this}});let re=class extends pt{constructor({element:t,name:e="",type:s="html",render:r=__Ziko__.__Config__.default.render}={}){super(),ft(this,dt,Et,kt,se,ee,te),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 ne extends re{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const ie=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],oe=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],ae=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],he=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return ie.includes(r)&&(s="html"),oe.includes(r)&&(s="svg"),ae.includes(r)&&(s="mathml"),(...t)=>0===t.length?new re({element:r,name:r,type:s}):["string","number"].includes(typeof t[0])||t[0]instanceof re||"function"==typeof t[0]&&t[0]().isStateGetter()?new re({element:r,name:r,type:s}).append(...t):new re({element:r,type:s}).setAttr(t.shift()).append(...t)}});class ce extends re{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 le.call(this,s),this.style({alignItems:"number"==typeof t?me.call(this,t):t,justifyContent:"number"==typeof e?pe.call(this,e):e}),this}horizontal(t,e,s=1){return ue.call(this,s),this.style({alignItems:"number"==typeof e?pe.call(this,e):e,justifyContent:"number"==typeof t?me.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}function le(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function ue(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function me(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function pe(t){return me(-t)}class fe extends pt{constructor({element:t,name:e,type:s,render:r}){super({element:t,name:e,type:s,render:r})}}class de extends fe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unmount(),this.append(s)}catch(t){console.log({error:t})}})()}}class ge extends re{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class be extends re{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:s,attributes:r}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of r)n.setAttribute(t,e);return n.append(...s),globalThis.svg=e,globalThis.children=s,globalThis.attributes=r,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class we extends re{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter((t=>t!=this.current)).forEach((t=>t.unmount())),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find((t=>t==this.key))??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const{PI:ye,sqrt:ve,cos:_e,sin:xe,acos:Me,pow:Ee}=Math,ke=t=>t,Ce=(t,e=7.5625,s=2.75)=>t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375;class Te{constructor(t,{ease:e=ke,step:s=50,t0:r=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=A(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#u(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#u(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#u(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class Se{constructor(t,e,s=1/0,r){this.ms=e,this.fn=t,this.count=s,this.frame=1,this.id=null,this.running=!1,r&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval((()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)}),this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class Oe extends Se{constructor(t=1e3/60){super(t,(()=>this._tick())),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class Ae{constructor(t=[],{repeat:e=1,loop:s=!1}={}){this.tasks=t,this.repeat=e,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map((({fn:t,delay:e=0})=>new Promise((async s=>{e>0&&await new Promise((t=>setTimeout(t,e))),this.onTask&&this.onTask(t),await t(),s()})))));else{const{fn:e,delay:s=0}=t;s>0&&await new Promise((t=>setTimeout(t,s))),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class je{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:n,pauseTime:null,frame:0},n&&(s?this.startAfter(s):this.start(),r!==1/0&&this.stopAfter(r))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout((()=>this.start()),t),this}stopAfter(t=1e3){return setTimeout((()=>this.stop()),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}const Pe=t=>{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=Pe(t);return(new DOMParser).parseFromString(e,"text/html").documentElement}catch(t){throw console.error("Failed to fetch DOM synchronously:",t),t}};const Ie=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),Re=(t,e=",")=>{const[s,...r]=Ie(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},Fe=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ze=(t,e)=>Fe(t).map((t=>t.join(e))).join("\n"),$e=(t,e=",")=>ze(t instanceof Object?t:JSON.parse(t),e),De=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=De(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=De(n,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${n}`)}return s},Le=(t,e="")=>De(t,e).join("\n"),Ne=(t,e)=>Le(t instanceof Object?t:JSON.parse(t),e),Ue=(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?Ue(n,e+2):`${n}`,s+=`</${r}>`}return s.trim()},qe=t=>(new XMLSerializer).serializeToString(t),Ze=t=>btoa(qe(t)),Be=t=>"data:image/svg+xml;base64,"+Ze(t),He=t=>JSON.stringify(n((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof y||t instanceof U?t.toString():t instanceof Array?We(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Ve=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=Ve(s);t+1>e&&(e=t+1)}return e},We=t=>{let e=0;return function t(s){let r=Ve(s),n=0;return s.some((t=>Array.isArray(t)))&&(e++,n=1),"["+s.map(((r,n)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof y?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${n===s.length-1?"\n":""}`:r instanceof Object?He(r):void 0))+`${" ".repeat((r+e+1)*n)}]`}(t)},Ge=(t,e=0)=>{t=Ke(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+=Ge({[t]:i[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${i[t]};\n`;s+=`${r}}\n`}return s};function Ke(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=Ke(t[s]),e)),Array.isArray(t)?[]:{})}class Je{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.mount(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}}function Ye(t){return/:\w+/.test(t)}class Xe extends Je{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",_t("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach((t=>{!Ye(t[0])&&t[1]?.isUIElement&&t[1].unmount()})),this}mount(t){const[e,s]=[...this.routes].find((e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t)));let r;if(Ye(e)){const n=function(t,e){const s=t.split("/"),r=e.split("/"),n={};if(s.length!==r.length)return n;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);r=s.call(this,n)}else s?.isUIElement&&s.mount(this.wrapper),"function"==typeof s&&(r=s());return r?.isUIElement&&r.mount(this.wrapper),r instanceof Promise&&r.then((t=>t.mount(this.wrapper))),globalThis.history.pushState({},"",t),this}}const Qe=({head:t,wrapper:e,target:s,routes:r})=>new Xe({head:t,wrapper:e,target:s,routes:r});function ts(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=r.indexOf(n.at(-1));if(-1!==i){const t=r.slice(i+1),e=r.at(-1),n="index.js"===e||"index.ts"===e,o=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(o)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class es{#m;#p=new Map;#f=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#m=new Worker(URL.createObjectURL(t)),this.#m.addEventListener("message",(t=>{const{id:e,result:s,error:r}=t.data,n=this.#p.get(e);n&&(n(s,r),this.#p.delete(e))}))}call(t,e,s=[],r=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#f;return this.#p.set(n,e),this.#m.postMessage({id:n,funStr:t.toString(),args:s,close:r}),this}terminate(){this.#m.terminate()}}class ss{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`),this}once(t,e){const s=(...r)=>{this.off(t,s),e(...r)};return this.on(t,s)}off(t,e){const s=this.events[t];if(!s)return this;const r=s.indexOf(e);return-1!==r&&s.splice(r,1),this}emit(t,e){const s=this.events[t];return!!s&&([...s].forEach((s=>{try{s(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}})),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const rs=t=>new ss(t);class ns{#d;#g;#b=null;constructor(t=[],e=(()=>{})){this.#d=t,this.#g=e,this.#a()}#w(){return this.#d.some((({query:t})=>globalThis.matchMedia(t).matches))}#a(){this.#d.forEach((({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.#w();s.matches?(e(),this.#b=e):t||this.#b===this.#g||(this.#g(),this.#b=this.#g)};r(),s.addEventListener("change",r)}))}}class is{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=rs(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class os{constructor(t,{namespace:e="Ziko",ValidateCssProps:s=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=s,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(const s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}let{sqrt:as,cos:hs,sin:cs,exp:ls,log:us,cosh:ms,sinh:ps}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,s,r){const n=r[0];if("number"==typeof n||0===r.length)return e.apply(s,r);if(n?.isComplex?.()){const{a:t,b:i,z:o,phi:a}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(as(o)*hs(a/2),as(o)*cs(a/2));case"log":return h(us(o),a);case"exp":return h(ls(t)*hs(i),ls(t)*cs(i));case"cos":return h(hs(t)*ms(i),-cs(t)*ps(i));case"sin":return h(cs(t)*ms(i),hs(t)*ps(i));case"tan":{const e=hs(2*t)+ms(2*i);return h(cs(2*t)/e,ps(2*i)/e)}case"cosh":return h(ms(t)*hs(i),ps(t)*cs(i));case"sinh":return h(ps(t)*hs(i),ms(t)*cs(i));case"tanh":{const e=ms(2*t)+hs(2*i);return h(ps(2*t)/e,cs(2*i)/e)}default:return e.apply(s,r)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new Je({head:t,wrapper:e,target:s}),t.Clock=Oe,t.Complex=y,t.E=s,t.EPSILON=r,t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map((t=>t.split("/"))),s=Math.min(...e.map((t=>t.length)));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every((e=>e[t]===s||e[t].startsWith("["))))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),o=await i.default;Object.assign(r,{[ts(e[n],s)]:o})}return Qe({target:document.body,routes:{"/":()=>{},...r},wrapper:he.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new ce(e).append(...t)},t.HTMLWrapper=t=>new ge(t),t.Matrix=U,t.PI=e,t.Random=w,t.SPA=Qe,t.SVGWrapper=t=>new be(t),t.Scheduler=(t,{repeat:e=null}={})=>new Ae(t,{repeat:e}),t.Suspense=(t,e)=>new de(t,e),t.Switch=({key:t,cases:e})=>new we(t,e),t.Tick=Se,t.TimeAnimation=Te,t.TimeLoop=je,t.TimeScheduler=Ae,t.UIElement=re,t.UIHTMLWrapper=ge,t.UINode=et,t.UISVGWrapper=be,t.UISwitch=we,t.UIView=ne,t.UseRoot=os,t.UseThread=es,t.Utils=tt,t.View=(...t)=>new ne(...t),t.ZikoApp=Je,t.ZikoEvent=At,t.ZikoSPA=Xe,t.ZikoUIFlex=ce,t.ZikoUISuspense=de,t.ZikoUIText=vt,t.abs=_,t.accum_prod=(...t)=>{let e,s=[],r=1,n=t.length;for(e=0;e<n;e++)r=l(r,t[e]),s.push(r);return s},t.accum_sum=d,t.acos=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.hypot(e+1,s),n=Math.hypot(e-1,s);return globalThis.Rp=r,globalThis.Rm=n,new t.constructor(Math.acos((r-n)/2),-Math.acosh((r+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)}),...t),t.acosh=(...t)=>n((t=>t?.isComplex?k(t.clone().add(M(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8)),...t),t.acot=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t;return new t.constructor(Math.atan(2*e/(e**2+(s-1)*(s+1)))/2,Math.log((e**2+(s-1)**2)/(e**2+(s+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)}),...t),t.add=h,t.and=R,t.animation=(t,{ease:e,t0:s,t1:r,start:n,duration:i}={})=>new Te(t,{ease:e,t0:s,t1:r,start:n,duration:i}),t.apply_fun=i,t.arange=H,t.arc=t=>1-xe(Me(t)),t.arr2str=We,t.asin=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.hypot(e+1,s),n=Math.hypot(e-1,s);return new t.constructor(Math.asin((r-n)/2),Math.acosh((r+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)}),...t),t.asinh=(...t)=>n((t=>t?.isComplex?k(t.clone().add(M(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8)),...t),t.atan=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t;return new t.constructor(Math.atan(2*e/(1-e**2-s**2))/2,Math.log((e**2+(1+s)**2)/(e**2+(1-s)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)}),...t),t.atan2=j,t.atanh=(...t)=>n((t=>+Math.atanh(t).toFixed(8)),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.bind_click_event=Nt,t.bind_clipboard_event=Ut,t.bind_drag_event=qt,t.bind_focus_event=Zt,t.bind_key_event=Bt,t.bind_mouse_event=Ht,t.bind_pointer_event=Vt,t.bind_swipe_event=Kt,t.bind_touch_event=(t,e)=>new Ft("touch",t,Ct.Touch,Rt,e),t.bind_view_event=Gt,t.bind_wheel_event=Wt,t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let s,r=1;for(s=0;s<e;s++)r=r*(t-s)/(s+1);return r},t.cartesianProduct=Y,t.cbrt=(...t)=>n((t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8)),...t),t.ceil=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t)),...t),t.clamp=O,t.clock=t=>new Oe(t),t.complex=v,t.cos=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8)),...t),t.cosh=(...t)=>n((t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8)),...t),t.coth=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.sinh(e)**2*Math.cos(s)**2+Math.cosh(e)**2*Math.sin(s)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/r,-Math.sin(s)*Math.cos(s)/r).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)}),...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n((t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:s,b:r}=e,{z:n,phi:i}=t,o=Math.hypot(s,r),a=Math.exp((Math.log(n)*s+i*r)/o),h=(i*s-Math.log(n)*r)/o;return new e.constructor(a*Math.cos(h),a*Math.sin(h)).toFixed(8)}),...t)},t.csv2arr=Ie,t.csv2json=(t,e=",")=>JSON.stringify(Re(t,e)),t.csv2matrix=(t,e=",")=>new U(Ie(t,e)),t.csv2object=Re,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter((t=>t));let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");n.push(`(${e})`)}return r+n.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout((()=>t(...s)),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,s={},{mode:r="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(s)]}constructor(){super(),this.attachShadow({mode:r}),this.props={},this.mask={...s}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach((t=>t.mount(this.shadowRoot))):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,s){Object.assign(this.props,{[t]:this.mask[t].type(s)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n((t=>t*Math.PI/180),...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=u,t.elastic=t=>-2*Ee(2,10*(t-1))*_e(20*ye*t/3*t),t.event_controller=Tt,t.exp=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8)),...t),t.floor=C,t.fract=(...t)=>n((t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t)),...t),t.geomspace=G,t.getEvent=Ot,t.hypot=(...t)=>{const e=t.find((t=>t.isComplex?.()));if(e){const s=t.map((t=>t.isComplex?.()?t:new e.constructor(t,0)));return Math.hypot(...s.map((t=>t.z)))}return Math.hypot(...t)},t.inRange=K,t.in_back=(t,e=1.70158,s=e+1)=>s*Ee(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,s=2.75)=>1-Ce(1-t,e,s),t.in_circ=t=>1-ve(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*ye/3)=>0===t?0:1===t?1:-Ee(2,10*t-10)*xe((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,s=1.525*e)=>t<.5?Ee(2*t,2)*(2*(s+1)*t-s)/2:(Ee(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.in_out_bounce=(t,e=7.5625,s=2.75)=>t<.5?Ce(1-2*t,e,s)/2:Ce(2*t-1,e,s)/2,t.in_out_circ=t=>t<.5?(1-ve(1-(2*t)**2))/2:(ve(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*ye/4.5)=>0===t?0:1===t?1:t<.5?-Ee(2,20*t-10)*xe((20*t-11.125)*e)/2:Ee(2,-20*t+10)*xe((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(_e(ye*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-_e(t*ye/2),t.isApproximatlyEqual=J,t.isStateGetter=bt,t.json2arr=t=>Fe(t instanceof Object?t:JSON.parse(t)),t.json2css=Ge,t.json2csv=$e,t.json2csvFile=(t,e)=>{const s=$e(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=Ue,t.json2xmlFile=(t,e)=>{const s=Ue(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=Ne,t.json2ymlFile=(t,e)=>{const s=Ne(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=S,t.linear=ke,t.linspace=V,t.ln=k,t.logspace=W,t.loop=(t,e={})=>new je(t,e),t.map=A,t.mapfun=n,t.matrix=(t,e,s)=>new U(t,e,s),t.matrix2=(...t)=>new U(2,2,t),t.matrix3=(...t)=>new U(3,3,t),t.matrix4=(...t)=>new U(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=p,t.median=t=>g(t,50),t.min=(...t)=>Math.min(...t),t.modulo=m,t.mul=l,t.nand=(...t)=>P(R(...t)),t.nor=(...t)=>P(F(...t)),t.norm=T,t.nthr=E,t.nums=B,t.obj2str=He,t.ones=Z,t.or=F,t.out_back=(t,e=1.70158,s=e+1)=>1+s*Ee(t-1,3)+e*Ee(t-1,2),t.out_bounce=Ce,t.out_circ=t=>ve(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*ye/3)=>0===t?0:1===t?1:Ee(2,-10*t)*xe((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>xe(t*ye/2),t.percentile=g,t.pgcd=X,t.pow=x,t.ppcm=Q,t.preload=Pe,t.rad2deg=(...t)=>n((t=>t/Math.PI*180),...t),t.round=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t)),...t),t.sec=(...t)=>n((t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8))),...t),t.sig=(...t)=>n((t=>1/(1+Math.exp(-t)).toFixed(8)),...t),t.sign=(...t)=>n((t=>{if(t.isComplex?.()){const{z:e,phi:s}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:s})}return Math.sign(t)}),...t),t.sin=(...t)=>n((t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8)),...t),t.sinh=(...t)=>n((t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8)),...t),t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=M,t.std=(...t)=>Math.sqrt(f(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.sub=c,t.svg2ascii=Ze,t.svg2img=(t,e=!0)=>he.img(Be(t)).mount(e),t.svg2imgUrl=Be,t.svg2str=qe,t.tags=he,t.tan=(...t)=>n((t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)}),...t),t.tanh=(...t)=>n((t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)}),...t),t.text=_t,t.throttle=$t,t.tick=(t,e,s=1/0,r=!0)=>new Se(t,e,s,r),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.timeout=function(t,e){let s;const r=new Promise((r=>{s=setTimeout((()=>{e&&e(),r()}),t)}));return{id:s,clear:()=>clearTimeout(s),promise:r}},t.toggle_event_listener=St,t.trunc=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t)),...t),t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;return e.forEach((n=>{n()._subscribe((()=>{{const n=t(...e.map((t=>t().value)));n!==s&&(s=n,r.forEach((t=>t(s))))}}))})),()=>({value:s,isStateGetter:()=>!0,_subscribe:t=>r.add(t)})},t.useEventEmitter=rs,t.useIPC=ht,t.useLocaleStorage=(t,e,s=!0)=>new ct(localStorage,t,e,s),t.useMediaQuery=(t,e)=>new ns(t,e),t.useReactive=t=>n((t=>{const e=gt(t);return{get:e[0],set:e[1]}}),t),t.useRoot=(t,e={})=>new os(t,e),t.useSessionStorage=lt,t.useState=gt,t.useThread=(t,e,s=[],r=!0)=>(new es).call(t,e,s,r),t.useTitle=(t,e=!0)=>new is(t,e),t.variance=f,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.xnor=(...t)=>P(z(...t)),t.xor=z,t.zeros=q}));
|
|
9
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Ziko={})}(this,(function(t){"use strict";const{PI:e,E:s}=Math,r=Number.EPSILON,n=(t,...e)=>{const s=e.map((e=>{return"object"!=typeof(s=e)&&"function"!=typeof s||null===s||e?.__mapfun__?t(e):e instanceof Array?e.map((e=>n(t,e))):ArrayBuffer.isView(e)?e.map((e=>t(e))):e instanceof Set?new Set(n(t,...e)):e instanceof Map?new Map([...e].map((e=>[e[0],n(t,e[1])]))):e.isMatrix?.()?new e.constructor(e.rows,e.cols,n(e.arr.flat(1))):e instanceof Object?Object.fromEntries(Object.entries(e).map((e=>[e[0],n(t,e[1])]))):void 0;var s}));return 1==s.length?s[0]:s},i=(t,e)=>t.isComplex?.()?new t.constructor(e(t.a),e(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(e)):(t instanceof Array&&n(e,...t),e(t)),o=(t,e,s)=>{if("number"==typeof e){if("number"==typeof s)switch(t){case"add":return e+s;case"sub":return e-s;case"mul":return e*s;case"div":return e/s;case"modulo":return e%s}return s?.isComplex?.()&&(e=new s.constructor(e,0)),s?.isMatrix?.()&&(e=s.constructor.nums(s.rows,s.cols,e)),e[t](s)}if(e?.isComplex?.()){if("number"==typeof s||s?.isComplex?.())return e.clone()[t](s);if(s?.isMatrix?.())return(e=s.constructor.nums(s.rows,s.cols,e)).clone()[t](s)}if(e?.isMatrix?.())return e.clone()[t](s)},h=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("add",s,e[t]);return s},c=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("sub",s,e[t]);return s},l=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("mul",s,e[t]);return s},u=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("div",s,e[t]);return s},m=(t,...e)=>{let s=t;for(let t=0;t<e.length;t++)s=o("modulo",s,e[t]);return s},p=(...t)=>t.reduce(((t,e)=>t+e))/t.length,f=(...t)=>{const e=t.length;if(0===e)return NaN;const s=p(...t);return t.reduce(((t,e)=>t+(e-s)**2),0)/e},d=(...t)=>{let e,s=[],r=0,n=t.length;for(e=0;e<n;e++)r=h(r,t[e]),s.push(r);return s},g=(t,e)=>{if(0===t.length)return NaN;let s=[...t].sort(((t,e)=>t-e)),r=e/100*(s.length-1),n=Math.floor(r),i=r-n;return n===s.length-1?s[n]:s[n]*(1-i)+s[n+1]*i};class w{static int(t,e){return Math.floor(this.float(t,e))}static float(t,e){return void 0!==e?Math.random()*(e-t)+t:Math.random()*t}static bin(){return this.int(2)}static oct(){return this.int(8)}static dec(){return this.int(10)}static hex(){return((t,e,s)=>{const r=parseInt(t,e);if(Number.isNaN(r))throw new TypeError("Invalid value for the given base");return r.toString(s)})(this.int(16),10,16)}static char(t=!1){const e=t?this.int(65,91):this.int(97,123);return String.fromCharCode(e)}static bool(){return Boolean(this.int(2))}static get color(){return{hex:()=>`#${this.int(16777215).toString(16).padStart(6,"0")}`,hexa:()=>{const[t,e,s,r]=Array.from({length:4},(()=>this.int(255).toString(16).padStart(2,"0")));return`#${t}${e}${s}${r}`},rgb:()=>{const[t,e,s]=Array.from({length:3},(()=>this.int(255)));return`rgb(${t}, ${e}, ${s})`},rgba:()=>{const[t,e,s]=Array.from({length:3},(()=>this.int(255)));return`rgba(${t}, ${e}, ${s}, ${Math.random().toFixed(2)})`},hsl:()=>`hsl(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%)`,hsla:()=>`hsla(${this.int(360)}, ${this.int(100)}%, ${this.int(100)}%, ${Math.random().toFixed(2)})`,gray:()=>{const t=this.int(255);return`rgb(${t}, ${t}, ${t})`}}}static get sample(){const t=this;return{int:(e,s,r)=>Array.from({length:e},(()=>t.int(s,r))),float:(e,s,r)=>Array.from({length:e},(()=>t.float(s,r))),char:(e,s=!1)=>Array.from({length:e},(()=>t.char(s))),bool:e=>Array.from({length:e},(()=>t.bool())),bin:e=>Array.from({length:e},(()=>t.bin())),oct:e=>Array.from({length:e},(()=>t.oct())),dec:e=>Array.from({length:e},(()=>t.dec())),hex:e=>Array.from({length:e},(()=>t.hex())),get color(){return{hex:e=>Array.from({length:e},(()=>t.color.hex())),hexa:e=>Array.from({length:e},(()=>t.color.hexa())),rgb:e=>Array.from({length:e},(()=>t.color.rgb())),rgba:e=>Array.from({length:e},(()=>t.color.rgba())),hsl:e=>Array.from({length:e},(()=>t.color.hsl())),hsla:e=>Array.from({length:e},(()=>t.color.hsla())),gray:e=>Array.from({length:e},(()=>t.color.gray()))}},choice:(e,s,r)=>Array.from({length:e},(()=>t.choice(s,r)))}}static shuffle(t){return[...t].sort((()=>.5-Math.random()))}static choice(t=[1,2,3],e=new Array(t.length).fill(1/t.length)){const s=d(...e).map((t=>100*t)),r=new Array(100);r.fill(t[0],0,s[0]);for(let e=1;e<t.length;e++)r.fill(t[e],s[e-1],s[e]);return r[this.int(r.length)]}}globalThis.Random=w;class y{constructor(t=0,e=0){[this.a,this.b]=((t,e,s)=>{let r,n;return e instanceof t?(r=e.a,n=e.b):"object"==typeof e?"a"in e&&"b"in e?(r=e.a,n=e.b):"a"in e&&"z"in e?(r=e.a,n=Math.sqrt(e.z**2-e.a**2)):"a"in e&&"phi"in e?(r=e.a,n=e.a*Math.tan(e.phi)):"b"in e&&"z"in e?(n=e.b,r=Math.sqrt(e.z**2-e.b**2)):"b"in e&&"phi"in e?(n=s,r=e.b/Math.tan(e.phi)):"z"in e&&"phi"in e&&(r=+e.z*Math.cos(e.phi).toFixed(15),n=+e.z*Math.sin(e.phi).toFixed(15)):"number"==typeof e&&"number"==typeof s&&(r=+e.toFixed(32),n=+s.toFixed(32)),[r,n]})(y,t,e)}get __mapfun__(){return!0}isComplex(){return!0}toString(){let t="";return t=0!==this.a?this.b>=0?`${this.a}+${this.b}*i`:`${this.a}-${Math.abs(this.b)}*i`:this.b>=0?`${this.b}*i`:`-${Math.abs(this.b)}*i`,t}serialize(){return JSON.stringify({type:"complex",data:this})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));let{data:e,type:s}=t;return"complex"===s&&"a"in e&&"b"in e?new y(e.a,e.b):TypeError("Not a valid complex")}toFixed(t){return this.a=+this.a.toFixed(t),this.b=+this.b.toFixed(t),this}toPrecision(t){return this.a=+this.a.toPrecision(t),this.b=+this.b.toPrecision(t),this}clone(){return new y(this.a,this.b)}get z(){return Math.hypot(this.a,this.b)}get phi(){return Math.atan2(this.b,this.a)}static zero(){return new y(0,0)}static fromPolar(t,e){return new y(+(t*cos(e)).toFixed(13),+(t*sin(e)).toFixed(13))}static get random(){return{int:(t,e)=>new y(...w.sample.int(2,t,e)),float:(t,e)=>new y(...w.sample.float(2,t,e))}}static twiddle(t,e){const s=-2*Math.PI*t/e;return new y(Math.cos(s),Math.sin(s))}get conj(){return new y(this.a,-this.b)}get inv(){return new y(this.a/Math.hypot(this.a,this.b),-this.b/Math.hypot(this.a,this.b))}add(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a+=t[e].a,this.b+=t[e].b;return this}sub(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a-=t[e].a,this.b-=t[e].b;return this}mul(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e*=t[r].z,s+=t[r].phi;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this.toFixed(8)}div(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e/=t[r].z,s-=t[r].phi;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this.toFixed(8)}modulo(...t){for(let e=0;e<t.length;e++)"number"==typeof t[e]&&(t[e]=new y(t[e],0)),this.a%=t[e].a,this.b%=t[e].b;return this}pow(...t){let{z:e,phi:s}=this;for(let r=0;r<t.length;r++)"number"==typeof t[r]&&(t[r]=new y(t[r],0)),e*=Math.exp(t[r].a*Math.log(e)-t[r].b*s),s+=t[r].b*Math.log(e)+t[r].a*s;return this.a=e*Math.cos(s),this.b=e*Math.sin(s),this}get expo(){return[this.z,this.phi]}nthr(t=2){return v({z:this.z**(1/t),phi:this.phi/t})}get sqrt(){return this.nthr(2)}get cbrt(){return this.nthr(3)}get log(){return v(this.z,this.phi)}get cos(){return v(Math.cos(this.a)*Math.cosh(this.b),Math.sin(this.a)*Math.sinh(this.b))}get sin(){return v(Math.sin(this.a)*Math.cosh(this.b),Math.cos(this.a)*Math.sinh(this.b))}get tan(){const t=cos(2*this.a)+cosh(2*this.b);return v(Math.sin(2*this.a)/t,Math.sinh(2*this.b)/t)}}const v=(t,e)=>{if((t instanceof Array||ArrayBuffer.isView(t))&&(e instanceof Array||ArrayBuffer.isView(t)))return t.map(((s,r)=>v(t[r],e[r])));if(t.isMatrix?.()&&e.isMatrix?.()){if(t.shape[0]!==e.shape[0]||t.shape[1]!==e.shape[1])return Error(0);const s=t.arr.map(((s,r)=>v(t.arr[r],e.arr[r])));return new t.constructor(t.rows,t.cols,...s)}return new y(t,e)},_=(...t)=>n((t=>t.isComplex?.()?t.z:Math.abs(t)),...t),x=(...t)=>{const e=t.pop();return n((t=>t.isComplex?.()?e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t.z)-e.b*t.phi),phi:e.b*Math.log(t.z)+e.a*t.phi}):new t.constructor({z:t.z**e,phi:t.phi*e}):e.isComplex?.()?new t.constructor({z:Math.exp(e.a*Math.log(t)),phi:e.b*Math.log(t)}):Math.pow(t,e)),...t)},M=(...t)=>n((t=>t.isComplex?.()?new t.constructor({z:t.z**.5,phi:t.phi/2}):t<0?v(0,Math.sqrt(-t)).toFixed(8):+Math.sqrt(t).toFixed(8)),...t),E=(...t)=>{const e=t.pop();if("number"!=typeof e)throw Error("nthr expects a real number n");return n((t=>t.isComplex?.()?new t.constructor({z:t.z**(1/e),phi:t.phi/e}):t<0?e%2==2?v(0,(-t)**(1/e)).toFixed(8):+(-1*(-t)**(1/e)).toFixed(8):+(t**(1/e)).toFixed(8)),...t)},k=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.log(t.z),t.phi).toFixed(8):+Math.log(t).toFixed(8)),...t),C=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.floor(t.a),Math.floor(t.b)):Math.floor(t)),...t),T=(t,e,s)=>i(t,(t=>e!==s?(t-e)/(s-e):0)),S=(t,e,s)=>i(t,(t=>(s-e)*t+e)),O=(t,e,s)=>i(t,(t=>Math.min(Math.max(t,e),s))),A=(t,e,s,r,n)=>i(t,(t=>S(T(t,e,s),r,n))),j=(t,e,s=!0)=>{if(t instanceof Array&&!(e instanceof Array))return n((t=>j(t,e,s)),...t);if(e instanceof Array&&!(t instanceof Array))return n((e=>j(t,e,s)),...e);if(t instanceof Array&&e instanceof Array)return t.map(((t,r)=>j(t,e[r],s)));const r=Math.atan2(t,e);return s?r:180*r/Math.PI},P=t=>t.isComplex?.()?new t.constructor(P(t.a),P(t.b)):t.isMatrix?.()?new t.constructor(t.rows,t.cols,t.arr.flat(1).map(P)):+!t,I=(t,e)=>{if(t.every((t=>t.isComplex?.()))){const s=t.map((t=>t.a)),r=t.map((t=>t.b));return new t[0].constructor(e(...s),e(...r))}if(t.every((t=>t.isMatrix?.()))){if(!t.every((e=>e.rows===t[0].rows&&e.cols===t[0].cols)))return TypeError("All matrices must have the same shape");const{rows:s,cols:r}=t[0],n=Array.from({length:s},((s,n)=>Array.from({length:r},((s,r)=>e(...t.map((t=>t.arr[n][r])))))));return new t[0].constructor(n)}return null},R=(...t)=>{const e=I(t,R);return null!==e?e:t.reduce(((t,e)=>t&e),1)},F=(...t)=>{const e=I(t,F);return null!==e?e:t.reduce(((t,e)=>t|e),0)},z=(...t)=>{const e=I(t,z);return null!==e?e:t.reduce(((t,e)=>t^e),0)},$=(t,e)=>{for(let e=0;e<t.arr.length;e++)Object.defineProperty(t,e,{value:t.arr[e],writable:!0,configurable:!0,enumerable:!1});for(let s=t.arr.length;s<e;s++)delete t[s]};function D(t,e){var s=[];for(let e=0;e<t.length;e++)s.push(t[e].slice(0));s.splice(0,1);for(let t=0;t<s.length;t++)s[t].splice(e,1);return s}function L(t,e){if(t=t.clone(),e=e.clone(),t.rows!==e.rows)return;let s=t.arr;for(let r=0;r<t.rows;r++)for(let n=t.cols;n<t.cols+e.cols;n++)s[r][n]=e.arr[r][n-t.cols];return t.cols+=e.cols,new t.constructor(t.rows,t.cols,s.flat(1))}function N(t,e){if(t=t.clone(),e=e.clone(),t.cols!==e.cols)return;let s=t.arr;for(let r=t.rows;r<t.rows+e.rows;r++){s[r]=[];for(let n=0;n<t.cols;n++)s[r][n]=e.arr[r-t.rows][n]}return t.rows+=e.rows,new t.constructor(t.rows,t.cols,s.flat(1))}class U{constructor(t,e,s=[]){[this.rows,this.cols,this.arr]=((t,e,s,r)=>{if(!(e instanceof t)){let t,n,i=[];if(e instanceof Array)i=e,e=i.length,s=i[0].length;else for(t=0;t<e;t++)for(i.push([]),i[t].push(new Array(s)),n=0;n<s;n++)i[t][n]=r[t*s+n],null==r[t*s+n]&&(i[t][n]=0);return[e,s,i]}arr=e.arr,s=(e=e.rows).cols})(U,t,e,s),$(this)}isMatrix(){return!0}clone(){return new U(this.rows,this.cols,this.arr.flat(1))}toComplex(){return this.arr=n((t=>t?.isComplex?.()?t:new y(t,0)),...this.arr),$(this),this}[Symbol.iterator](){return this.arr[Symbol.iterator]()}get size(){return this.rows*this.cols}get shape(){return[this.rows,this.cols]}at(t=0,e=void 0){if(t<0&&(t+=this.rows),t<0||t>=this.rows)throw new Error("Row index out of bounds");if(void 0===e)return this.arr[t];if(e<0&&(e+=this.cols),e<0||e>=this.cols)throw new Error("Column index out of bounds");return this.arr[t][e]}slice(t=0,e=0,s=this.rows-1,r=this.cols-1){s<0&&(s=this.rows+s),r<0&&(r=this.cols+r);let n=s-t,i=r-e,o=new Array(i);for(let s=0;s<n;s++){o[s]=[];for(let r=0;r<i;r++)o[s][r]=this.arr[s+t][r+e]}return this.arr=o,$(this.rows),this.rows=n,this.cols=i,this}reshape(t,e){if(t*e!=this.rows*this.cols)throw Error("size not matched");const s=this.rows;return Object.assign(this,new U(t,e,this.arr.flat(1))),$(s),this}get T(){let t=[];for(let e=0;e<this.arr[0].length;e++){t[e]=[];for(let s=0;s<this.arr.length;s++)t[e][s]=this.arr[s][e]}return new U(this.cols,this.rows,t.flat(1))}get det(){return(t=this).isSquare?1==t.rows?t.arr[0][0]:function t(e){if(2==e.length)return e.flat(1).some((t=>t?.isMatrix?.()))?void console.warn("Tensors are not completely supported yet ..."):c(l(e[0][0],e[1][1]),l(e[0][1],e[1][0]));for(var s=0,r=0;r<e.length;r++){const n=h(l(x(-1,r),l(e[0][r],t(D(e,r)))));s=h(s,n)}return s}(t.arr):new Error("is not square matrix");var t}get inv(){return function(t){if(t.row!==t.cols)throw Error('is not a square matrix"');if(0===t.det)throw Error("determinant should not equal 0");const{arr:e}=t;if(e.length===e[0].length){var s=0,r=0,n=0,i=e.length,o=0,a=[],h=[];for(s=0;s<i;s+=1)for(a[a.length]=[],h[h.length]=[],n=0;n<i;n+=1)a[s][n]=s==n?1:0,h[s][n]=e[s][n];for(s=0;s<i;s+=1){if(0==(o=h[s][s])){for(r=s+1;r<i;r+=1)if(0!=h[r][s]){for(n=0;n<i;n++)o=h[s][n],h[s][n]=h[r][n],h[r][n]=o,o=a[s][n],a[s][n]=a[r][n],a[r][n]=o;break}if(0==(o=h[s][s]))return}for(n=0;n<i;n++)h[s][n]=h[s][n]/o,a[s][n]=a[s][n]/o;for(r=0;r<i;r++)if(r!=s)for(o=h[r][s],n=0;n<i;n++)h[r][n]-=o*h[s][n],a[r][n]-=o*a[s][n]}return new t.constructor(a)}}(this)}static eye(t){let e=new U(t,t);for(let s=0;s<t;s++)for(let r=0;r<t;r++)e.arr[s][r]=s===r?1:0;return e}static zeros(t,e){let s=new U(t,e);for(let n=0;n<t;n++)for(var r=0;r<e;r++)s.arr[n][r]=0;return s}static ones(t,e){let s=new U(t,e);for(let r=0;r<t;r++)for(let t=0;t<e;t++)s.arr[r][t]=1;return s}static nums(t,e,s){let r=new U(t,e);for(let n=0;n<t;n++)for(let t=0;t<e;t++)r.arr[n][t]=s;return r}static get random(){return{int:(t,e,s,r)=>new U(t,e,w.sample.int(t*e,s,r)),float:(t,e,s)=>new U(t,e,w.sample.float(t*e,s,b))}}get range(){return{map:(t,e,s,r)=>(this.arr=A(this.arr,t,e,s,r),this),norm:(t,e)=>(this.arr=T(this.arr,t,e),this),lerp:(t,e)=>(this.arr=S(this.arr,t,e),this),clamp:(t,e)=>(this.arr=O(this.arr,t,e),this)}}hstack(...t){const e=[this,...t].reduce(((t,e)=>L(t,e)));return Object.assign(this,e),$(this),this}vstack(...t){const e=[this,...t].reduce(((t,e)=>N(t,e)));return Object.assign(this,e),$(this),this}hqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>L(t,e)));return Object.assign(this,e),$(this),this}vqueue(...t){const e=[this,...t].reverse().reduce(((t,e)=>N(t,e)));return Object.assign(this,e),$(this),this}forEach(t){return this.arr.flat(1).forEach(t),this}forEachRow(t){return this.arr.forEach(t),this}forEachCol(t){return this.clone().T.forEachRow(t),this}map(t){const e=this.arr.flat(1).map(t);return new U(this.rows,this.cols,e)}mapRows(t=(()=>{})){return this.arr=this.arr.map(t),this}mapCols(t){return this.clone().T.mapRows(t).T}sort(t=(()=>{})){const e=this.arr.flat(1).sort(t);return new U(this.rows,this.cols,e)}shuffle(){return this.sort((()=>.5-Math.random()))}sortRows(t=(()=>{})){return this.arr=this.arr.map((e=>e.sort(t))),this}shuffleRows(){return this.sortRows((()=>.5-Math.random()))}sortCols(t){return this.clone().T.sortRows(t).T}shuffleCols(){return this.sortCols((()=>.5-Math.random()))}reduce(t,e){const s=e?this.arr.flat(1).reduce(t,e):this.arr.flat(1).reduce(t);return new U([[s]])}reduceRows(t,e){const s=e?this.arr.map((s=>s.reduce(t,e))):this.arr.map((e=>e.reduce(t)));return new U(1,this.cols,s)}reduceCols(t,e){return this.T.reduceRows(t,e).T}filterRows(t){const e=this.arr.map((e=>e.some((e=>t(e))))),s=[];let r;for(r=0;r<e.length;r++)e[r]&&s.push(this.arr[r]);return new U(s)}filterCols(t){const e=this.T.filterRows(t);return new U(e).T}every(t){return this.arr.flat(1).every(t)}everyRow(t){return this.arr.map((e=>e.every(t)))}everyCol(t){return this.T.arr.map((e=>e.every(t)))}some(t){return this.arr.flat(1).some(t)}someRow(t){return this.arr.map((e=>e.some(t)))}someCol(t){return this.T.arr.map((e=>e.some(t)))}get isSquare(){return this.rows===this.cols}get isSym(){if(!this.isSquare)return!1;for(let t=0;t<this.rows;t++)for(let e=t+1;e<this.cols;e++)if(this.arr[t][e]!==this.arr[e][t])return!1;return!0}get isAntiSym(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++){if(0!==this.arr[e][e])return!1;for(let s=e+1;s<t;s++)if(this.arr[e][s]!==-this.arr[s][e])return!1}return!0}get isDiag(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s]||0!==this.arr[s][e])return!1;return!0}get isOrtho(){return!!this.isSquare&&(this.isDiag&&(1==this.det||-1==this.det))}get isIdemp(){if(!this.isSquare)return!1;const t=this.rows,e=this.arr,s=[];for(let r=0;r<t;r++){s[r]=[];for(let n=0;n<t;n++){let i=0;for(let s=0;s<t;s++)i+=e[r][s]*e[s][n];s[r][n]=i}}for(let r=0;r<t;r++)for(let n=0;n<t;n++)if(s[r][n]!==e[r][n])return!1;return!0}get isUpperTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=1;e<t;e++)for(let t=0;t<e;t++)if(0!==this.arr[e][t])return!1;return!0}get isLowerTri(){if(!this.isSquare)return!1;const t=this.rows;for(let e=0;e<t-1;e++)for(let s=e+1;s<t;s++)if(0!==this.arr[e][s])return!1;return!0}toPrecision(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toPrecision(t);return this}toFixed(t){for(let e=0;e<this.cols;e++)for(let s=0;s<this.rows;s++)this.arr[e][s]=+this.arr[e][s].toFixed(t);return this}splice(t,e,s,...r){}getRows(t,e=t+1){return this.slice(t,0,e,this.cols)}getCols(t,e=t+1){return this.slice(0,t,this.rows,e)}#t(t,...e){for(let r=0;r<e.length;r++){("number"==typeof e[r]||e[r]?.isComplex?.())&&(e[r]=U.nums(this.rows,this.cols,e[r]));for(let n=0;n<this.rows;n++)for(var s=0;s<this.cols;s++)this.arr[n][s]=t(this.arr[n][s],e[r].arr[n][s])}return new U(this.rows,this.cols,this.arr.flat(1))}add(...t){return this.#t(h,...t)}sub(...t){return this.#t(c,...t)}mul(...t){return this.#t(l,...t)}div(...t){return this.#t(u,...t)}modulo(...t){return this.#t(m,...t)}dot(t){for(var e=[],s=0;s<this.arr.length;s++){e[s]=[];for(var r=0;r<t.arr[0].length;r++){e[s][r]=0;for(var n=0;n<this.arr[0].length;n++)e[s][r]=h(e[s][r],l(this.arr[s][n],t.arr[n][r]))}}return new U(this.arr.length,t.arr[0].length,e.flat(1))}pow(t){let e=this.clone(),s=this.clone();for(let r=0;r<t-1;r++)s=s.dot(e);return s}sum(){let t=0;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t=h(t,this.arr[e][s]);return t}prod(){let t=1;for(let e=0;e<this.rows;e++)for(let s=0;s<this.cols;s++)t=l(t,this.arr[e][s]);return t}hasComplex(){return this.arr.flat(1/0).some((t=>t instanceof y))}get min(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return Math.min(...t)}get max(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return Math.max(...t)}get minRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.min(...this.arr[e]));return t}get maxRows(){this.hasComplex()&&console.error("Complex numbers are not comparable");let t=[];for(let e=0;e<this.rows;e++)t.push(Math.max(...this.arr[e]));return t}get minCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.minRows}get maxCols(){return this.hasComplex()&&console.error("Complex numbers are not comparable"),this.T.maxRows}static fromVector(t){return new U(t.length,1,t)}serialize(){const t=n((t=>t.serialize?.()||t),...this.arr);return JSON.stringify({type:"matrix",data:{rows:this.rows,cols:this.cols,arr:t}})}static deserialize(t){"string"==typeof t&&(t=JSON.parse(t));const{type:e,data:s}=t;if("matrix"!==e)return TypeError("Not a valid Matrix");let{arr:r}=s;return r=n((t=>{if("string"==typeof t){const e=JSON.parse(t),{type:s}=e;if("complex"===s)return y.deserialize(e)}return t}),...r),new U(r)}flip(){return this.flipeH().flipeV()}flipeH(){return this.arr=this.arr.map((t=>[...t].reverse())),$(this),this}flipeV(){return this.arr=this.arr.reverse(),$(this),this}}const q=t=>new Array(t).fill(0),Z=t=>new Array(t).fill(1),B=(t,e)=>new Array(e).fill(t),H=(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},V=(t,e,s=_(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[o,a]=[t,e].sort(((t,e)=>e-t));var n=[];let h;h=r?(o-a)/(s-1):(o-a)/s;for(var i=0;i<s;i++)t<e?n.push(a+h*i):n.push(o-h*i);return n}if([t,e].some((t=>t.isComplex?.()))){const n=new s.constructor(t),i=new s.constructor(e);s=s||Math.abs(n.a-i.a)+1;const o=V(n.a,i.a,s,r),a=V(n.b,i.b,s,r);let h=new Array(s).fill(null);return h=h.map(((t,e)=>new t.constructor(o[e],a[e]))),h}}},W=(t,e,r=e-t+1,n=s,i=!0)=>V(t,e,r,i).map((t=>x(n,t))),G=(t,e,s=_(e-t)+1,r=!0)=>{if(Math.floor(s)===s){if([t,e].every((t=>"number"==typeof t))){const[n,i]=[t,e].sort(((t,e)=>e-t));let o;o=E(n/i,r?s-1:s);const a=[i];for(let t=1;t<s;t++)a.push(a[t-1]*o);return t<e?a:a.reverse()}if([t,e].some((t=>t.isComplex?.()))){const n=new s.constructor(t),i=new s.constructor(e);let o;s=s||Math.abs(n.a-i.a)+1,o=E(i.div(n),r?s-1:s);const a=[n];for(let t=1;t<s;t++)a.push(l(a[t-1],o));return a}}},K=(t,e,s)=>{const[r,n]=[Math.min(e,s),Math.max(e,s)];return t>=r&&t<=n},J=(t,e,s=1e-4)=>Math.abs(t-e)<=s,Y=(t,e)=>t.reduce(((t,s)=>[...t,...e.map((t=>[s,t]))]),[]),X=(t,e)=>{let s,r=1;if(t==C(t)&&e==C(e)){for(s=2;s<=t&&s<=e;++s)t%s==0&&e%s==0&&(r=s);return r}console.log("error")},Q=(t,e)=>{let s;if(t==C(t)&&e==C(e)){for(s=t>e?t:e;s%t!=0||s%e!=0;)++s;return s}console.log("error")},tt={zeros:q,ones:Z,nums:B,arange:H,linspace:V,logspace:W,geomspace:G,cartesianProduct:Y,ppcm:Q,pgcd:X,inRange:K,isApproximatlyEqual:J};class et{constructor(t){this.cache={node:t}}isZikoUINode(){return!0}get node(){return this.cache.node}}class st extends Array{constructor(...t){super(...t)}clear(){return this.length=0,this}getItemById(t){return this.find((e=>e.element.id===t))}getItemsByTagName(t){return this.filter((e=>e.element.tagName.toLowerCase()===t.toLowerCase()))}getElementsByClassName(t){return this.filter((e=>e.element.classList?.contains(t)))}querySelector(t){const e=globalThis?.document?.querySelector(t);return e&&this.find((t=>t.element===e))||null}querySelectorAll(t){const e=globalThis?.document?.querySelectorAll(t);return Array.from(e).map((t=>this.find((e=>e.element===t)))).filter(Boolean)}}const rt=new st,nt={default:{target:null,render:!0,math:{mode:"deg"}},setDefault:function(t){const e=Object.keys(t),s=Object.values(t);for(let t=0;t<e.length;t++)this.default[e[t]]=s[t]},init:()=>{},renderingMode:"spa",isSSC:!1},it={store:new Map,index:0,register:function(t){this.store.set(this.index++,t)},reset(){this.index=0,this.store.clear()}},ot={ui_index:0,get_ui_index:function(){return this.ui_index++},register_ui:function(t){}};class at{#e;#s;#r;#n;#i;#o;constructor(t=""){this.#e=new BroadcastChannel(t),this.#s=new Map,this.#r=new Map,this.#n="ziko-channel:"+1e17*Math.random(),this.#i=new Set([this.#n]),this.#o=new Set,this.#e.addEventListener("message",(t=>{const{last_sent_event:e,userId:s,eventData:r,rooms:n}=t.data;if(s===this.#n)return;if(n&&n.length&&!n.some((t=>this.#o.has(t))))return;this.#i.add(s),this.#s=new Map(r);const i=this.#r.get(e);i&&i.forEach((({fn:t,rooms:s})=>{s&&0!==s.length&&n&&!n.some((t=>s.includes(t)))||t(this.#s.get(e))}))}))}emit(t,e,s){return this.#s.set(t,e),"string"==typeof s&&(s=[s]),this.#e.postMessage({eventData:Array.from(this.#s.entries()),last_sent_event:t,userId:this.#n,rooms:s&&s.length?s:void 0}),this}on(t,e=console.log,s){return this.#r.has(t)||this.#r.set(t,[]),"string"==typeof s&&(s=[s]),this.#r.get(t).push({fn:e,rooms:s}),this}off(t,e){return this.#r.has(t)?(this.#r.set(t,this.#r.get(t).filter((t=>t.fn!==e))),this):this}once(t,e,s){const r=s=>{e(s),this.off(t,r)};return this.on(t,r,s),this}join(...t){return t.forEach((t=>this.#o.add(t))),this}leave(...t){return t.length?t.forEach((t=>this.#o.delete(t))):this.#o.clear(),this}close(){return this.#e.close(),this}}const ht=t=>new at(t);class ct{constructor(t,e,s,r=!0){this.cache={storage:t,globalKey:e,channel:r?ht(`Ziko:useStorage-${e}`):null,oldItemKeys:new Set},this.#a(s,r)}get items(){const t=this.cache.storage.getItem(this.cache.globalKey);if(!t)return{};try{return JSON.parse(t)}catch{return{}}}#h(){const t=this.items;this.cache.oldItemKeys.forEach((t=>delete this[t]));for(const e in t)this[e]=t[e],this.cache.oldItemKeys.add(e)}#a(t,e){if(e&&this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",(()=>this.#h())),t)if(this.cache.storage.getItem(this.cache.globalKey)){const t=this.items;Object.keys(t).forEach((t=>this.cache.oldItemKeys.add(t))),this.#h()}else this.set(t);else this.#h()}set(t){return this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(t)),this.cache.channel&&this.cache.channel.emit("Ziko-Storage-Updated",t),this.#h(),this}add(t){return this.set({...this.items,...t}),this}remove(...t){const e={...this.items};return t.forEach((t=>{delete e[t],delete this[t],this.cache.oldItemKeys.delete(t)})),this.set(e),this}get(t){return this.items[t]}clear(){return this.cache.storage.removeItem(this.cache.globalKey),this.cache.oldItemKeys.forEach((t=>delete this[t])),this.cache.oldItemKeys.clear(),this.#h(),this}onStorageUpdated(t){return this.cache.channel&&this.cache.channel.on("Ziko-Storage-Updated",t),this}}const lt=(t,e,s=!0)=>new ct(sessionStorage,t,e,s);var ut={store:new Map,index:0,session_storage:null,register:function(t){if(!(void 0).SSR&&(void 0).DEV){this.session||(this.session_storage=lt("ziko-state",{}));const e=this.session_storage.get(this.index);e?t.value=e:this.session_storage.add({[this.index]:t.value})}this.store.set(this.index++,t)},update:function(t,e){!(void 0).SSR&&(void 0).DEV&&this.session_storage.add({[t]:e})}};function mt(){var t;globalThis?.__Ziko__||(globalThis.__Ziko__={__UI__:rt,__HYDRATION__:it,__State__:ut,__Config__:nt,__CACHE__:ot},t=__Ziko__,Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}}))}mt();class pt extends et{constructor(){super()}init(t,e,s,r){if(this.target=globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body,"string"==typeof t)switch(s){case"html":t=globalThis?.document?.createElement(t);break;case"svg":t=globalThis?.document?.createElementNS("http://www.w3.org/2000/svg",t);break;default:throw Error("Not supported")}else this.target=t?.parentElement;Object.assign(this.cache,{name:e,isInteractive:!1,parent:null,isBody:!1,isRoot:!1,isHidden:!1,isFrozzen:!1,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 st,globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this],t&&r&&this?.render?.(),globalThis.__Ziko__.__UI__.push(this)}get element(){return this.cache.element}[Symbol.iterator](){return this.items[Symbol.iterator]()}maintain(){for(let t=0;t<this.items.length;t++)Object.defineProperty(this,t,{value:this.items[t],writable:!0,configurable:!0,enumerable:!1})}isInteractive(){return this.cache.isInteractive}isUIElement(){return!0}}function ft(t,...e){e.forEach((e=>function(t,e){const s=Object.getOwnPropertyDescriptors(e);for(const e of Reflect.ownKeys(s)){const r=s[e];"get"in r||"set"in r||"function"!=typeof r.value?Object.defineProperty(Object.getPrototypeOf(t),e,r):"function"==typeof r.value&&(Object.getPrototypeOf(t).hasOwnProperty(e)||Object.defineProperty(Object.getPrototypeOf(t),e,r))}}(t,e)))}var dt=Object.freeze({__proto__:null,mount:function(t=this.target,e=0){return e>0?(setTimeout((()=>this.mount(t,0)),e),this):(this.isBody||(t?.isUIElement&&(t=t.element),this.target=t,this.target?.appendChild(this.element)),this)},unmount:function(t=0){return t>0?(setTimeout((()=>this.unmount(0)),t),this):(this.cache.parent?this.cache.parent.remove(this):this.target?.children?.length&&[...this.target.children].includes(this.element)&&this.target.removeChild(this.element),this)}});function gt(t){const{store:e,index:s}=__Ziko__.__State__;__Ziko__.__State__.register({value:t,subscribers:new Set,paused:!1});let r=e.get(s);return[function(){return{value:r.value,isStateGetter:()=>!0,_subscribe:t=>r.subscribers.add(t)}},function(t){r.paused||("function"==typeof t&&(t=t(r.value)),t!==r.value&&(r.value=t,r.subscribers.forEach((t=>t(r.value))),__Ziko__.__State__.update(s,t)))},{pause:()=>{r.paused=!0},resume:()=>{r.paused=!1},clear:()=>{r.subscribers.clear()},force:t=>{"function"==typeof t&&(t=t(r.value)),r.value=t,r.subscribers.forEach((t=>t(r.value)))},getSubscribers:()=>new Set(r.subscribers)}]}globalThis.__Ziko__||mt();const bt=t=>"function"==typeof t&&t?.()?.isStateGetter?.(),wt=(t="")=>t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),yt=(t="")=>{if(0===t.length)return!1;return/^[a-z][a-zA-Z0-9]*$/.test(t)};class vt extends et{constructor(...t){super("span","text",!1,...t),this.element=globalThis?.document?.createTextNode(...t)}isText(){return!0}}const _t=(...t)=>new vt(...t);async function xt(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]=_t(s[r])),s[r]instanceof Function){const t=s[r]();t.isStateGetter&&(s[r]=_t(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 Mt(t,e){if(globalThis.SVGAElement&&this.element instanceof globalThis.SVGAElement&&(t=yt(t)?wt(t):t),!this?.attr[t]||this?.attr[t]!==e){if(bt(e)){e()._subscribe((e=>this.element?.setAttribute(t,e)),this)}else this.element?.setAttribute(t,e);Object.assign(this.cache.attributes,{[t]:e})}}var Et=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(" ")),Mt.call(this,s[t],r[t])}else e instanceof Array&&(e=e.join(" ")),Mt.call(this,t,e);return this},setContentEditable:function(t=!0){return this.setAttr("contenteditable",t),this}});var kt=Object.freeze({__proto__:null,after:function(t){return t?.isUIElement&&(t=t.element),this.element?.after(t),this},append:function(...t){return xt.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]=_t(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 Ct={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 Tt(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 St(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 Ot=(t="")=>t.startsWith("Ptr")?`pointer${t.split("Ptr")[1].toLowerCase()}`:t.toLowerCase();class At{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=>Ot(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=>Tt.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=Ot(t);return this.pause(),Object.assign(this.cache.options[s],e),this.resume(),this}pause(...t){return St.call(this,"removeEventListener",...t)}resume(...t){return St.call(this,"addEventListener",...t)}dispose(){return this.pause(),this.target.events[this.cache.signature]=null,this}}function jt(){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 Pt(){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 It(){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 Rt(){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 Ft extends At{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 zt extends Event{constructor(t,e){super("clickaway",{bubbles:!0,cancelable:!0}),this.originalEvent=t,this.targetElement=e}}const $t=(t,e)=>{let s=0;return(...r)=>{const n=(new Date).getTime();n-s<e||(s=n,t(...r))}};class Dt extends CustomEvent{constructor(t,e,{bubbles:s=!0,cancelable:r=!0}={}){super(t,{detail:e,bubbles:s,cancelable:r})}}class Lt extends CustomEvent{constructor(t,e){super(t,{detail:e,bubbles:!0,cancelable:!0})}}const Nt=(t,e)=>(function(t){function e(e){if(!t.contains(e.target)){const s=new zt(e,t);t.dispatchEvent(s)}}console.log(t),globalThis?.document?.addEventListener("click",e)}(t.element),new At("click",t,Ct.Click,null,e)),Ut=(t,e)=>new At("clipboard",t,Ct.Clipboard,null,e),qt=(t,e)=>new At("drag",t,Ct.Drag,null,e),Zt=(t,e)=>new At("focus",t,Ct.Focus,null,e),Bt=(t,e)=>new At("key",t,Ct.Key,jt,e),Ht=(t,e)=>new Ft("mouse",t,Ct.Mouse,It,e),Vt=(t,e)=>new Ft("ptr",t,Ct.Ptr,Pt,e),Wt=(t,e)=>new At("wheel",t,Ct.Wheel,null,e),Gt=(t,e)=>(function(t,{intersection:e=!0,resize:s=!0,threshold:r=0,throttleResize:n=100,throttleEnterExit:i=0}={}){let o,a;const h=e=>{for(let s of e){const{width:e,height:r}=s.contentRect;t.dispatchEvent(new Dt("resizeview",{width:e,height:r,entry:s}))}},c=n>0?$t(h,n):h,l=e=>{for(let s of e){const e=s.isIntersecting?"enterview":"exitview";t.dispatchEvent(new Dt(e,s))}},u=i>0?$t(l,i):l;e&&(o=new IntersectionObserver(u,{threshold:r}),o.observe(t)),s&&(a=new ResizeObserver(c),a.observe(t))}(t.element),new At("view",t,Ct.View,null,e)),Kt=(t,e)=>(function(t,e=50,s=100,r=500){let n=0,i=0,o=0,a=!1;function h(t){n=t.clientX,i=t.clientY,o=performance.now(),a=!0}function c(h){if(!a)return;a=!1;const c=h.clientX-n,l=h.clientY-i;let u=null,m=null;performance.now()-o<=r&&(Math.abs(c)>=e&&Math.abs(l)<=s?(u=c<0?"left":"right",m="swipe"+u):Math.abs(l)>=e&&Math.abs(c)<=s&&(u=l<0?"up":"down",m="swipe"+u)),m&&t.dispatchEvent(new Lt(m,{direction:u,distX:c,distY:l,originalEvent:h}))}t.addEventListener("pointerdown",h,{passive:!0}),t.addEventListener("pointerup",c,{passive:!0})}(t.element),new At("swipe",t,Ct.Swipe,null,e));class Jt extends At{constructor(t,e,s){super("custom",t,e,Yt,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 Yt(){}const Xt=(t,e,s)=>new Jt(t,e,s),Qt={ptr:Vt,mouse:Ht,key:Bt,click:Nt,drag:qt,clipboard:Ut,focus:Zt,wheel:Wt,view:Gt,swipe:Kt},te={on(t,...e){return this.events.custom||(this.events.custom=Xt(this)),this.events.custom.on(t,...e),this},emit(t,e={}){return this.events.custom||(this.events.custom=Xt(this)),this.events.custom.emit(t,e),this}};Object.entries(Ct).forEach((([t,e])=>{const s=t.toLowerCase();e.forEach((t=>{const e=`on${t}`;te[e]=function(t){return this.events[s]||(this.events[s]=Qt[s](this)),this.events[s][e](t),this}}))}));var ee=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 se=Object.freeze({__proto__:null,animate:function(t,{duration:e=1e3,iterations:s=1,easing:r="ease"}={}){return this.element?.animate(t,{duration:e,iterations:s,easing:r}),this},hide:function(){},show:function(){},size:function(t,e){return this.style({width:t,height:e})},style:function(t){if(!this.element?.style)return this;for(let e in t){const s=t[e];if(bt(s)){const t=s();Object.assign(this.element.style,{[e]:t.value}),t._subscribe((t=>{console.log({newValue:t}),Object.assign(this.element.style,{[e]:t})}))}else Object.assign(this.element.style,{[e]:s})}return this}});let re=class extends pt{constructor({element:t,name:e="",type:s="html",render:r=__Ziko__.__Config__.default.render}={}){super(),ft(this,dt,Et,kt,se,ee,te),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 ne extends re{constructor(...t){super({element:"div",name:"view"}),this.append(...t)}}const ie=["a","abb","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","ipnut","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],oe=["svg","g","defs","symbol","use","image","switch","rect","circle","ellipse","line","polyline","polygon","path","text","tspan","textPath","altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","linearGradient","radialGradient","pattern","solidColor","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncR","feFuncG","feFuncB","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","animate","animateMotion","animateTransform","set","script","desc","title","metadata","foreignObject"],ae=["math","annotation","merror","mfrac","mi","mprescripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","semantics","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],he=new Proxy({},{get(t,e){if("string"!=typeof e)return;let s,r=e.replaceAll("_","-").toLowerCase();return ie.includes(r)&&(s="html"),oe.includes(r)&&(s="svg"),ae.includes(r)&&(s="mathml"),(...t)=>0===t.length?new re({element:r,name:r,type:s}):["string","number"].includes(typeof t[0])||t[0]instanceof re||"function"==typeof t[0]&&t[0]().isStateGetter()?new re({element:r,name:r,type:s}).append(...t):new re({element:r,type:s}).setAttr(t.shift()).append(...t)}});function ce(t){return 1==t?this.style({flexDirection:"column"}):-1==t&&this.style({flexDirection:"column-reverse"}),this}function le(t){return 1==t?this.style({flexDirection:"row"}):-1==t&&this.style({flexDirection:"row-reverse"}),this}function ue(t){return"number"==typeof t&&(t=["flex-start","center","flex-end"][t+1]),t}function me(t){return ue(-t)}class pe extends re{constructor({tag:t="div",orientation:e="h",order:s,w:r="100%",h:n="100%"}={}){super({element:t,name:"Flex"}),this.direction="cols",this.style({display:"flex"})}isFlex(){return!0}responsify(t,e=!0){return this.wrap(e),this.element.clientWidth<t?this.vertical():this.horizontal(),this}setSpaceAround(){return this.style({justifyContent:"space-around"}),this}setSpaceBetween(){return this.style({justifyContent:"space-between"}),this}setBaseline(){return this.style({alignItems:"baseline"}),this}gap(t){return"row"===this.direction?this.style({columnGap:t}):"column"===this.direction&&this.style({rowGap:t}),this}wrap(t="wrap"){return this.style({flexWrap:"string"==typeof t?t:["no-wrap","wrap","wrap-reverse"][+t]}),this}_justifyContent(t="center"){return this.style({justifyContent:t}),this}vertical(t,e,s=1){return ce.call(this,s),this.style({alignItems:"number"==typeof t?ue.call(this,t):t,justifyContent:"number"==typeof e?me.call(this,e):e}),this}horizontal(t,e,s=1){return le.call(this,s),this.style({alignItems:"number"==typeof e?me.call(this,e):e,justifyContent:"number"==typeof t?ue.call(this,t):t}),this}show(){return this.isHidden=!1,this.style({display:"flex"}),this}}class fe extends pt{constructor({element:t,name:e,type:s,render:r}){super({element:t,name:e,type:s,render:r})}}class de extends fe{constructor(t,e){super({element:"div",name:"suspense"}),this.setAttr({dataTemp:"suspense"}),this.fallback_ui=t,this.append(t),(async()=>{try{const s=await e();t.unmount(),this.append(s)}catch(t){console.log({error:t})}})()}}class ge extends re{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if(globalThis?.DOMParser){const e=(new DOMParser).parseFromString(`<div>${t}</div>`,"text/html");return e.body.firstChild.style.display="contents",e.body.firstChild}}(t)),this.style({display:"contents"})}}class be extends re{constructor(t){super({element:"div",name:"html_wrappper"}),this.element.append(function(t){if("undefined"!=typeof DOMParser){const e=(new DOMParser).parseFromString(t.trim(),"image/svg+xml").documentElement;if("parsererror"===e.nodeName)throw new Error("Invalid SVG string");if(e.hasAttribute("xmlns"))return e;const{children:s,attributes:r}=e,n=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let{name:t,value:e}of r)n.setAttribute(t,e);return n.append(...s),globalThis.svg=e,globalThis.children=s,globalThis.attributes=r,globalThis.element=n,n}throw new Error("DOMParser is not available in this environment")}(t)),this.style({display:"contents"})}}class we extends re{constructor(t,e){super(),this.key=t,this.cases=e,this.init()}init(){Object.values(this.cases).filter((t=>t!=this.current)).forEach((t=>t.unmount())),super.init(this.current.element)}get current(){const t=Object.keys(this.cases).find((t=>t==this.key))??"default";return this.cases[t]}updateKey(t){return this.key=t,this.replaceElementWith(this.current.element),this}}const{PI:ye,sqrt:ve,cos:_e,sin:xe,acos:Me,pow:Ee}=Math,ke=t=>t,Ce=(t,e=7.5625,s=2.75)=>t<1/s?e*t*t:t<2/s?e*(t-=1.5/s)*t+.75:t<2.5/s?e*(t-=2.25/s)*t+.9375:e*(t-=2.625/s)*t+.984375;class Te{constructor(t,{ease:e=ke,step:s=50,t0:r=0,start:n=!0,duration:i=3e3}={}){this.callback=t,this.state={isRunning:!1,animationId:null,startTime:null,ease:e,step:s,autoStart:n,duration:i},this.t=0,this.tx=0,this.ty=0,this.i=0,this.state.autoStart&&this.start()}#l=()=>{this.t+=this.state.step,this.i++,this.tx=A(this.t,0,this.state.duration,0,1),this.ty=this.state.ease(this.tx),this.callback(this),this.t>=this.state.duration&&(clearInterval(this.state.animationId),this.state.isRunning=!1)};#u(t=!0){return this.state.isRunning||(t&&this.reset(!1),this.state.isRunning=!0,this.state.startTime=Date.now(),this.state.animationId=setInterval(this.#l,this.state.step)),this}start(){return this.#u(!0)}pause(){return this.state.isRunning&&(clearInterval(this.state.animationId),this.state.isRunning=!1),this}resume(){return this.#u(!1)}stop(){return this.pause(),this.reset(!1),this}reset(t=!0){return this.t=0,this.tx=0,this.ty=0,this.i=0,t&&this.start(),this}}class Se{constructor(t,e,s=1/0,r){this.ms=e,this.fn=t,this.count=s,this.frame=1,this.id=null,this.running=!1,r&&this.start()}start(){return this.running||(this.running=!0,this.frame=1,this.id=setInterval((()=>{this.frame>this.count?this.stop():(this.fn.call(null,this),this.frame++)}),this.ms)),this}stop(){return this.running&&(this.running=!1,clearInterval(this.id),this.id=null),this}isRunning(){return this.running}}class Oe extends Se{constructor(t=1e3/60){super(t,(()=>this._tick())),this.elapsed=0,this._lastTime=performance.now(),this._callbacks=new Set}_tick(){const t=performance.now(),e=t-this._lastTime;this.elapsed+=e,this._lastTime=t;for(const t of this._callbacks)t({elapsed:this.elapsed,delta:e})}onTick(t){return this._callbacks.add(t),()=>this._callbacks.delete(t)}reset(){this.elapsed=0,this._lastTime=performance.now()}pause(){super.stop()}resume(){this._lastTime=performance.now(),super.start()}}class Ae{constructor(t=[],{repeat:e=1,loop:s=!1}={}){this.tasks=t,this.repeat=e,this.loop=s,this.stopped=!1,this.running=!1,this.onStart=null,this.onTask=null,this.onEnd=null}async run(){if(this.running)return;this.running=!0,this.stopped=!1,this.onStart&&this.onStart();let t=this.repeat;do{for(const t of this.tasks){if(this.stopped)return;if(Array.isArray(t))await Promise.all(t.map((({fn:t,delay:e=0})=>new Promise((async s=>{e>0&&await new Promise((t=>setTimeout(t,e))),this.onTask&&this.onTask(t),await t(),s()})))));else{const{fn:e,delay:s=0}=t;s>0&&await new Promise((t=>setTimeout(t,s))),this.onTask&&this.onTask(e),await e()}}}while(this.loop&&!this.stopped&&(t===1/0||t-- >1));!this.stopped&&this.onEnd&&this.onEnd(),this.running=!1}stop(){this.stopped=!0,this.running=!1}addTask(t){this.tasks.push(t)}clearTasks(){this.tasks=[]}}class je{constructor(t,{step:e=1e3,t0:s=0,t1:r=1/0,autoplay:n=!0}={}){this.callback=t,this.cache={isRunning:!1,id:null,last_tick:null,step:e,t0:s,t1:r,autoplay:n,pauseTime:null,frame:0},n&&(s?this.startAfter(s):this.start(),r!==1/0&&this.stopAfter(r))}get frame(){return this.cache.frame}get elapsed(){return this.cache.elapsed}start(){return this.cache.isRunning||(this.cache.frame=0,this.cache.isRunning=!0,this.cache.last_tick=Date.now(),this.animate()),this}pause(){return this.cache.isRunning&&(clearTimeout(this.cache.id),this.cache.isRunning=!1,this.cache.pauseTime=Date.now()),this}resume(){if(!this.cache.isRunning){if(this.cache.isRunning=!0,this.cache.pauseTime){const t=Date.now()-this.cache.pauseTime;this.cache.last_tick+=t}this.animate()}return this}stop(){return this.pause(),this.cache.frame=0,this}startAfter(t=1e3){return setTimeout((()=>this.start()),t),this}stopAfter(t=1e3){return setTimeout((()=>this.stop()),t),this}animate=()=>{if(this.cache.isRunning){const t=Date.now(),e=t-this.cache.last_tick;e>=this.cache.step&&(this.cache.elapsed=t-(this.cache.t0||0),this.callback(this),this.cache.frame++,this.cache.last_tick=t-e%this.cache.step),this.cache.id=setTimeout(this.animate,0)}}}const Pe=t=>{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=Pe(t);return(new DOMParser).parseFromString(e,"text/html").documentElement}catch(t){throw console.error("Failed to fetch DOM synchronously:",t),t}};const Ie=(t,e=",")=>t.trim().trimEnd().split("\n").map((t=>t.split(e))),Re=(t,e=",")=>{const[s,...r]=Ie(t,e);return r.map((t=>{const e={};return s.forEach(((s,r)=>{e[s]=t[r]})),e}))},Fe=t=>t instanceof Array?[Object.keys(t[0]),...t.map((t=>Object.values(t)))]:[Object.keys(t)],ze=(t,e)=>Fe(t).map((t=>t.join(e))).join("\n"),$e=(t,e=",")=>ze(t instanceof Object?t:JSON.parse(t),e),De=(t,e)=>{const s=[];if(Array.isArray(t))t.forEach((t=>{if("object"==typeof t&&null!==t){s.push(`${e}-`);const r=De(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=De(n,`${e} `);s.push(...t)}else s.push(`${e}${r}: ${n}`)}return s},Le=(t,e="")=>De(t,e).join("\n"),Ne=(t,e)=>Le(t instanceof Object?t:JSON.parse(t),e),Ue=(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?Ue(n,e+2):`${n}`,s+=`</${r}>`}return s.trim()},qe=t=>(new XMLSerializer).serializeToString(t),Ze=t=>btoa(qe(t)),Be=t=>"data:image/svg+xml;base64,"+Ze(t),He=t=>JSON.stringify(n((t=>["number","string","boolean","bigint"].includes(typeof t)?String(t):t instanceof y||t instanceof U?t.toString():t instanceof Array?We(t):void 0),t),null," ").replace(/"([^"]+)":/g,"$1:").replace(/: "([^"]+)"/g,": $1"),Ve=t=>{if(!Array.isArray(t))return 0;let e=1;for(const s of t)if(Array.isArray(s)){const t=Ve(s);t+1>e&&(e=t+1)}return e},We=t=>{let e=0;return function t(s){let r=Ve(s),n=0;return s.some((t=>Array.isArray(t)))&&(e++,n=1),"["+s.map(((r,n)=>["number","string","boolean","bigint"].includes(typeof r)?String(r):r instanceof y?r.toString():r instanceof Array?`\n${" ".repeat(e)}${t(r)}${n===s.length-1?"\n":""}`:r instanceof Object?He(r):void 0))+`${" ".repeat((r+e+1)*n)}]`}(t)},Ge=(t,e=0)=>{t=Ke(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+=Ge({[t]:i[t]},e+1):s+=`${r} ${t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}: ${i[t]};\n`;s+=`${r}}\n`}return s};function Ke(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,s)=>(e[s.trim()]=Ke(t[s]),e)),Array.isArray(t)?[]:{})}class Je{constructor({head:t=null,wrapper:e=null,target:s=null}){this.head=t,this.wrapper=e,this.target=s,this.init()}get isZikoApp(){return!0}init(){this.head&&this.setHead(this.head),this.wrapper&&this.setWrapper(this.wrapper),this.target&&this.setTarget(this.target),this.wrapper&&this.target&&this.wrapper.mount(this.target)}setTarget(t){return t instanceof HTMLElement?this.target=t:"string"==typeof t&&(this.target=globalThis?.document?.querySelector(t)),this}setWrapper(t){return t?.isUIElement?this.wrapper=t:"function"==typeof t&&(this.wrapper=t()),this}}function Ye(t){return/:\w+/.test(t)}class Xe extends Je{constructor({head:t,wrapper:e,target:s,routes:r}){super({head:t,wrapper:e,target:s}),this.routes=new Map([["404",_t("Error 404")],...Object.entries(r)]),this.clear(),globalThis.onpopstate=this.mount(location.pathname)}clear(){return[...this.routes].forEach((t=>{!Ye(t[0])&&t[1]?.isUIElement&&t[1].unmount()})),this}mount(t){const[e,s]=[...this.routes].find((e=>function(t,e){const s=t.split("/"),r=e.split("/");if(s.length!==r.length)return!1;for(let t=0;t<s.length;t++){const e=s[t],n=r[t];if(!e.startsWith(":")&&e!==n)return!1}return!0}(e[0],t)));let r;if(Ye(e)){const n=function(t,e){const s=t.split("/"),r=e.split("/"),n={};if(s.length!==r.length)return n;for(let t=0;t<s.length;t++){const e=s[t],i=r[t];if(e.startsWith(":"))n[e.slice(1)]=i;else if(e!==i)return{}}return n}(e,t);r=s.call(this,n)}else s?.isUIElement&&s.mount(this.wrapper),"function"==typeof s&&(r=s());return r?.isUIElement&&r.mount(this.wrapper),r instanceof Promise&&r.then((t=>t.mount(this.wrapper))),globalThis.history.pushState({},"",t),this}}const Qe=({head:t,wrapper:e,target:s,routes:r})=>new Xe({head:t,wrapper:e,target:s,routes:r});function ts(t,e="./src/pages",s=["js","ts"]){"/"===e.at(-1)&&(e=e.slice(0,-1));const r=t.replace(/\\/g,"/").replace(/\[(\w+)\]/g,"$1/:$1").split("/"),n=e.split("/"),i=r.indexOf(n.at(-1));if(-1!==i){const t=r.slice(i+1),e=r.at(-1),n="index.js"===e||"index.ts"===e,o=s.some((t=>e===`.${t}`||e.endsWith(`.${t}`)));if(n)return"/"+(t.length>1?t.slice(0,-1).join("/"):"");if(o)return"/"+t.join("/").replace(/\.(js|ts)$/,"")}return""}class es{#m;#p=new Map;#f=0;constructor(){const t=new Blob(['\n this.onmessage = function(e) {\n const { id, funStr, args, close } = e.data;\n try {\n const func = new Function("return " + funStr)();\n const result = func(...args);\n postMessage({ id, result });\n } catch (error) {\n postMessage({ id, error: error.message });\n } finally {\n if (close) self.close();\n }\n }\n '],{type:"text/javascript"});this.#m=new Worker(URL.createObjectURL(t)),this.#m.addEventListener("message",(t=>{const{id:e,result:s,error:r}=t.data,n=this.#p.get(e);n&&(n(s,r),this.#p.delete(e))}))}call(t,e,s=[],r=!0){if("function"!=typeof t)throw new TypeError("func must be a function");const n=++this.#f;return this.#p.set(n,e),this.#m.postMessage({id:n,funStr:t.toString(),args:s,close:r}),this}terminate(){this.#m.terminate()}}class ss{constructor(t=10){this.events={},this.maxListeners=t}on(t,e){return this.events[t]||(this.events[t]=[]),this.events[t].push(e),this.events[t].length>this.maxListeners&&console.warn(`Warning: Possible memory leak. Event '${t}' has more than ${this.maxListeners} listeners.`),this}once(t,e){const s=(...r)=>{this.off(t,s),e(...r)};return this.on(t,s)}off(t,e){const s=this.events[t];if(!s)return this;const r=s.indexOf(e);return-1!==r&&s.splice(r,1),this}emit(t,e){const s=this.events[t];return!!s&&([...s].forEach((s=>{try{s(e)}catch(e){console.error(`Error in listener for '${t}':`,e)}})),!0)}remove(t){return delete this.events[t],this}clear(){return this.events={},this}setMaxListeners(t){return this.maxListeners=t,this}}const rs=t=>new ss(t);class ns{#d;#g;#b=null;constructor(t=[],e=(()=>{})){this.#d=t,this.#g=e,this.#a()}#w(){return this.#d.some((({query:t})=>globalThis.matchMedia(t).matches))}#a(){this.#d.forEach((({query:t,callback:e})=>{const s=globalThis.matchMedia(t),r=()=>{const t=this.#w();s.matches?(e(),this.#b=e):t||this.#b===this.#g||(this.#g(),this.#b=this.#g)};r(),s.addEventListener("change",r)}))}}class is{constructor(t=document.title,e=!0){this.cache={emitter:null},e&&this.useEventEmitter(),this.set(t)}useEventEmitter(){return this.cache.emitter=rs(),this}setTitle(t){return t!==document.title&&(document.title=t,this.cache.emitter&&this.cache.emitter.emit("ziko:title-changed",t)),this}get current(){return document.title}onChange(t){return this.cache.emitter&&this.cache.emitter.on("ziko:title-changed",t),this}}class os{constructor(t,{namespace:e="Ziko",ValidateCssProps:s=!1}={}){this.currentPropsMap=t,this.namespace=e,this.ValidateCssProps=s,this.use(t)}use(t){return this.ValidateCssProps&&function(t){const e=new Set(Object.keys(document.documentElement.style));for(const s in t)if(!e.has(s))throw new Error(`Invalid CSS property: "${s}"`)}(t),this.currentPropsMap=t,this.#h(),this}#h(){const t=globalThis?.document?.documentElement?.style;for(const e in this.currentPropsMap){const s=this.namespace?`--${this.namespace}-${e}`:`--${e}`;t.setProperty(s,this.currentPropsMap[e]),Object.defineProperty(this,e,{value:`var(${s})`,writable:!0,configurable:!0,enumerable:!1})}}}let{sqrt:as,cos:hs,sin:cs,exp:ls,log:us,cosh:ms,sinh:ps}=Math;for(const t of Object.getOwnPropertyNames(Math)){const e=Math[t];"function"==typeof e&&(Math[t]=new Proxy(e,{apply(e,s,r){const n=r[0];if("number"==typeof n||0===r.length)return e.apply(s,r);if(n?.isComplex?.()){const{a:t,b:i,z:o,phi:a}=n,h=(t,e)=>new n.constructor(t,e);switch(e.name){case"abs":return n.z;case"sqrt":return h(as(o)*hs(a/2),as(o)*cs(a/2));case"log":return h(us(o),a);case"exp":return h(ls(t)*hs(i),ls(t)*cs(i));case"cos":return h(hs(t)*ms(i),-cs(t)*ps(i));case"sin":return h(cs(t)*ms(i),hs(t)*ps(i));case"tan":{const e=hs(2*t)+ms(2*i);return h(cs(2*t)/e,ps(2*i)/e)}case"cosh":return h(ms(t)*hs(i),ps(t)*cs(i));case"sinh":return h(ps(t)*hs(i),ms(t)*cs(i));case"tanh":{const e=ms(2*t)+hs(2*i);return h(ps(2*t)/e,cs(2*i)/e)}default:return e.apply(s,r)}}throw new TypeError(`Math.${t} expects only numbers`)}}))}globalThis?.document&&document?.addEventListener("DOMContentLoaded",__Ziko__.__Config__.init()),t.App=({head:t,wrapper:e,target:s})=>new Je({head:t,wrapper:e,target:s}),t.Clock=Oe,t.Complex=y,t.E=s,t.EPSILON=r,t.FileBasedRouting=async function(t){const e=Object.keys(t),s=function(t){if(0===t.length)return"";const e=t.map((t=>t.split("/"))),s=Math.min(...e.map((t=>t.length)));let r=[];for(let t=0;t<s;t++){const s=e[0][t];if(!e.every((e=>e[t]===s||e[t].startsWith("["))))break;r.push(s)}return r.join("/")+(r.length?"/":"")}(e),r={};for(let n=0;n<e.length;n++){const i=await t[e[n]](),o=await i.default;Object.assign(r,{[ts(e[n],s)]:o})}return Qe({target:document.body,routes:{"/":()=>{},...r},wrapper:he.section()})},t.Flex=(...t)=>{let e="div";return"string"==typeof t[0]&&(e=t[0],t.pop()),new pe(e).append(...t)},t.HTMLWrapper=t=>new ge(t),t.Matrix=U,t.PI=e,t.Random=w,t.SPA=Qe,t.SVGWrapper=t=>new be(t),t.Scheduler=(t,{repeat:e=null}={})=>new Ae(t,{repeat:e}),t.Suspense=(t,e)=>new de(t,e),t.Switch=({key:t,cases:e})=>new we(t,e),t.Tick=Se,t.TimeAnimation=Te,t.TimeLoop=je,t.TimeScheduler=Ae,t.UIElement=re,t.UIFlex=pe,t.UIHTMLWrapper=ge,t.UINode=et,t.UISVGWrapper=be,t.UISwitch=we,t.UIView=ne,t.UseRoot=os,t.UseThread=es,t.Utils=tt,t.View=(...t)=>new ne(...t),t.ZikoApp=Je,t.ZikoEvent=At,t.ZikoSPA=Xe,t.ZikoUISuspense=de,t.ZikoUIText=vt,t.abs=_,t.accum_prod=(...t)=>{let e,s=[],r=1,n=t.length;for(e=0;e<n;e++)r=l(r,t[e]),s.push(r);return s},t.accum_sum=d,t.acos=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.hypot(e+1,s),n=Math.hypot(e-1,s);return globalThis.Rp=r,globalThis.Rm=n,new t.constructor(Math.acos((r-n)/2),-Math.acosh((r+n)/2)).toFixed(8)}return+Math.acos(t).toFixed(8)}),...t),t.acosh=(...t)=>n((t=>t?.isComplex?k(t.clone().add(M(t.clone().mul(t.clone()).sub(1)))):+Math.acosh(t).toFixed(8)),...t),t.acot=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t;return new t.constructor(Math.atan(2*e/(e**2+(s-1)*(s+1)))/2,Math.log((e**2+(s-1)**2)/(e**2+(s+1)**2))/4).toFixed(8)}return+(Math.PI/2-Math.atan(t)).toFixed(8)}),...t),t.add=h,t.and=R,t.animation=(t,{ease:e,t0:s,t1:r,start:n,duration:i}={})=>new Te(t,{ease:e,t0:s,t1:r,start:n,duration:i}),t.apply_fun=i,t.arange=H,t.arc=t=>1-xe(Me(t)),t.arr2str=We,t.asin=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.hypot(e+1,s),n=Math.hypot(e-1,s);return new t.constructor(Math.asin((r-n)/2),Math.acosh((r+n)/2)).toFixed(8)}return+Math.asin(t).toFixed(8)}),...t),t.asinh=(...t)=>n((t=>t?.isComplex?k(t.clone().add(M(t.clone().mul(t.clone()).add(1)))):+Math.asinh(t).toFixed(8)),...t),t.atan=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t;return new t.constructor(Math.atan(2*e/(1-e**2-s**2))/2,Math.log((e**2+(1+s)**2)/(e**2+(1-s)**2))/4).toFixed(8)}return+Math.atan(t).toFixed(8)}),...t),t.atan2=j,t.atanh=(...t)=>n((t=>+Math.atanh(t).toFixed(8)),...t),t.back=(t,e=1)=>t**2*((e+1)*t-e),t.bind_click_event=Nt,t.bind_clipboard_event=Ut,t.bind_drag_event=qt,t.bind_focus_event=Zt,t.bind_key_event=Bt,t.bind_mouse_event=Ht,t.bind_pointer_event=Vt,t.bind_swipe_event=Kt,t.bind_touch_event=(t,e)=>new Ft("touch",t,Ct.Touch,Rt,e),t.bind_view_event=Gt,t.bind_wheel_event=Wt,t.binomial=(t,e)=>{if(t!==Math.floor(t))return TypeError("n must be an integer");if(e!==Math.floor(e))return TypeError("k must be an integer");if(t<0)return TypeError("n must be non-negative");if(e<0||t<0||e>t)return 0;e>t-e&&(e=t-e);let s,r=1;for(s=0;s<e;s++)r=r*(t-s)/(s+1);return r},t.cartesianProduct=Y,t.cbrt=(...t)=>n((t=>t.isComplex?.()?new t.constructor({z:t.z**(1/3),phi:t.phi/3}).toFixed(8):+Math.cbrt(t).toFixed(8)),...t),t.ceil=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.ceil(t.a),Math.ceil(t.b)):Math.ceil(t)),...t),t.clamp=O,t.clock=t=>new Oe(t),t.complex=v,t.cos=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.cos(t.a)*Math.cosh(t.b),-Math.sin(t.a)*Math.sinh(t.b)).toFixed(8):+Math.cos(t).toFixed(8)),...t),t.cosh=(...t)=>n((t=>t?.isComplex?new t.constructor(Math.cosh(t.a)*Math.cos(t.b),Math.sinh(t.a)*Math.sin(t.b)).toFixed(8):+Math.cosh(t).toFixed(8)),...t),t.coth=(...t)=>n((t=>{if(t?.isComplex){const{a:e,b:s}=t,r=Math.sinh(e)**2*Math.cos(s)**2+Math.cosh(e)**2*Math.sin(s)**2;return new t.constructor(Math.cosh(e)*Math.sinh(e)/r,-Math.sin(s)*Math.cos(s)/r).toFixed(8)}return+(1/Math.tanh(t)).toFixed(8)}),...t),t.croot=(...t)=>{const e=t.pop();if(!e.isComplex?.())throw Error("croot expect Complex number as root");return n((t=>{"number"==typeof t&&(t=new e.constructor(t,0));const{a:s,b:r}=e,{z:n,phi:i}=t,o=Math.hypot(s,r),a=Math.exp((Math.log(n)*s+i*r)/o),h=(i*s-Math.log(n)*r)/o;return new e.constructor(a*Math.cos(h),a*Math.sin(h)).toFixed(8)}),...t)},t.csv2arr=Ie,t.csv2json=(t,e=",")=>JSON.stringify(Re(t,e)),t.csv2matrix=(t,e=",")=>new U(Ie(t,e)),t.csv2object=Re,t.csv2sql=(t,e)=>{const s=t.trim().trimEnd().split("\n").filter((t=>t));let r=`INSERT INTO ${e} (${s[0].split(",").join(", ")}) Values `,n=[];for(let t=1;t<s.length;t++){const e=s[t].split(",");n.push(`(${e})`)}return r+n.join(",\n")},t.debounce=(t,e=1e3)=>(...s)=>setTimeout((()=>t(...s)),e),t.defineParamsGetter=function(t){Object.defineProperties(t,{QueryParams:{get:function(){return function(t){const e={};return t.replace(/[A-Z0-9]+?=([\w|:|\/\.]*)/gi,(t=>{const[s,r]=t.split("=");e[s]=r})),e}(globalThis.location.search.substring(1))},configurable:!1,enumerable:!0},HashParams:{get:function(){return globalThis.location.hash.substring(1).split("#")},configurable:!1,enumerable:!0}})},t.define_wc=function(t,e,s={},{mode:r="open"}={}){globalThis.customElements?.get(t)?console.warn(`Custom element "${t}" is already defined`):-1!==t.search("-")?globalThis.customElements?.define(t,class extends HTMLElement{static get observedAttributes(){return["style",...Object.keys(s)]}constructor(){super(),this.attachShadow({mode:r}),this.props={},this.mask={...s}}connectedCallback(){this.render()}render(){this.shadowRoot.innerHTML="";const t=e(this.props);t instanceof Array?t.forEach((t=>t.mount(this.shadowRoot))):t.mount(this.shadowRoot)}attributeChangedCallback(t,e,s){Object.assign(this.props,{[t]:this.mask[t].type(s)}),this.render()}}):console.warn(`"${t}" is not a valid custom element name`)},t.deg2rad=(...t)=>n((t=>t*Math.PI/180),...t),t.discret=(t,e=5)=>Math.ceil(t*e)/e,t.div=u,t.elastic=t=>-2*Ee(2,10*(t-1))*_e(20*ye*t/3*t),t.event_controller=Tt,t.exp=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.exp(t.a)*Math.cos(t.b),Math.exp(t.a)*Math.sin(t.b)).toFixed(8):+Math.exp(t).toFixed(8)),...t),t.floor=C,t.fract=(...t)=>n((t=>t.isComplex?.()?new t.constructor(t.a-Math.trunc(t.a),t.b-Math.trunc(t.b)):t-Math.trunc(t)),...t),t.geomspace=G,t.getEvent=Ot,t.hypot=(...t)=>{const e=t.find((t=>t.isComplex?.()));if(e){const s=t.map((t=>t.isComplex?.()?t:new e.constructor(t,0)));return Math.hypot(...s.map((t=>t.z)))}return Math.hypot(...t)},t.inRange=K,t.in_back=(t,e=1.70158,s=e+1)=>s*Ee(t,3)-e*t**2,t.in_bounce=(t,e=7.5625,s=2.75)=>1-Ce(1-t,e,s),t.in_circ=t=>1-ve(1-t**2),t.in_cubic=t=>t**3,t.in_elastic=(t,e=2*ye/3)=>0===t?0:1===t?1:-Ee(2,10*t-10)*xe((10*t-10.75)*e),t.in_expo=t=>0===t?0:2**(10*t-10),t.in_out_back=(t,e=1.70158,s=1.525*e)=>t<.5?Ee(2*t,2)*(2*(s+1)*t-s)/2:(Ee(2*t-2,2)*((s+1)*(2*t-2)+s)+2)/2,t.in_out_bounce=(t,e=7.5625,s=2.75)=>t<.5?Ce(1-2*t,e,s)/2:Ce(2*t-1,e,s)/2,t.in_out_circ=t=>t<.5?(1-ve(1-(2*t)**2))/2:(ve(1-(-2*t+2)**2)+1)/2,t.in_out_cubic=t=>t<.5?4*t**3:1-(-2*t+2)**3/2,t.in_out_elastic=(t,e=2*ye/4.5)=>0===t?0:1===t?1:t<.5?-Ee(2,20*t-10)*xe((20*t-11.125)*e)/2:Ee(2,-20*t+10)*xe((20*t-11.125)*e)/2+1,t.in_out_expo=t=>0===t?0:1===t?1:t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2,t.in_out_quad=t=>t<.5?2*t**2:1-(-2*t+2)**2/2,t.in_out_quart=t=>t<.5?8*t**4:1-(-2*t+2)**4/2,t.in_out_quint=t=>t<.5?16*t**5:1-(-2*t+2)**5/2,t.in_out_sin=t=>-(_e(ye*t)-1)/2,t.in_quad=t=>t**2,t.in_quart=t=>t**4,t.in_quint=t=>t**5,t.in_sin=t=>1-_e(t*ye/2),t.isApproximatlyEqual=J,t.isStateGetter=bt,t.json2arr=t=>Fe(t instanceof Object?t:JSON.parse(t)),t.json2css=Ge,t.json2csv=$e,t.json2csvFile=(t,e)=>{const s=$e(t,e),r=new Blob([s],{type:"text/csv;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2xml=Ue,t.json2xmlFile=(t,e)=>{const s=Ue(t,e),r=new Blob([s],{type:"text/xml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.json2yml=Ne,t.json2ymlFile=(t,e)=>{const s=Ne(t,e),r=new Blob([s],{type:"text/yml;charset=utf-8;"});return{str:s,blob:r,url:URL.createObjectURL(r)}},t.lerp=S,t.linear=ke,t.linspace=V,t.ln=k,t.logspace=W,t.loop=(t,e={})=>new je(t,e),t.map=A,t.mapfun=n,t.matrix=(t,e,s)=>new U(t,e,s),t.matrix2=(...t)=>new U(2,2,t),t.matrix3=(...t)=>new U(3,3,t),t.matrix4=(...t)=>new U(4,4,t),t.max=(...t)=>Math.max(...t),t.mean=p,t.median=t=>g(t,50),t.min=(...t)=>Math.min(...t),t.modulo=m,t.mul=l,t.nand=(...t)=>P(R(...t)),t.nor=(...t)=>P(F(...t)),t.norm=T,t.nthr=E,t.nums=B,t.obj2str=He,t.ones=Z,t.or=F,t.out_back=(t,e=1.70158,s=e+1)=>1+s*Ee(t-1,3)+e*Ee(t-1,2),t.out_bounce=Ce,t.out_circ=t=>ve(1-(t-1)**2),t.out_cubic=t=>1-(1-t)**3,t.out_elastic=(t,e=2*ye/3)=>0===t?0:1===t?1:Ee(2,-10*t)*xe((10*t-.75)*e)+1,t.out_expo=t=>1===t?1:1-2**(-10*t),t.out_quad=t=>1-(1-t)**2,t.out_quart=t=>1-(1-t)**4,t.out_quint=t=>1-(1-t)**5,t.out_sin=t=>xe(t*ye/2),t.percentile=g,t.pgcd=X,t.pow=x,t.ppcm=Q,t.preload=Pe,t.rad2deg=(...t)=>n((t=>t/Math.PI*180),...t),t.round=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.round(t.a),Math.round(t.b)):Math.round(t)),...t),t.sec=(...t)=>n((t=>(t.isComplex?.(),+(1/Math.cos(t)).toFixed(8))),...t),t.sig=(...t)=>n((t=>1/(1+Math.exp(-t)).toFixed(8)),...t),t.sign=(...t)=>n((t=>{if(t.isComplex?.()){const{z:e,phi:s}=t;return 0===e?new t.constructor(0,0):new t.constructor({z:1,phi:s})}return Math.sign(t)}),...t),t.sin=(...t)=>n((t=>t?.isComplex?new t.constructor(Math.sin(t.a)*Math.cosh(t.b),Math.cos(t.a)*Math.sinh(t.b)).toFixed(8):+Math.sin(t).toFixed(8)),...t),t.sinh=(...t)=>n((t=>t?.isComplex?new t.constructor(Math.sinh(t.a)*Math.cos(t.b),Math.cosh(t.a)*Math.sin(t.b)).toFixed(8):+Math.sinh(t).toFixed(8)),...t),t.sleep=t=>new Promise((e=>setTimeout(e,t))),t.sqrt=M,t.std=(...t)=>Math.sqrt(f(...t)),t.step=(t,e=5)=>Math.floor(t*e)/e,t.step_fps=t=>1e3/t,t.sub=c,t.svg2ascii=Ze,t.svg2img=(t,e=!0)=>he.img(Be(t)).mount(e),t.svg2imgUrl=Be,t.svg2str=qe,t.tags=he,t.tan=(...t)=>n((t=>{if(t?.isComplex){const e=Math.cos(2*t.a)+Math.cosh(2*t.b);return new t.constructor(Math.sin(2*t.a)/e,Math.sinh(2*t.b)/e).toFixed(8)}return+Math.tan(t).toFixed(8)}),...t),t.tanh=(...t)=>n((t=>{if(t?.isComplex){const e=Math.cosh(2*a)+Math.cos(2*b);return new t.constructor(Math.sinh(2*a)/e,Math.sin(2*b)/e).toFixed(8)}return+Math.tanh(t).toFixed(8)}),...t),t.text=_t,t.throttle=$t,t.tick=(t,e,s=1/0,r=!0)=>new Se(t,e,s,r),t.timeTaken=t=>{console.time("timeTaken");const e=t();return console.timeEnd("timeTaken"),e},t.time_memory_Taken=t=>{const e=Date.now(),s=performance.memory.usedJSHeapSize,r=t();return{elapsedTime:Date.now()-e,usedMemory:performance.memory.usedJSHeapSize-s,result:r}},t.timeout=function(t,e){let s;const r=new Promise((r=>{s=setTimeout((()=>{e&&e(),r()}),t)}));return{id:s,clear:()=>clearTimeout(s),promise:r}},t.toggle_event_listener=St,t.trunc=(...t)=>n((t=>t.isComplex?.()?new t.constructor(Math.trunc(t.a),Math.trunc(t.b)):Math.trunc(t)),...t),t.useDerived=function(t,e){let s=t(...e.map((t=>t().value)));const r=new Set;return e.forEach((n=>{n()._subscribe((()=>{{const n=t(...e.map((t=>t().value)));n!==s&&(s=n,r.forEach((t=>t(s))))}}))})),()=>({value:s,isStateGetter:()=>!0,_subscribe:t=>r.add(t)})},t.useEventEmitter=rs,t.useIPC=ht,t.useLocaleStorage=(t,e,s=!0)=>new ct(localStorage,t,e,s),t.useMediaQuery=(t,e)=>new ns(t,e),t.useReactive=t=>n((t=>{const e=gt(t);return{get:e[0],set:e[1]}}),t),t.useRoot=(t,e={})=>new os(t,e),t.useSessionStorage=lt,t.useState=gt,t.useThread=(t,e,s=[],r=!0)=>(new es).call(t,e,s,r),t.useTitle=(t,e=!0)=>new is(t,e),t.variance=f,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.xnor=(...t)=>P(z(...t)),t.xor=z,t.zeros=q}));
|
package/dist/ziko.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*
|
|
3
3
|
Project: ziko.js
|
|
4
4
|
Author: Zakaria Elalaoui
|
|
5
|
-
Date :
|
|
5
|
+
Date : Sat Feb 07 2026 12:44:38 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
|
|
@@ -3700,22 +3700,40 @@ const tags = new Proxy({}, {
|
|
|
3700
3700
|
}
|
|
3701
3701
|
});
|
|
3702
3702
|
|
|
3703
|
-
|
|
3704
|
-
|
|
3703
|
+
function set_vertical(direction){
|
|
3704
|
+
direction == 1
|
|
3705
|
+
? this.style({ flexDirection: "column" })
|
|
3706
|
+
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
3707
|
+
return this;
|
|
3708
|
+
}
|
|
3709
|
+
function set_horizontal(direction){
|
|
3710
|
+
direction == 1
|
|
3711
|
+
? this.style({ flexDirection: "row" })
|
|
3712
|
+
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
3713
|
+
return this;
|
|
3714
|
+
}
|
|
3715
|
+
function map_pos_x(align){
|
|
3716
|
+
let pos = ["flex-start", "center", "flex-end"];
|
|
3717
|
+
if (typeof align === "number") align = pos[align + 1];
|
|
3718
|
+
return align;
|
|
3719
|
+
}
|
|
3720
|
+
function map_pos_y(align){
|
|
3721
|
+
return map_pos_x(-align);
|
|
3722
|
+
}
|
|
3723
|
+
|
|
3724
|
+
class UIFlex extends UIElement$1 {
|
|
3725
|
+
constructor({tag = "div", orientation = "h", order, w = "100%", h = "100%"} = {}) {
|
|
3705
3726
|
super({element : tag , name : "Flex"});
|
|
3706
3727
|
this.direction = "cols";
|
|
3707
|
-
if (typeof w == "number") w += "%";
|
|
3708
|
-
if (typeof h == "number") h += "%";
|
|
3709
|
-
this.style({ width: w, height: h });
|
|
3710
3728
|
this.style({ display: "flex" });
|
|
3711
3729
|
// this.mount();
|
|
3712
3730
|
}
|
|
3713
|
-
|
|
3731
|
+
isFlex(){
|
|
3714
3732
|
return true;
|
|
3715
3733
|
}
|
|
3716
|
-
|
|
3734
|
+
responsify(respBreakPoint, wrap = true) {
|
|
3717
3735
|
this.wrap(wrap);
|
|
3718
|
-
if (this.element.clientWidth <
|
|
3736
|
+
if (this.element.clientWidth < respBreakPoint) this.vertical();
|
|
3719
3737
|
else this.horizontal();
|
|
3720
3738
|
return this;
|
|
3721
3739
|
}
|
|
@@ -3747,16 +3765,18 @@ class ZikoUIFlex extends UIElement$1 {
|
|
|
3747
3765
|
this.style({ justifyContent: align });
|
|
3748
3766
|
return this;
|
|
3749
3767
|
}
|
|
3750
|
-
|
|
3751
|
-
|
|
3768
|
+
// verticalize
|
|
3769
|
+
vertical(x, y, order = 1) {
|
|
3770
|
+
set_vertical.call(this, order);
|
|
3752
3771
|
this.style({
|
|
3753
3772
|
alignItems: typeof(x)==="number"?map_pos_x.call(this,x):x,
|
|
3754
3773
|
justifyContent: typeof(y)=="number"?map_pos_y.call(this,y):y
|
|
3755
3774
|
});
|
|
3756
3775
|
return this;
|
|
3757
3776
|
}
|
|
3758
|
-
|
|
3759
|
-
|
|
3777
|
+
// horizontalize
|
|
3778
|
+
horizontal(x, y, order = 1) {
|
|
3779
|
+
set_horizontal.call(this, order);
|
|
3760
3780
|
this.style({
|
|
3761
3781
|
alignItems: typeof(y)=="number"?map_pos_y.call(this,y):y,
|
|
3762
3782
|
justifyContent: typeof(x)==="number"?map_pos_x.call(this,x):x
|
|
@@ -3776,28 +3796,8 @@ const Flex = (...UIElement) =>{
|
|
|
3776
3796
|
tag=UIElement[0];
|
|
3777
3797
|
UIElement.pop();
|
|
3778
3798
|
}
|
|
3779
|
-
return new
|
|
3780
|
-
};
|
|
3781
|
-
function set_vertical(direction){
|
|
3782
|
-
direction == 1
|
|
3783
|
-
? this.style({ flexDirection: "column" })
|
|
3784
|
-
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
3785
|
-
return this;
|
|
3786
|
-
}
|
|
3787
|
-
function set_horizontal(direction){
|
|
3788
|
-
direction == 1
|
|
3789
|
-
? this.style({ flexDirection: "row" })
|
|
3790
|
-
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
3791
|
-
return this;
|
|
3792
|
-
}
|
|
3793
|
-
function map_pos_x(align){
|
|
3794
|
-
let pos = ["flex-start", "center", "flex-end"];
|
|
3795
|
-
if (typeof align === "number") align = pos[align + 1];
|
|
3796
|
-
return align;
|
|
3797
|
-
}
|
|
3798
|
-
function map_pos_y(align){
|
|
3799
|
-
return map_pos_x(-align);
|
|
3800
|
-
}
|
|
3799
|
+
return new UIFlex(tag).append(...UIElement);
|
|
3800
|
+
};
|
|
3801
3801
|
|
|
3802
3802
|
class UIElement extends UIElementCore{
|
|
3803
3803
|
constructor({element, name, type, render}){
|
|
@@ -5405,4 +5405,4 @@ if(globalThis?.document){
|
|
|
5405
5405
|
document?.addEventListener("DOMContentLoaded", __Ziko__.__Config__.init());
|
|
5406
5406
|
}
|
|
5407
5407
|
|
|
5408
|
-
export { App, Clock, Complex, E, EPSILON, FileBasedRouting, Flex, HTMLWrapper, Matrix, PI$1 as PI, Random, SPA, SVGWrapper, Scheduler, Suspense, Switch, Tick, TimeAnimation, TimeLoop, TimeScheduler, UIElement$1 as UIElement, UIHTMLWrapper, UINode, UISVGWrapper, UISwitch, UIView, UseRoot, UseThread, Utils, View, ZikoApp, ZikoEvent, ZikoSPA,
|
|
5408
|
+
export { App, Clock, Complex, E, EPSILON, FileBasedRouting, Flex, HTMLWrapper, Matrix, PI$1 as PI, Random, SPA, SVGWrapper, Scheduler, Suspense, Switch, Tick, TimeAnimation, TimeLoop, TimeScheduler, UIElement$1 as UIElement, UIFlex, UIHTMLWrapper, UINode, UISVGWrapper, UISwitch, UIView, UseRoot, UseThread, Utils, View, ZikoApp, ZikoEvent, ZikoSPA, ZikoUISuspense, ZikoUIText, abs, accum_prod, accum_sum, acos$1 as acos, acosh, acot, add, and, animation, apply_fun, arange, arc, arr2str, asin, asinh, atan, atan2, atanh, back, bind_click_event, bind_clipboard_event, bind_drag_event, bind_focus_event, bind_key_event, bind_mouse_event, bind_pointer_event, bind_swipe_event, bind_touch_event, bind_view_event, bind_wheel_event, binomial, cartesianProduct, cbrt, ceil, clamp, clock, complex, cos$3 as cos, cosh$2 as cosh, coth, croot, csv2arr, csv2json, csv2matrix, csv2object, csv2sql, debounce, defineParamsGetter, define_wc, deg2rad, discret, div, elastic, event_controller, exp$1 as exp, floor, fract, geomspace, getEvent, hypot, inRange, in_back, in_bounce, in_circ, in_cubic, in_elastic, in_expo, in_out_back, in_out_bounce, in_out_circ, in_out_cubic, in_out_elastic, in_out_expo, in_out_quad, in_out_quart, in_out_quint, in_out_sin, in_quad, in_quart, in_quint, in_sin, isApproximatlyEqual, isStateGetter, json2arr, json2css, json2csv, json2csvFile, json2xml, json2xmlFile, json2yml, json2ymlFile, lerp, linear, linspace, ln, logspace, loop, map$1 as map, mapfun, matrix, matrix2, matrix3, matrix4, max, mean, median, min, modulo, mul, nand, nor, norm, nthr, nums, obj2str, ones, or, out_back, out_bounce, out_circ, out_cubic, out_elastic, out_expo, out_quad, out_quart, out_quint, out_sin, percentile, pgcd, pow$1 as pow, ppcm, preload, rad2deg, round, sec, sig, sign, sin$3 as sin, sinh$1 as sinh, sleep, sqrt$2 as sqrt, std, step, step_fps, sub, svg2ascii, svg2img, svg2imgUrl, svg2str, tags, tan, tanh, text, throttle, tick, timeTaken, time_memory_Taken, timeout, toggle_event_listener, trunc, useDerived, useEventEmitter, useIPC, useLocaleStorage, useMediaQuery, useReactive, useRoot, useSessionStorage, useState, useThread, useTitle, variance, wait, waitForUIElm, waitForUIElmSync, xnor, xor, zeros };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ziko",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.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",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class ZikoProvider {
|
|
2
|
+
init(component){
|
|
3
|
+
if(component instanceof ZikoProvider) this.component = component.component;
|
|
4
|
+
}
|
|
5
|
+
get element(){
|
|
6
|
+
return this.component.element;
|
|
7
|
+
}
|
|
8
|
+
mount(target){
|
|
9
|
+
this.component.mount(target);
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
unmount(){
|
|
13
|
+
this.component.unmount()
|
|
14
|
+
}
|
|
15
|
+
}
|
package/src/ui/flex/index.js
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { UIElement } from "../constructors/UIElement.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
set_vertical,
|
|
4
|
+
set_horizontal,
|
|
5
|
+
map_pos_x,
|
|
6
|
+
map_pos_y
|
|
7
|
+
} from './utils/index.js'
|
|
8
|
+
class UIFlex extends UIElement {
|
|
9
|
+
constructor({tag = "div", orientation = "h", order, w = "100%", h = "100%"} = {}) {
|
|
4
10
|
super({element : tag , name : "Flex"});
|
|
5
11
|
this.direction = "cols";
|
|
6
|
-
if (typeof w == "number") w += "%";
|
|
7
|
-
if (typeof h == "number") h += "%";
|
|
8
|
-
this.style({ width: w, height: h });
|
|
9
12
|
this.style({ display: "flex" });
|
|
10
13
|
// this.mount();
|
|
11
14
|
}
|
|
12
|
-
|
|
15
|
+
isFlex(){
|
|
13
16
|
return true;
|
|
14
17
|
}
|
|
15
|
-
|
|
18
|
+
responsify(respBreakPoint, wrap = true) {
|
|
16
19
|
this.wrap(wrap);
|
|
17
|
-
if (this.element.clientWidth <
|
|
20
|
+
if (this.element.clientWidth < respBreakPoint) this.vertical();
|
|
18
21
|
else this.horizontal();
|
|
19
22
|
return this;
|
|
20
23
|
}
|
|
@@ -46,16 +49,18 @@ class ZikoUIFlex extends UIElement {
|
|
|
46
49
|
this.style({ justifyContent: align });
|
|
47
50
|
return this;
|
|
48
51
|
}
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
// verticalize
|
|
53
|
+
vertical(x, y, order = 1) {
|
|
54
|
+
set_vertical.call(this, order)
|
|
51
55
|
this.style({
|
|
52
56
|
alignItems: typeof(x)==="number"?map_pos_x.call(this,x):x,
|
|
53
57
|
justifyContent: typeof(y)=="number"?map_pos_y.call(this,y):y
|
|
54
58
|
});
|
|
55
59
|
return this;
|
|
56
60
|
}
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
// horizontalize
|
|
62
|
+
horizontal(x, y, order = 1) {
|
|
63
|
+
set_horizontal.call(this, order)
|
|
59
64
|
this.style({
|
|
60
65
|
alignItems: typeof(y)=="number"?map_pos_y.call(this,y):y,
|
|
61
66
|
justifyContent: typeof(x)==="number"?map_pos_x.call(this,x):x
|
|
@@ -75,29 +80,10 @@ const Flex = (...UIElement) =>{
|
|
|
75
80
|
tag=UIElement[0];
|
|
76
81
|
UIElement.pop();
|
|
77
82
|
}
|
|
78
|
-
return new
|
|
79
|
-
}
|
|
80
|
-
function set_vertical(direction){
|
|
81
|
-
direction == 1
|
|
82
|
-
? this.style({ flexDirection: "column" })
|
|
83
|
-
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
84
|
-
return this;
|
|
85
|
-
}
|
|
86
|
-
function set_horizontal(direction){
|
|
87
|
-
direction == 1
|
|
88
|
-
? this.style({ flexDirection: "row" })
|
|
89
|
-
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
90
|
-
return this;
|
|
91
|
-
}
|
|
92
|
-
function map_pos_x(align){
|
|
93
|
-
let pos = ["flex-start", "center", "flex-end"];
|
|
94
|
-
if (typeof align === "number") align = pos[align + 1];
|
|
95
|
-
return align;
|
|
96
|
-
}
|
|
97
|
-
function map_pos_y(align){
|
|
98
|
-
return map_pos_x(-align);
|
|
83
|
+
return new UIFlex(tag).append(...UIElement);
|
|
99
84
|
}
|
|
85
|
+
|
|
100
86
|
export{
|
|
101
87
|
Flex,
|
|
102
|
-
|
|
88
|
+
UIFlex
|
|
103
89
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function set_vertical(direction){
|
|
2
|
+
direction == 1
|
|
3
|
+
? this.style({ flexDirection: "column" })
|
|
4
|
+
: direction == -1 && this.style({ flexDirection: "column-reverse" });
|
|
5
|
+
return this;
|
|
6
|
+
}
|
|
7
|
+
export function set_horizontal(direction){
|
|
8
|
+
direction == 1
|
|
9
|
+
? this.style({ flexDirection: "row" })
|
|
10
|
+
: direction == -1 && this.style({ flexDirection: "row-reverse" });
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
export function map_pos_x(align){
|
|
14
|
+
let pos = ["flex-start", "center", "flex-end"];
|
|
15
|
+
if (typeof align === "number") align = pos[align + 1];
|
|
16
|
+
return align;
|
|
17
|
+
}
|
|
18
|
+
export function map_pos_y(align){
|
|
19
|
+
return map_pos_x(-align);
|
|
20
|
+
}
|