ziko 0.44.0 → 0.45.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.
Files changed (51) hide show
  1. package/dist/ziko.cjs +58 -51
  2. package/dist/ziko.js +626 -712
  3. package/dist/ziko.min.js +2 -2
  4. package/dist/ziko.mjs +617 -692
  5. package/package.json +1 -1
  6. package/src/__helpers__/register/index.js +3 -1
  7. package/src/__helpers__/register/register-to-instance.js +17 -5
  8. package/src/app/spa.js +3 -3
  9. package/src/app/ziko-app.js +1 -1
  10. package/src/events/__Events__.js +2 -1
  11. package/src/events/binders/click.js +20 -0
  12. package/src/events/binders/clipboard.js +16 -0
  13. package/src/events/{custom-event.js → binders/custom-event.js} +1 -1
  14. package/src/events/binders/drag.js +16 -0
  15. package/src/events/binders/focus.js +16 -0
  16. package/src/events/{hash.js → binders/hash.js} +2 -2
  17. package/src/events/binders/index.js +16 -0
  18. package/src/events/{key.js → binders/key.js} +4 -4
  19. package/src/events/binders/mouse.js +16 -0
  20. package/src/events/{pointer.js → binders/pointer.js} +4 -4
  21. package/src/events/{touch.js → binders/touch.js} +2 -2
  22. package/src/events/binders/wheel.js +16 -0
  23. package/src/events/custom-events/click-away.js +39 -0
  24. package/src/events/custom-events/index.js +1 -0
  25. package/src/events/custom-events/swipe.js +58 -0
  26. package/src/events/custom-events/view.js +43 -0
  27. package/src/events/index.js +2 -14
  28. package/src/events/types/clipboard.d.ts +2 -2
  29. package/src/events/types/focus.d.ts +2 -2
  30. package/src/events/types/pointer.d.ts +2 -2
  31. package/src/lite.js +2 -0
  32. package/src/ui/__methods__/attrs.js +29 -45
  33. package/src/ui/__methods__/dom.js +65 -111
  34. package/src/ui/__methods__/events.js +17 -17
  35. package/src/ui/__methods__/index.js +10 -1
  36. package/src/ui/__methods__/indexing.js +14 -15
  37. package/src/ui/__methods__/style.js +28 -30
  38. package/src/ui/__methods__/utils/index.js +64 -0
  39. package/src/ui/constructors/UIElement-lite.js +10 -0
  40. package/src/ui/constructors/UIElement.js +87 -154
  41. package/src/ui/constructors/UIElementCore.js +236 -0
  42. package/src/ui/index.js +3 -3
  43. package/src/ui/suspense/index.js +1 -1
  44. package/src/events/click.js +0 -18
  45. package/src/events/clipboard.js +0 -16
  46. package/src/events/drag.js +0 -16
  47. package/src/events/focus.js +0 -16
  48. package/src/events/mouse.js +0 -16
  49. package/src/events/wheel.js +0 -16
  50. package/src/ui/__methods__/observer.js +0 -0
  51. /package/src/ui/constructors/{ZikoUIElementMethodesToBeMoved-dep.js → _m.js.txt} +0 -0
package/dist/ziko.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  /*
3
3
  Project: ziko.js
4
4
  Author: Zakaria Elalaoui
5
- Date : Sun Aug 24 2025 12:13:24 GMT+0100 (UTC+01:00)
5
+ Date : Sat Aug 30 2025 10:47:14 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
@@ -1074,7 +1074,7 @@ class UINode {
1074
1074
  }
1075
1075
  }
1076
1076
 
1077
- globalThis.node = (node) => new UINode(node);
1077
+ // globalThis.node = (node) => new UINode(node);
1078
1078
 
1079
1079
  function register_to_class(target, ...mixins){
1080
1080
  mixins.forEach(n => _register_to_class_(target, n));
@@ -1146,28 +1146,34 @@ function defineParamsGetter$1(target ){
1146
1146
  });
1147
1147
  }
1148
1148
 
1149
- const __UI__={
1150
- __all__(){
1151
- return Object.values(this)
1152
- .filter(Array.isArray)
1153
- .flat();
1154
- },
1155
- querySelectorAll(){
1156
- return this.__all__().filter(n=>n)
1157
- },
1158
- getElementByIndex(index){
1159
- return this.__all__().find(n=>n.ui_index===index);
1160
- },
1161
- getElementById(id){
1162
- return null;
1163
- },
1164
- getElementsByClass(){
1165
-
1166
- },
1167
- getElementsByTagName(){
1168
-
1149
+ class UIStore extends Array {
1150
+ constructor(...args) {
1151
+ super(...args);
1169
1152
  }
1170
- };
1153
+ getItemById(id) {
1154
+ return this.find(n => n.element.id === id);
1155
+ }
1156
+ getItemsByTagName(tag) {
1157
+ return this.filter(n => n.element.tagName.toLowerCase() === tag.toLowerCase());
1158
+ }
1159
+ getElementsByClassName(className) {
1160
+ return this.filter(n => n.element.classList?.contains(className));
1161
+ }
1162
+ querySelector(selector) {
1163
+ const el = globalThis?.document?.querySelector(selector);
1164
+ if (!el) return null;
1165
+ return this.find(ui => ui.element === el) || null;
1166
+ }
1167
+ querySelectorAll(selector) {
1168
+ const els = globalThis?.document?.querySelectorAll(selector);
1169
+ return Array.from(els)
1170
+ .map(el => this.find(ui => ui.element === el))
1171
+ .filter(Boolean);
1172
+ }
1173
+ }
1174
+
1175
+ // create the singleton
1176
+ const __UI__ = new UIStore();
1171
1177
 
1172
1178
  const __Config__ = {
1173
1179
  default:{
@@ -1190,10 +1196,10 @@ const __Config__ = {
1190
1196
  };
1191
1197
 
1192
1198
  const __HYDRATION__ = {
1193
- map : new Map(),
1199
+ store : new Map(),
1194
1200
  index : 0,
1195
- increment : function(){
1196
- return this.index ++
1201
+ register: function(component){
1202
+ this.store.set(this.index++, component);
1197
1203
  }
1198
1204
  };
1199
1205
 
@@ -1201,6 +1207,9 @@ const __CACHE__ = {
1201
1207
  ui_index : 0,
1202
1208
  get_ui_index:function(){
1203
1209
  return this.ui_index ++
1210
+ },
1211
+ register_ui: function(UIElement){
1212
+
1204
1213
  }
1205
1214
  };
1206
1215
 
@@ -1209,7 +1218,7 @@ const __State__ = {
1209
1218
  index : undefined?.data?.__Ziko__?.__State__?.index ?? 0,
1210
1219
  register: function(state){
1211
1220
  console.log({
1212
- hmr : undefined?.data.__Ziko__.__State__.index,
1221
+ // hmr : import.meta.hot?.data.__Ziko__.__State__.index,
1213
1222
  index : this.index
1214
1223
  });
1215
1224
  this.store.set(this.index++, state);
@@ -1223,7 +1232,6 @@ function __init__global__(){
1223
1232
  __UI__,
1224
1233
  __HYDRATION__,
1225
1234
  __State__,
1226
- // __HYDRATION_MAP__,
1227
1235
  __Config__,
1228
1236
  __CACHE__,
1229
1237
  };
@@ -2871,7 +2879,7 @@ const useMediaQuery = (mediaQueryRules,fallback) => new ZikoUseMediaQuery(mediaQ
2871
2879
 
2872
2880
  __init__global__();
2873
2881
  class UIElement extends UINode{
2874
- constructor({element, name ='', type="html", useDefaultStyle=false}={}){
2882
+ constructor({element, name ='', type="html", render = __Ziko__.__Config__.default.render, useDefaultStyle=false}={}){
2875
2883
  super();
2876
2884
  this.target = globalThis.__Ziko__.__Config__.default.target||globalThis?.document?.body;
2877
2885
  if(typeof element === "string") {
@@ -2922,8 +2930,8 @@ class UIElement extends UINode{
2922
2930
  resize:null,
2923
2931
  intersection:null
2924
2932
  };
2925
- if(element)Object.assign(this.cache,{element});
2926
- this.uuid = `${this.cache.name}-${Random.string(16)}`;
2933
+ if(element) Object.assign(this.cache,{element});
2934
+ // this.uuid = `${this.cache.name}-${Random.string(16)}`
2927
2935
  this.ui_index = globalThis.__Ziko__.__CACHE__.get_ui_index();
2928
2936
  useDefaultStyle && this.style({
2929
2937
  position: "relative",
@@ -2933,9 +2941,9 @@ class UIElement extends UINode{
2933
2941
  width : "auto",
2934
2942
  height : "auto"
2935
2943
  });
2936
- this.items = [];
2944
+ this.items = new UIStore();
2937
2945
  globalThis.__Ziko__.__UI__[this.cache.name]?globalThis.__Ziko__.__UI__[this.cache.name]?.push(this):globalThis.__Ziko__.__UI__[this.cache.name]=[this];
2938
- element && globalThis.__Ziko__.__Config__.default.render && this?.render?.();
2946
+ element && render && this?.render?.();
2939
2947
  if(
2940
2948
  // globalThis.__Ziko__.__Config__.renderingMode !== "spa"
2941
2949
  // &&
@@ -2944,9 +2952,9 @@ class UIElement extends UINode{
2944
2952
  this.isInteractive()
2945
2953
  ){
2946
2954
  this.setAttr("ziko-hydration-index", globalThis.__Ziko__.__HYDRATION__.index);
2947
- globalThis.__Ziko__.__HYDRATION__.map.set(globalThis.__Ziko__.__HYDRATION__.index, ()=>this);
2948
- globalThis.__Ziko__.__HYDRATION__.increment();
2955
+ globalThis.__Ziko__.__HYDRATION__.register(() => this);
2949
2956
  }
2957
+ globalThis.__Ziko__.__UI__.push(this);
2950
2958
  }
2951
2959
  get element(){
2952
2960
  return this.cache.element;
@@ -2997,14 +3005,13 @@ class UIElement extends UINode{
2997
3005
  return this.element.getBoundingClientRect().left;
2998
3006
  }
2999
3007
  clone(render=false) {
3000
- const UI = new this.constructor();
3001
- UI.__proto__=this.__proto__;
3002
- if(this.items.length){
3003
- const items = [...this.items].map(n=>n.clone());
3004
- UI.append(...items);
3005
- }
3006
- else UI.element=this.element.cloneNode(true);
3007
- return UI.render(render);
3008
+ // UI.__proto__=this.__proto__;
3009
+ // if(this.items.length){
3010
+ // const items = [...this.items].map(n=>n.clone());
3011
+ // UI.append(...items);
3012
+ // }
3013
+ // else UI.element=this.element.cloneNode(true);
3014
+ // return UI.render(render);
3008
3015
  }
3009
3016
  [Symbol.iterator]() {
3010
3017
  return this.items[Symbol.iterator]();
@@ -3023,14 +3030,14 @@ class UIElement extends UINode{
3023
3030
  this.cache.isFrozzen=freeze;
3024
3031
  return this;
3025
3032
  }
3026
- setTarget(tg) {
3027
- if(this.isBody) return ;
3028
- if (tg?.isZikoUIElement) tg = tg.element;
3029
- this.unrender();
3030
- this.target = tg;
3031
- this.render();
3032
- return this;
3033
- }
3033
+ // setTarget(tg) {
3034
+ // if(this.isBody) return ;
3035
+ // if (tg?.isZikoUIElement) tg = tg.element;
3036
+ // this.unrender();
3037
+ // this.target = tg;
3038
+ // this.render();
3039
+ // return this;
3040
+ // }
3034
3041
  describe(label){
3035
3042
  if(label)this.setAttr("aria-label",label);
3036
3043
  }