ziko 0.65.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/ziko.cjs +61 -107
  2. package/dist/ziko.js +61 -107
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +61 -107
  5. package/package.json +2 -2
  6. package/src/events/custom-events-registry/click-away.js +0 -1
  7. package/src/exp-events/controller/index.js +41 -0
  8. package/src/exp-events/custom-events-registry/click-away.js +39 -0
  9. package/src/exp-events/custom-events-registry/index.js +3 -0
  10. package/src/exp-events/custom-events-registry/swipe.js +76 -0
  11. package/src/exp-events/custom-events-registry/view.js +74 -0
  12. package/src/exp-events/details-setter/index.js +4 -0
  13. package/src/exp-events/details-setter/key.js +14 -0
  14. package/src/exp-events/details-setter/mouse.js +35 -0
  15. package/src/exp-events/details-setter/pointer.js +35 -0
  16. package/src/exp-events/details-setter/touch.js +37 -0
  17. package/src/exp-events/index.js +1 -0
  18. package/src/hooks/index.d.ts +11 -0
  19. package/src/hooks/use-derived.d.ts +14 -0
  20. package/src/hooks/use-event-emitter.d.ts +46 -0
  21. package/src/hooks/use-favicon.d.ts +41 -0
  22. package/src/hooks/use-ipc.d.ts +12 -0
  23. package/src/hooks/use-media-query.d.ts +24 -0
  24. package/src/hooks/use-reactive.d.ts +14 -0
  25. package/src/hooks/use-root.d.ts +15 -0
  26. package/src/hooks/use-state.d.ts +25 -0
  27. package/src/hooks/use-storage.d.ts +47 -0
  28. package/src/hooks/use-thread.d.ts +33 -0
  29. package/src/hooks/use-title.d.ts +37 -0
  30. package/src/index.d.ts +5 -0
  31. package/src/math/complex/index.d.ts +54 -0
  32. package/src/math/functions/index.d.ts +140 -0
  33. package/src/math/functions/logic/index.d.ts +11 -0
  34. package/src/math/functions/mapfun/index.d.ts +87 -0
  35. package/src/math/functions/utils/index.d.ts +1 -0
  36. package/src/math/functions/utils/mapfun.d.ts +43 -0
  37. package/src/math/index.d.ts +5 -0
  38. package/src/time/clocks/clock.d.ts +28 -0
  39. package/src/time/clocks/index.d.ts +3 -0
  40. package/src/time/clocks/scheduler.d.ts +42 -0
  41. package/src/time/clocks/tick.d.ts +26 -0
  42. package/src/time/decorators/index.d.ts +9 -0
  43. package/src/time/delay/index.d.ts +12 -0
  44. package/src/time/ease/index.d.ts +103 -0
  45. package/src/time/index.d.ts +4 -0
  46. package/src/time/loop/index.d.ts +50 -0
  47. package/src/ui/constructors/UIElement.js +19 -93
  48. package/src/ui/constructors/UIElementCore.d.ts +59 -0
  49. package/src/ui/constructors/UIElementCore.js +0 -9
  50. package/src/ui/constructors/UINode.d.ts +11 -0
  51. package/src/ui/constructors/UINode.js +1 -1
  52. package/src/ui/{__methods__ → constructors/mixins}/dom.js +1 -1
  53. package/src/ui/{__methods__ → constructors/mixins}/events.js +3 -3
  54. package/src/ui/{__methods__ → constructors/mixins}/style.js +1 -1
  55. package/src/ui/{__methods__ → constructors/mixins}/utils/index.js +4 -4
  56. package/src/ui/web-component/index.d.ts +14 -0
  57. package/src/ui/web-component/index.js +2 -2
  58. package/README.dep.md +0 -137
  59. package/src/--reactivity-deprecated/events/Input.js +0 -62
  60. package/src/--reactivity-deprecated/events/ZikoEvent.js +0 -92
  61. package/src/--reactivity-deprecated/events/__note__ +0 -1
  62. package/src/--reactivity-deprecated/events/custom-event.js +0 -57
  63. package/src/--reactivity-deprecated/events/hash.js +0 -47
  64. package/src/--reactivity-deprecated/events/index.js +0 -12
  65. package/src/--reactivity-deprecated/events/media.js +0 -1
  66. package/src/--reactivity-deprecated/events/mouse.js +0 -233
  67. package/src/--reactivity-deprecated/events/swipe.js +0 -149
  68. package/src/--reactivity-deprecated/events/touch.js +0 -0
  69. package/src/--reactivity-deprecated/hooks/Contexte/index.js +0 -1
  70. package/src/--reactivity-deprecated/hooks/Contexte/useSuccesifKeys.js +0 -14
  71. package/src/--reactivity-deprecated/hooks/UI/index.js +0 -6
  72. package/src/--reactivity-deprecated/hooks/UI/useCssLink.js +0 -0
  73. package/src/--reactivity-deprecated/hooks/UI/useLinearGradient.js +0 -0
  74. package/src/--reactivity-deprecated/hooks/UI/useMediaQuery.js +0 -43
  75. package/src/--reactivity-deprecated/hooks/UI/useRadialGradient.js +0 -0
  76. package/src/--reactivity-deprecated/hooks/UI/useRoot.js +0 -39
  77. package/src/--reactivity-deprecated/hooks/UI/useStyle.js +0 -79
  78. package/src/--reactivity-deprecated/hooks/UI/useTheme.js +0 -62
  79. package/src/--reactivity-deprecated/hooks/head/_useCssText.js +0 -21
  80. package/src/--reactivity-deprecated/hooks/head/index.js +0 -5
  81. package/src/--reactivity-deprecated/hooks/head/useFavIcon.js +0 -38
  82. package/src/--reactivity-deprecated/hooks/head/useHead.js +0 -28
  83. package/src/--reactivity-deprecated/hooks/head/useMeta.js +0 -52
  84. package/src/--reactivity-deprecated/hooks/head/useTitle.js +0 -30
  85. package/src/--reactivity-deprecated/hooks/index.js +0 -8
  86. package/src/--reactivity-deprecated/hooks/todo.md +0 -26
  87. package/src/--reactivity-deprecated/idea +0 -1
  88. package/src/--reactivity-deprecated/index.js +0 -3
  89. package/src/--reactivity-deprecated/observer/attributes.js +0 -28
  90. package/src/--reactivity-deprecated/observer/children.js +0 -37
  91. package/src/--reactivity-deprecated/observer/index.js +0 -6
  92. package/src/--reactivity-deprecated/observer/intersection.js +0 -44
  93. package/src/--reactivity-deprecated/observer/mutation.js +0 -113
  94. package/src/--reactivity-deprecated/observer/resize.js +0 -47
  95. package/src/--reactivity-deprecated/observer/screen.js +0 -45
  96. package/src/--reactivity-deprecated/observer/screen.js.txt +0 -84
  97. package/src/--reactivity-deprecated/observer/screen.txt +0 -13
  98. package/src/--use-deprecated/index.js +0 -11
  99. package/src/--use-deprecated/use-channel.js.txt +0 -61
  100. package/src/--use-deprecated/use-event-emmiter.js.txt +0 -64
  101. package/src/--use-deprecated/use-favicon.js +0 -0
  102. package/src/--use-deprecated/use-link.js +0 -0
  103. package/src/--use-deprecated/use-meta.js +0 -0
  104. package/src/--use-deprecated/use-root.js +0 -77
  105. package/src/--use-deprecated/use-storage.js.txt +0 -73
  106. package/src/--use-deprecated/use-thread.js +0 -44
  107. package/src/--use-deprecated/use-title.js +0 -0
  108. package/src/ui/constructors/_m.js.txt +0 -96
  109. package/src/ui/constructors/style/index.js +0 -506
  110. /package/src/ui/{__methods__ → constructors/mixins}/attrs.js +0 -0
  111. /package/src/ui/{__methods__ → constructors/mixins}/index.js +0 -0
  112. /package/src/ui/{__methods__ → constructors/mixins}/indexing.js +0 -0
  113. /package/src/ui/{__methods__ → constructors/mixins}/lifecycle.js +0 -0
@@ -0,0 +1,3 @@
1
+ export type * from './tick.d.ts'
2
+ export type * from './clock.d.ts'
3
+ export type * from './scheduler.d.ts'
@@ -0,0 +1,42 @@
1
+ export interface TimeTask {
2
+ fn: () => Promise<any> | any;
3
+ delay?: number;
4
+ }
5
+
6
+ export type ParallelTasks = TimeTask[];
7
+
8
+ export interface TimeSchedulerOptions {
9
+ repeat?: number;
10
+ loop?: boolean;
11
+ }
12
+
13
+ export declare class TimeScheduler {
14
+ tasks: (TimeTask | ParallelTasks)[];
15
+ repeat: number;
16
+ loop: boolean;
17
+
18
+ stopped: boolean;
19
+ running: boolean;
20
+
21
+ onStart: (() => void) | null;
22
+ onTask: ((fn: () => Promise<any> | any) => void) | null;
23
+ onEnd: (() => void) | null;
24
+
25
+ constructor(
26
+ tasks?: (TimeTask | ParallelTasks)[],
27
+ options?: TimeSchedulerOptions
28
+ );
29
+
30
+ run(): Promise<void>;
31
+
32
+ stop(): void;
33
+
34
+ addTask(task: TimeTask | ParallelTasks): void;
35
+
36
+ clearTasks(): void;
37
+ }
38
+
39
+ export declare function Scheduler(
40
+ tasks?: (TimeTask | ParallelTasks)[],
41
+ options?: { repeat?: number | null }
42
+ ): TimeScheduler;
@@ -0,0 +1,26 @@
1
+ export declare class Tick {
2
+ ms: number;
3
+ fn: (self: Tick) => void;
4
+ count: number;
5
+ frame: number;
6
+ id: ReturnType<typeof setInterval> | null;
7
+ running: boolean;
8
+
9
+ constructor(
10
+ fn: (self: Tick) => void,
11
+ ms: number,
12
+ count?: number,
13
+ start?: boolean
14
+ );
15
+
16
+ start(): this;
17
+ stop(): this;
18
+ isRunning(): boolean;
19
+ }
20
+
21
+ export declare function tick(
22
+ fn: (self: Tick) => void,
23
+ ms: number,
24
+ count?: number,
25
+ start?: boolean
26
+ ): Tick;
@@ -0,0 +1,9 @@
1
+ export declare function debounce<T extends (...args: any[]) => any>(
2
+ fn: T,
3
+ delay?: number
4
+ ): (...args: Parameters<T>) => void;
5
+
6
+ export declare function throttle<T extends (...args: any[]) => any>(
7
+ fn: T,
8
+ delay: number
9
+ ): (...args: Parameters<T>) => void;
@@ -0,0 +1,12 @@
1
+ export declare const sleep: (ms: number) => Promise<void>;
2
+
3
+ export interface TimeoutResult {
4
+ id: ReturnType<typeof setTimeout>;
5
+ clear: () => void;
6
+ promise: Promise<void>;
7
+ }
8
+
9
+ export declare function timeout(
10
+ ms: number,
11
+ fn?: () => any
12
+ ): TimeoutResult;
@@ -0,0 +1,103 @@
1
+ declare const linear: (t: number) => number;
2
+
3
+ // --- Sin ---
4
+ declare const in_sin: (t: number) => number;
5
+ declare const out_sin: (t: number) => number;
6
+ declare const in_out_sin: (t: number) => number;
7
+
8
+ // --- Quad ---
9
+ declare const in_quad: (t: number) => number;
10
+ declare const out_quad: (t: number) => number;
11
+ declare const in_out_quad: (t: number) => number;
12
+
13
+ // --- Cubic ---
14
+ declare const in_cubic: (t: number) => number;
15
+ declare const out_cubic: (t: number) => number;
16
+ declare const in_out_cubic: (t: number) => number;
17
+
18
+ // --- Quart ---
19
+ declare const in_quart: (t: number) => number;
20
+ declare const out_quart: (t: number) => number;
21
+ declare const in_out_quart: (t: number) => number;
22
+
23
+ // --- Quint ---
24
+ declare const in_quint: (t: number) => number;
25
+ declare const out_quint: (t: number) => number;
26
+ declare const in_out_quint: (t: number) => number;
27
+
28
+ // --- Expo ---
29
+ declare const in_expo: (t: number) => number;
30
+ declare const out_expo: (t: number) => number;
31
+ declare const in_out_expo: (t: number) => number;
32
+
33
+ // --- Circ ---
34
+ declare const in_circ: (t: number) => number;
35
+ declare const out_circ: (t: number) => number;
36
+ declare const in_out_circ: (t: number) => number;
37
+
38
+ // --- Arc ---
39
+ declare const arc: (t: number) => number;
40
+
41
+ // --- Back ---
42
+ declare const back: (t: number, x?: number) => number;
43
+
44
+ // --- Elastic ---
45
+ declare const elastic: (t: number) => number;
46
+
47
+ // --- Back variations ---
48
+ declare const in_back: (t: number, c1?: number, c3?: number) => number;
49
+ declare const out_back: (t: number, c1?: number, c3?: number) => number;
50
+ declare const in_out_back: (t: number, c1?: number, c2?: number) => number;
51
+
52
+ // --- Elastic variations ---
53
+ declare const in_elastic: (t: number, c4?: number) => number;
54
+ declare const out_elastic: (t: number, c4?: number) => number;
55
+ declare const in_out_elastic: (t: number, c5?: number) => number;
56
+
57
+ // --- Bounce ---
58
+ declare const in_bounce: (t: number, n1?: number, d1?: number) => number;
59
+ declare const out_bounce: (t: number, n1?: number, d1?: number) => number;
60
+ declare const in_out_bounce: (t: number, n1?: number, d1?: number) => number;
61
+
62
+ // --- Step & Discret ---
63
+ declare const step: (t: number, steps?: number) => number;
64
+ declare const discret: (t: number, segments?: number) => number;
65
+
66
+ export {
67
+ linear,
68
+ in_sin,
69
+ out_sin,
70
+ in_out_sin,
71
+ in_quad,
72
+ out_quad,
73
+ in_out_quad,
74
+ in_cubic,
75
+ out_cubic,
76
+ in_out_cubic,
77
+ in_quart,
78
+ out_quart,
79
+ in_out_quart,
80
+ in_quint,
81
+ out_quint,
82
+ in_out_quint,
83
+ in_expo,
84
+ out_expo,
85
+ in_out_expo,
86
+ in_circ,
87
+ out_circ,
88
+ in_out_circ,
89
+ arc,
90
+ back,
91
+ elastic,
92
+ in_back,
93
+ out_back,
94
+ in_out_back,
95
+ in_elastic,
96
+ out_elastic,
97
+ in_out_elastic,
98
+ in_bounce,
99
+ out_bounce,
100
+ in_out_bounce,
101
+ step,
102
+ discret
103
+ };
@@ -0,0 +1,4 @@
1
+ export type * from './ease/index.d.ts'
2
+ export type * from './clocks/index.d.ts'
3
+ export type * from './decorators/index.d.ts'
4
+ export type * from './loop/index.d.ts'
@@ -0,0 +1,50 @@
1
+ export declare class TimeLoop {
2
+ callback: (self: TimeLoop) => void;
3
+
4
+ protected cache: {
5
+ isRunning: boolean;
6
+ id: ReturnType<typeof setTimeout> | null;
7
+ last_tick: number | null;
8
+ step: number;
9
+ t0: number;
10
+ t1: number;
11
+ autoplay: boolean;
12
+ pauseTime: number | null;
13
+ frame: number;
14
+ elapsed?: number;
15
+ };
16
+
17
+ constructor(
18
+ callback: (self: TimeLoop) => void,
19
+ options?: {
20
+ step?: number;
21
+ t0?: number;
22
+ t1?: number;
23
+ autoplay?: boolean;
24
+ }
25
+ );
26
+
27
+ get frame(): number;
28
+
29
+ get elapsed(): number | undefined;
30
+
31
+ start(): this;
32
+ pause(): this;
33
+ resume(): this;
34
+ stop(): this;
35
+
36
+ startAfter(t?: number): this;
37
+ stopAfter(t?: number): this;
38
+
39
+ protected animate: () => void;
40
+ }
41
+
42
+ export declare function loop(
43
+ callback: (self: TimeLoop) => void,
44
+ options?: {
45
+ step?: number;
46
+ t0?: number;
47
+ t1?: number;
48
+ autoplay?: boolean;
49
+ }
50
+ ): TimeLoop;
@@ -7,20 +7,19 @@ import {
7
7
  IndexingMethods,
8
8
  EventsMethodes,
9
9
  StyleMethods
10
- } from "../__methods__/index.js";
11
- // import {
12
- // // useCustomEvent,
13
- // // useSwipeEvent,
14
- // // watchIntersection,
15
- // // watchSize,
16
- // // watchAttr,
17
- // // watchChildren
18
- // } from "../../--reactivity-deprecated/events/custom-event.js"
10
+ } from "./mixins/index.js";
11
+
12
+ import {
13
+ EventController
14
+ } from '../../exp-events/index.js'
19
15
  class UIElement extends UIElementCore{
20
16
  constructor({element, name ='', type='html', render = __Ziko__.__Config__.default.render}={}){
21
17
  super()
22
- // console.log({type})
23
- // console.log(this)
18
+ this.exp = {
19
+ events : {
20
+
21
+ }
22
+ }
24
23
  register_to_class(
25
24
  this,
26
25
  LifecycleMethods,
@@ -31,9 +30,17 @@ class UIElement extends UIElementCore{
31
30
  EventsMethodes
32
31
  );
33
32
 
34
- // console.log(EventsMethodes)
35
33
  if(element)this.init(element, name, type, render)
36
34
  }
35
+ _on(event, callback, {details_setter, category = 'global'} = {}){
36
+ if(category && !this.exp.events.hasOwnProperty(category)) this.exp.events[category] = new EventController(this, category);
37
+ const EVENT = this.exp.events[category]
38
+ EVENT.addListener(event, callback);
39
+ if(details_setter) details_setter.call(EVENT);
40
+ }
41
+ _off(event, category = 'global'){
42
+ this.exp.events[category].removeListener(event)
43
+ }
37
44
  get element(){
38
45
  return this.cache.element;
39
46
  }
@@ -49,9 +56,6 @@ class UIElement extends UIElementCore{
49
56
  if(directive)this.element.setAttribute('data-hydration-directive', directive);
50
57
  return this;
51
58
  }
52
- // isUIElement(){
53
- // return true;
54
- // }
55
59
  get st(){
56
60
  return this.cache.style;
57
61
  }
@@ -91,84 +95,6 @@ class UIElement extends UIElementCore{
91
95
  get left(){
92
96
  return this.element.getBoundingClientRect().left;
93
97
  }
94
- // clone(render=false) {
95
- // // UI.__proto__=this.__proto__;
96
- // // if(this.items.length){
97
- // // const items = [...this.items].map(n=>n.clone());
98
- // // UI.append(...items);
99
- // // }
100
- // // else UI.element=this.element.cloneNode(true);
101
- // // return UI.mount(render);
102
- // }
103
- // [Symbol.iterator]() {
104
- // return this.items[Symbol.iterator]();
105
- // }
106
- // maintain() {
107
- // for (let i = 0; i < this.items.length; i++) {
108
- // Object.defineProperty(this, i, {
109
- // value: this.items[i],
110
- // writable: true,
111
- // configurable: true,
112
- // enumerable: false
113
- // });
114
- // }
115
- // }
116
- // freeze(freeze){
117
- // this.cache.isFrozzen=freeze;
118
- // return this;
119
- // }
120
- // setTarget(tg) {
121
- // if(this.isBody) return ;
122
- // if (tg?.isUIElement) tg = tg.element;
123
- // this.unmount();
124
- // this.target = tg;
125
- // this.mount();
126
- // return this;
127
- // }
128
- // describe(label){
129
- // if(label)this.setAttr("aria-label",label)
130
- // }
131
- // get children() {
132
- // return [...this.element.children];
133
- // }
134
- // get cloneElement() {
135
- // return this.element.cloneNode(true);
136
- // }
137
- // setClasses(...value) {
138
- // this.setAttr("class", value.join(" "));
139
- // return this;
140
- // }
141
- // get classes(){
142
- // const classes=this.element.getAttribute("class");
143
- // return classes===null?[]:classes.split(" ");
144
- // }
145
- // addClass() {
146
- // /*this.setAttr("class", value);
147
- // return this;*/
148
- // }
149
- // setId(id) {
150
- // this.setAttr("id", id);
151
- // return this;
152
- // }
153
- // get id() {
154
- // return this.element.getAttribute("id");
155
- // }
156
- // To Fix
157
- // onKeysDown({keys=[],callback}={}){
158
- // if(!this.events.key)this.events.key = useKeyEvent(this);
159
- // this.events.key.handleSuccessifKeys({keys,callback});
160
- // return this;
161
- // }
162
- // watchAttr(callback){
163
- // if(!this.observer.attr)this.observer.attr = watchAttr(this,callback);
164
- // return this;
165
- // }
166
- // watchChildren(callback){
167
- // if(!this.observer.children)this.observer.children = watchChildren(this,callback);
168
- // return this;
169
- // }
170
- // watchSize(callback)Remplaced By on onViewResize
171
- // watchIntersection(callback,config) Remplaced By onViewEnter and onViewExit
172
98
 
173
99
  }
174
100
  export { UIElement }
@@ -0,0 +1,59 @@
1
+ import { UINode } from "./UINode.js";
2
+ import { UIStore } from "../../__ziko__/__ui__.js";
3
+
4
+ export declare class UIElementCore extends UINode {
5
+ cache: {
6
+ node: Node;
7
+ name?: string;
8
+ isInteractive?: boolean;
9
+ parent?: UIElementCore | null;
10
+ isBody?: boolean;
11
+ isRoot?: boolean;
12
+ isHidden?: boolean;
13
+ isFrozzen?: boolean;
14
+ attributes?: Record<string, any>;
15
+ filters?: Record<string, any>;
16
+ temp?: Record<string, any>;
17
+ element?: HTMLElement | SVGElement;
18
+ };
19
+
20
+ events: {
21
+ ptr: any | null;
22
+ mouse: any | null;
23
+ wheel: any | null;
24
+ key: any | null;
25
+ drag: any | null;
26
+ drop: any | null;
27
+ click: any | null;
28
+ clipboard: any | null;
29
+ focus: any | null;
30
+ swipe: any | null;
31
+ custom: any | null;
32
+ };
33
+
34
+ observer: {
35
+ resize: any | null;
36
+ intersection: any | null;
37
+ };
38
+
39
+ items: UIStore;
40
+
41
+ constructor();
42
+
43
+ init(
44
+ element: string | HTMLElement | SVGElement | null,
45
+ name: string,
46
+ type: "html" | "svg",
47
+ render?: boolean
48
+ ): void;
49
+
50
+ get element(): HTMLElement | SVGElement | undefined;
51
+
52
+ [Symbol.iterator](): Iterator<any>;
53
+
54
+ maintain(): void;
55
+
56
+ isInteractive(): boolean;
57
+
58
+ isUIElement(): true;
59
+ }
@@ -30,7 +30,6 @@ class UIElementCore extends UINode{
30
30
  isRoot:false,
31
31
  isHidden: false,
32
32
  isFrozzen:false,
33
- legacyParent : null,
34
33
  attributes: {},
35
34
  filters: {},
36
35
  temp:{}
@@ -53,14 +52,6 @@ class UIElementCore extends UINode{
53
52
  intersection:null
54
53
  }
55
54
  if(element) Object.assign(this.cache,{element});
56
- // useDefaultStyle && this.style({
57
- // position: "relative",
58
- // boxSizing:"border-box",
59
- // margin:0,
60
- // padding:0,
61
- // width : "auto",
62
- // height : "auto"
63
- // });
64
55
  this.items = new UIStore();
65
56
  globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
66
57
  element && render && this?.render?.()
@@ -0,0 +1,11 @@
1
+ export declare class UINode {
2
+ cache: {
3
+ node: Node;
4
+ };
5
+
6
+ constructor(node: Node);
7
+
8
+ isUINode(): true;
9
+
10
+ get node(): Node;
11
+ }
@@ -4,7 +4,7 @@ export class UINode {
4
4
  node
5
5
  }
6
6
  }
7
- isZikoUINode(){
7
+ isUINode(){
8
8
  return true
9
9
  }
10
10
  get node(){
@@ -1,4 +1,4 @@
1
- import { text } from "../text/index.js";
1
+ import { text } from "../../text/index.js";
2
2
  import { __addItem__ } from "./utils/index.js";
3
3
  export function append(...ele) {
4
4
  __addItem__.call(this, "append", "push", ...ele);
@@ -1,4 +1,4 @@
1
- import { EventsMap } from "../../events/events-map/index.js";
1
+ import { EventsMap } from "../../../events/events-map/index.js";
2
2
  import {
3
3
  bind_pointer_event,
4
4
  bind_mouse_event,
@@ -10,9 +10,9 @@ import {
10
10
  bind_wheel_event,
11
11
  bind_view_event,
12
12
  bind_swipe_event
13
- } from "../../events/binders/index.js";
13
+ } from "../../../events/binders/index.js";
14
14
 
15
- import { bind_custom_event } from "../../events/binders/custom-event.js";
15
+ import { bind_custom_event } from "../../../events/binders/custom-event.js";
16
16
 
17
17
  const binderMap = {
18
18
  ptr: bind_pointer_event,
@@ -1,4 +1,4 @@
1
- import { isStateGetter } from '../../hooks/use-state.js'
1
+ import { isStateGetter } from '../../../hooks/use-state.js'
2
2
  export function style(styles){
3
3
  if(!this.element?.style) return this;
4
4
  for(let key in styles){
@@ -1,9 +1,9 @@
1
- import { isStateGetter } from "../../../hooks/use-state.js";
1
+ import { isStateGetter } from "../../../../hooks/use-state.js";
2
2
  import {
3
3
  is_camelcase,
4
4
  camel2hyphencase
5
- } from '../../../data/string/index.js'
6
- import { text } from "../../text/index.js";
5
+ } from '../../../../data/string/index.js'
6
+ import { text } from "../../../text/index.js";
7
7
  export async function __addItem__(adder, pusher, ...ele) {
8
8
  if (this.cache.isFrozzen) {
9
9
  console.warn("You can't append new item to frozzen element");
@@ -24,7 +24,7 @@ export async function __addItem__(adder, pusher, ...ele) {
24
24
  }
25
25
  }
26
26
  if (typeof globalThis?.Node === "function" && ele[i] instanceof globalThis?.Node) ele[i] = new this.constructor(ele[i]);
27
- if (ele[i]?.isZikoUINode) {
27
+ if (ele[i]?.isUINode) {
28
28
  ele[i].cache.parent = this;
29
29
  this.element?.[adder](ele[i].element);
30
30
  ele[i].target = this.element;
@@ -0,0 +1,14 @@
1
+ import { UIElement } from "../constructors/UIElement";
2
+
3
+ export interface WCPropDefinition {
4
+ type: (value: any) => any; // function to convert attribute string to prop value
5
+ }
6
+
7
+ export declare function define_wc(
8
+ name: `${string}-${string}`,
9
+ UI_Constructor: (props: Record<string, any>) => UIElement | UIElement[],
10
+ props?: Record<string, WCPropDefinition>,
11
+ options?: {
12
+ mode? : ShadowRootMode
13
+ }
14
+ ): void;
@@ -1,4 +1,4 @@
1
- export function define_wc(name, UIElement, props = {}, { mode = 'open'} = {}) {
1
+ export function define_wc(name, UI_Constructor, props = {}, { mode = 'open'} = {}) {
2
2
  if (globalThis.customElements?.get(name)) {
3
3
  console.warn(`Custom element "${name}" is already defined`);
4
4
  return;
@@ -30,7 +30,7 @@ export function define_wc(name, UIElement, props = {}, { mode = 'open'} = {}) {
30
30
 
31
31
  render() {
32
32
  this.shadowRoot.innerHTML = '';
33
- const item = UIElement(this.props);
33
+ const item = UI_Constructor(this.props);
34
34
  if(item instanceof Array) item.forEach(n => n.mount(this.shadowRoot))
35
35
  else item.mount(this.shadowRoot)
36
36
  }