ziko 0.0.17 → 0.0.19

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 (267) hide show
  1. package/README.md +91 -200
  2. package/package.json +17 -46
  3. package/src/__helpers__/index.js +61 -61
  4. package/src/app/json-style-sheet.js +64 -64
  5. package/src/app/spa-file-based-routing.js +0 -1
  6. package/src/app/ziko-app.js +38 -38
  7. package/src/data/api/fetchdom.js +13 -13
  8. package/src/data/api/index.js +3 -3
  9. package/src/data/api/preload.js +10 -10
  10. package/src/data/converter/adoc.js +130 -130
  11. package/src/data/converter/array.js +42 -42
  12. package/src/data/converter/canvas.js +24 -24
  13. package/src/data/converter/css.js +36 -36
  14. package/src/data/converter/csv.js +32 -32
  15. package/src/data/converter/idea.txt +9 -9
  16. package/src/data/converter/index.js +36 -36
  17. package/src/data/converter/json.js +80 -80
  18. package/src/data/converter/markdown.js +95 -95
  19. package/src/data/converter/object.js +69 -69
  20. package/src/data/converter/svg.js +10 -10
  21. package/src/data/datatypes/color.js +11 -0
  22. package/src/data/index.js +16 -16
  23. package/src/data/parser/xml.js +46 -46
  24. package/src/data/string/patterns.js +11 -11
  25. package/src/data/string/string.js +169 -169
  26. package/src/global/{themes → _themes}/dark.js +884 -884
  27. package/src/global/{themes → _themes}/index.js +10 -10
  28. package/src/global/{themes → _themes}/light.js +254 -254
  29. package/src/global/app/index.js +45 -45
  30. package/src/global/component/index.js +38 -38
  31. package/src/global/globals/index.js +20 -20
  32. package/src/global/index.js +3 -11
  33. package/src/global/params/index.js +39 -39
  34. package/src/global/router/index.js +66 -66
  35. package/src/global/seo/index.js +42 -42
  36. package/src/graphics/canvas/canvas.js +176 -189
  37. package/src/graphics/canvas/elements/Basic/arc.js +42 -42
  38. package/src/graphics/canvas/elements/Basic/line.js +25 -25
  39. package/src/graphics/canvas/elements/Basic/points.js +47 -47
  40. package/src/graphics/canvas/elements/Basic/polygon.js +6 -6
  41. package/src/graphics/canvas/elements/Basic/rect.js +45 -45
  42. package/src/graphics/canvas/elements/Chart/scatter.js +2 -2
  43. package/src/graphics/canvas/elements/Element.js +114 -114
  44. package/src/graphics/canvas/elements/index.js +13 -13
  45. package/src/graphics/canvas/index.js +2 -15
  46. package/src/graphics/canvas/utils/color.js +7 -7
  47. package/src/graphics/canvas/utils/floodFill.js +57 -57
  48. package/src/graphics/index.js +10 -69
  49. package/src/graphics/svg/Elements/Basic/circle.js +29 -26
  50. package/src/graphics/svg/Elements/Basic/ellipse.js +24 -21
  51. package/src/graphics/svg/Elements/Basic/{foreignObject.js → foreign-object.js} +36 -33
  52. package/src/graphics/svg/Elements/Basic/groupe.js +32 -29
  53. package/src/graphics/svg/Elements/Basic/image.js +36 -33
  54. package/src/graphics/svg/Elements/Basic/index.js +11 -0
  55. package/src/graphics/svg/Elements/Basic/line.js +32 -29
  56. package/src/graphics/svg/Elements/Basic/link.js +33 -30
  57. package/src/graphics/svg/Elements/Basic/path.js +62 -59
  58. package/src/graphics/svg/Elements/Basic/polygon.js +31 -31
  59. package/src/graphics/svg/Elements/Basic/polyline.js +7 -4
  60. package/src/graphics/svg/Elements/Basic/rect.js +46 -43
  61. package/src/graphics/svg/Elements/Basic/text.js +29 -26
  62. package/src/graphics/svg/Elements/Derived/grid.js +8 -8
  63. package/src/graphics/svg/Elements/Derived/index.js +1 -0
  64. package/src/graphics/svg/Elements/index.js +2 -14
  65. package/src/graphics/svg/Elements/{ZikoSvgElement.js → ziko-svg-element.js} +48 -46
  66. package/src/graphics/svg/index.js +2 -2
  67. package/src/graphics/svg/svg.js +68 -114
  68. package/src/index.js +85 -84
  69. package/src/math/calculus/index.js +2 -2
  70. package/src/math/calculus/special-functions/bessel.js +30 -30
  71. package/src/math/calculus/special-functions/beta.js +37 -37
  72. package/src/math/calculus/special-functions/gamma.js +29 -29
  73. package/src/math/calculus/special-functions/index.js +4 -4
  74. package/src/math/complex/index.js +202 -202
  75. package/src/math/const.js +2 -2
  76. package/src/math/discret/Combinaison/index.js +33 -33
  77. package/src/math/discret/Conversion/index.js +85 -85
  78. package/src/math/discret/Logic/index.js +45 -45
  79. package/src/math/discret/Permutation/index.js +30 -30
  80. package/src/math/discret/Set/index.js +1 -1
  81. package/src/math/discret/Set/power-set.js +14 -14
  82. package/src/math/discret/Set/sub-set.js +10 -10
  83. package/src/math/discret/index.js +11 -11
  84. package/src/math/functions/index.js +161 -161
  85. package/src/math/index.js +32 -32
  86. package/src/math/matrix/Decomposition.js +90 -90
  87. package/src/math/matrix/LinearSystem.js +9 -9
  88. package/src/math/matrix/Matrix.js +716 -716
  89. package/src/math/matrix/index.js +2 -2
  90. package/src/math/random/index.js +172 -172
  91. package/src/math/signal/__np.py.txt +39 -39
  92. package/src/math/signal/conv.js +174 -174
  93. package/src/math/signal/fft.js +54 -54
  94. package/src/math/signal/filter.js +38 -38
  95. package/src/math/signal/functions.js +145 -145
  96. package/src/math/signal/index.js +109 -109
  97. package/src/math/statistics/Functions/index.js +99 -99
  98. package/src/math/statistics/index.js +15 -15
  99. package/src/math/utils/arithmetic.js +138 -138
  100. package/src/math/utils/checkers.js +29 -29
  101. package/src/math/utils/conversions.js +19 -19
  102. package/src/math/utils/discret.js +51 -51
  103. package/src/math/utils/index.js +101 -101
  104. package/src/math/utils/mapfun.js +49 -49
  105. package/src/reactivity/events/Input.js +61 -61
  106. package/src/reactivity/events/Pointer.js +231 -231
  107. package/src/reactivity/events/ZikoEvent.js +90 -90
  108. package/src/reactivity/events/click.js +59 -59
  109. package/src/reactivity/events/clipboard.js +87 -87
  110. package/src/reactivity/events/custom-event.js +56 -56
  111. package/src/reactivity/events/drag.js +136 -136
  112. package/src/reactivity/events/focus.js +58 -58
  113. package/src/reactivity/events/hash.js +46 -46
  114. package/src/reactivity/events/index.js +12 -63
  115. package/src/reactivity/events/key.js +101 -101
  116. package/src/reactivity/events/mouse.js +232 -232
  117. package/src/reactivity/events/swipe.js +149 -149
  118. package/src/reactivity/events/wheel.js +46 -46
  119. package/src/reactivity/hooks/{contexte → Contexte}/useSuccesifKeys.js +13 -13
  120. package/src/reactivity/hooks/{decorators → Decorators}/index.js +6 -6
  121. package/src/reactivity/hooks/{decorators → Decorators}/time.js +16 -16
  122. package/src/reactivity/hooks/{decorators → Decorators}/type.js +87 -87
  123. package/src/reactivity/hooks/{head/useCssText.js → Head/_useCssText.js} +20 -20
  124. package/src/reactivity/hooks/{head → Head}/index.js +5 -5
  125. package/src/reactivity/hooks/{head → Head}/useFavIcon.js +37 -37
  126. package/src/reactivity/hooks/{head → Head}/useHead.js +27 -27
  127. package/src/reactivity/hooks/{head → Head}/useMeta.js +52 -52
  128. package/src/reactivity/hooks/{head → Head}/useTitle.js +29 -29
  129. package/src/reactivity/hooks/{interactions/useBluetooth.js → Interactions/_useBluetooth.js} +47 -47
  130. package/src/reactivity/hooks/{interactions → Interactions}/index.js +4 -4
  131. package/src/reactivity/hooks/{interactions → Interactions}/useChannel.js +49 -49
  132. package/src/reactivity/hooks/{interactions → Interactions}/useEventEmmiter.js +63 -63
  133. package/src/reactivity/hooks/{interactions → Interactions}/useThread.js +43 -43
  134. package/src/reactivity/hooks/Sensors/index.js +2 -0
  135. package/src/reactivity/hooks/{sensors → Sensors}/useBattery.js +35 -35
  136. package/src/reactivity/hooks/{sensors → Sensors}/useGeolocation.js +16 -16
  137. package/src/reactivity/hooks/{storage → Storage}/useStorage.js +72 -72
  138. package/src/reactivity/hooks/{ui → UI}/index.js +6 -5
  139. package/src/reactivity/hooks/{ui → UI}/useMediaQuery.js +43 -43
  140. package/src/reactivity/hooks/UI/useRoot.js +39 -0
  141. package/src/reactivity/hooks/{ui → UI}/useStyle.js +79 -79
  142. package/src/reactivity/hooks/{ui → UI}/useTheme.js +61 -61
  143. package/src/reactivity/hooks/index.js +8 -91
  144. package/src/reactivity/hooks/todo.md +26 -26
  145. package/src/reactivity/idea +1 -1
  146. package/src/reactivity/index.js +11 -11
  147. package/src/reactivity/observer/attributes.js +28 -28
  148. package/src/reactivity/observer/children.js +36 -36
  149. package/src/reactivity/observer/index.js +6 -6
  150. package/src/reactivity/observer/intersection.js +43 -43
  151. package/src/reactivity/observer/mutation.js +112 -112
  152. package/src/reactivity/observer/resize.js +46 -46
  153. package/src/reactivity/observer/screen.js +44 -44
  154. package/src/reactivity/observer/screen.js.txt +83 -83
  155. package/src/reactivity/observer/screen.txt +12 -12
  156. package/src/time/animation.js +75 -75
  157. package/src/time/index.js +11 -11
  158. package/src/time/loop.js +87 -87
  159. package/src/time/utils/decorators.js +16 -16
  160. package/src/time/utils/ease.js +143 -143
  161. package/src/time/utils/index.js +17 -17
  162. package/src/time/utils/performance.js +15 -15
  163. package/src/time/utils/ui.js +25 -25
  164. package/src/types.js +73 -73
  165. package/src/ui/elements/derived/accordion/accordion.js +42 -42
  166. package/src/ui/elements/derived/accordion/collapsible.js +82 -82
  167. package/src/ui/elements/derived/accordion/index.js +1 -1
  168. package/src/ui/elements/derived/alert/alert.js +80 -80
  169. package/src/ui/elements/derived/alert/palette.js +51 -51
  170. package/src/ui/elements/derived/carousel/index.js +50 -50
  171. package/src/ui/elements/derived/code-note/SubElements.js.txt +104 -104
  172. package/src/ui/elements/derived/code-note/code-cell.js +194 -194
  173. package/src/ui/elements/derived/code-note/code-note.js +71 -71
  174. package/src/ui/elements/derived/code-note/index.js +1 -1
  175. package/src/ui/elements/derived/code-note/sub-elements.js +66 -66
  176. package/src/ui/elements/derived/elements/Swipper.js +3 -3
  177. package/src/ui/elements/derived/elements/index.js +9 -9
  178. package/src/ui/elements/derived/flex/index.js +102 -102
  179. package/src/ui/elements/derived/grid/index.js +32 -32
  180. package/src/ui/elements/derived/index.js +11 -11
  181. package/src/ui/elements/derived/menu/menu3d.js +259 -259
  182. package/src/ui/elements/derived/modal/index.js +91 -91
  183. package/src/ui/elements/derived/pagination/breadcrumbs.js +53 -53
  184. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +111 -111
  185. package/src/ui/elements/derived/slider/hSlider.js +33 -33
  186. package/src/ui/elements/derived/slider/index.js +11 -11
  187. package/src/ui/elements/derived/slider/vSlider.js +26 -26
  188. package/src/ui/elements/derived/splitter/__ZikoUISplitter__.js +61 -61
  189. package/src/ui/elements/derived/splitter/hsplitter.js +39 -39
  190. package/src/ui/elements/derived/splitter/index.js +11 -11
  191. package/src/ui/elements/derived/splitter/vsplitter.js +39 -39
  192. package/src/ui/elements/derived/tabs/index.js +179 -179
  193. package/src/ui/elements/primitives/ZikoUIContainerElement.js +163 -126
  194. package/src/ui/elements/primitives/ZikoUIElement.js +492 -492
  195. package/src/ui/elements/primitives/embaded/html.js +19 -19
  196. package/src/ui/elements/primitives/embaded/index.js +3 -3
  197. package/src/ui/elements/primitives/embaded/pdf.js +16 -16
  198. package/src/ui/elements/primitives/embaded/youtube.js +23 -23
  199. package/src/ui/elements/primitives/index.js +7 -7
  200. package/src/ui/elements/primitives/io/Form/index.js +41 -41
  201. package/src/ui/elements/primitives/io/Form/index.js.txt +104 -104
  202. package/src/ui/elements/primitives/io/Inputs/__helpers__.js +51 -51
  203. package/src/ui/elements/primitives/io/Inputs/index.js +12 -12
  204. package/src/ui/elements/primitives/io/Inputs/input/index.js +98 -98
  205. package/src/ui/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  206. package/src/ui/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  207. package/src/ui/elements/primitives/io/Inputs/input-color/index.js +15 -15
  208. package/src/ui/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  209. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  210. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  211. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  212. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +1 -1
  213. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  214. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  215. package/src/ui/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  216. package/src/ui/elements/primitives/io/Inputs/input-number/index.js +36 -36
  217. package/src/ui/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  218. package/src/ui/elements/primitives/io/Inputs/input-search/index.js +45 -45
  219. package/src/ui/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  220. package/src/ui/elements/primitives/io/Select/index.js +19 -19
  221. package/src/ui/elements/primitives/io/Textarea/index.js +17 -17
  222. package/src/ui/elements/primitives/io/index.js +3 -3
  223. package/src/ui/elements/primitives/list/index.js +138 -138
  224. package/src/ui/elements/primitives/media/Audio/index.js +16 -16
  225. package/src/ui/elements/primitives/media/Image/figure.js +18 -18
  226. package/src/ui/elements/primitives/media/Image/image.js +36 -36
  227. package/src/ui/elements/primitives/media/Image/index.js +1 -1
  228. package/src/ui/elements/primitives/media/Video/index.js +26 -26
  229. package/src/ui/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  230. package/src/ui/elements/primitives/media/index.js +2 -2
  231. package/src/ui/elements/primitives/misc/index.js +101 -101
  232. package/src/ui/elements/primitives/misc/xml-wrapper.js +3 -2
  233. package/src/ui/elements/primitives/semantic/index.js +81 -81
  234. package/src/ui/elements/primitives/table/elements.js +93 -93
  235. package/src/ui/elements/primitives/table/index.js +2 -2
  236. package/src/ui/elements/primitives/table/table.js +115 -115
  237. package/src/ui/elements/primitives/table/utils.js +11 -11
  238. package/src/ui/elements/primitives/text/__ZikoUIText__.js +71 -71
  239. package/src/ui/elements/primitives/text/heading.js +35 -35
  240. package/src/ui/elements/primitives/text/index.js +2 -2
  241. package/src/ui/elements/primitives/text/p.js +26 -26
  242. package/src/ui/elements/primitives/text/text.js +80 -80
  243. package/src/ui/index.js +37 -37
  244. package/src/ui/style/index.js +504 -515
  245. package/src/ui/utils/index.js +69 -69
  246. package/starter/bin/index.js +11 -11
  247. package/dist/ziko.cjs +0 -14018
  248. package/dist/ziko.js +0 -14028
  249. package/dist/ziko.min.js +0 -9
  250. package/dist/ziko.mjs +0 -13688
  251. package/src/graphics/canvas/elements/Groupe.js +0 -0
  252. package/src/graphics/canvas/elements/grid.js +0 -0
  253. package/src/graphics/canvas/filter/index.js +0 -0
  254. package/src/graphics/canvas/paint/index.js +0 -0
  255. package/src/reactivity/hooks/sensors/index.js +0 -2
  256. /package/src/reactivity/hooks/{contexte → Contexte}/index.js +0 -0
  257. /package/src/reactivity/hooks/{interactions → Interactions}/useSerial.js +0 -0
  258. /package/src/reactivity/hooks/{interactions → Interactions}/useUsb.js +0 -0
  259. /package/src/reactivity/hooks/{sensors → Sensors}/useCamera.js +0 -0
  260. /package/src/reactivity/hooks/{sensors → Sensors}/useMicro.js +0 -0
  261. /package/src/reactivity/hooks/{sensors → Sensors}/useOrientation.js +0 -0
  262. /package/src/reactivity/hooks/{storage → Storage}/index.js +0 -0
  263. /package/src/reactivity/hooks/{storage → Storage}/useCookie.js +0 -0
  264. /package/src/reactivity/hooks/{storage → Storage}/useIndexedDb.js +0 -0
  265. /package/src/reactivity/hooks/{ui → UI}/useCssLink.js +0 -0
  266. /package/src/reactivity/hooks/{ui → UI}/useLinearGradient.js +0 -0
  267. /package/src/reactivity/hooks/{ui → UI}/useRadialGradient.js +0 -0
@@ -1,64 +1,64 @@
1
- class ZikoUseEventEmitter {
2
- constructor() {
3
- this.events = {};
4
- this.maxListeners = 10;
5
- }
6
- on(event, listener) {
7
- if (!this.events[event]) {
8
- this.events[event] = [];
9
- }
10
- this.events[event].push(listener);
11
- if (this.events[event].length > this.maxListeners) {
12
- console.warn(`Warning: Possible memory leak. Event '${event}' has more than ${this.maxListeners} listeners.`);
13
- }
14
- }
15
- once(event, listener) {
16
- const onceListener = (data) => {
17
- this.off(event, onceListener); // Remove the listener after it's been called
18
- listener(data);
19
- };
20
- this.on(event, onceListener);
21
- }
22
-
23
- off(event, listener) {
24
- const listeners = this.events[event];
25
- if (listeners) {
26
- const index = listeners.indexOf(listener);
27
- if (index !== -1) {
28
- listeners.splice(index, 1);
29
- }
30
- }
31
- }
32
-
33
- emit(event, data) {
34
- const listeners = this.events[event];
35
- if (listeners) {
36
- listeners.forEach(listener => {
37
- listener(data);
38
- });
39
- }
40
- }
41
-
42
- clear(event) {
43
- if (event) {
44
- delete this.events[event];
45
- } else {
46
- this.events = {};
47
- }
48
- }
49
-
50
- setMaxListener(event, max) {
51
- this.maxListeners = max;
52
- }
53
-
54
- removeAllListeners(event) {
55
- if (event) {
56
- this.events[event] = [];
57
- } else {
58
- this.events = {};
59
- }
60
- }
61
- }
62
-
63
- const useEventEmitter=()=>new ZikoUseEventEmitter()
1
+ class ZikoUseEventEmitter {
2
+ constructor() {
3
+ this.events = {};
4
+ this.maxListeners = 10;
5
+ }
6
+ on(event, listener) {
7
+ if (!this.events[event]) {
8
+ this.events[event] = [];
9
+ }
10
+ this.events[event].push(listener);
11
+ if (this.events[event].length > this.maxListeners) {
12
+ console.warn(`Warning: Possible memory leak. Event '${event}' has more than ${this.maxListeners} listeners.`);
13
+ }
14
+ }
15
+ once(event, listener) {
16
+ const onceListener = (data) => {
17
+ this.off(event, onceListener); // Remove the listener after it's been called
18
+ listener(data);
19
+ };
20
+ this.on(event, onceListener);
21
+ }
22
+
23
+ off(event, listener) {
24
+ const listeners = this.events[event];
25
+ if (listeners) {
26
+ const index = listeners.indexOf(listener);
27
+ if (index !== -1) {
28
+ listeners.splice(index, 1);
29
+ }
30
+ }
31
+ }
32
+
33
+ emit(event, data) {
34
+ const listeners = this.events[event];
35
+ if (listeners) {
36
+ listeners.forEach(listener => {
37
+ listener(data);
38
+ });
39
+ }
40
+ }
41
+
42
+ clear(event) {
43
+ if (event) {
44
+ delete this.events[event];
45
+ } else {
46
+ this.events = {};
47
+ }
48
+ }
49
+
50
+ setMaxListener(event, max) {
51
+ this.maxListeners = max;
52
+ }
53
+
54
+ removeAllListeners(event) {
55
+ if (event) {
56
+ this.events[event] = [];
57
+ } else {
58
+ this.events = {};
59
+ }
60
+ }
61
+ }
62
+
63
+ const useEventEmitter=()=>new ZikoUseEventEmitter()
64
64
  export{useEventEmitter}
@@ -1,44 +1,44 @@
1
- class ZikoUseThreed {
2
- #workerContent;
3
- constructor() {
4
- this.#workerContent = (
5
- function (msg) {
6
- try {
7
- const func = new Function("return " + msg.data.fun)();
8
- let result = func();
9
- postMessage({ result });
10
- } catch (error) {
11
- postMessage({ error: error.message });
12
- } finally {
13
- if (msg.data.close) self.close();
14
- }
15
- }
16
- ).toString();
17
- this.blob = new Blob(["this.onmessage = " + this.#workerContent], { type: "text/javascript" });
18
- this.worker = new Worker(window.URL.createObjectURL(this.blob));
19
- }
20
- call(func, callback, close = true) {
21
- this.worker.postMessage({
22
- fun: func.toString(),
23
- close
24
- });
25
- this.worker.onmessage = function (e) {
26
- if (e.data.error) {
27
- console.error(e.data.error);
28
- } else {
29
- callback(e.data.result);
30
- }
31
- };
32
- return this;
33
- }
34
- }
35
-
36
- const useThread = (func, callback , close) => {
37
- const T = new ZikoUseThreed();
38
- if (func) {
39
- T.call(func, callback , close);
40
- }
41
- return T;
42
- }
43
-
1
+ class ZikoUseThreed {
2
+ #workerContent;
3
+ constructor() {
4
+ this.#workerContent = (
5
+ function (msg) {
6
+ try {
7
+ const func = new Function("return " + msg.data.fun)();
8
+ let result = func();
9
+ postMessage({ result });
10
+ } catch (error) {
11
+ postMessage({ error: error.message });
12
+ } finally {
13
+ if (msg.data.close) self.close();
14
+ }
15
+ }
16
+ ).toString();
17
+ this.blob = new Blob(["this.onmessage = " + this.#workerContent], { type: "text/javascript" });
18
+ this.worker = new Worker(window.URL.createObjectURL(this.blob));
19
+ }
20
+ call(func, callback, close = true) {
21
+ this.worker.postMessage({
22
+ fun: func.toString(),
23
+ close
24
+ });
25
+ this.worker.onmessage = function (e) {
26
+ if (e.data.error) {
27
+ console.error(e.data.error);
28
+ } else {
29
+ callback(e.data.result);
30
+ }
31
+ };
32
+ return this;
33
+ }
34
+ }
35
+
36
+ const useThread = (func, callback , close) => {
37
+ const T = new ZikoUseThreed();
38
+ if (func) {
39
+ T.call(func, callback , close);
40
+ }
41
+ return T;
42
+ }
43
+
44
44
  export { useThread };
@@ -0,0 +1,2 @@
1
+ export * from "./useBattery";
2
+ export * from "./useGeolocation"
@@ -1,36 +1,36 @@
1
- class ZikoUseBattery{
2
- constructor(){
3
- if(this.isSupported)this.#init();
4
- }
5
- async #init(){
6
- this.__Battery__=await navigator.getBattery();
7
- }
8
- get isSupported(){
9
- return !!navigator.getBattery;
10
- }
11
- get current(){
12
- // Synchrouns Code
13
- const {
14
- level,
15
- charging,
16
- chargingTime,
17
- dischargingTime
18
- }=this.__Battery__;
19
- return{
20
- level,
21
- charging,
22
- chargingTime,
23
- dischargingTime
24
- }
25
- }
26
- onChargingChange(callback){
27
- this.__Battery__?.addEventListener("chargingchange",callback);
28
- return this;
29
- }
30
- onLevelChange(callback){
31
- this.__Battery__?.addEventListener("levelchange",callback);
32
- return this;
33
- }
34
- }
35
- const useBattery=()=>new ZikoUseBattery();
1
+ class ZikoUseBattery{
2
+ constructor(){
3
+ if(this.isSupported)this.#init();
4
+ }
5
+ async #init(){
6
+ this.__Battery__=await navigator.getBattery();
7
+ }
8
+ get isSupported(){
9
+ return !!navigator.getBattery;
10
+ }
11
+ get current(){
12
+ // Synchrouns Code
13
+ const {
14
+ level,
15
+ charging,
16
+ chargingTime,
17
+ dischargingTime
18
+ }=this.__Battery__;
19
+ return{
20
+ level,
21
+ charging,
22
+ chargingTime,
23
+ dischargingTime
24
+ }
25
+ }
26
+ onChargingChange(callback){
27
+ this.__Battery__?.addEventListener("chargingchange",callback);
28
+ return this;
29
+ }
30
+ onLevelChange(callback){
31
+ this.__Battery__?.addEventListener("levelchange",callback);
32
+ return this;
33
+ }
34
+ }
35
+ const useBattery=()=>new ZikoUseBattery();
36
36
  export{ useBattery }
@@ -1,17 +1,17 @@
1
- class ZikoUseGeolocation{
2
- constructor(){
3
- if(this.isSupported)this.#init();
4
- }
5
- async #init(){
6
- navigator.geolocation.getCurrentPosition(e=>this.__Geolocation__=e)
7
- }
8
- get isSupported(){
9
- return !!navigator.geolocation;
10
- }
11
- get current(){
12
- // Synchrouns Code
13
- return this.__Geolocation__;
14
- }
15
- }
16
- const useGeolocation=()=>new ZikoUseGeolocation();
1
+ class ZikoUseGeolocation{
2
+ constructor(){
3
+ if(this.isSupported)this.#init();
4
+ }
5
+ async #init(){
6
+ navigator.geolocation.getCurrentPosition(e=>this.__Geolocation__=e)
7
+ }
8
+ get isSupported(){
9
+ return !!navigator.geolocation;
10
+ }
11
+ get current(){
12
+ // Synchrouns Code
13
+ return this.__Geolocation__;
14
+ }
15
+ }
16
+ const useGeolocation=()=>new ZikoUseGeolocation();
17
17
  export{ useGeolocation }
@@ -1,73 +1,73 @@
1
- // To do : remove old items
2
- import { useChannel } from "../Interactions";
3
- class ZikoUseStorage{
4
- constructor(storage,globalKey,initialValue){
5
- this.cache={
6
- storage,
7
- globalKey,
8
- channel:useChannel(`Ziko:useStorage-${globalKey}`),
9
- oldItemKeys:new Set()
10
- }
11
- this.#init(initialValue);
12
- this.#maintain();
13
- }
14
- get items(){
15
- return JSON.parse(this.cache.storage[this.cache.globalKey]??null);
16
- }
17
- #maintain() {
18
- for(let i in this.items)Object.assign(this, { [[i]]: this.items[i] });
19
- }
20
- #init(initialValue){
21
- this.cache.channel=useChannel(`Ziko:useStorage-${this.cache.globalKey}`);
22
- this.cache.channel.on("Ziko-Storage-Updated",()=>this.#maintain());
23
- if(!initialValue)return;
24
- if(this.cache.storage[this.cache.globalKey]){
25
- Object.keys(this.items).forEach(key=>this.cache.oldItemKeys.add(key));
26
- console.group("Ziko:useStorage")
27
- console.warn(`Storage key '${this.cache.globalKey}' already exists. we will not overwrite it.`);
28
- console.info(`%cWe'll keep the existing data.`,"background-color:#2222dd; color:gold;");
29
- console.group("")
30
- }
31
- else this.set(initialValue);
32
- }
33
- set(data){
34
- this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(data));
35
- this.cache.channel.emit("Ziko-Storage-Updated",{});
36
- Object.keys(data).forEach(key=>this.cache.oldItemKeys.add(key));
37
- this.#maintain();
38
- return this
39
- }
40
- add(data){
41
- const db={
42
- ...this.items,
43
- ...data
44
- }
45
- this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(db));
46
- this.#maintain();
47
- return this;
48
- }
49
- remove(...keys){
50
- const db={...this.items};
51
- for(let i=0;i<keys.length;i++){
52
- delete db[keys[i]];
53
- delete this[keys[i]];
54
- }
55
- this.set(db);
56
- return this;
57
- }
58
- get(key){
59
- return this.items[key];
60
- }
61
- clear(){
62
- this.cache.storage.removeItem(this.cache.globalKey);
63
- this.#maintain();
64
- return this;
65
- }
66
-
67
- }
68
- const useLocaleStorage=(key,initialValue)=>new ZikoUseStorage(localStorage,key,initialValue);
69
- const useSessionStorage=(key,initialValue)=>new ZikoUseStorage(sessionStorage,key,initialValue);
70
- export{
71
- useLocaleStorage,
72
- useSessionStorage
1
+ // To do : remove old items
2
+ import { useChannel } from "../Interactions";
3
+ class ZikoUseStorage{
4
+ constructor(storage,globalKey,initialValue){
5
+ this.cache={
6
+ storage,
7
+ globalKey,
8
+ channel:useChannel(`Ziko:useStorage-${globalKey}`),
9
+ oldItemKeys:new Set()
10
+ }
11
+ this.#init(initialValue);
12
+ this.#maintain();
13
+ }
14
+ get items(){
15
+ return JSON.parse(this.cache.storage[this.cache.globalKey]??null);
16
+ }
17
+ #maintain() {
18
+ for(let i in this.items)Object.assign(this, { [[i]]: this.items[i] });
19
+ }
20
+ #init(initialValue){
21
+ this.cache.channel=useChannel(`Ziko:useStorage-${this.cache.globalKey}`);
22
+ this.cache.channel.on("Ziko-Storage-Updated",()=>this.#maintain());
23
+ if(!initialValue)return;
24
+ if(this.cache.storage[this.cache.globalKey]){
25
+ Object.keys(this.items).forEach(key=>this.cache.oldItemKeys.add(key));
26
+ console.group("Ziko:useStorage")
27
+ console.warn(`Storage key '${this.cache.globalKey}' already exists. we will not overwrite it.`);
28
+ console.info(`%cWe'll keep the existing data.`,"background-color:#2222dd; color:gold;");
29
+ console.group("")
30
+ }
31
+ else this.set(initialValue);
32
+ }
33
+ set(data){
34
+ this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(data));
35
+ this.cache.channel.emit("Ziko-Storage-Updated",{});
36
+ Object.keys(data).forEach(key=>this.cache.oldItemKeys.add(key));
37
+ this.#maintain();
38
+ return this
39
+ }
40
+ add(data){
41
+ const db={
42
+ ...this.items,
43
+ ...data
44
+ }
45
+ this.cache.storage.setItem(this.cache.globalKey,JSON.stringify(db));
46
+ this.#maintain();
47
+ return this;
48
+ }
49
+ remove(...keys){
50
+ const db={...this.items};
51
+ for(let i=0;i<keys.length;i++){
52
+ delete db[keys[i]];
53
+ delete this[keys[i]];
54
+ }
55
+ this.set(db);
56
+ return this;
57
+ }
58
+ get(key){
59
+ return this.items[key];
60
+ }
61
+ clear(){
62
+ this.cache.storage.removeItem(this.cache.globalKey);
63
+ this.#maintain();
64
+ return this;
65
+ }
66
+
67
+ }
68
+ const useLocaleStorage=(key,initialValue)=>new ZikoUseStorage(localStorage,key,initialValue);
69
+ const useSessionStorage=(key,initialValue)=>new ZikoUseStorage(sessionStorage,key,initialValue);
70
+ export{
71
+ useLocaleStorage,
72
+ useSessionStorage
73
73
  }
@@ -1,5 +1,6 @@
1
- export * from "./useStyle";
2
- export * from "./useTheme";
3
- // export * from "../Head/useTitle";
4
- // export * from "../Head/useFavIcon";
5
- export * from "./useMediaQuery"
1
+ export * from "./useStyle";
2
+ // export * from "./useTheme";
3
+ // export * from "../Head/useTitle";
4
+ // export * from "../Head/useFavIcon";
5
+ export * from "./useMediaQuery"
6
+ export * from "./useRoot.js"
@@ -1,43 +1,43 @@
1
- /*
2
- [
3
- {
4
- query: '(min-width: 600px)',
5
- callback: () => console.log(1)
6
- },
7
- {
8
- query: '(max-width: 300px)',
9
- callback: () => console.log(2)
10
- }
11
- ]
12
- */
13
- class ZikoUseMediaQuery {
14
- constructor(mediaQueryRules=[],fallback=()=>{}) {
15
- this.mediaQueryRules = mediaQueryRules;
16
- this.fallback = fallback;
17
- this.lastCalledCallback = null;
18
- this.init();
19
- }
20
-
21
- init() {
22
- this.mediaQueryRules.forEach(({ query, callback }) => {
23
- const mediaQueryList = globalThis.matchMedia(query);
24
- const checkMatches = () => {
25
- const anyMatch = this.mediaQueryRules.some(({ query }) => globalThis.matchMedia(query).matches);
26
- if (mediaQueryList.matches) {
27
- callback();
28
- this.lastCalledCallback = callback;
29
- } else if (!anyMatch && this.lastCalledCallback !== this.fallback) {
30
- this.fallback();
31
- this.lastCalledCallback = this.fallback;
32
- }
33
- };
34
- checkMatches()
35
- mediaQueryList.addListener(checkMatches);
36
- });
37
- }
38
- }
39
-
40
- const useMediaQuery = (mediaQueryRules,fallback) => new ZikoUseMediaQuery(mediaQueryRules,fallback);
41
- export {
42
- useMediaQuery
43
- };
1
+ /*
2
+ [
3
+ {
4
+ query: '(min-width: 600px)',
5
+ callback: () => console.log(1)
6
+ },
7
+ {
8
+ query: '(max-width: 300px)',
9
+ callback: () => console.log(2)
10
+ }
11
+ ]
12
+ */
13
+ class ZikoUseMediaQuery {
14
+ constructor(mediaQueryRules=[],fallback=()=>{}) {
15
+ this.mediaQueryRules = mediaQueryRules;
16
+ this.fallback = fallback;
17
+ this.lastCalledCallback = null;
18
+ this.init();
19
+ }
20
+
21
+ init() {
22
+ this.mediaQueryRules.forEach(({ query, callback }) => {
23
+ const mediaQueryList = globalThis.matchMedia(query);
24
+ const checkMatches = () => {
25
+ const anyMatch = this.mediaQueryRules.some(({ query }) => globalThis.matchMedia(query).matches);
26
+ if (mediaQueryList.matches) {
27
+ callback();
28
+ this.lastCalledCallback = callback;
29
+ } else if (!anyMatch && this.lastCalledCallback !== this.fallback) {
30
+ this.fallback();
31
+ this.lastCalledCallback = this.fallback;
32
+ }
33
+ };
34
+ checkMatches()
35
+ mediaQueryList.addListener(checkMatches);
36
+ });
37
+ }
38
+ }
39
+
40
+ const useMediaQuery = (mediaQueryRules,fallback) => new ZikoUseMediaQuery(mediaQueryRules,fallback);
41
+ export {
42
+ useMediaQuery
43
+ };
@@ -0,0 +1,39 @@
1
+ import { Str } from "../../../data"
2
+ class ZikoUseRoot{
3
+ constructor(props){
4
+ this.props={};
5
+ props && this.set(props)
6
+ }
7
+ get(prop){
8
+ return this.props[prop]
9
+ }
10
+ // getStaticValue(){
11
+ // return document.documentElement.style.getPropertyValue("--primary-col")
12
+ // }
13
+ set(props){
14
+ Object.entries(props).forEach(([key,value])=>this.#setOneProp(key, value));
15
+ return this;
16
+ }
17
+ #setOneProp(prop, value){
18
+ const CssProp = `--${Str.camel2hyphencase(prop)}`
19
+ document.documentElement.style.setProperty(CssProp,value);
20
+ Object.assign(this.props, {[prop]: `var(${CssProp})`})
21
+ Object.assign(this, {[prop] : `var(${CssProp})`})
22
+ }
23
+ }
24
+
25
+ const useRootValue=CssVar=>{
26
+ if(!CssVar.startsWith("--")) CssVar = `--${Str.camel2hyphencase(CssVar)}`
27
+ return `var(${CssVar})`
28
+ }
29
+ // const useRootStaticValue=CssVar=>{
30
+ // if(!CssVar.startsWith("--")) CssVar = `--${Str.camel2hyphencase(CssVar)}`
31
+ // return globalThis.document.documentElement.style.getPropertyValue(CssVar)
32
+ // }
33
+ const useRoot=(props)=>new ZikoUseRoot(props)
34
+ export{
35
+ ZikoUseRoot,
36
+ useRoot,
37
+ useRootValue,
38
+ // useRootStaticValue
39
+ }