ziko 0.0.11 → 0.0.13

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 (278) hide show
  1. package/README.md +6 -3
  2. package/dist/ziko.cjs +5640 -4532
  3. package/dist/ziko.js +5640 -4532
  4. package/dist/ziko.min.js +2 -2
  5. package/dist/ziko.mjs +5602 -4532
  6. package/package.json +39 -12
  7. package/src/__helpers__/index.js +41 -0
  8. package/src/app/accessibility/index.js +0 -0
  9. package/src/app/app.js +46 -0
  10. package/src/app/component/index.js +38 -0
  11. package/src/app/globals/index.js +20 -0
  12. package/src/app/index.js +12 -0
  13. package/src/app/params/index.js +40 -0
  14. package/src/app/router/index.js +67 -0
  15. package/src/app/seo/index.js +43 -0
  16. package/src/app/themes/dark.js +885 -0
  17. package/src/app/themes/index.js +11 -0
  18. package/src/app/themes/light.js +255 -0
  19. package/src/data/api/fetchdom.js +14 -0
  20. package/src/data/api/index.js +4 -0
  21. package/src/data/api/preload.js +11 -0
  22. package/src/data/converter/adoc.js +130 -0
  23. package/src/data/converter/array.js +43 -0
  24. package/src/data/converter/canvas.js +25 -0
  25. package/src/data/converter/csv.js +33 -0
  26. package/src/data/converter/idea.txt +10 -0
  27. package/src/data/converter/index.js +34 -0
  28. package/src/data/converter/json.js +80 -0
  29. package/src/data/converter/markdown.js +95 -0
  30. package/src/data/converter/object.js +70 -0
  31. package/src/data/converter/svg.js +11 -0
  32. package/src/data/decorators.js +0 -0
  33. package/src/data/index.js +74 -0
  34. package/src/data/parser/markdown.js +0 -0
  35. package/src/data/parser/xml.js +47 -0
  36. package/src/data/string/index.js +1 -0
  37. package/src/data/string/patterns.js +12 -0
  38. package/src/data/string/string.js +170 -0
  39. package/src/graphics/canvas/_canvas_offscreen +0 -0
  40. package/src/graphics/canvas/canvas.js +189 -0
  41. package/src/graphics/canvas/elements/Basic/arc.js +43 -0
  42. package/src/graphics/canvas/elements/Basic/image.js +0 -0
  43. package/src/graphics/canvas/elements/Basic/line.js +26 -0
  44. package/src/graphics/canvas/elements/Basic/path.js +0 -0
  45. package/src/graphics/canvas/elements/Basic/points.js +48 -0
  46. package/src/graphics/canvas/elements/Basic/polygon.js +7 -0
  47. package/src/graphics/canvas/elements/Basic/polyline.js +0 -0
  48. package/src/graphics/canvas/elements/Basic/rect.js +46 -0
  49. package/src/graphics/canvas/elements/Basic/text.js +0 -0
  50. package/src/graphics/canvas/elements/Chart/histogram.js +0 -0
  51. package/src/graphics/canvas/elements/Chart/plot.js +0 -0
  52. package/src/graphics/canvas/elements/Chart/scatter.js +2 -0
  53. package/src/graphics/canvas/elements/Chart/stem.js +0 -0
  54. package/src/graphics/canvas/elements/Element.js +115 -0
  55. package/src/graphics/canvas/elements/Groupe.js +0 -0
  56. package/src/graphics/canvas/elements/grid.js +0 -0
  57. package/src/graphics/canvas/elements/index.js +13 -0
  58. package/src/graphics/canvas/filter/index.js +0 -0
  59. package/src/graphics/canvas/index.js +15 -0
  60. package/src/graphics/canvas/paint/index.js +0 -0
  61. package/src/graphics/canvas/utils/color.js +8 -0
  62. package/src/graphics/canvas/utils/floodFill.js +58 -0
  63. package/src/graphics/index.js +69 -0
  64. package/src/graphics/svg/Elements/Basic/circle.js +26 -0
  65. package/src/graphics/svg/Elements/Basic/ellipse.js +21 -0
  66. package/src/graphics/svg/Elements/Basic/foreignObject.js +33 -0
  67. package/src/graphics/svg/Elements/Basic/groupe.js +29 -0
  68. package/src/graphics/svg/Elements/Basic/image.js +33 -0
  69. package/src/graphics/svg/Elements/Basic/line.js +29 -0
  70. package/src/graphics/svg/Elements/Basic/link.js +30 -0
  71. package/src/graphics/svg/Elements/Basic/path.js +59 -0
  72. package/src/graphics/svg/Elements/Basic/polygon.js +32 -0
  73. package/src/graphics/svg/Elements/Basic/polyline.js +4 -0
  74. package/src/graphics/svg/Elements/Basic/rect.js +43 -0
  75. package/src/graphics/svg/Elements/Basic/text.js +26 -0
  76. package/src/graphics/svg/Elements/Derived/grid.js +9 -0
  77. package/src/graphics/svg/Elements/ZikoSvgElement.js +46 -0
  78. package/src/graphics/svg/Elements/index.js +14 -0
  79. package/src/graphics/svg/index.js +2 -0
  80. package/src/graphics/svg/svg.js +115 -0
  81. package/src/index.js +88 -0
  82. package/src/math/absract.js +1 -0
  83. package/src/math/calculus/index.js +1 -0
  84. package/src/math/calculus/special-functions/bessel.js +31 -0
  85. package/src/math/calculus/special-functions/beta.js +38 -0
  86. package/src/math/calculus/special-functions/gamma.js +30 -0
  87. package/src/math/calculus/special-functions/index.js +4 -0
  88. package/src/math/complex/Fractals/julia.js +0 -0
  89. package/src/math/complex/index.js +203 -0
  90. package/src/math/const.js +3 -0
  91. package/src/math/discret/Combinaison/index.js +34 -0
  92. package/src/math/discret/Conversion/index.js +86 -0
  93. package/src/math/discret/Logic/index.js +46 -0
  94. package/src/math/discret/Permutation/index.js +31 -0
  95. package/src/math/discret/Set/index.js +2 -0
  96. package/src/math/discret/Set/power-set.js +15 -0
  97. package/src/math/discret/Set/sub-set.js +10 -0
  98. package/src/math/discret/index.js +23 -0
  99. package/src/math/functions/index.js +182 -0
  100. package/src/math/index.js +189 -0
  101. package/src/math/matrix/Decomposition.js +90 -0
  102. package/src/math/matrix/LinearSystem.js +10 -0
  103. package/src/math/matrix/Matrix.js +717 -0
  104. package/src/math/matrix/index.js +3 -0
  105. package/src/math/numeric/index.js +0 -0
  106. package/src/math/random/index.js +173 -0
  107. package/src/math/signal/__np.py.txt +40 -0
  108. package/src/math/signal/conv.js +175 -0
  109. package/src/math/signal/fft.js +55 -0
  110. package/src/math/signal/filter.js +39 -0
  111. package/src/math/signal/functions.js +146 -0
  112. package/src/math/signal/index.js +110 -0
  113. package/src/math/statistics/Functions/index.js +100 -0
  114. package/src/math/statistics/index.js +16 -0
  115. package/src/math/utils/arithmetic.js +139 -0
  116. package/src/math/utils/checkers.js +29 -0
  117. package/src/math/utils/comparaison.js +1 -0
  118. package/src/math/utils/conversions.js +19 -0
  119. package/src/math/utils/discret.js +51 -0
  120. package/src/math/utils/index.js +102 -0
  121. package/src/math/utils/mapfun.js +50 -0
  122. package/src/reactivity/events/Global/Click.js +56 -0
  123. package/src/reactivity/events/Global/Clipboard.js +84 -0
  124. package/src/reactivity/events/Global/CustomEvent.js +53 -0
  125. package/src/reactivity/events/Global/Drag.js +137 -0
  126. package/src/reactivity/events/Global/Focus.js +56 -0
  127. package/src/reactivity/events/Global/Key.js +104 -0
  128. package/src/reactivity/events/Global/Mouse.js +230 -0
  129. package/src/reactivity/events/Global/Pointer.js +234 -0
  130. package/src/reactivity/events/Global/Swipe.js +147 -0
  131. package/src/reactivity/events/Global/Touch.js +0 -0
  132. package/src/reactivity/events/Global/Wheel.js +44 -0
  133. package/src/reactivity/events/Partiel/Hash.js +44 -0
  134. package/src/reactivity/events/Partiel/Input.js +59 -0
  135. package/src/reactivity/events/Partiel/Media.js +1 -0
  136. package/src/reactivity/events/ZikoEvent.js +91 -0
  137. package/src/reactivity/events/index.js +63 -0
  138. package/src/reactivity/hooks/Contexte/index.js +1 -0
  139. package/src/reactivity/hooks/Contexte/useSuccesifKeys.js +14 -0
  140. package/src/reactivity/hooks/Decorators/index.js +6 -0
  141. package/src/reactivity/hooks/Decorators/time.js +17 -0
  142. package/src/reactivity/hooks/Decorators/type.js +88 -0
  143. package/src/reactivity/hooks/Interactions/index.js +4 -0
  144. package/src/reactivity/hooks/Interactions/useBluetooth.js +48 -0
  145. package/src/reactivity/hooks/Interactions/useChannel.js +50 -0
  146. package/src/reactivity/hooks/Interactions/useEventEmmiter.js +64 -0
  147. package/src/reactivity/hooks/Interactions/useSerial.js +0 -0
  148. package/src/reactivity/hooks/Interactions/useThread.js +44 -0
  149. package/src/reactivity/hooks/Interactions/useUsb.js +0 -0
  150. package/src/reactivity/hooks/Sensors/index.js +2 -0
  151. package/src/reactivity/hooks/Sensors/useBattery.js +36 -0
  152. package/src/reactivity/hooks/Sensors/useCamera.js +0 -0
  153. package/src/reactivity/hooks/Sensors/useGeolocation.js +17 -0
  154. package/src/reactivity/hooks/Sensors/useMicro.js +0 -0
  155. package/src/reactivity/hooks/Sensors/useOrientation.js +0 -0
  156. package/src/reactivity/hooks/Storage/index.js +1 -0
  157. package/src/reactivity/hooks/Storage/useCookie.js +0 -0
  158. package/src/reactivity/hooks/Storage/useIndexedDb.js +0 -0
  159. package/src/reactivity/hooks/Storage/useStorage.js +73 -0
  160. package/src/reactivity/hooks/UI/index.js +5 -0
  161. package/src/reactivity/hooks/UI/useCssLink.js +0 -0
  162. package/src/reactivity/hooks/UI/useCssText.js +21 -0
  163. package/src/reactivity/hooks/UI/useFavIcon.js +38 -0
  164. package/src/reactivity/hooks/UI/useLinearGradient.js +0 -0
  165. package/src/reactivity/hooks/UI/useMediaQuery.js +43 -0
  166. package/src/reactivity/hooks/UI/useRadialGradient.js +0 -0
  167. package/src/reactivity/hooks/UI/useStyle.js +79 -0
  168. package/src/reactivity/hooks/UI/useTheme.js +62 -0
  169. package/src/reactivity/hooks/UI/useTitle.js +30 -0
  170. package/src/reactivity/hooks/index.js +85 -0
  171. package/src/reactivity/hooks/todo.md +26 -0
  172. package/src/reactivity/idea +2 -0
  173. package/src/reactivity/index.js +22 -0
  174. package/src/reactivity/observer/attributes.js +28 -0
  175. package/src/reactivity/observer/children.js +37 -0
  176. package/src/reactivity/observer/index.js +44 -0
  177. package/src/reactivity/observer/intersection.js +44 -0
  178. package/src/reactivity/observer/mutation.js +113 -0
  179. package/src/reactivity/observer/resize.js +47 -0
  180. package/src/reactivity/observer/screen.js +45 -0
  181. package/src/reactivity/observer/screen.js.txt +84 -0
  182. package/src/reactivity/observer/screen.txt +13 -0
  183. package/src/time/animation.js +76 -0
  184. package/src/time/index.js +54 -0
  185. package/src/time/loop.js +87 -0
  186. package/src/time/utils/decorators.js +17 -0
  187. package/src/time/utils/ease.js +144 -0
  188. package/src/time/utils/index.js +18 -0
  189. package/src/time/utils/performance.js +16 -0
  190. package/src/time/utils/ui.js +26 -0
  191. package/src/user-interface/elements/derived/Flex.js +103 -0
  192. package/src/user-interface/elements/derived/Grid.js +33 -0
  193. package/src/user-interface/elements/derived/elements/Notification.js +0 -0
  194. package/src/user-interface/elements/derived/elements/Popover.js +0 -0
  195. package/src/user-interface/elements/derived/elements/Popup.js +0 -0
  196. package/src/user-interface/elements/derived/elements/Swipper.js +4 -0
  197. package/src/user-interface/elements/derived/elements/Timeline.js +0 -0
  198. package/src/user-interface/elements/derived/elements/Toast.js +0 -0
  199. package/src/user-interface/elements/derived/elements/Treeview.js +0 -0
  200. package/src/user-interface/elements/derived/elements/accordion/accordion.js +45 -0
  201. package/src/user-interface/elements/derived/elements/accordion/collapsible.js +82 -0
  202. package/src/user-interface/elements/derived/elements/accordion/index.js +2 -0
  203. package/src/user-interface/elements/derived/elements/alert/alert.js +80 -0
  204. package/src/user-interface/elements/derived/elements/alert/index.js +1 -0
  205. package/src/user-interface/elements/derived/elements/alert/palette.js +52 -0
  206. package/src/user-interface/elements/derived/elements/carousel/index.js +50 -0
  207. package/src/user-interface/elements/derived/elements/code-note/SubElements.js.txt +105 -0
  208. package/src/user-interface/elements/derived/elements/code-note/code-cell.js +195 -0
  209. package/src/user-interface/elements/derived/elements/code-note/code-note.js +72 -0
  210. package/src/user-interface/elements/derived/elements/code-note/index.js +2 -0
  211. package/src/user-interface/elements/derived/elements/code-note/sub-elements.js +67 -0
  212. package/src/user-interface/elements/derived/elements/columns.js +1 -0
  213. package/src/user-interface/elements/derived/elements/fab.js +0 -0
  214. package/src/user-interface/elements/derived/elements/index.js +9 -0
  215. package/src/user-interface/elements/derived/elements/menu/index.js +1 -0
  216. package/src/user-interface/elements/derived/elements/menu/menu3d.js +260 -0
  217. package/src/user-interface/elements/derived/elements/modal/index.js +92 -0
  218. package/src/user-interface/elements/derived/elements/pagination/breadcrumbs.js +54 -0
  219. package/src/user-interface/elements/derived/elements/pagination/index.js +1 -0
  220. package/src/user-interface/elements/derived/elements/splitter/__ZikoUISplitter__.js +62 -0
  221. package/src/user-interface/elements/derived/elements/splitter/hsplitter.js +40 -0
  222. package/src/user-interface/elements/derived/elements/splitter/index.js +2 -0
  223. package/src/user-interface/elements/derived/elements/splitter/vsplitter.js +40 -0
  224. package/src/user-interface/elements/derived/elements/tabs/index.js +180 -0
  225. package/src/user-interface/elements/derived/index.js +3 -0
  226. package/src/user-interface/elements/primitives/ZikoUIContainerElement.js +127 -0
  227. package/src/user-interface/elements/primitives/ZikoUIElement.js +478 -0
  228. package/src/user-interface/elements/primitives/embaded/index.js +1 -0
  229. package/src/user-interface/elements/primitives/index.js +8 -0
  230. package/src/user-interface/elements/primitives/io/Form/index.js +42 -0
  231. package/src/user-interface/elements/primitives/io/Form/index.js.txt +104 -0
  232. package/src/user-interface/elements/primitives/io/Inputs/__helpers__.js +52 -0
  233. package/src/user-interface/elements/primitives/io/Inputs/index.js +12 -0
  234. package/src/user-interface/elements/primitives/io/Inputs/input/index.js +98 -0
  235. package/src/user-interface/elements/primitives/io/Inputs/input-camera/index.js +26 -0
  236. package/src/user-interface/elements/primitives/io/Inputs/input-checkbox/index.js +26 -0
  237. package/src/user-interface/elements/primitives/io/Inputs/input-color/index.js +16 -0
  238. package/src/user-interface/elements/primitives/io/Inputs/input-date-time/index.js +3 -0
  239. package/src/user-interface/elements/primitives/io/Inputs/input-date-time/input-date-time.js +14 -0
  240. package/src/user-interface/elements/primitives/io/Inputs/input-date-time/input-date.js +14 -0
  241. package/src/user-interface/elements/primitives/io/Inputs/input-date-time/input-time.js +14 -0
  242. package/src/user-interface/elements/primitives/io/Inputs/input-email-password/index.js +2 -0
  243. package/src/user-interface/elements/primitives/io/Inputs/input-email-password/input-email.js +15 -0
  244. package/src/user-interface/elements/primitives/io/Inputs/input-email-password/input-password.js +14 -0
  245. package/src/user-interface/elements/primitives/io/Inputs/input-file/index.js +1 -0
  246. package/src/user-interface/elements/primitives/io/Inputs/input-file/input-file.js +0 -0
  247. package/src/user-interface/elements/primitives/io/Inputs/input-file/input-image.js +43 -0
  248. package/src/user-interface/elements/primitives/io/Inputs/input-number/index.js +37 -0
  249. package/src/user-interface/elements/primitives/io/Inputs/input-radio/index.js +26 -0
  250. package/src/user-interface/elements/primitives/io/Inputs/input-search/index.js +45 -0
  251. package/src/user-interface/elements/primitives/io/Inputs/input-slider/index.js +34 -0
  252. package/src/user-interface/elements/primitives/io/Select/index.js +20 -0
  253. package/src/user-interface/elements/primitives/io/Textarea/index.js +18 -0
  254. package/src/user-interface/elements/primitives/io/index.js +4 -0
  255. package/src/user-interface/elements/primitives/list/elements.js +0 -0
  256. package/src/user-interface/elements/primitives/list/index.js +139 -0
  257. package/src/user-interface/elements/primitives/media/Audio/index.js +17 -0
  258. package/src/user-interface/elements/primitives/media/Image/figure.js +19 -0
  259. package/src/user-interface/elements/primitives/media/Image/image.js +36 -0
  260. package/src/user-interface/elements/primitives/media/Image/index.js +2 -0
  261. package/src/user-interface/elements/primitives/media/Video/index.js +27 -0
  262. package/src/user-interface/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +47 -0
  263. package/src/user-interface/elements/primitives/media/index.js +3 -0
  264. package/src/user-interface/elements/primitives/misc/index.js +99 -0
  265. package/src/user-interface/elements/primitives/semantic/index.js +82 -0
  266. package/src/user-interface/elements/primitives/table/elements.js +94 -0
  267. package/src/user-interface/elements/primitives/table/index.js +3 -0
  268. package/src/user-interface/elements/primitives/table/table.js +115 -0
  269. package/src/user-interface/elements/primitives/table/utils.js +12 -0
  270. package/src/user-interface/elements/primitives/text/__ZikoUIText__.js +71 -0
  271. package/src/user-interface/elements/primitives/text/heading.js +36 -0
  272. package/src/user-interface/elements/primitives/text/index.js +3 -0
  273. package/src/user-interface/elements/primitives/text/p.js +26 -0
  274. package/src/user-interface/elements/primitives/text/pre.js +0 -0
  275. package/src/user-interface/elements/primitives/text/text.js +81 -0
  276. package/src/user-interface/index.js +188 -0
  277. package/src/user-interface/style/index.js +510 -0
  278. package/src/user-interface/utils/index.js +70 -0
@@ -0,0 +1,510 @@
1
+ import { addSuffixeToNumber } from "../utils/index.js";
2
+ import { Matrix,cos,sin} from "../../math/index.js";
3
+ class ZikoUIElementStyle{
4
+ constructor(defaultStyle={}){
5
+ this.target=null;
6
+ this.styles=new Map(
7
+ [["default",defaultStyle]]
8
+ );
9
+ this.cache={
10
+ isHidden:false,
11
+ isFaddedOut:false,
12
+ transformation:{
13
+ Flip:[0,0,0],
14
+ matrix:new Matrix([
15
+ [1,0,0,0],
16
+ [0,1,0,0],
17
+ [0,0,1,0],
18
+ [0,0,0,1]
19
+ ])
20
+ }
21
+ }
22
+ }
23
+ // style(styles ,{target = "parent", maskVector = null } = {}){
24
+ // if (target === "parent" || target === 0)style(this.target.element, styles);
25
+ // else if(target === "parent" || target === 0){
26
+ // if (maskVector) {
27
+ // this.items.map((n, i) => maskVector[i] == 1 && n.style(styles));
28
+ // }
29
+ // else this.items.map((n) => n.style(styles));
30
+ // }
31
+ // return this;
32
+ // }
33
+ style(styles){
34
+ if(this?.target?.element?.style)Object.assign(this?.target?.element?.style, styles);
35
+ return this;
36
+ }
37
+ linkTo(target){
38
+ this.target=target;
39
+ return this;
40
+ }
41
+ use(name="default"){
42
+ this.style(this.styles.get(name));
43
+ return this;
44
+ }
45
+ update(name,styles){
46
+ const old=this.styles.get(name);
47
+ old?this.styles.set(name,Object.assign(old,styles)):this.styles.set(name,styles);
48
+ return this;
49
+ }
50
+ add(name,styles){
51
+ this.styles.set(name,styles);
52
+ return this;
53
+ }
54
+ replace(name,styles){
55
+ this.styles.set(name,styles);
56
+ return this;
57
+ }
58
+ delete(...names){
59
+ names.forEach(n=>this.styles.delete(n));
60
+ return this;
61
+ }
62
+ updateDefaultStyle(){
63
+ const defaultStyle=Object.fromEntries(
64
+ Object.entries(this.target.element.style).filter(n=>isNaN(+n[0]))
65
+ )
66
+ this.update("default",defaultStyle);
67
+ return this;
68
+ }
69
+ hover(styles){
70
+ //this.updateDefaultStyle()
71
+ if(styles)this.add("hover",styles)
72
+ this.target?.element?.addEventListener("pointerenter",()=>this.use("hover"));
73
+ this.target?.element?.addEventListener("pointerleave",()=>this.use("default"))
74
+ return this;
75
+ }
76
+ // Checkers
77
+ isInline(){
78
+ return getComputedStyle(this.target.element).display.includes("inline");
79
+ }
80
+ isBlock(){
81
+ return !(this.isInline());
82
+ }
83
+ // Size
84
+ size(width,height,{ target, maskVector } = {}){
85
+ this.style({
86
+ width,
87
+ height
88
+ },{ target, maskVector })
89
+ return this;
90
+ }
91
+ width(w,{ target, maskVector } = {}){
92
+ if(w instanceof Object){
93
+ if(w instanceof Array)w={min:w[0],max:w[1]}
94
+ if("min" in w || "max" in w){
95
+ let min= w.min ?? w.max;
96
+ let max= w.max ?? w.min;
97
+ min=addSuffixeToNumber(min,"px");
98
+ max=addSuffixeToNumber(max,"px");
99
+ this.style({ minWidth: min, maxWidth: max }, { target, maskVector });
100
+ }
101
+ }
102
+ else {
103
+ w=addSuffixeToNumber(w,"px");
104
+ this.style({width:w},{ target, maskVector });
105
+ }
106
+ return this
107
+ }
108
+ height(h,{ target, maskVector } = {}){
109
+ if(h instanceof Object){
110
+ if(h instanceof Array)h={min:h[0],max:h[1]}
111
+ if("min" in h || "max" in h){
112
+ let min= h.min ?? h.max;
113
+ let max= h.max ?? h.min;
114
+ min=addSuffixeToNumber(min,"px");
115
+ max=addSuffixeToNumber(max,"px");
116
+ this.style({ minHeight: min, maxHeight: max }, { target, maskVector });
117
+ }
118
+ }
119
+ else {
120
+ h=addSuffixeToNumber(h,"px");
121
+ this.style({height:h},{ target, maskVector });
122
+ }
123
+ return this
124
+ }
125
+ enableResize(h=false,v=false,{ target, maskVector } = {}){
126
+ let resize="none";
127
+ if(h)v?resize="both":resize="horizontal";
128
+ else v?resize="vertical":resize="none";
129
+ this.style({
130
+ resize,
131
+ overflow:"hidden"
132
+ },{ target, maskVector });
133
+ if(this.isInline()){
134
+ console.group("Ziko Issue : Temporarily Incompatible Method");
135
+ console.warn(".enableResize has no effect on inline elements!");
136
+ console.info("%cConsider using other display types such as block, inline-block, flex, or grid for proper resizing behavior.","color:gold;background-color:#3333cc;padding:5px");
137
+ console.groupEnd();
138
+ }
139
+ return this;
140
+ }
141
+ // Apparence
142
+ hide({after, target, maskVector } = {}){
143
+ if(typeof after==="number"){
144
+ const wrapper=()=>this.hide({target,maskVector})
145
+ setTimeout(wrapper, after);
146
+ clearTimeout(wrapper);
147
+ }
148
+ else {
149
+ this.cache.isHidden=true;
150
+ this.style({display:"none"},{target,maskVector});
151
+ }
152
+ return this;
153
+ }
154
+ show({after, target, maskVector } = {}){
155
+ if(typeof after==="number"){
156
+ const wrapper=()=>this.show({target,maskVector})
157
+ setTimeout(wrapper, after);
158
+ clearTimeout(wrapper);
159
+ }
160
+ else {
161
+ this.cache.isHidden=false;
162
+ this.style({display:""},{target,maskVector});
163
+ }
164
+ return this;
165
+ }
166
+ color(color,{ target, maskVector } = {}){
167
+ this.style({color},{ target, maskVector });
168
+ return this;
169
+ }
170
+ background(background,{ target, maskVector } = {}){
171
+ this.style({background},{ target, maskVector });
172
+ return this;
173
+ }
174
+ backgroundColor(backgroundColor,{ target, maskVector } = {}){
175
+ this.style({backgroundColor},{ target, maskVector });
176
+ return this;
177
+ }
178
+ opacity(opacity, { target, maskVector } = {}) {
179
+ this.style({ opacity }, { target, maskVector });
180
+ return this;
181
+ }
182
+ // Placement
183
+ position(position,{ target, maskVector } = {}){
184
+ this.style({position},{ target, maskVector });
185
+ return this
186
+ }
187
+ display(disp, { target, maskVector } = {}) {
188
+ this.style({ display: disp }, { target, maskVector });
189
+ return this;
190
+ }
191
+ zIndex(z,{ target, maskVector } = {}){
192
+ this.style({zIndex:z},{ target, maskVector });
193
+ return this;
194
+ }
195
+ float(float, { target, maskVector } = {}) {
196
+ this.style({ float: float }, { target, maskVector });
197
+ return this;
198
+ }
199
+ // Box Model
200
+ border(border = "1px solid red", { target, maskVector } = {}){
201
+ this.style({border}, { target, maskVector });
202
+ return this;
203
+ }
204
+ borderTop(borderTop = "1px solid red", { target, maskVector } = {}){
205
+ this.style({borderTop}, { target, maskVector });
206
+ return this;
207
+ }
208
+ borderRight(borderRight = "1px solid red", { target, maskVector } = {}){
209
+ this.style({borderRight}, { target, maskVector });
210
+ return this;
211
+ }
212
+ borderBottom(borderBottom = "1px solid red", { target, maskVector } = {}){
213
+ this.style({borderBottom}, { target, maskVector });
214
+ return this;
215
+ }
216
+ borderLeft(borderLeft = "1px solid red", { target, maskVector } = {}){
217
+ this.style({borderLeft}, { target, maskVector });
218
+ return this;
219
+ }
220
+ borderRadius(radius,{ target, maskVector } = {}){
221
+ radius=addSuffixeToNumber(radius,"px");
222
+ this.style({ borderRadius: radius }, { target, maskVector });
223
+ return this;
224
+ }
225
+ margin(margin,{ target, maskVector } = {}){
226
+ margin=addSuffixeToNumber(margin,"px");
227
+ this.style({ margin }, { target, maskVector });
228
+ return this;
229
+ }
230
+ marginTop(marginTop,{ target, maskVector } = {}){
231
+ marginTop=addSuffixeToNumber(marginTop,"px");
232
+ this.style({marginTop},{ target, maskVector });
233
+ return this;
234
+ }
235
+ marginRight(marginRight,{ target, maskVector } = {}){
236
+ marginRight=addSuffixeToNumber(marginRight,"px");
237
+ this.style({marginRight},{ target, maskVector });
238
+ return this;
239
+ }
240
+ marginBootom(marginBootom,{ target, maskVector } = {}){
241
+ marginBootom=addSuffixeToNumber(marginBootom,"px");
242
+ this.style({marginBootom},{ target, maskVector });
243
+ return this;
244
+ }
245
+ marginLeft(marginLeft,{ target, maskVector } = {}){
246
+ marginLeft=addSuffixeToNumber(marginLeft,"px");
247
+ this.style({marginLeft},{ target, maskVector });
248
+ return this;
249
+ }
250
+ padding(padding,{ target, maskVector } = {}){
251
+ padding=addSuffixeToNumber(padding,"px");
252
+ this.style({padding},{ target, maskVector });
253
+ return this;
254
+ }
255
+ paddingTop(paddingTop,{ target, maskVector } = {}){
256
+ paddingTop=addSuffixeToNumber(paddingTop,"px");
257
+ this.style({paddingTop},{ target, maskVector });
258
+ return this;
259
+ }
260
+ paddingRight(paddingRight,{ target, maskVector } = {}){
261
+ paddingRight=addSuffixeToNumber(paddingRight,"px");
262
+ this.style({paddingRight},{ target, maskVector });
263
+ return this;
264
+ }
265
+ paddingBootom(paddingBootom,{ target, maskVector } = {}){
266
+ paddingBootom=addSuffixeToNumber(paddingBootom,"px");
267
+ this.style({paddingBootom},{ target, maskVector });
268
+ return this;
269
+ }
270
+ paddingLeft(paddingLeft,{ target, maskVector } = {}){
271
+ paddingLeft=addSuffixeToNumber(paddingLeft,"px");
272
+ this.style({paddingLeft},{ target, maskVector });
273
+ return this;
274
+ }
275
+ // Typographie
276
+ font(font,{ target, maskVector } = {}){
277
+ this.style({font},{ target, maskVector });
278
+ return this;
279
+ }
280
+ fontFamily(fontFamily="",{ target, maskVector } = {}){
281
+ this.style({fontFamily},{ target, maskVector });
282
+ return this;
283
+ }
284
+ fontSize(fontSize,{ target, maskVector } = {}){
285
+ this.style({fontSize},{ target, maskVector });
286
+ return this;
287
+ }
288
+ // Misc
289
+ cursor(type="pointer"){
290
+ this.style({ cursor: type });
291
+ return this;
292
+ }
293
+ overflow(x,y,{ target, maskVector } = {}){
294
+ const values=["hidden","auto"];
295
+ this.style({
296
+ overflowX:typeof x==="number"?values[x]:x,
297
+ overflowY:typeof y==="number"?values[y]:y
298
+ },{target,maskVector})
299
+ return this;
300
+ }
301
+ clip(polygon, { target, maskVector } = {}) {
302
+ if (typeof polygon === "string") polygon = "polygon(" + polygon + ")";
303
+ this.style({ clipPath: polygon }, { target, maskVector });
304
+ return this;
305
+ }
306
+ // Transfromations
307
+ fadeOut(transitionTimming = 1) {
308
+ this.style({
309
+ transition:`opacity ${transitionTimming/1000}s`,
310
+ opacity: 0
311
+ });
312
+ this.cache.isFaddedOut=true;
313
+ return this;
314
+ }
315
+ fadeIn(transitionTimming = 1) {
316
+ this.style({
317
+ transition: `opacity ${transitionTimming/1000}s`,
318
+ opacity: 1
319
+ });
320
+ this.cache.isFaddedOut=false;
321
+ return this;
322
+ }
323
+ toggleFade(t_in = 1000,t_out=t_in){
324
+ this.cache.isFaddedOut?this.fadeIn(t_in):this.fadeOut(t_out);
325
+ return this;
326
+ }
327
+ morphBorderRadius(newValue, transitionTimming){
328
+ this.style({
329
+ borderRadius: newValue,
330
+ transition: `borderRadius ${transitionTimming/1000}s`,
331
+ });
332
+ return this;
333
+ }
334
+ #applyTransformMatrix(transitionTimming){
335
+ const transformMatrix = this.cache.transformation.matrix.arr.join(",");
336
+ this.style({
337
+ transform: `matrix3d(${transformMatrix})`,
338
+ "-webkit-transform": `matrix3d(${transformMatrix})`,
339
+ "-moz-transform": `matrix3d(${transformMatrix})`,
340
+ "-ms-transform": `matrix3d(${transformMatrix})`,
341
+ "-o-transform": `matrix3d(${transformMatrix})`
342
+ });
343
+ if (transitionTimming != 0) this.style({ transition: `transform ${transitionTimming/1000}s ease` });
344
+ }
345
+ translate(dx, dy = dx ,dz = 0, transitionTimming = 0) {
346
+ this.cache.transformation.matrix.set(3,0,dx);
347
+ this.cache.transformation.matrix.set(3,1,dy);
348
+ this.cache.transformation.matrix.set(3,2,dz);
349
+ this.#applyTransformMatrix(transitionTimming);
350
+ return this;
351
+ }
352
+ translateX(dx, transitionTimming = 0) {
353
+ this.cache.transformation.matrix.set(3,0,dx)
354
+ this.#applyTransformMatrix(transitionTimming);
355
+ return this;
356
+ }
357
+ translateY(dy, transitionTimming = 0) {
358
+ this.cache.transformation.matrix.set(3,1,dy)
359
+ this.#applyTransformMatrix(transitionTimming);
360
+ return this;
361
+ }
362
+ translateZ(dz, transitionTimming = 0) {
363
+ const d=-1/this.cache.transformation.matrix[2][2];
364
+ this.cache.transformation.matrix.set(3,2,z);
365
+ this.cache.transformation.matrix.set(3,3,1-(dz/d));
366
+ this.#applyTransformMatrix(transitionTimming);
367
+ return this;
368
+ }
369
+ perspective(distance,transitionTimming=0){
370
+ const z=this.cache.transformation.matrix[3][2];
371
+ this.cache.transformation.matrix.set(2,2,-1/d);
372
+ this.cache.transformation.matrix.set(3,3,1-(z/distance));
373
+ this.#applyTransformMatrix(transitionTimming);
374
+ return this;
375
+ }
376
+ scale(sx, sy = sx, transitionTimming = 0) {
377
+ this.cache.transformation.matrix.set(0,0,sx)
378
+ this.cache.transformation.matrix.set(1,1,sy)
379
+ // const transformMatrix = this.cache.transformation.matrix.arr.join(",");
380
+ this.#applyTransformMatrix(transitionTimming);
381
+ return this;
382
+ }
383
+ scaleX(x = 1 , transitionTimming = 0) {
384
+ this.cache.transformation.matrix.set(0,0,x)
385
+ // const transformMatrix = this.cache.transformation.matrix.arr.join(",");
386
+ this.#applyTransformMatrix(transitionTimming);
387
+ return this;
388
+ }
389
+ scaleY(y = 1, transitionTimming = 0) {
390
+ this.cache.transformation.matrix.set(1,1,y)
391
+ const transformMatrix = this.cache.transformation.matrix.arr.join(",");
392
+ this.#applyTransformMatrix(transitionTimming);
393
+ return this;
394
+ }
395
+ skew(x, y = x, transitionTimming = 0) {
396
+ this.cache.transformation.matrix.set(0,1,x)
397
+ this.cache.transformation.matrix.set(1,0,y)
398
+ const transformMatrix = this.cache.transformation.matrix.arr.join(",");
399
+ this.#applyTransformMatrix(transitionTimming);
400
+ return this;
401
+ }
402
+ skewX(x = 1 , transitionTimming = 0) {
403
+ this.cache.transformation.matrix.set(0,1,x)
404
+ const transformMatrix = this.cache.transformation.matrix.arr.join(",");
405
+ this.#applyTransformMatrix(transitionTimming);
406
+ return this;
407
+ }
408
+ skewY(y = 1, transitionTimming = 0) {
409
+ this.cache.transformation.matrix.set(1,0,y);
410
+ const transformMatrix = this.cache.transformation.matrix.arr.join(",");
411
+ this.#applyTransformMatrix(transitionTimming);
412
+ return this;
413
+ }
414
+ rotateX(rx, transitionTimming = 0) {
415
+ this.cache.transformation.matrix.set(1,1,cos(rx));
416
+ this.cache.transformation.matrix.set(1,2,-sin(rx));
417
+ this.cache.transformation.matrix.set(2,1,sin(rx));
418
+ this.cache.transformation.matrix.set(1,2,cos(rx));
419
+ this.#applyTransformMatrix(transitionTimming);
420
+ return this;
421
+ }
422
+ rotateY(ry, transitionTimming = 0) {
423
+ this.cache.transformation.matrix.set(0,0,cos(ry));
424
+ this.cache.transformation.matrix.set(0,2,sin(ry));
425
+ this.cache.transformation.matrix.set(2,0,-sin(ry));
426
+ this.cache.transformation.matrix.set(2,2,cos(ry));
427
+ this.#applyTransformMatrix(transitionTimming);
428
+ return this;
429
+ }
430
+ rotateZ(rz, transitionTimming = 0) {
431
+ this.cache.transformation.matrix.set(0,0,cos(rz));
432
+ this.cache.transformation.matrix.set(0,1,-sin(rz));
433
+ this.cache.transformation.matrix.set(1,0,sin(rz));
434
+ this.cache.transformation.matrix.set(1,1,cos(rz));
435
+ this.#applyTransformMatrix(transitionTimming);
436
+ return this;
437
+ }
438
+ flipeX(transitionTimming = 1) {
439
+ this.cache.transformation.Flip[0] += 180;
440
+ this.cache.transformation.Flip[0] %= 360;
441
+ this.rotateX(this.cache.transformation.Flip[0], transitionTimming);
442
+ return this;
443
+ }
444
+ flipeY(transitionTimming = 1) {
445
+ this.cache.transformation.Flip[1] += 180 ;
446
+ this.cache.transformation.Flip[1] %= 360;
447
+ this.rotateY(this.cache.transformation.Flip[1], transitionTimming);
448
+ return this;
449
+ }
450
+ flipeZ(transitionTimming = 1) {
451
+ this.cache.transformation.Flip[2] += 180;
452
+ this.cache.transformation.Flip[2] %= 360;
453
+ this.rotateZ(this.cache.transformation.Flip[2], transitionTimming);
454
+ return this;
455
+ }
456
+ slideHeightIn(transitionTimming = 1, h = this.h) {
457
+ this.style({ transition: transitionTimming + "s", height: h });
458
+ return this;
459
+ }
460
+ slideHeightOut(transitionTimming = 1) {
461
+ this.style({ transition: transitionTimming + "s", height: 0 });
462
+ this.target?.element?.n("transitionend", () =>
463
+ this.style({ opacity: "none" }),
464
+ );
465
+ return this;
466
+ }
467
+ slideWidthIn(transitionTimming = 1, w = this.w) {
468
+ this.style({ transition: transitionTimming + "s", width: w });
469
+ return this;
470
+ }
471
+ slideWidthOut(transitionTimming = 1) {
472
+ this.style({ transition: transitionTimming + "s", width: 0 });
473
+ const wrapper=()=>{
474
+ this.style({ opacity: "none" })
475
+ }
476
+ this.target?.element?.addEventListener("transitionend",wrapper);
477
+ this.target?.element?.removeEventListener("transitionend",wrapper);
478
+ return this;
479
+ }
480
+ slideIn({ transitionTimming = 1, w = "100%", h = "auto" } = {}) {
481
+ this.style({
482
+ transition: transitionTimming + "s",
483
+ width: w,
484
+ height: h,
485
+ visibility: "visible",
486
+ });
487
+ return this;
488
+ }
489
+ slideOut({ transitionTimming = 1, width = 0, heightransitionTimming = 0 } = {}) {
490
+ this.style({
491
+ visibility: "hidden",
492
+ transition: transitionTimming + "s",
493
+ opacity: "none",
494
+ width: width,
495
+ height: height,
496
+ });
497
+ const wrapper=()=>{
498
+ this.style({ opacity: "none" });
499
+ }
500
+ this.target?.element?.addEventListener("transitionend",wrapper);
501
+ this.target?.element?.removeEventListener("transitionend",wrapper);
502
+ return this;
503
+ }
504
+
505
+ }
506
+
507
+ const ZikoStyle=(defaultStyle)=>new ZikoUIElementStyle(defaultStyle);
508
+ export{
509
+ ZikoStyle
510
+ }
@@ -0,0 +1,70 @@
1
+ import ZikoUIElement from "../elements/primitives/ZikoUIElement.js";
2
+ const Id = (a) => document.getElementById(a);
3
+ const Class = (a) => [...document.getElementsByClassName(a)];
4
+ const $=(...selector)=>{
5
+ var ele=[]
6
+ for(let i=0;i<selector.length;i++){
7
+ if(typeof selector[i]=="string")ele.push(...document.querySelectorAll(selector[i]));
8
+ if(selector[i] instanceof ZikoUIElement)ele.push(selector[i].element)
9
+ }
10
+ return ele.length===1?ele[0]:ele;
11
+ }
12
+ const addSuffixeToNumber=(value,suffixe="px")=>{
13
+ if(typeof value === "number") value+=suffixe;
14
+ if(value instanceof Array)value=value.map(n=>typeof n==="number"?n+=suffixe:n).join(" ");
15
+ return value;
16
+ }
17
+ const style = (el, styles) => {if(el)Object.assign(el.style, styles)};
18
+
19
+ function script(src) {
20
+ const Script = document?.createElement("script");
21
+ Script.setAttribute("src", src);
22
+ document.head.appendChild(Script);
23
+ }
24
+ function linkStyle(href) {
25
+ const link = document?.createElement("link");
26
+ link.setAttribute("rel", "stylesheet");
27
+ link.setAttribute("href", href);
28
+ document.head.appendChild(link);
29
+ }
30
+ const CloneElement = (UIElement) => {
31
+ var clone = new UIElement.__proto__.constructor()
32
+ //waitForUIElm(UIElement).then(e=>console.log(e)).then(()=>clone = new UIElement.__proto__.constructor())
33
+ //let a = new UIElement.__proto__.constructor()
34
+ return clone;
35
+ };
36
+ const cloneUI=UIElement=>{
37
+ return Object.assign(Object.create(Object.getPrototypeOf(UIElement)),UIElement)
38
+ }
39
+ function isPrimitive(value) {
40
+ return typeof value !== 'object' && typeof value !== 'function' || value === null;
41
+ }
42
+ const waitElm=(UIElement)=>{
43
+ return new Promise(resolve => {
44
+ if (UIElement) {
45
+ return resolve(UIElement);
46
+ }
47
+ const observer = new MutationObserver(() => {
48
+ if (UIElement) {
49
+ resolve(UIElement);
50
+ observer.disconnect();
51
+ }
52
+ });
53
+ observer.observe(document?.body, {
54
+ childList: true,
55
+ subtree: true
56
+ });
57
+ });
58
+ }
59
+ export{
60
+ Id,
61
+ Class,
62
+ style,
63
+ script,
64
+ linkStyle,
65
+ CloneElement,
66
+ cloneUI,
67
+ isPrimitive,
68
+ addSuffixeToNumber,
69
+ waitElm
70
+ }