ziko 0.0.2 → 0.0.5

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 (235) hide show
  1. package/README.md +11 -15
  2. package/core/App/Globals/index.js +18 -0
  3. package/{src → core}/App/app.js +10 -1
  4. package/{src → core}/App/index.js +1 -0
  5. package/{src → core}/Graphics/Canvas/canvas.js +1 -1
  6. package/{src → core}/Reactivity/Events/Global/CustomEvent.js +2 -2
  7. package/core/Reactivity/Events/Global/Mouse.js +230 -0
  8. package/core/Reactivity/Events/Global/Wheel.js +44 -0
  9. package/core/Reactivity/Events/Partiel/Hash.js +44 -0
  10. package/core/Reactivity/Events/Partiel/MediaEvent.js +1 -0
  11. package/{src → core}/Reactivity/Events/index.js +12 -3
  12. package/{src → core}/UI/CustomElement/Elements/Accordion/index.js +2 -2
  13. package/{src → core}/UI/CustomElement/Elements/CodeNote/CodeCell.js +1 -1
  14. package/{src → core}/UI/CustomElement/Elements/CodeNote/SubElements.js +4 -4
  15. package/{src → core}/UI/CustomElement/Flex.js +22 -22
  16. package/{src → core}/UI/Inputs/Primitives/btn.js +1 -2
  17. package/{src → core}/UI/Inputs/Primitives/inputs.js +0 -10
  18. package/{src → core}/UI/Inputs/Primitives/select.js +0 -1
  19. package/{src → core}/UI/Inputs/Primitives/textarea.js +0 -1
  20. package/{src → core}/UI/List/index.js +0 -3
  21. package/{src → core}/UI/Media/Audio/index.js +14 -2
  22. package/{src → core}/UI/Media/Image/figure.js +0 -1
  23. package/{src → core}/UI/Media/Image/image.js +0 -1
  24. package/{src → core}/UI/Media/Video/index.js +13 -1
  25. package/{src → core}/UI/Misc/index.js +5 -9
  26. package/{src → core}/UI/Semantic/index.js +0 -7
  27. package/{src → core}/UI/Table/table.js +0 -1
  28. package/{src → core}/UI/Text/heading.js +0 -1
  29. package/{src → core}/UI/Text/p.js +0 -1
  30. package/{src → core}/UI/Text/text.js +0 -1
  31. package/{src → core}/UI/ZikoUIElement.js +55 -30
  32. package/{src → core}/UI/index.js +3 -3
  33. package/core/__proto__/String.js +0 -0
  34. package/{src → core}/index.js +3 -1
  35. package/dist/ziko.cjs +491 -134
  36. package/dist/ziko.js +491 -134
  37. package/dist/ziko.min.js +2 -2
  38. package/dist/ziko.mjs +490 -134
  39. package/package.json +9 -9
  40. package/wrapper/react/index.jsx +16 -0
  41. package/wrapper/react/readme.md +19 -0
  42. package/wrapper/vue/ZikoUI.vue +17 -0
  43. package/src/App/Globals/index.js +0 -3
  44. package/starter/bin/index.js +0 -10
  45. /package/{src → core}/App/Accessibility/index.js +0 -0
  46. /package/{src → core}/App/Globals/__Target__.js +0 -0
  47. /package/{src → core}/App/Globals/__UI__.js +0 -0
  48. /package/{src → core}/App/Globals/__init__.js +0 -0
  49. /package/{src → core}/App/Router/index.js +0 -0
  50. /package/{src → core}/App/Seo/index.js +0 -0
  51. /package/{src → core}/App/Themes/dark.js +0 -0
  52. /package/{src → core}/App/Themes/index.js +0 -0
  53. /package/{src → core}/App/Themes/light.js +0 -0
  54. /package/{src → core}/Data/Api/fetchdom.js +0 -0
  55. /package/{src → core}/Data/Api/index.js +0 -0
  56. /package/{src → core}/Data/Api/preload.js +0 -0
  57. /package/{src → core}/Data/Converter/canvas.js +0 -0
  58. /package/{src → core}/Data/Converter/csv.js +0 -0
  59. /package/{src → core}/Data/Converter/index.js +0 -0
  60. /package/{src → core}/Data/Converter/json.js +0 -0
  61. /package/{src → core}/Data/Converter/markdown.js +0 -0
  62. /package/{src → core}/Data/Converter/svg.js +0 -0
  63. /package/{src → core}/Data/Parser/markdown.js +0 -0
  64. /package/{src → core}/Data/Parser/xml.js +0 -0
  65. /package/{src → core}/Data/Strings/index.js +0 -0
  66. /package/{src → core}/Data/decorators.js +0 -0
  67. /package/{src → core}/Data/index.js +0 -0
  68. /package/{src → core}/Graphics/Canvas/Elements/Basic/arc.js +0 -0
  69. /package/{src → core}/Graphics/Canvas/Elements/Basic/image.js +0 -0
  70. /package/{src → core}/Graphics/Canvas/Elements/Basic/line.js +0 -0
  71. /package/{src → core}/Graphics/Canvas/Elements/Basic/path.js +0 -0
  72. /package/{src → core}/Graphics/Canvas/Elements/Basic/points.js +0 -0
  73. /package/{src → core}/Graphics/Canvas/Elements/Basic/polygon.js +0 -0
  74. /package/{src → core}/Graphics/Canvas/Elements/Basic/polyline.js +0 -0
  75. /package/{src → core}/Graphics/Canvas/Elements/Basic/rect.js +0 -0
  76. /package/{src → core}/Graphics/Canvas/Elements/Basic/text.js +0 -0
  77. /package/{src → core}/Graphics/Canvas/Elements/Chart/histogram.js +0 -0
  78. /package/{src → core}/Graphics/Canvas/Elements/Chart/plot.js +0 -0
  79. /package/{src → core}/Graphics/Canvas/Elements/Chart/scatter.js +0 -0
  80. /package/{src → core}/Graphics/Canvas/Elements/Chart/stem.js +0 -0
  81. /package/{src → core}/Graphics/Canvas/Elements/Element.js +0 -0
  82. /package/{src → core}/Graphics/Canvas/Elements/Groupe.js +0 -0
  83. /package/{src → core}/Graphics/Canvas/Elements/grid.js +0 -0
  84. /package/{src → core}/Graphics/Canvas/Elements/index.js +0 -0
  85. /package/{src → core}/Graphics/Canvas/Filter/index.js +0 -0
  86. /package/{src → core}/Graphics/Canvas/Paint/index.js +0 -0
  87. /package/{src → core}/Graphics/Canvas/Utils/color.js +0 -0
  88. /package/{src → core}/Graphics/Canvas/Utils/floodFill.js +0 -0
  89. /package/{src → core}/Graphics/Canvas/_canvas_offscreen +0 -0
  90. /package/{src → core}/Graphics/Canvas/index.js +0 -0
  91. /package/{src → core}/Graphics/Svg/Elements/ZikoSvgElement.js +0 -0
  92. /package/{src → core}/Graphics/Svg/Elements/circle.js +0 -0
  93. /package/{src → core}/Graphics/Svg/Elements/ellipse.js +0 -0
  94. /package/{src → core}/Graphics/Svg/Elements/foreignObject.js +0 -0
  95. /package/{src → core}/Graphics/Svg/Elements/grid.js +0 -0
  96. /package/{src → core}/Graphics/Svg/Elements/groupe.js +0 -0
  97. /package/{src → core}/Graphics/Svg/Elements/image.js +0 -0
  98. /package/{src → core}/Graphics/Svg/Elements/line.js +0 -0
  99. /package/{src → core}/Graphics/Svg/Elements/path.js +0 -0
  100. /package/{src → core}/Graphics/Svg/Elements/polygon.js +0 -0
  101. /package/{src → core}/Graphics/Svg/Elements/polyline.js +0 -0
  102. /package/{src → core}/Graphics/Svg/Elements/rect.js +0 -0
  103. /package/{src → core}/Graphics/Svg/Elements/text.js +0 -0
  104. /package/{src → core}/Graphics/Svg/index.js +0 -0
  105. /package/{src → core}/Graphics/Svg/svg.js +0 -0
  106. /package/{src → core}/Graphics/index.js +0 -0
  107. /package/{src → core}/Math/Calculus/Special Functions/bessel.js +0 -0
  108. /package/{src → core}/Math/Calculus/Special Functions/beta.js +0 -0
  109. /package/{src → core}/Math/Calculus/Special Functions/gamma.js +0 -0
  110. /package/{src → core}/Math/Calculus/Special Functions/index.js +0 -0
  111. /package/{src → core}/Math/Calculus/index.js +0 -0
  112. /package/{src → core}/Math/Complex/Fractals/julia.js +0 -0
  113. /package/{src → core}/Math/Complex/index.js +0 -0
  114. /package/{src → core}/Math/Discret/Combinaison/index.js +0 -0
  115. /package/{src → core}/Math/Discret/Conversion/index.js +0 -0
  116. /package/{src → core}/Math/Discret/Logic/index.js +0 -0
  117. /package/{src → core}/Math/Discret/Permutation/index.js +0 -0
  118. /package/{src → core}/Math/Discret/Set/index.js +0 -0
  119. /package/{src → core}/Math/Discret/Set/powerSet.js +0 -0
  120. /package/{src → core}/Math/Discret/Set/subSet.js +0 -0
  121. /package/{src → core}/Math/Discret/index.js +0 -0
  122. /package/{src → core}/Math/Functions/index.js +0 -0
  123. /package/{src → core}/Math/Matrix/Decomposition.js +0 -0
  124. /package/{src → core}/Math/Matrix/LinearSystem.js +0 -0
  125. /package/{src → core}/Math/Matrix/Matrix.js +0 -0
  126. /package/{src → core}/Math/Matrix/index.js +0 -0
  127. /package/{src → core}/Math/Numeric/index.js +0 -0
  128. /package/{src → core}/Math/Random/index.js +0 -0
  129. /package/{src → core}/Math/Signal/__np.py.txt +0 -0
  130. /package/{src → core}/Math/Signal/conv.js +0 -0
  131. /package/{src → core}/Math/Signal/fft.js +0 -0
  132. /package/{src → core}/Math/Signal/filter.js +0 -0
  133. /package/{src → core}/Math/Signal/functions.js +0 -0
  134. /package/{src → core}/Math/Signal/index.js +0 -0
  135. /package/{src → core}/Math/Statistics/Functions/index.js +0 -0
  136. /package/{src → core}/Math/Statistics/index.js +0 -0
  137. /package/{src → core}/Math/Utils/arithmetic.js +0 -0
  138. /package/{src → core}/Math/Utils/checkers.js +0 -0
  139. /package/{src → core}/Math/Utils/comparaison.js +0 -0
  140. /package/{src → core}/Math/Utils/conversions.js +0 -0
  141. /package/{src → core}/Math/Utils/discret.js +0 -0
  142. /package/{src → core}/Math/Utils/index.js +0 -0
  143. /package/{src → core}/Math/Utils/mapfun.js +0 -0
  144. /package/{src → core}/Math/absract.js +0 -0
  145. /package/{src → core}/Math/const.js +0 -0
  146. /package/{src → core}/Math/index.js +0 -0
  147. /package/{src → core}/Reactivity/Events/Global/Click.js +0 -0
  148. /package/{src → core}/Reactivity/Events/Global/Clipboard.js +0 -0
  149. /package/{src → core}/Reactivity/Events/Global/Drag.js +0 -0
  150. /package/{src → core}/Reactivity/Events/Global/Focus.js +0 -0
  151. /package/{src → core}/Reactivity/Events/Global/Key.js +0 -0
  152. /package/{src → core}/Reactivity/Events/Global/Pointer.js +0 -0
  153. /package/{src/Reactivity/Use/Interactions/useSerial.js → core/Reactivity/Events/Global/Touch.js} +0 -0
  154. /package/{src → core}/Reactivity/Events/Partiel/Input.js +0 -0
  155. /package/{src → core}/Reactivity/Events/ZikoEvent.js +0 -0
  156. /package/{src → core}/Reactivity/Observer/index.js +0 -0
  157. /package/{src → core}/Reactivity/Observer/intersection.js +0 -0
  158. /package/{src → core}/Reactivity/Observer/mutation.js +0 -0
  159. /package/{src → core}/Reactivity/Observer/resize.js +0 -0
  160. /package/{src → core}/Reactivity/Use/Contexte/index.js +0 -0
  161. /package/{src → core}/Reactivity/Use/Contexte/useSuccesifKeys.js +0 -0
  162. /package/{src → core}/Reactivity/Use/Decorators/index.js +0 -0
  163. /package/{src → core}/Reactivity/Use/Interactions/index.js +0 -0
  164. /package/{src → core}/Reactivity/Use/Interactions/useBluetooth.js +0 -0
  165. /package/{src → core}/Reactivity/Use/Interactions/useChannel.js +0 -0
  166. /package/{src → core}/Reactivity/Use/Interactions/useEventEmmiter.js +0 -0
  167. /package/{src/Reactivity/Use/Interactions/useUsb.js → core/Reactivity/Use/Interactions/useSerial.js} +0 -0
  168. /package/{src → core}/Reactivity/Use/Interactions/useThread.js +0 -0
  169. /package/{src/Reactivity/Use/Sensors/useCamera.js → core/Reactivity/Use/Interactions/useUsb.js} +0 -0
  170. /package/{src → core}/Reactivity/Use/Sensors/index.js +0 -0
  171. /package/{src → core}/Reactivity/Use/Sensors/useBattery.js +0 -0
  172. /package/{src/Reactivity/Use/Sensors/useMicro.js → core/Reactivity/Use/Sensors/useCamera.js} +0 -0
  173. /package/{src → core}/Reactivity/Use/Sensors/useGeolocation.js +0 -0
  174. /package/{src/Reactivity/Use/Sensors/useOrientation.js → core/Reactivity/Use/Sensors/useMicro.js} +0 -0
  175. /package/{src/Reactivity/Use/Storage/useCookie.js → core/Reactivity/Use/Sensors/useOrientation.js} +0 -0
  176. /package/{src → core}/Reactivity/Use/Storage/index.js +0 -0
  177. /package/{src/Reactivity/Use/Storage/useIndexedDb.js → core/Reactivity/Use/Storage/useCookie.js} +0 -0
  178. /package/{src/Reactivity/Use/UI/useCssLink.js → core/Reactivity/Use/Storage/useIndexedDb.js} +0 -0
  179. /package/{src → core}/Reactivity/Use/Storage/useStorage.js +0 -0
  180. /package/{src → core}/Reactivity/Use/UI/index.js +0 -0
  181. /package/{src/Reactivity/Use/UI/useLinearGradient.js → core/Reactivity/Use/UI/useCssLink.js} +0 -0
  182. /package/{src → core}/Reactivity/Use/UI/useCssText.js +0 -0
  183. /package/{src → core}/Reactivity/Use/UI/useFavIcon.js +0 -0
  184. /package/{src/Reactivity/Use/UI/useRadialGradient.js → core/Reactivity/Use/UI/useLinearGradient.js} +0 -0
  185. /package/{src → core}/Reactivity/Use/UI/useMediaQuery.js +0 -0
  186. /package/{src/UI/CustomElement/Elements/FAB.js → core/Reactivity/Use/UI/useRadialGradient.js} +0 -0
  187. /package/{src → core}/Reactivity/Use/UI/useStyle.js +0 -0
  188. /package/{src → core}/Reactivity/Use/UI/useTheme.js +0 -0
  189. /package/{src → core}/Reactivity/Use/UI/useTitle.js +0 -0
  190. /package/{src → core}/Reactivity/Use/index.js +0 -0
  191. /package/{src → core}/Reactivity/Use/todo.md +0 -0
  192. /package/{src → core}/Reactivity/index.js +0 -0
  193. /package/{src → core}/Time/animation.js +0 -0
  194. /package/{src → core}/Time/index.js +0 -0
  195. /package/{src → core}/Time/loop.js +0 -0
  196. /package/{src → core}/Time/utils/decorators.js +0 -0
  197. /package/{src → core}/Time/utils/ease.js +0 -0
  198. /package/{src → core}/Time/utils/index.js +0 -0
  199. /package/{src → core}/Time/utils/performance.js +0 -0
  200. /package/{src → core}/Time/utils/ui.js +0 -0
  201. /package/{src → core}/UI/CustomElement/Elements/Carousel/index.js +0 -0
  202. /package/{src → core}/UI/CustomElement/Elements/CodeNote/CodeNote.js +0 -0
  203. /package/{src → core}/UI/CustomElement/Elements/CodeNote/index.js +0 -0
  204. /package/{src → core}/UI/CustomElement/Elements/Columns.js +0 -0
  205. /package/{src/UI/CustomElement/Elements/Menu.js → core/UI/CustomElement/Elements/FAB.js} +0 -0
  206. /package/{src/UI/CustomElement/Elements/Notification.js → core/UI/CustomElement/Elements/Menu.js} +0 -0
  207. /package/{src/UI/CustomElement/Elements/Popover.js → core/UI/CustomElement/Elements/Notification.js} +0 -0
  208. /package/{src/UI/CustomElement/Elements/Popup.js → core/UI/CustomElement/Elements/Popover.js} +0 -0
  209. /package/{src/UI/CustomElement/Elements/Timeline.js → core/UI/CustomElement/Elements/Popup.js} +0 -0
  210. /package/{src → core}/UI/CustomElement/Elements/Swipper.js +0 -0
  211. /package/{src → core}/UI/CustomElement/Elements/Tabs/index.js +0 -0
  212. /package/{src/UI/CustomElement/Elements/Toast.js → core/UI/CustomElement/Elements/Timeline.js} +0 -0
  213. /package/{src/UI/CustomElement/Elements/Treeview.js → core/UI/CustomElement/Elements/Toast.js} +0 -0
  214. /package/{src/UI/List/elements.js → core/UI/CustomElement/Elements/Treeview.js} +0 -0
  215. /package/{src → core}/UI/CustomElement/Elements/index.js +0 -0
  216. /package/{src → core}/UI/CustomElement/Grid.js +0 -0
  217. /package/{src → core}/UI/CustomElement/index.js +0 -0
  218. /package/{src → core}/UI/Embaded/index.js +0 -0
  219. /package/{src → core}/UI/Inputs/Primitives/elements.js +0 -0
  220. /package/{src → core}/UI/Inputs/camera.js +0 -0
  221. /package/{src → core}/UI/Inputs/index.js +0 -0
  222. /package/{src/UI/Text/pre.js → core/UI/List/elements.js} +0 -0
  223. /package/{src → core}/UI/Media/Image/index.js +0 -0
  224. /package/{src → core}/UI/Media/index.js +0 -0
  225. /package/{src → core}/UI/Style/index.js +0 -0
  226. /package/{src → core}/UI/Table/elements.js +0 -0
  227. /package/{src → core}/UI/Table/index.js +0 -0
  228. /package/{src → core}/UI/Table/utils.js +0 -0
  229. /package/{src → core}/UI/Text/index.js +0 -0
  230. /package/{src/__proto__/Function.js → core/UI/Text/pre.js} +0 -0
  231. /package/{src → core}/UI/Utils/index.js +0 -0
  232. /package/{src → core}/__proto__/Array.js +0 -0
  233. /package/{src/__proto__/Object.js → core/__proto__/Function.js} +0 -0
  234. /package/{src → core}/__proto__/Number.js +0 -0
  235. /package/{src/__proto__/String.js → core/__proto__/Object.js} +0 -0
package/dist/ziko.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /*
3
3
  Project: ziko.js
4
4
  Author: Zakaria Elalaoui
5
- Date : Sun Mar 10 2024 11:12:39 GMT+0000 (UTC)
5
+ Date : Thu Mar 21 2024 19:27:32 GMT+0000 (UTC)
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
@@ -3386,6 +3386,332 @@
3386
3386
  }
3387
3387
  var Pointer = target => new ZikoEventPointer(target);
3388
3388
 
3389
+ class ZikoEventMouse extends ZikoEvent {
3390
+ constructor(target) {
3391
+ super(target);
3392
+ this.event = null;
3393
+ this.dx = 0;
3394
+ this.dy = 0;
3395
+ this.dt = 0;
3396
+ this.mx = 0;
3397
+ this.my = 0;
3398
+ this.mt = 0;
3399
+ this.ux = 0;
3400
+ this.uy = 0;
3401
+ this.ut = 0;
3402
+ this.swippe = {
3403
+ h: null,
3404
+ v: null,
3405
+ delta_x: 0,
3406
+ delta_y: 0
3407
+ };
3408
+ this.isMoving = false;
3409
+ this.isDown = false;
3410
+ this.cache = {
3411
+ prefixe: "mouse",
3412
+ preventDefault: {
3413
+ down: false,
3414
+ move: false,
3415
+ up: false,
3416
+ enter: false,
3417
+ out: false,
3418
+ leave: false,
3419
+ over: false
3420
+ },
3421
+ paused: {
3422
+ down: false,
3423
+ move: false,
3424
+ up: false,
3425
+ enter: false,
3426
+ out: false,
3427
+ leave: false,
3428
+ over: false
3429
+ },
3430
+ stream: {
3431
+ enabled: {
3432
+ down: false,
3433
+ move: false,
3434
+ up: false,
3435
+ enter: false,
3436
+ out: false,
3437
+ leave: false,
3438
+ over: false
3439
+ },
3440
+ clear: {
3441
+ down: false,
3442
+ move: false,
3443
+ up: false,
3444
+ enter: false,
3445
+ out: false,
3446
+ leave: false,
3447
+ over: false
3448
+ },
3449
+ history: {
3450
+ down: [],
3451
+ move: [],
3452
+ up: [],
3453
+ enter: [],
3454
+ out: [],
3455
+ leave: [],
3456
+ over: []
3457
+ }
3458
+ },
3459
+ callbacks: {
3460
+ down: [self => console.log({
3461
+ dx: self.dx,
3462
+ dy: self.dy,
3463
+ down: self.down,
3464
+ move: self.move,
3465
+ t: self.dt
3466
+ })],
3467
+ move: [self => console.log({
3468
+ mx: self.mx,
3469
+ my: self.my,
3470
+ down: self.down,
3471
+ move: self.move,
3472
+ t: self.dt
3473
+ })],
3474
+ up: [self => console.log({
3475
+ ux: self.ux,
3476
+ uy: self.uy,
3477
+ down: self.down,
3478
+ move: self.move,
3479
+ t: self.dt
3480
+ })],
3481
+ enter: [self => console.log({
3482
+ dx: self.dx,
3483
+ dy: self.dy,
3484
+ down: self.down,
3485
+ move: self.move,
3486
+ t: self.dt
3487
+ })],
3488
+ out: [self => console.log({
3489
+ mx: self.mx,
3490
+ my: self.my,
3491
+ down: self.down,
3492
+ move: self.move,
3493
+ t: self.dt
3494
+ })],
3495
+ leave: [self => console.log({
3496
+ ux: self.ux,
3497
+ uy: self.uy,
3498
+ down: self.down,
3499
+ move: self.move,
3500
+ t: self.dt
3501
+ })],
3502
+ over: [self => console.log({
3503
+ ux: self.ux,
3504
+ uy: self.uy,
3505
+ down: self.down,
3506
+ move: self.move,
3507
+ t: self.dt
3508
+ })]
3509
+ }
3510
+ };
3511
+ this.__controller = {
3512
+ down: mousedown_controller.bind(this),
3513
+ move: mousemove_controller.bind(this),
3514
+ up: mouseup_controller.bind(this),
3515
+ enter: mouseenter_controller.bind(this),
3516
+ out: mouseout_controller.bind(this),
3517
+ leave: mouseleave_controller.bind(this),
3518
+ over: mouseover_controller.bind(this)
3519
+ };
3520
+ }
3521
+ onDown(...callbacks) {
3522
+ if (callbacks.length === 0) callbacks = [() => {}];
3523
+ this.__onEvent("down", {
3524
+ down: true,
3525
+ move: false,
3526
+ up: false,
3527
+ enter: false,
3528
+ out: false,
3529
+ leave: false,
3530
+ over: false
3531
+ }, ...callbacks);
3532
+ return this;
3533
+ }
3534
+ onMove(...callbacks) {
3535
+ if (callbacks.length === 0) callbacks = [() => {}];
3536
+ this.__onEvent("move", {
3537
+ down: false,
3538
+ move: true,
3539
+ up: false,
3540
+ enter: false,
3541
+ out: false,
3542
+ leave: false,
3543
+ over: false
3544
+ }, ...callbacks);
3545
+ return this;
3546
+ }
3547
+ onUp(...callbacks) {
3548
+ if (callbacks.length === 0) callbacks = [() => {}];
3549
+ this.__onEvent("up", {
3550
+ down: false,
3551
+ move: false,
3552
+ up: true,
3553
+ enter: false,
3554
+ out: false,
3555
+ leave: false,
3556
+ over: false
3557
+ }, ...callbacks);
3558
+ return this;
3559
+ }
3560
+ onEnter(...callbacks) {
3561
+ if (callbacks.length === 0) callbacks = [() => {}];
3562
+ this.__onEvent("enter", {
3563
+ down: false,
3564
+ move: false,
3565
+ up: false,
3566
+ enter: true,
3567
+ out: false,
3568
+ leave: false,
3569
+ over: false
3570
+ }, ...callbacks);
3571
+ return this;
3572
+ }
3573
+ onOut(...callbacks) {
3574
+ if (callbacks.length === 0) callbacks = [() => {}];
3575
+ this.__onEvent("out", {
3576
+ down: false,
3577
+ move: false,
3578
+ up: false,
3579
+ enter: false,
3580
+ out: true,
3581
+ leave: false,
3582
+ over: false
3583
+ }, ...callbacks);
3584
+ return this;
3585
+ }
3586
+ onLeave(...callbacks) {
3587
+ if (callbacks.length === 0) callbacks = [() => {}];
3588
+ this.__onEvent("leave", {
3589
+ down: false,
3590
+ move: false,
3591
+ up: false,
3592
+ enter: false,
3593
+ out: false,
3594
+ leave: true,
3595
+ over: false
3596
+ }, ...callbacks);
3597
+ return this;
3598
+ }
3599
+ onOver(...callbacks) {
3600
+ if (callbacks.length === 0) callbacks = [() => {}];
3601
+ this.__onEvent("over", {
3602
+ down: false,
3603
+ move: false,
3604
+ up: false,
3605
+ enter: false,
3606
+ out: false,
3607
+ leave: false,
3608
+ over: true
3609
+ }, ...callbacks);
3610
+ return this;
3611
+ }
3612
+ }
3613
+ function mousedown_controller(e) {
3614
+ EVENT_CONTROLLER.call(this, e, "down", () => {
3615
+ this.dx = parseInt(e.offsetX);
3616
+ this.dy = parseInt(e.offsetY);
3617
+ this.isDown = true;
3618
+ }, {
3619
+ x: this.dx,
3620
+ y: this.dy,
3621
+ t: Date.now() - this.cache.stream.t0
3622
+ });
3623
+ }
3624
+ function mousemove_controller(e) {
3625
+ EVENT_CONTROLLER.call(this, e, "move", () => {
3626
+ this.mx = parseInt(e.offsetX);
3627
+ this.my = parseInt(e.offsetY);
3628
+ this.isMoving = true;
3629
+ }, {
3630
+ x: this.mx,
3631
+ y: this.my,
3632
+ t: Date.now() - this.cache.stream.t0
3633
+ });
3634
+ }
3635
+ function mouseup_controller(e) {
3636
+ EVENT_CONTROLLER.call(this, e, "up", () => {
3637
+ this.ux = parseInt(e.offsetX);
3638
+ this.uy = parseInt(e.offsetY);
3639
+ this.isDown = false;
3640
+ const dx = this.dx;
3641
+ const dy = this.dy;
3642
+ const ux = this.ux;
3643
+ const uy = this.uy;
3644
+ const delta_x = (ux - dx) / this.target.Width;
3645
+ const delta_y = (dy - uy) / this.target.Height;
3646
+ const HORIZONTAL_SWIPPE = delta_x < 0 ? "left" : delta_x > 0 ? "right" : "none";
3647
+ const VERTICAL_SWIPPE = delta_y < 0 ? "bottom" : delta_y > 0 ? "top" : "none";
3648
+ this.swippe = {
3649
+ h: HORIZONTAL_SWIPPE,
3650
+ v: VERTICAL_SWIPPE,
3651
+ delta_x,
3652
+ delta_y
3653
+ };
3654
+ }, {
3655
+ x: this.ux,
3656
+ y: this.uy,
3657
+ t: Date.now() - this.cache.stream.t0
3658
+ });
3659
+ }
3660
+ function mouseenter_controller(e) {
3661
+ EVENT_CONTROLLER.call(this, e, "enter", null, null);
3662
+ }
3663
+ function mouseleave_controller(e) {
3664
+ EVENT_CONTROLLER.call(this, e, "leave", null, null);
3665
+ }
3666
+ function mouseout_controller(e) {
3667
+ EVENT_CONTROLLER.call(this, e, "out", null, null);
3668
+ }
3669
+ function mouseover_controller(e) {
3670
+ EVENT_CONTROLLER.call(this, e, "out", null, null);
3671
+ }
3672
+ const Mouse = target => new ZikoEventMouse(target);
3673
+
3674
+ function wheel_controller(e) {
3675
+ EVENT_CONTROLLER.call(this, e, "wheel", null, null);
3676
+ }
3677
+ class ZikoEventWheel extends ZikoEvent {
3678
+ constructor(target) {
3679
+ super(target);
3680
+ this.event = null;
3681
+ this.cache = {
3682
+ prefixe: "",
3683
+ preventDefault: {
3684
+ wheel: false
3685
+ },
3686
+ paused: {
3687
+ wheel: false
3688
+ },
3689
+ stream: {
3690
+ enabled: {
3691
+ wheel: false
3692
+ },
3693
+ clear: {
3694
+ wheel: false
3695
+ },
3696
+ history: {
3697
+ wheel: []
3698
+ }
3699
+ },
3700
+ callbacks: {
3701
+ click: []
3702
+ }
3703
+ };
3704
+ this.__controller = {
3705
+ wheel: wheel_controller.bind(this)
3706
+ };
3707
+ }
3708
+ onWheel(...callbacks) {
3709
+ this.__onEvent("wheel", {}, ...callbacks);
3710
+ return this;
3711
+ }
3712
+ }
3713
+ const Wheel = Target => new ZikoEventWheel(Target);
3714
+
3389
3715
  function keydown_controller(e) {
3390
3716
  EVENT_CONTROLLER.call(this, e, "down", () => this.kd = e.key, {
3391
3717
  key: e.key,
@@ -3876,53 +4202,53 @@
3876
4202
  }
3877
4203
  const Input$1 = Target => new ZikoEventInput(Target);
3878
4204
 
3879
- const custom_event_controller = event_name => function (e) {
3880
- EVENT_CONTROLLER.call(this, e, event_name, null, null);
3881
- };
3882
- class ZikoCustomEvent extends ZikoEvent {
4205
+ function hashchange_controller(e) {
4206
+ EVENT_CONTROLLER.call(this, e, "hashchange", null, null);
4207
+ }
4208
+ class ZikoEventHash extends ZikoEvent {
3883
4209
  constructor(target) {
3884
4210
  super(target);
3885
4211
  this.event = null;
3886
4212
  this.cache = {
3887
4213
  prefixe: "",
3888
- preventDefault: {},
3889
- paused: {},
4214
+ preventDefault: {
4215
+ hashchange: false
4216
+ },
4217
+ paused: {
4218
+ hashchange: false
4219
+ },
3890
4220
  stream: {
3891
- enabled: {},
3892
- clear: {},
3893
- history: {}
4221
+ enabled: {
4222
+ hashchange: false
4223
+ },
4224
+ clear: {
4225
+ hashchange: false
4226
+ },
4227
+ history: {
4228
+ hashchange: []
4229
+ }
3894
4230
  },
3895
- callbacks: {}
4231
+ callbacks: {
4232
+ hashchange: []
4233
+ }
4234
+ };
4235
+ this.__controller = {
4236
+ hashchange: hashchange_controller.bind(this)
3896
4237
  };
3897
- this.__controller = {};
3898
- }
3899
- #init(event_name) {
3900
- this.cache.preventDefault[event_name] = false;
3901
- this.cache.paused[event_name] = false;
3902
- this.cache.stream.enabled = false;
3903
- this.cache.stream.clear = false;
3904
- this.cache.stream.history = [];
3905
- this.cache.callbacks[event_name] = [];
3906
- this.__controller[event_name] = custom_event_controller(event_name).bind(this);
3907
- return this;
3908
- }
3909
- on(event_name, ...callbacks) {
3910
- if (!this.__controller[event_name]) this.#init(event_name);
3911
- this.__onEvent(event_name, {}, ...callbacks);
3912
- return this;
3913
4238
  }
3914
- emit(event_name, detail = {}) {
3915
- if (!this.__controller[event_name]) this.#init(event_name);
3916
- this.detail = detail;
3917
- const event = new Event(event_name);
3918
- this.targetElement.dispatchEvent(event);
4239
+ onChange(...callbacks) {
4240
+ this.__onEvent("hashchange", {}, ...callbacks);
3919
4241
  return this;
3920
4242
  }
3921
4243
  }
3922
- const CustomEvent = Target => new ZikoCustomEvent(Target);
4244
+ const HashEvent = Target => new ZikoEventHash(Target);
4245
+
4246
+ const customEvent = Target => new customEvent();
3923
4247
 
3924
4248
  const Events = {
3925
4249
  Pointer,
4250
+ Mouse,
4251
+ Wheel,
3926
4252
  Key,
3927
4253
  Drag,
3928
4254
  Drop,
@@ -3930,7 +4256,8 @@
3930
4256
  Clipboard,
3931
4257
  Focus,
3932
4258
  Input: Input$1,
3933
- CustomEvent,
4259
+ HashEvent,
4260
+ customEvent,
3934
4261
  ExtractAll: function () {
3935
4262
  const keys = Object.keys(this);
3936
4263
  for (let i = 0; i < keys.length; i++) {
@@ -6107,7 +6434,8 @@
6107
6434
 
6108
6435
  class ZikoUIElement {
6109
6436
  constructor(element, name = "") {
6110
- this.target = globalThis.__Target__ || globalThis.document.body;
6437
+ //this.target = globalThis.__Target__||globalThis.document.body;
6438
+ this.target = globalThis.__ZikoConfig__.default.target || globalThis.document.body;
6111
6439
  if (typeof element === "string") element = globalThis.document.createElement(element);
6112
6440
  this.element = element;
6113
6441
  this.uuid = this.constructor.name + "-" + Random.string(10);
@@ -6117,18 +6445,16 @@
6117
6445
  isRoot: false,
6118
6446
  isHidden: false,
6119
6447
  isFrozzen: false,
6120
- // transformMatrix:matrix([
6121
- // [0,0,0],
6122
- // [0,0,0],
6123
- // [1,1,0]
6124
- // ]),
6125
6448
  style: ZikoStyle({}),
6126
6449
  attributes: {},
6127
- filters: {}
6450
+ filters: {},
6451
+ temp: {}
6128
6452
  };
6129
6453
  this.items = [];
6130
6454
  this.events = {
6131
6455
  ptr: null,
6456
+ mouse: null,
6457
+ Wheel: null,
6132
6458
  key: null,
6133
6459
  drag: null,
6134
6460
  drop: null,
@@ -6151,6 +6477,7 @@
6151
6477
  });
6152
6478
  this.size("auto", "auto");
6153
6479
  globalThis.__UI__[this.cache.name]?.push(this);
6480
+ this.render(globalThis.__ZikoConfig__.default.render);
6154
6481
  }
6155
6482
  get st() {
6156
6483
  return this.cache.style;
@@ -6173,7 +6500,7 @@
6173
6500
  root = root.parent;
6174
6501
  }
6175
6502
  }
6176
- clone() {
6503
+ clone(render = false) {
6177
6504
  // Not working For Table
6178
6505
  const UI = new this.constructor();
6179
6506
  UI.__proto__ = this.__proto__;
@@ -6181,7 +6508,7 @@
6181
6508
  const items = [...this.items].map(n => n.clone());
6182
6509
  UI.append(...items);
6183
6510
  } else UI.element = this.element.cloneNode(true);
6184
- return UI;
6511
+ return UI.render(render);
6185
6512
  }
6186
6513
  style(styles, {
6187
6514
  target = "parent",
@@ -6357,10 +6684,13 @@
6357
6684
  this.items.forEach(callback);
6358
6685
  return this;
6359
6686
  }
6360
- filter(condition_callback, if_callback, else_callback) {
6687
+ where(condition_callback, if_callback, else_callback) {
6361
6688
  this.items.filter(condition_callback).forEach(if_callback);
6362
6689
  return this;
6363
6690
  }
6691
+ filter(condition) {
6692
+ return this.items.filter(condition);
6693
+ }
6364
6694
  filterByTextContent(text, exactMatch = false) {
6365
6695
  this.items.map(n => n.render());
6366
6696
  this.items.filter(n => {
@@ -6414,6 +6744,41 @@
6414
6744
  this.events.ptr.onOut(...callbacks);
6415
6745
  return this;
6416
6746
  }
6747
+ onMouseMove(...callbacks) {
6748
+ if (!this.events.mouse) this.events.mouse = Mouse(this);
6749
+ this.events.mouse.onMove(...callbacks);
6750
+ return this;
6751
+ }
6752
+ onMouseDown(...callbacks) {
6753
+ if (!this.events.mouse) this.events.mouse = Mouse(this);
6754
+ this.events.mouse.onDown(...callbacks);
6755
+ return this;
6756
+ }
6757
+ onMouseUp(...callbacks) {
6758
+ if (!this.events.mouse) this.events.mouse = Mouse(this);
6759
+ this.events.mouse.onUp(...callbacks);
6760
+ return this;
6761
+ }
6762
+ onMouseEnter(...callbacks) {
6763
+ if (!this.events.mouse) this.events.mouse = Mouse(this);
6764
+ this.events.mouse.onEnter(...callbacks);
6765
+ return this;
6766
+ }
6767
+ onMouseLeave(...callbacks) {
6768
+ if (!this.events.mouse) this.events.mouse = Mouse(this);
6769
+ this.events.mouse.onLeave(...callbacks);
6770
+ return this;
6771
+ }
6772
+ onMouseOut(...callbacks) {
6773
+ if (!this.events.mouse) this.events.mouse = Mouse(this);
6774
+ this.events.mouse.onOut(...callbacks);
6775
+ return this;
6776
+ }
6777
+ onWheel(...callbacks) {
6778
+ if (!this.events.wheel) this.events.wheel = Wheel(this);
6779
+ this.events.wheel.onWheel(...callbacks);
6780
+ return this;
6781
+ }
6417
6782
  onKeyDown(...callbacks) {
6418
6783
  if (!this.events.key) this.events.key = Key(this);
6419
6784
  this.events.key.onDown(...callbacks);
@@ -6501,12 +6866,12 @@
6501
6866
  return this;
6502
6867
  }
6503
6868
  on(event_name, ...callbacks) {
6504
- if (!this.events.custom) this.events.custom = CustomEvent(this);
6869
+ if (!this.events.custom) this.events.custom = customEvent();
6505
6870
  this.events.custom.on(event_name, ...callbacks);
6506
6871
  return this;
6507
6872
  }
6508
6873
  emit(event_name, detail = {}) {
6509
- if (!this.events.custom) this.events.custom = CustomEvent(this);
6874
+ if (!this.events.custom) this.events.custom = customEvent();
6510
6875
  this.events.custom.emit(event_name, detail);
6511
6876
  return this;
6512
6877
  }
@@ -6539,18 +6904,6 @@
6539
6904
  isVisible: topVisible || bottomVisible || rightVisible || leftVisible
6540
6905
  };
6541
6906
  }
6542
-
6543
- // toggleSlide() {}
6544
-
6545
- // Glassmorphism(background = "rgba(255,255,255,0.1)", blur = "1px") {
6546
- // this.style({ background: background, backdropFilter: blur });
6547
- // return this;
6548
- // }
6549
- // Neumorphism(r = "50px", bg = "cyan", box = "13px -13px 49px #5d8fac") {
6550
- // this.style({ borderRadius: r, background: bg, boxShadow: box });
6551
- // return this;
6552
- // }
6553
-
6554
6907
  setFullScreen(set = true, e) {
6555
6908
  if (!this.element.requestFullscreen) {
6556
6909
  console.error("Fullscreen API is not supported in this browser.");
@@ -6610,7 +6963,6 @@
6610
6963
  this.text = "";
6611
6964
  this.addValue(...value);
6612
6965
  this.st.display("inline-block");
6613
- this.render();
6614
6966
  }
6615
6967
  clear() {
6616
6968
  this.element.textContent = "";
@@ -6667,7 +7019,6 @@
6667
7019
  margin: 0,
6668
7020
  padding: 0
6669
7021
  });
6670
- this.render();
6671
7022
  }
6672
7023
  addValue(...value) {
6673
7024
  for (let i = 0; i < value.length; i++) {
@@ -6695,7 +7046,6 @@
6695
7046
  super(`h${type}`, `h${type}`);
6696
7047
  this.element = document.createElement("h" + type);
6697
7048
  this.element.textContent = value;
6698
- this.render();
6699
7049
  }
6700
7050
  get value() {
6701
7051
  return this.element.innerText;
@@ -6718,21 +7068,18 @@
6718
7068
 
6719
7069
  class ZikoUIHtmlTag extends ZikoUIElement {
6720
7070
  constructor(element) {
6721
- super(element, "ZikoHtml");
6722
- this.render();
7071
+ super(element, "html");
6723
7072
  }
6724
7073
  }
6725
7074
  class ZikoUIBr extends ZikoUIElement {
6726
7075
  constructor() {
6727
7076
  super("br", "br");
6728
- this.render();
6729
7077
  delete this.append;
6730
7078
  }
6731
7079
  }
6732
7080
  class ZikoUIHr extends ZikoUIElement {
6733
7081
  constructor() {
6734
7082
  super("hr", "hr");
6735
- this.render();
6736
7083
  delete this.append;
6737
7084
  }
6738
7085
  }
@@ -6740,7 +7087,6 @@
6740
7087
  constructor(href) {
6741
7088
  super("a", "link");
6742
7089
  this.setHref(href);
6743
- this.render();
6744
7090
  }
6745
7091
  setHref(href) {
6746
7092
  this.element.href = href;
@@ -6751,14 +7097,13 @@
6751
7097
  const brs = (n = 1) => new Array(n).fill(new ZikoUIBr());
6752
7098
  const hrs = (n = 1) => new Array(n).fill(new ZikoUIHr());
6753
7099
  const link = (href, ...UIElement) => new ZikoUILink(href).append(...UIElement);
6754
- const ZikoHtml = (tag, ...UIElement) => new ZikoUIHtmlTag(tag).append(...UIElement);
7100
+ const html = (tag, ...UIElement) => new ZikoUIHtmlTag(tag).append(...UIElement);
6755
7101
 
6756
7102
  class ZikoUILI extends ZikoUIElement {
6757
7103
  constructor(UI) {
6758
7104
  super();
6759
7105
  this.element = document.createElement("li");
6760
7106
  this.append(UI);
6761
- this.render();
6762
7107
  }
6763
7108
  }
6764
7109
  class ZikoUIList extends ZikoUIElement {
@@ -6842,7 +7187,6 @@
6842
7187
  constructor(...arr) {
6843
7188
  super("ol", "ol");
6844
7189
  this.append(...arr);
6845
- this.render();
6846
7190
  }
6847
7191
  type(tp = 1) {
6848
7192
  this.element.setAttribute("type", tp);
@@ -6857,7 +7201,6 @@
6857
7201
  constructor(...arr) {
6858
7202
  super("ul", "ul");
6859
7203
  this.append(...arr);
6860
- this.render();
6861
7204
  }
6862
7205
  }
6863
7206
  const li = UI => new ZikoUILI(UI);
@@ -6866,10 +7209,9 @@
6866
7209
 
6867
7210
  class ZikoUIBtn extends ZikoUIElement {
6868
7211
  constructor(value = "button") {
6869
- super();
7212
+ super("button", "btn");
6870
7213
  this.element = document.createElement("button");
6871
7214
  this.setValue(value);
6872
- this.render();
6873
7215
  this.st.cursor("pointer");
6874
7216
  }
6875
7217
  setValue(value) {
@@ -6915,7 +7257,6 @@
6915
7257
  super();
6916
7258
  this.element = document.createElement("textarea");
6917
7259
  //Object.assign(this,inputComposer.call(this));
6918
- this.render();
6919
7260
  }
6920
7261
  get value() {
6921
7262
  return this.element.textContent;
@@ -6935,7 +7276,6 @@
6935
7276
  });
6936
7277
  this.setValue(value);
6937
7278
  if (datalist) this.linkDatalist(datalist);
6938
- this.render();
6939
7279
  }
6940
7280
  onInput(...callbacks) {
6941
7281
  if (!this.events.input) this.events.input = Input$1(this);
@@ -7044,7 +7384,6 @@
7044
7384
  super();
7045
7385
  this._setType("number");
7046
7386
  this.setMin(min).setMax(max).setStep(step);
7047
- this.render();
7048
7387
  }
7049
7388
  get value() {
7050
7389
  return +this.element.value;
@@ -7067,7 +7406,6 @@
7067
7406
  super();
7068
7407
  this._setType("range");
7069
7408
  this.setMin(min).setMax(max).setValue(val).setStep(step);
7070
- this.render();
7071
7409
  }
7072
7410
  }
7073
7411
  class ZikoUIInputColor extends ZikoUIInput {
@@ -7075,7 +7413,6 @@
7075
7413
  super();
7076
7414
  this._setType("color");
7077
7415
  this.background(this.value);
7078
- this.render();
7079
7416
  this.onInput(() => this.background(this.value));
7080
7417
  }
7081
7418
  }
@@ -7083,35 +7420,30 @@
7083
7420
  constructor() {
7084
7421
  super();
7085
7422
  this._setType("password");
7086
- this.render();
7087
7423
  }
7088
7424
  }
7089
7425
  class ZikoUIInputEmail extends ZikoUIInput {
7090
7426
  constructor() {
7091
7427
  super();
7092
7428
  this._setType("email");
7093
- this.render();
7094
7429
  }
7095
7430
  }
7096
7431
  class ZikoUIInputTime extends ZikoUIInput {
7097
7432
  constructor() {
7098
7433
  super();
7099
7434
  this._setType("time");
7100
- this.render();
7101
7435
  }
7102
7436
  }
7103
7437
  class ZikoUIInputDate extends ZikoUIInput {
7104
7438
  constructor() {
7105
7439
  super();
7106
7440
  this._setType("date");
7107
- this.render();
7108
7441
  }
7109
7442
  }
7110
7443
  class ZikoUIInputDateTime extends ZikoUIInput {
7111
7444
  constructor() {
7112
7445
  super();
7113
7446
  this._setType("datetime-local");
7114
- this.render();
7115
7447
  }
7116
7448
  }
7117
7449
  class ZikoUIInputCheckbox extends ZikoUIInput {
@@ -7187,7 +7519,6 @@
7187
7519
  super();
7188
7520
  this.element = document.createElement("datalist");
7189
7521
  this.addOptions(...options).setId("ziko-datalist-id" + Random.string(10));
7190
- this.render();
7191
7522
  }
7192
7523
  addOptions(...options) {
7193
7524
  options.map(n => this.append(new ZikoUIInputOption(n)));
@@ -7246,7 +7577,6 @@
7246
7577
  constructor() {
7247
7578
  super();
7248
7579
  this.element = document.createElement("select");
7249
- this.render();
7250
7580
  }
7251
7581
  addOptions(...options) {
7252
7582
  options.map(n => this.append(new ZikoUIInputOption(n)));
@@ -7267,7 +7597,6 @@
7267
7597
  width: w,
7268
7598
  height: h
7269
7599
  });
7270
- this.render();
7271
7600
  }
7272
7601
  updateSrc(url) {
7273
7602
  this.value = url;
@@ -7295,7 +7624,6 @@
7295
7624
  this.caption.append(caption.element);
7296
7625
  this.element.append(this.img);
7297
7626
  this.element.append(this.caption);
7298
- this.render();
7299
7627
  }
7300
7628
  }
7301
7629
  const figure = (image, caption) => new ZikoUIFigure(image, caption);
@@ -7310,7 +7638,9 @@
7310
7638
  width: w,
7311
7639
  height: h
7312
7640
  });
7313
- this.render();
7641
+ }
7642
+ get t() {
7643
+ return this.element.currentTime;
7314
7644
  }
7315
7645
  useControls(enabled = true) {
7316
7646
  this.element.controls = enabled;
@@ -7332,6 +7662,12 @@
7332
7662
  this.element.requestPictureInPicture(e);
7333
7663
  return this;
7334
7664
  }
7665
+ seekTo(time) {
7666
+ this.element.currentTime = time;
7667
+ return this;
7668
+ }
7669
+ onPlay() {}
7670
+ onPause() {}
7335
7671
  }
7336
7672
  const video = (src, width, height) => new ZikoUIVideo(src, width, height);
7337
7673
 
@@ -7339,8 +7675,10 @@
7339
7675
  constructor(src) {
7340
7676
  super("audio", "audio");
7341
7677
  this.element.setAttribute("src", src);
7342
- this.render();
7343
- this.controls();
7678
+ this.useControls();
7679
+ }
7680
+ get t() {
7681
+ return this.element.currentTime;
7344
7682
  }
7345
7683
  useControls(enabled = true) {
7346
7684
  this.element.controls = enabled;
@@ -7354,6 +7692,12 @@
7354
7692
  this.element.pause();
7355
7693
  return this;
7356
7694
  }
7695
+ seekTo(time) {
7696
+ this.element.currentTime = time;
7697
+ return this;
7698
+ }
7699
+ onPlay() {}
7700
+ onPause() {}
7357
7701
  }
7358
7702
  const audio = src => new ZikoUIAudio(src);
7359
7703
 
@@ -7384,32 +7728,8 @@
7384
7728
  }
7385
7729
  const inputCamera = () => new ZikoUIWebcame();
7386
7730
 
7387
- function set_vertical(direction) {
7388
- direction == 1 ? this.style({
7389
- flexDirection: "column"
7390
- }) : direction == -1 && this.style({
7391
- flexDirection: "column-reverse"
7392
- });
7393
- return this;
7394
- }
7395
- function set_horizontal(direction) {
7396
- direction == 1 ? this.style({
7397
- flexDirection: "row"
7398
- }) : direction == -1 && this.style({
7399
- flexDirection: "row-reverse"
7400
- });
7401
- return this;
7402
- }
7403
- function map_pos_x(align) {
7404
- let pos = ["flex-start", "center", "flex-end"];
7405
- if (typeof align === "number") align = pos[align + 1];
7406
- return align;
7407
- }
7408
- function map_pos_y(align) {
7409
- return map_pos_x(-align);
7410
- }
7411
7731
  class ZikoUIFlex extends ZikoUIElement {
7412
- constructor(tag, w = "100%", h = "100%") {
7732
+ constructor(tag = "div", w = "100%", h = "100%") {
7413
7733
  super(tag, "Flex");
7414
7734
  this.direction = "cols";
7415
7735
  if (typeof w == "number") w += "%";
@@ -7499,6 +7819,30 @@
7499
7819
  }
7500
7820
  return new ZikoUIFlex(tag).append(...ZikoUIElement);
7501
7821
  };
7822
+ function set_vertical(direction) {
7823
+ direction == 1 ? this.style({
7824
+ flexDirection: "column"
7825
+ }) : direction == -1 && this.style({
7826
+ flexDirection: "column-reverse"
7827
+ });
7828
+ return this;
7829
+ }
7830
+ function set_horizontal(direction) {
7831
+ direction == 1 ? this.style({
7832
+ flexDirection: "row"
7833
+ }) : direction == -1 && this.style({
7834
+ flexDirection: "row-reverse"
7835
+ });
7836
+ return this;
7837
+ }
7838
+ function map_pos_x(align) {
7839
+ let pos = ["flex-start", "center", "flex-end"];
7840
+ if (typeof align === "number") align = pos[align + 1];
7841
+ return align;
7842
+ }
7843
+ function map_pos_y(align) {
7844
+ return map_pos_x(-align);
7845
+ }
7502
7846
 
7503
7847
  class ZikoUIGrid extends ZikoUIElement {
7504
7848
  constructor(tag = "div", w = "50vw", h = "50vh") {
@@ -7543,7 +7887,7 @@
7543
7887
  class ZikoUIAccordion extends ZikoUIElement {
7544
7888
  constructor(summary, content, icon = "😁") {
7545
7889
  super("details", "Accordion");
7546
- this.summary = ZikoHtml("summary", summary).style({
7890
+ this.summary = html("summary", summary).style({
7547
7891
  fontSize: "1.1em",
7548
7892
  padding: "0.625rem",
7549
7893
  fontWeight: "bold",
@@ -7695,7 +8039,7 @@
7695
8039
  }
7696
8040
  const CodeNote = () => new ZikoUICodeNote();
7697
8041
 
7698
- const Input = (codeText = "") => ZikoHtml("code", codeText).style({
8042
+ const Input = (codeText = "") => html("code", codeText).style({
7699
8043
  width: "100%",
7700
8044
  height: "auto",
7701
8045
  padding: "10px",
@@ -7709,7 +8053,7 @@
7709
8053
  background: "#f6f8fa",
7710
8054
  color: "#0062C3"
7711
8055
  }).setAttr("contenteditable", true).setAttr("spellcheck", false);
7712
- const Output = () => ZikoHtml("output").style({
8056
+ const Output = () => html("output").style({
7713
8057
  width: "100%",
7714
8058
  height: "auto",
7715
8059
  padding: "5px 0"
@@ -7733,7 +8077,7 @@
7733
8077
  const Right = ctx => Flex(text$1('▶️').style(BTN_STYLE).onClick(e => {
7734
8078
  if (ctx.parent instanceof ZikoUICodeNote) ctx.parent.setCurrentNote(ctx);
7735
8079
  ctx.execute();
7736
- globalThis.__Target__ = e.target.parent.parent[1][1];
8080
+ globalThis.__ZikoConfig__.default.target = e.target.parent.parent[1][1];
7737
8081
  }), text$1('📋').style(BTN_STYLE).onClick(() => {
7738
8082
  navigator.clipboard.writeText(ctx.codeText);
7739
8083
  }), text$1('✖️').style(BTN_STYLE).onClick(() => ctx.remove()), text$1('✖️').style(BTN_STYLE).onClick(() => ctx.remove())).style({
@@ -7865,7 +8209,7 @@
7865
8209
  #evaluateMd() {}
7866
8210
  #evaluateHtml() {}
7867
8211
  evaluate(order) {
7868
- globalThis.__Target__ = this.Output.element;
8212
+ globalThis.__ZikoConfig__.default.target = this.Output.element;
7869
8213
  switch (this.cache.type) {
7870
8214
  case "js":
7871
8215
  this.#evaluateJs(order);
@@ -8002,19 +8346,16 @@
8002
8346
  class ZikoUIMain extends ZikoUIElement {
8003
8347
  constructor() {
8004
8348
  super("main", "Main");
8005
- this.render();
8006
8349
  }
8007
8350
  }
8008
8351
  class ZikoUIHeader extends ZikoUIElement {
8009
8352
  constructor() {
8010
8353
  super("header", "Header");
8011
- this.render();
8012
8354
  }
8013
8355
  }
8014
8356
  class ZikoUINav extends ZikoUIElement {
8015
8357
  constructor() {
8016
8358
  super("nav", "Nav");
8017
- this.render();
8018
8359
  }
8019
8360
  }
8020
8361
  class ZikoUISection extends ZikoUIElement {
@@ -8023,26 +8364,22 @@
8023
8364
  this.style({
8024
8365
  position: "relative"
8025
8366
  });
8026
- this.render();
8027
8367
  }
8028
8368
  }
8029
8369
  class ZikoUIArticle extends ZikoUIElement {
8030
8370
  constructor() {
8031
8371
  super("article", "Article");
8032
- this.render();
8033
8372
  }
8034
8373
  }
8035
8374
  class ZikoUIAside extends ZikoUIElement {
8036
8375
  constructor() {
8037
8376
  super("aside", "Aside");
8038
- this.render();
8039
8377
  }
8040
8378
  }
8041
8379
  class ZikoUIFooter extends ZikoUIElement {
8042
8380
  constructor() {
8043
8381
  super("footer", "Footer");
8044
8382
  this.element = document.createElement("footer");
8045
- this.render();
8046
8383
  }
8047
8384
  }
8048
8385
  const Section$1 = (...ZikoUIElement) => new ZikoUISection().append(...ZikoUIElement);
@@ -8133,7 +8470,6 @@
8133
8470
  };
8134
8471
  if (body) this.fromMatrix(body);
8135
8472
  if (caption) this.setCaption(caption);
8136
- this.render();
8137
8473
  }
8138
8474
  get caption() {
8139
8475
  return this.structure.caption;
@@ -8232,7 +8568,7 @@
8232
8568
  const Table = (matrix, config) => new ZikoUITable(matrix, config);
8233
8569
 
8234
8570
  const UI$1 = {
8235
- ZikoHtml,
8571
+ html,
8236
8572
  text: text$1,
8237
8573
  p,
8238
8574
  h1,
@@ -8963,7 +9299,7 @@
8963
9299
  });
8964
9300
  this.transformMatrix = new Matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]);
8965
9301
  this.axisMatrix = new Matrix([[-10, -10], [10, 10]]);
8966
- this.render();
9302
+ this.render(globalThis.__ZikoConfig__.default.render);
8967
9303
  setTimeout(() => this.resize(w, h), 0);
8968
9304
  this.on("sizeupdated", () => this.adjust());
8969
9305
  }
@@ -9459,8 +9795,20 @@
9459
9795
 
9460
9796
  const __init__ = () => document.documentElement.setAttribute("data-engine", "zikojs");
9461
9797
 
9462
- var __Target__ = null;
9463
- if (globalThis?.document?.body) __Target__ = document.body;
9798
+ // var __Target__=null;
9799
+ // if(globalThis?.document?.body)__Target__=document.body;
9800
+ const __ZikoConfig__ = {
9801
+ default: {
9802
+ target: null,
9803
+ render: true
9804
+ },
9805
+ setDefault: function (pairs) {
9806
+ const keys = Object.keys(pairs);
9807
+ const values = Object.values(pairs);
9808
+ for (let i = 0; i < keys.length; i++) this.default[keys[i]] = values[i];
9809
+ },
9810
+ init: () => document.documentElement.setAttribute("data-engine", "zikojs")
9811
+ };
9464
9812
 
9465
9813
  class ZikoSeo {
9466
9814
  constructor(app) {
@@ -9512,11 +9860,14 @@
9512
9860
  this.head = null;
9513
9861
  this.#init();
9514
9862
  this.seo = Seo(this);
9863
+ Object.assign(this.events, {
9864
+ hash: null
9865
+ });
9515
9866
  Object.assign(this.cache, {
9516
9867
  theme: null,
9517
9868
  isRoot: true
9518
9869
  });
9519
- this.render();
9870
+ this.render(globalThis.__ZikoConfig__.default.render);
9520
9871
  }
9521
9872
  #init() {
9522
9873
  this.root.setAttribute("data-engine", "zikojs");
@@ -9533,6 +9884,11 @@
9533
9884
  }
9534
9885
  prefetch() {}
9535
9886
  description() {}
9887
+ onHashChange(...callbacks) {
9888
+ if (!this.events.hash) this.events.hash = HashEvent(this);
9889
+ this.events.hash.onChange(...callbacks);
9890
+ return this;
9891
+ }
9536
9892
  }
9537
9893
  const App = (...UIElement) => new ZikoUIApp().append(...UIElement);
9538
9894
 
@@ -9549,7 +9905,7 @@
9549
9905
  };
9550
9906
  globalThis.__Ziko__ = Ziko;
9551
9907
  globalThis.__UI__ = __UI__;
9552
- globalThis.__Target__ = __Target__;
9908
+ globalThis.__ZikoConfig__ = __ZikoConfig__;
9553
9909
  function ExtractAll() {
9554
9910
  UI$1.ExtractAll();
9555
9911
  Math$1.ExtractAll();
@@ -9615,7 +9971,6 @@
9615
9971
  exports.Time = Time;
9616
9972
  exports.UI = UI$1;
9617
9973
  exports.Utils = Utils;
9618
- exports.ZikoHtml = ZikoHtml;
9619
9974
  exports.ZikoUIArticle = ZikoUIArticle;
9620
9975
  exports.ZikoUIAside = ZikoUIAside;
9621
9976
  exports.ZikoUIAudio = ZikoUIAudio;
@@ -9635,6 +9990,7 @@
9635
9990
  exports.ZikoUISection = ZikoUISection;
9636
9991
  exports.ZikoUISvg = ZikoUISvg;
9637
9992
  exports.ZikoUIVideo = ZikoUIVideo;
9993
+ exports.__ZikoConfig__ = __ZikoConfig__;
9638
9994
  exports.__init__ = __init__;
9639
9995
  exports.abs = abs;
9640
9996
  exports.accum = accum;
@@ -9694,6 +10050,7 @@
9694
10050
  exports.h6 = h6;
9695
10051
  exports.hr = hr;
9696
10052
  exports.hrs = hrs;
10053
+ exports.html = html;
9697
10054
  exports.hypot = hypot;
9698
10055
  exports.image = image;
9699
10056
  exports.inRange = inRange;