fraxel 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/dist/animation/easing.d.ts +29 -0
  2. package/dist/animation/easing.d.ts.map +1 -0
  3. package/dist/animation/easing.js +50 -0
  4. package/dist/animation/easing.js.map +1 -0
  5. package/dist/animation/index.d.ts +7 -0
  6. package/dist/animation/index.d.ts.map +1 -0
  7. package/dist/animation/index.js +7 -0
  8. package/dist/animation/index.js.map +1 -0
  9. package/dist/animation/multiple.d.ts +26 -0
  10. package/dist/animation/multiple.d.ts.map +1 -0
  11. package/dist/animation/multiple.js +27 -0
  12. package/dist/animation/multiple.js.map +1 -0
  13. package/dist/animation/properties.d.ts +30 -0
  14. package/dist/animation/properties.d.ts.map +1 -0
  15. package/dist/animation/properties.js +32 -0
  16. package/dist/animation/properties.js.map +1 -0
  17. package/dist/animation/sequences.d.ts +30 -0
  18. package/dist/animation/sequences.d.ts.map +1 -0
  19. package/dist/animation/sequences.js +50 -0
  20. package/dist/animation/sequences.js.map +1 -0
  21. package/dist/animation/sprite-sheet.d.ts +81 -0
  22. package/dist/animation/sprite-sheet.d.ts.map +1 -0
  23. package/dist/animation/sprite-sheet.js +103 -0
  24. package/dist/animation/sprite-sheet.js.map +1 -0
  25. package/dist/animation/tween.d.ts +78 -0
  26. package/dist/animation/tween.d.ts.map +1 -0
  27. package/dist/animation/tween.js +103 -0
  28. package/dist/animation/tween.js.map +1 -0
  29. package/dist/assets/index.d.ts +6 -0
  30. package/dist/assets/index.d.ts.map +1 -0
  31. package/dist/assets/index.js +5 -0
  32. package/dist/assets/index.js.map +1 -0
  33. package/dist/assets/load-sound.d.ts +17 -0
  34. package/dist/assets/load-sound.d.ts.map +1 -0
  35. package/dist/assets/load-sound.js +35 -0
  36. package/dist/assets/load-sound.js.map +1 -0
  37. package/dist/assets/load-texture.d.ts +12 -0
  38. package/dist/assets/load-texture.d.ts.map +1 -0
  39. package/dist/assets/load-texture.js +40 -0
  40. package/dist/assets/load-texture.js.map +1 -0
  41. package/dist/assets/loader.d.ts +59 -0
  42. package/dist/assets/loader.d.ts.map +1 -0
  43. package/dist/assets/loader.js +65 -0
  44. package/dist/assets/loader.js.map +1 -0
  45. package/dist/assets/texture.d.ts +36 -0
  46. package/dist/assets/texture.d.ts.map +1 -0
  47. package/dist/assets/texture.js +49 -0
  48. package/dist/assets/texture.js.map +1 -0
  49. package/dist/audio/audio-context.d.ts +14 -0
  50. package/dist/audio/audio-context.d.ts.map +1 -0
  51. package/dist/audio/audio-context.js +20 -0
  52. package/dist/audio/audio-context.js.map +1 -0
  53. package/dist/audio/index.d.ts +2 -0
  54. package/dist/audio/index.d.ts.map +1 -0
  55. package/dist/audio/index.js +2 -0
  56. package/dist/audio/index.js.map +1 -0
  57. package/dist/collision/broadphase/spatial-hash.d.ts +32 -0
  58. package/dist/collision/broadphase/spatial-hash.d.ts.map +1 -0
  59. package/dist/collision/broadphase/spatial-hash.js +87 -0
  60. package/dist/collision/broadphase/spatial-hash.js.map +1 -0
  61. package/dist/collision/collision-system.d.ts +52 -0
  62. package/dist/collision/collision-system.d.ts.map +1 -0
  63. package/dist/collision/collision-system.js +278 -0
  64. package/dist/collision/collision-system.js.map +1 -0
  65. package/dist/collision/events/collision-emitter.d.ts +38 -0
  66. package/dist/collision/events/collision-emitter.d.ts.map +1 -0
  67. package/dist/collision/events/collision-emitter.js +47 -0
  68. package/dist/collision/events/collision-emitter.js.map +1 -0
  69. package/dist/collision/index.d.ts +13 -0
  70. package/dist/collision/index.d.ts.map +1 -0
  71. package/dist/collision/index.js +11 -0
  72. package/dist/collision/index.js.map +1 -0
  73. package/dist/collision/narrowphase/detector.d.ts +26 -0
  74. package/dist/collision/narrowphase/detector.d.ts.map +1 -0
  75. package/dist/collision/narrowphase/detector.js +70 -0
  76. package/dist/collision/narrowphase/detector.js.map +1 -0
  77. package/dist/collision/narrowphase/shapes.d.ts +91 -0
  78. package/dist/collision/narrowphase/shapes.d.ts.map +1 -0
  79. package/dist/collision/narrowphase/shapes.js +52 -0
  80. package/dist/collision/narrowphase/shapes.js.map +1 -0
  81. package/dist/collision/physics/physics-body.d.ts +38 -0
  82. package/dist/collision/physics/physics-body.d.ts.map +1 -0
  83. package/dist/collision/physics/physics-body.js +53 -0
  84. package/dist/collision/physics/physics-body.js.map +1 -0
  85. package/dist/collision/physics/physics-system.d.ts +23 -0
  86. package/dist/collision/physics/physics-system.d.ts.map +1 -0
  87. package/dist/collision/physics/physics-system.js +86 -0
  88. package/dist/collision/physics/physics-system.js.map +1 -0
  89. package/dist/collision/physics/resolver.d.ts +16 -0
  90. package/dist/collision/physics/resolver.d.ts.map +1 -0
  91. package/dist/collision/physics/resolver.js +91 -0
  92. package/dist/collision/physics/resolver.js.map +1 -0
  93. package/dist/collision/types.d.ts +22 -0
  94. package/dist/collision/types.d.ts.map +1 -0
  95. package/dist/collision/types.js +2 -0
  96. package/dist/collision/types.js.map +1 -0
  97. package/dist/core/game-config.d.ts +34 -0
  98. package/dist/core/game-config.d.ts.map +1 -0
  99. package/dist/core/game-config.js +31 -0
  100. package/dist/core/game-config.js.map +1 -0
  101. package/dist/core/game.d.ts +86 -0
  102. package/dist/core/game.d.ts.map +1 -0
  103. package/dist/core/game.js +166 -0
  104. package/dist/core/game.js.map +1 -0
  105. package/dist/core/index.d.ts +6 -0
  106. package/dist/core/index.d.ts.map +1 -0
  107. package/dist/core/index.js +6 -0
  108. package/dist/core/index.js.map +1 -0
  109. package/dist/core/scene-manager.d.ts +28 -0
  110. package/dist/core/scene-manager.d.ts.map +1 -0
  111. package/dist/core/scene-manager.js +65 -0
  112. package/dist/core/scene-manager.js.map +1 -0
  113. package/dist/core/scene.d.ts +43 -0
  114. package/dist/core/scene.d.ts.map +1 -0
  115. package/dist/core/scene.js +48 -0
  116. package/dist/core/scene.js.map +1 -0
  117. package/dist/core/theme.d.ts +63 -0
  118. package/dist/core/theme.d.ts.map +1 -0
  119. package/dist/core/theme.js +59 -0
  120. package/dist/core/theme.js.map +1 -0
  121. package/dist/errors/animation.d.ts +24 -0
  122. package/dist/errors/animation.d.ts.map +1 -0
  123. package/dist/errors/animation.js +29 -0
  124. package/dist/errors/animation.js.map +1 -0
  125. package/dist/errors/assets.d.ts +34 -0
  126. package/dist/errors/assets.d.ts.map +1 -0
  127. package/dist/errors/assets.js +41 -0
  128. package/dist/errors/assets.js.map +1 -0
  129. package/dist/errors/base.d.ts +12 -0
  130. package/dist/errors/base.d.ts.map +1 -0
  131. package/dist/errors/base.js +15 -0
  132. package/dist/errors/base.js.map +1 -0
  133. package/dist/errors/env.d.ts +24 -0
  134. package/dist/errors/env.d.ts.map +1 -0
  135. package/dist/errors/env.js +29 -0
  136. package/dist/errors/env.js.map +1 -0
  137. package/dist/errors/hook.d.ts +46 -0
  138. package/dist/errors/hook.d.ts.map +1 -0
  139. package/dist/errors/hook.js +55 -0
  140. package/dist/errors/hook.js.map +1 -0
  141. package/dist/errors/index.d.ts +11 -0
  142. package/dist/errors/index.d.ts.map +1 -0
  143. package/dist/errors/index.js +11 -0
  144. package/dist/errors/index.js.map +1 -0
  145. package/dist/errors/jsx.d.ts +26 -0
  146. package/dist/errors/jsx.d.ts.map +1 -0
  147. package/dist/errors/jsx.js +45 -0
  148. package/dist/errors/jsx.js.map +1 -0
  149. package/dist/errors/lifecycle.d.ts +35 -0
  150. package/dist/errors/lifecycle.d.ts.map +1 -0
  151. package/dist/errors/lifecycle.js +42 -0
  152. package/dist/errors/lifecycle.js.map +1 -0
  153. package/dist/errors/math.d.ts +24 -0
  154. package/dist/errors/math.d.ts.map +1 -0
  155. package/dist/errors/math.js +34 -0
  156. package/dist/errors/math.js.map +1 -0
  157. package/dist/errors/node.d.ts +68 -0
  158. package/dist/errors/node.d.ts.map +1 -0
  159. package/dist/errors/node.js +87 -0
  160. package/dist/errors/node.js.map +1 -0
  161. package/dist/errors/scene.d.ts +35 -0
  162. package/dist/errors/scene.d.ts.map +1 -0
  163. package/dist/errors/scene.js +42 -0
  164. package/dist/errors/scene.js.map +1 -0
  165. package/dist/events/event.d.ts +106 -0
  166. package/dist/events/event.d.ts.map +1 -0
  167. package/dist/events/event.js +125 -0
  168. package/dist/events/event.js.map +1 -0
  169. package/dist/events/index.d.ts +2 -0
  170. package/dist/events/index.d.ts.map +1 -0
  171. package/dist/events/index.js +2 -0
  172. package/dist/events/index.js.map +1 -0
  173. package/dist/events/types.d.ts +20 -0
  174. package/dist/events/types.d.ts.map +1 -0
  175. package/dist/events/types.js +2 -0
  176. package/dist/events/types.js.map +1 -0
  177. package/dist/hooks/context.d.ts +15 -0
  178. package/dist/hooks/context.d.ts.map +1 -0
  179. package/dist/hooks/context.js +26 -0
  180. package/dist/hooks/context.js.map +1 -0
  181. package/dist/hooks/deriveds/by-nodes/index.d.ts +7 -0
  182. package/dist/hooks/deriveds/by-nodes/index.d.ts.map +1 -0
  183. package/dist/hooks/deriveds/by-nodes/index.js +7 -0
  184. package/dist/hooks/deriveds/by-nodes/index.js.map +1 -0
  185. package/dist/hooks/deriveds/by-nodes/use-animation.d.ts +44 -0
  186. package/dist/hooks/deriveds/by-nodes/use-animation.d.ts.map +1 -0
  187. package/dist/hooks/deriveds/by-nodes/use-animation.js +61 -0
  188. package/dist/hooks/deriveds/by-nodes/use-animation.js.map +1 -0
  189. package/dist/hooks/deriveds/by-nodes/use-audio.d.ts +33 -0
  190. package/dist/hooks/deriveds/by-nodes/use-audio.d.ts.map +1 -0
  191. package/dist/hooks/deriveds/by-nodes/use-audio.js +43 -0
  192. package/dist/hooks/deriveds/by-nodes/use-audio.js.map +1 -0
  193. package/dist/hooks/deriveds/by-nodes/use-clickable.d.ts +32 -0
  194. package/dist/hooks/deriveds/by-nodes/use-clickable.d.ts.map +1 -0
  195. package/dist/hooks/deriveds/by-nodes/use-clickable.js +43 -0
  196. package/dist/hooks/deriveds/by-nodes/use-clickable.js.map +1 -0
  197. package/dist/hooks/deriveds/by-nodes/use-collider.d.ts +35 -0
  198. package/dist/hooks/deriveds/by-nodes/use-collider.d.ts.map +1 -0
  199. package/dist/hooks/deriveds/by-nodes/use-collider.js +55 -0
  200. package/dist/hooks/deriveds/by-nodes/use-collider.js.map +1 -0
  201. package/dist/hooks/deriveds/by-nodes/use-ray-cast.d.ts +35 -0
  202. package/dist/hooks/deriveds/by-nodes/use-ray-cast.d.ts.map +1 -0
  203. package/dist/hooks/deriveds/by-nodes/use-ray-cast.js +47 -0
  204. package/dist/hooks/deriveds/by-nodes/use-ray-cast.js.map +1 -0
  205. package/dist/hooks/deriveds/by-nodes/use-timer.d.ts +34 -0
  206. package/dist/hooks/deriveds/by-nodes/use-timer.d.ts.map +1 -0
  207. package/dist/hooks/deriveds/by-nodes/use-timer.js +48 -0
  208. package/dist/hooks/deriveds/by-nodes/use-timer.js.map +1 -0
  209. package/dist/hooks/deriveds/index.d.ts +5 -0
  210. package/dist/hooks/deriveds/index.d.ts.map +1 -0
  211. package/dist/hooks/deriveds/index.js +5 -0
  212. package/dist/hooks/deriveds/index.js.map +1 -0
  213. package/dist/hooks/deriveds/use-condition.d.ts +37 -0
  214. package/dist/hooks/deriveds/use-condition.d.ts.map +1 -0
  215. package/dist/hooks/deriveds/use-condition.js +47 -0
  216. package/dist/hooks/deriveds/use-condition.js.map +1 -0
  217. package/dist/hooks/deriveds/use-match.d.ts +26 -0
  218. package/dist/hooks/deriveds/use-match.d.ts.map +1 -0
  219. package/dist/hooks/deriveds/use-match.js +38 -0
  220. package/dist/hooks/deriveds/use-match.js.map +1 -0
  221. package/dist/hooks/deriveds/use-partial-node.d.ts +22 -0
  222. package/dist/hooks/deriveds/use-partial-node.d.ts.map +1 -0
  223. package/dist/hooks/deriveds/use-partial-node.js +25 -0
  224. package/dist/hooks/deriveds/use-partial-node.js.map +1 -0
  225. package/dist/hooks/deriveds/use-when.d.ts +28 -0
  226. package/dist/hooks/deriveds/use-when.d.ts.map +1 -0
  227. package/dist/hooks/deriveds/use-when.js +35 -0
  228. package/dist/hooks/deriveds/use-when.js.map +1 -0
  229. package/dist/hooks/index.d.ts +16 -0
  230. package/dist/hooks/index.d.ts.map +1 -0
  231. package/dist/hooks/index.js +16 -0
  232. package/dist/hooks/index.js.map +1 -0
  233. package/dist/hooks/use-child.d.ts +24 -0
  234. package/dist/hooks/use-child.d.ts.map +1 -0
  235. package/dist/hooks/use-child.js +37 -0
  236. package/dist/hooks/use-child.js.map +1 -0
  237. package/dist/hooks/use-computed.d.ts +28 -0
  238. package/dist/hooks/use-computed.d.ts.map +1 -0
  239. package/dist/hooks/use-computed.js +41 -0
  240. package/dist/hooks/use-computed.js.map +1 -0
  241. package/dist/hooks/use-context.d.ts +58 -0
  242. package/dist/hooks/use-context.d.ts.map +1 -0
  243. package/dist/hooks/use-context.js +77 -0
  244. package/dist/hooks/use-context.js.map +1 -0
  245. package/dist/hooks/use-effect.d.ts +24 -0
  246. package/dist/hooks/use-effect.d.ts.map +1 -0
  247. package/dist/hooks/use-effect.js +63 -0
  248. package/dist/hooks/use-effect.js.map +1 -0
  249. package/dist/hooks/use-event.d.ts +29 -0
  250. package/dist/hooks/use-event.d.ts.map +1 -0
  251. package/dist/hooks/use-event.js +30 -0
  252. package/dist/hooks/use-event.js.map +1 -0
  253. package/dist/hooks/use-game.d.ts +17 -0
  254. package/dist/hooks/use-game.d.ts.map +1 -0
  255. package/dist/hooks/use-game.js +35 -0
  256. package/dist/hooks/use-game.js.map +1 -0
  257. package/dist/hooks/use-mount.d.ts +21 -0
  258. package/dist/hooks/use-mount.d.ts.map +1 -0
  259. package/dist/hooks/use-mount.js +33 -0
  260. package/dist/hooks/use-mount.js.map +1 -0
  261. package/dist/hooks/use-node.d.ts +42 -0
  262. package/dist/hooks/use-node.d.ts.map +1 -0
  263. package/dist/hooks/use-node.js +63 -0
  264. package/dist/hooks/use-node.js.map +1 -0
  265. package/dist/hooks/use-ref.d.ts +27 -0
  266. package/dist/hooks/use-ref.d.ts.map +1 -0
  267. package/dist/hooks/use-ref.js +33 -0
  268. package/dist/hooks/use-ref.js.map +1 -0
  269. package/dist/hooks/use-script.d.ts +33 -0
  270. package/dist/hooks/use-script.d.ts.map +1 -0
  271. package/dist/hooks/use-script.js +40 -0
  272. package/dist/hooks/use-script.js.map +1 -0
  273. package/dist/hooks/use-signal.d.ts +25 -0
  274. package/dist/hooks/use-signal.d.ts.map +1 -0
  275. package/dist/hooks/use-signal.js +36 -0
  276. package/dist/hooks/use-signal.js.map +1 -0
  277. package/dist/hooks/use-spawn.d.ts +27 -0
  278. package/dist/hooks/use-spawn.d.ts.map +1 -0
  279. package/dist/hooks/use-spawn.js +39 -0
  280. package/dist/hooks/use-spawn.js.map +1 -0
  281. package/dist/hooks/use-trigger.d.ts +51 -0
  282. package/dist/hooks/use-trigger.d.ts.map +1 -0
  283. package/dist/hooks/use-trigger.js +68 -0
  284. package/dist/hooks/use-trigger.js.map +1 -0
  285. package/dist/index.d.ts +11 -0
  286. package/dist/index.d.ts.map +1 -0
  287. package/dist/index.js +11 -0
  288. package/dist/index.js.map +1 -0
  289. package/dist/input/input.d.ts +46 -0
  290. package/dist/input/input.d.ts.map +1 -0
  291. package/dist/input/input.js +159 -0
  292. package/dist/input/input.js.map +1 -0
  293. package/dist/jsx/components/fragment.d.ts +3 -0
  294. package/dist/jsx/components/fragment.d.ts.map +1 -0
  295. package/dist/jsx/components/fragment.js +7 -0
  296. package/dist/jsx/components/fragment.js.map +1 -0
  297. package/dist/jsx/components/game.d.ts +21 -0
  298. package/dist/jsx/components/game.d.ts.map +1 -0
  299. package/dist/jsx/components/game.js +17 -0
  300. package/dist/jsx/components/game.js.map +1 -0
  301. package/dist/jsx/components/index.d.ts +5 -0
  302. package/dist/jsx/components/index.d.ts.map +1 -0
  303. package/dist/jsx/components/index.js +5 -0
  304. package/dist/jsx/components/index.js.map +1 -0
  305. package/dist/jsx/components/list.d.ts +88 -0
  306. package/dist/jsx/components/list.d.ts.map +1 -0
  307. package/dist/jsx/components/list.js +93 -0
  308. package/dist/jsx/components/list.js.map +1 -0
  309. package/dist/jsx/components/scene.d.ts +40 -0
  310. package/dist/jsx/components/scene.d.ts.map +1 -0
  311. package/dist/jsx/components/scene.js +20 -0
  312. package/dist/jsx/components/scene.js.map +1 -0
  313. package/dist/jsx/index.d.ts +5 -0
  314. package/dist/jsx/index.d.ts.map +1 -0
  315. package/dist/jsx/index.js +5 -0
  316. package/dist/jsx/index.js.map +1 -0
  317. package/dist/jsx/jsx.d.ts +3 -0
  318. package/dist/jsx/jsx.d.ts.map +1 -0
  319. package/dist/jsx/jsx.js +4 -0
  320. package/dist/jsx/jsx.js.map +1 -0
  321. package/dist/jsx/render/game.d.ts +41 -0
  322. package/dist/jsx/render/game.d.ts.map +1 -0
  323. package/dist/jsx/render/game.js +86 -0
  324. package/dist/jsx/render/game.js.map +1 -0
  325. package/dist/jsx/render/index.d.ts +3 -0
  326. package/dist/jsx/render/index.d.ts.map +1 -0
  327. package/dist/jsx/render/index.js +3 -0
  328. package/dist/jsx/render/index.js.map +1 -0
  329. package/dist/jsx/render/to-nodes.d.ts +10 -0
  330. package/dist/jsx/render/to-nodes.d.ts.map +1 -0
  331. package/dist/jsx/render/to-nodes.js +52 -0
  332. package/dist/jsx/render/to-nodes.js.map +1 -0
  333. package/dist/jsx/render/types/class-component.d.ts +4 -0
  334. package/dist/jsx/render/types/class-component.d.ts.map +1 -0
  335. package/dist/jsx/render/types/class-component.js +8 -0
  336. package/dist/jsx/render/types/class-component.js.map +1 -0
  337. package/dist/jsx/render/types/func-components.d.ts +4 -0
  338. package/dist/jsx/render/types/func-components.d.ts.map +1 -0
  339. package/dist/jsx/render/types/func-components.js +8 -0
  340. package/dist/jsx/render/types/func-components.js.map +1 -0
  341. package/dist/jsx/render/types/instrinsic-elements.d.ts +6 -0
  342. package/dist/jsx/render/types/instrinsic-elements.d.ts.map +1 -0
  343. package/dist/jsx/render/types/instrinsic-elements.js +41 -0
  344. package/dist/jsx/render/types/instrinsic-elements.js.map +1 -0
  345. package/dist/jsx/types.d.ts +41 -0
  346. package/dist/jsx/types.d.ts.map +1 -0
  347. package/dist/jsx/types.js +2 -0
  348. package/dist/jsx/types.js.map +1 -0
  349. package/dist/jsx/utils.d.ts +4 -0
  350. package/dist/jsx/utils.d.ts.map +1 -0
  351. package/dist/jsx/utils.js +15 -0
  352. package/dist/jsx/utils.js.map +1 -0
  353. package/dist/jsx-runtime.d.ts +6 -0
  354. package/dist/jsx-runtime.d.ts.map +1 -0
  355. package/dist/jsx-runtime.js +6 -0
  356. package/dist/jsx-runtime.js.map +1 -0
  357. package/dist/math/index.d.ts +3 -0
  358. package/dist/math/index.d.ts.map +1 -0
  359. package/dist/math/index.js +2 -0
  360. package/dist/math/index.js.map +1 -0
  361. package/dist/math/types.d.ts +13 -0
  362. package/dist/math/types.d.ts.map +1 -0
  363. package/dist/math/types.js +2 -0
  364. package/dist/math/types.js.map +1 -0
  365. package/dist/math/vector2.d.ts +145 -0
  366. package/dist/math/vector2.d.ts.map +1 -0
  367. package/dist/math/vector2.js +164 -0
  368. package/dist/math/vector2.js.map +1 -0
  369. package/dist/nodes/_node.d.ts +283 -0
  370. package/dist/nodes/_node.d.ts.map +1 -0
  371. package/dist/nodes/_node.js +371 -0
  372. package/dist/nodes/_node.js.map +1 -0
  373. package/dist/nodes/animation-player.d.ts +208 -0
  374. package/dist/nodes/animation-player.d.ts.map +1 -0
  375. package/dist/nodes/animation-player.js +249 -0
  376. package/dist/nodes/animation-player.js.map +1 -0
  377. package/dist/nodes/audio-player.d.ts +128 -0
  378. package/dist/nodes/audio-player.d.ts.map +1 -0
  379. package/dist/nodes/audio-player.js +173 -0
  380. package/dist/nodes/audio-player.js.map +1 -0
  381. package/dist/nodes/group.d.ts +55 -0
  382. package/dist/nodes/group.d.ts.map +1 -0
  383. package/dist/nodes/group.js +54 -0
  384. package/dist/nodes/group.js.map +1 -0
  385. package/dist/nodes/index.d.ts +8 -0
  386. package/dist/nodes/index.d.ts.map +1 -0
  387. package/dist/nodes/index.js +7 -0
  388. package/dist/nodes/index.js.map +1 -0
  389. package/dist/nodes/lib/enum.d.ts +42 -0
  390. package/dist/nodes/lib/enum.d.ts.map +1 -0
  391. package/dist/nodes/lib/enum.js +43 -0
  392. package/dist/nodes/lib/enum.js.map +1 -0
  393. package/dist/nodes/lib/index.d.ts +5 -0
  394. package/dist/nodes/lib/index.d.ts.map +1 -0
  395. package/dist/nodes/lib/index.js +5 -0
  396. package/dist/nodes/lib/index.js.map +1 -0
  397. package/dist/nodes/lib/registry.d.ts +43 -0
  398. package/dist/nodes/lib/registry.d.ts.map +1 -0
  399. package/dist/nodes/lib/registry.js +46 -0
  400. package/dist/nodes/lib/registry.js.map +1 -0
  401. package/dist/nodes/lib/types.d.ts +89 -0
  402. package/dist/nodes/lib/types.d.ts.map +1 -0
  403. package/dist/nodes/lib/types.js +2 -0
  404. package/dist/nodes/lib/types.js.map +1 -0
  405. package/dist/nodes/lib/utils.d.ts +35 -0
  406. package/dist/nodes/lib/utils.d.ts.map +1 -0
  407. package/dist/nodes/lib/utils.js +58 -0
  408. package/dist/nodes/lib/utils.js.map +1 -0
  409. package/dist/nodes/node2d/_node2d.d.ts +59 -0
  410. package/dist/nodes/node2d/_node2d.d.ts.map +1 -0
  411. package/dist/nodes/node2d/_node2d.js +57 -0
  412. package/dist/nodes/node2d/_node2d.js.map +1 -0
  413. package/dist/nodes/node2d/camera.d.ts +64 -0
  414. package/dist/nodes/node2d/camera.d.ts.map +1 -0
  415. package/dist/nodes/node2d/camera.js +72 -0
  416. package/dist/nodes/node2d/camera.js.map +1 -0
  417. package/dist/nodes/node2d/clickable.d.ts +96 -0
  418. package/dist/nodes/node2d/clickable.d.ts.map +1 -0
  419. package/dist/nodes/node2d/clickable.js +117 -0
  420. package/dist/nodes/node2d/clickable.js.map +1 -0
  421. package/dist/nodes/node2d/collider.d.ts +96 -0
  422. package/dist/nodes/node2d/collider.d.ts.map +1 -0
  423. package/dist/nodes/node2d/collider.js +116 -0
  424. package/dist/nodes/node2d/collider.js.map +1 -0
  425. package/dist/nodes/node2d/index.d.ts +12 -0
  426. package/dist/nodes/node2d/index.d.ts.map +1 -0
  427. package/dist/nodes/node2d/index.js +11 -0
  428. package/dist/nodes/node2d/index.js.map +1 -0
  429. package/dist/nodes/node2d/lib/index.d.ts +2 -0
  430. package/dist/nodes/node2d/lib/index.d.ts.map +1 -0
  431. package/dist/nodes/node2d/lib/index.js +2 -0
  432. package/dist/nodes/node2d/lib/index.js.map +1 -0
  433. package/dist/nodes/node2d/lib/utils.d.ts +4 -0
  434. package/dist/nodes/node2d/lib/utils.d.ts.map +1 -0
  435. package/dist/nodes/node2d/lib/utils.js +14 -0
  436. package/dist/nodes/node2d/lib/utils.js.map +1 -0
  437. package/dist/nodes/node2d/ray-cast.d.ts +115 -0
  438. package/dist/nodes/node2d/ray-cast.d.ts.map +1 -0
  439. package/dist/nodes/node2d/ray-cast.js +129 -0
  440. package/dist/nodes/node2d/ray-cast.js.map +1 -0
  441. package/dist/nodes/node2d/rectangle.d.ts +87 -0
  442. package/dist/nodes/node2d/rectangle.d.ts.map +1 -0
  443. package/dist/nodes/node2d/rectangle.js +60 -0
  444. package/dist/nodes/node2d/rectangle.js.map +1 -0
  445. package/dist/nodes/node2d/rigid-body.d.ts +65 -0
  446. package/dist/nodes/node2d/rigid-body.d.ts.map +1 -0
  447. package/dist/nodes/node2d/rigid-body.js +56 -0
  448. package/dist/nodes/node2d/rigid-body.js.map +1 -0
  449. package/dist/nodes/node2d/sprite.d.ts +285 -0
  450. package/dist/nodes/node2d/sprite.d.ts.map +1 -0
  451. package/dist/nodes/node2d/sprite.js +226 -0
  452. package/dist/nodes/node2d/sprite.js.map +1 -0
  453. package/dist/nodes/node2d/text.d.ts +62 -0
  454. package/dist/nodes/node2d/text.d.ts.map +1 -0
  455. package/dist/nodes/node2d/text.js +52 -0
  456. package/dist/nodes/node2d/text.js.map +1 -0
  457. package/dist/nodes/node2d/transform.d.ts +32 -0
  458. package/dist/nodes/node2d/transform.d.ts.map +1 -0
  459. package/dist/nodes/node2d/transform.js +30 -0
  460. package/dist/nodes/node2d/transform.js.map +1 -0
  461. package/dist/nodes/timer.d.ts +107 -0
  462. package/dist/nodes/timer.d.ts.map +1 -0
  463. package/dist/nodes/timer.js +108 -0
  464. package/dist/nodes/timer.js.map +1 -0
  465. package/dist/reactivity/index.d.ts +5 -0
  466. package/dist/reactivity/index.d.ts.map +1 -0
  467. package/dist/reactivity/index.js +5 -0
  468. package/dist/reactivity/index.js.map +1 -0
  469. package/dist/reactivity/reactive.d.ts +4 -0
  470. package/dist/reactivity/reactive.d.ts.map +1 -0
  471. package/dist/reactivity/reactive.js +50 -0
  472. package/dist/reactivity/reactive.js.map +1 -0
  473. package/dist/reactivity/register.d.ts +7 -0
  474. package/dist/reactivity/register.d.ts.map +1 -0
  475. package/dist/reactivity/register.js +18 -0
  476. package/dist/reactivity/register.js.map +1 -0
  477. package/dist/reactivity/signal.d.ts +126 -0
  478. package/dist/reactivity/signal.d.ts.map +1 -0
  479. package/dist/reactivity/signal.js +152 -0
  480. package/dist/reactivity/signal.js.map +1 -0
  481. package/dist/reactivity/types.d.ts +31 -0
  482. package/dist/reactivity/types.d.ts.map +1 -0
  483. package/dist/reactivity/types.js +2 -0
  484. package/dist/reactivity/types.js.map +1 -0
  485. package/dist/scripts/index.d.ts +2 -0
  486. package/dist/scripts/index.d.ts.map +1 -0
  487. package/dist/scripts/index.js +2 -0
  488. package/dist/scripts/index.js.map +1 -0
  489. package/dist/scripts/script.d.ts +80 -0
  490. package/dist/scripts/script.d.ts.map +1 -0
  491. package/dist/scripts/script.js +75 -0
  492. package/dist/scripts/script.js.map +1 -0
  493. package/dist/utils/dpr.d.ts +2 -0
  494. package/dist/utils/dpr.d.ts.map +1 -0
  495. package/dist/utils/dpr.js +14 -0
  496. package/dist/utils/dpr.js.map +1 -0
  497. package/dist/utils/ternaries.d.ts +6 -0
  498. package/dist/utils/ternaries.d.ts.map +1 -0
  499. package/dist/utils/ternaries.js +17 -0
  500. package/dist/utils/ternaries.js.map +1 -0
  501. package/package.json +56 -0
@@ -0,0 +1,145 @@
1
+ /** **`Vector2`** class helps to manage points in the plane. */
2
+ export declare class Vector2 {
3
+ /** The **`x`** property of `Vector2` represents the x-coordinate. */
4
+ x: number;
5
+ /** The **`y`** property of `Vector2` represents the y-coordinate. */
6
+ y: number;
7
+ /** Vector in position ZERO (0, 0) */
8
+ static get ZERO(): Vector2;
9
+ /** Vector in position ONE (1, 1) */
10
+ static get ONE(): Vector2;
11
+ /**
12
+ * The **`fromJSON`** method creates a `Vector2` from a `Position` object.
13
+ * @param position The position object with `x` and `y` properties.
14
+ * @returns A new `Vector2` instance.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const vec = Vector2.fromJSON({ x: 10, y: 20 })
19
+ * vec.x // 10
20
+ * vec.y // 20
21
+ * ```
22
+ */
23
+ static fromJSON(position: Position): Vector2;
24
+ static vectorize(vectorlike: VectorLike): Vector2;
25
+ constructor(
26
+ /** The **`x`** property of `Vector2` represents the x-coordinate. */
27
+ x: number,
28
+ /** The **`y`** property of `Vector2` represents the y-coordinate. */
29
+ y: number);
30
+ /**
31
+ * The **`clone`** method clones the vector without the same reference.
32
+ */
33
+ clone(): Vector2;
34
+ /**
35
+ * The **`add`** method adds other vector to this vector.
36
+ * @param vector2
37
+ */
38
+ add(vector2: Vector2): Vector2;
39
+ /**
40
+ * The **`add`** method adds a number to `x` and `y` of this vector.
41
+ * @param vector2
42
+ */
43
+ add(num: number): Vector2;
44
+ /**
45
+ * The **`toAdded`** method clones this vector and adds other vector to the clone.
46
+ * @param vector2
47
+ */
48
+ toAdded(vector2: Vector2): Vector2;
49
+ /**
50
+ * The **`toAdded`** method clones this vector and adds a number to `x` and `y` of the clone.
51
+ * @param num
52
+ */
53
+ toAdded(num: number): Vector2;
54
+ /**
55
+ * The **`subtract`** method subtracts other vector to this vector.
56
+ * @param vector2
57
+ */
58
+ subtract(vector2: Vector2): Vector2;
59
+ /**
60
+ * The **`subtract`** method subtracts a number to `x` and `y` of this vector.
61
+ * @param num
62
+ */
63
+ subtract(num: number): Vector2;
64
+ /**
65
+ * The **`toSubtracted`** method clones this vector and subtracts other vector to the clone.
66
+ * @param vector2
67
+ */
68
+ toSubtracted(vector2: Vector2): Vector2;
69
+ /**
70
+ * The **`toSubtracted`** method clones this vector and subtracts a number to `x` and `y` of the clone.
71
+ * @param num
72
+ */
73
+ toSubtracted(num: number): Vector2;
74
+ /**
75
+ * The **`multiply`** method multiplies other vector to this vector.
76
+ * @param vector2
77
+ */
78
+ multiply(vector2: Vector2): Vector2;
79
+ /**
80
+ * The **`multiply`** method multiplies a number to `x` and `y` of this vector.
81
+ * @param num
82
+ */
83
+ multiply(num: number): Vector2;
84
+ /**
85
+ * The **`toMultiplied`** method clones this vector and multiplies other vector to the clone.
86
+ * @param vector2
87
+ */
88
+ toMultiplied(vector2: Vector2): Vector2;
89
+ /**
90
+ * The **`toMultiplied`** method clones this vector and multiplies a number to `x` and `y` of the clone.
91
+ * @param num
92
+ */
93
+ toMultiplied(num: number): Vector2;
94
+ apply(fn: (coord: number, axis: 'x' | 'y') => number): Vector2;
95
+ toApplied(fn: (coord: number, axis: 'x' | 'y') => number): Vector2;
96
+ /**
97
+ * The **`equals`** method checks if this vector has the same x and y values as another vector.
98
+ * @param vector2 The vector to compare with.
99
+ * @returns `true` if both components are equal, `false` otherwise.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const a = new Vector2(1, 2)
104
+ * const b = new Vector2(1, 2)
105
+ * a.equals(b) // true
106
+ * ```
107
+ */
108
+ equals(vector2: Vector2): boolean;
109
+ /**
110
+ * The **`normalize`** method scales this vector to unit length (magnitude of 1).
111
+ * If the vector is zero, it remains zero.
112
+ * @returns This vector for chaining.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * const dir = new Vector2(3, 4)
117
+ * dir.normalize() // magnitude is now 1
118
+ * ```
119
+ */
120
+ normalize(): this;
121
+ /**
122
+ * The **`toJSON`** method converts this vector to a plain `Position` object.
123
+ * @returns A `Position` object with `x` and `y` properties.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const pos = new Vector2(10, 20)
128
+ * pos.toJSON() // { x: 10, y: 20 }
129
+ * ```
130
+ */
131
+ toJSON(): Position;
132
+ }
133
+ /**
134
+ * The **`Position`** interface represents a 2D point with `x` and `y` coordinates.
135
+ * Used as a lightweight alternative to `Vector2` when methods are not needed.
136
+ */
137
+ export interface Position {
138
+ /** The x-coordinate. */
139
+ x: number;
140
+ /** The y-coordinate. */
141
+ y: number;
142
+ }
143
+ export type VectorLike = Vector2 | Position | [x: number, y: number] | number;
144
+ export declare function vectorize(vectorLike: VectorLike): Vector2;
145
+ //# sourceMappingURL=vector2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../../src/math/vector2.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,qBAAa,OAAO;IA+BhB,qEAAqE;IAC9D,CAAC,EAAE,MAAM;IAChB,qEAAqE;IAC9D,CAAC,EAAE,MAAM;IAjClB,qCAAqC;IACrC,MAAM,KAAK,IAAI,YAEd;IACD,oCAAoC;IACpC,MAAM,KAAK,GAAG,YAEb;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAI5C,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU;;IAKrC,qEAAqE;IAC9D,CAAC,EAAE,MAAM;IAChB,qEAAqE;IAC9D,CAAC,EAAE,MAAM;IAGlB;;OAEG;IACH,KAAK;IAIL;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAC9B;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAczB;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAClC;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IACnC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAc9B;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IACvC;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKlC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IACnC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAc9B;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IACvC;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKlC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,MAAM,GAAG,OAAO;IAK9D,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,MAAM,GAAG,OAAO;IAIlE;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIjC;;;;;;;;;;OAUG;IACH,SAAS;IAUT;;;;;;;;;OASG;IACH,MAAM,IAAI,QAAQ;CAMnB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAA;IACT,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;AAE7E,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,WAmB/C"}
@@ -0,0 +1,164 @@
1
+ import { InvalidVectorLikeError } from '../errors/math.js';
2
+ /** **`Vector2`** class helps to manage points in the plane. */
3
+ export class Vector2 {
4
+ x;
5
+ y;
6
+ /** Vector in position ZERO (0, 0) */
7
+ static get ZERO() {
8
+ return new Vector2(0, 0);
9
+ }
10
+ /** Vector in position ONE (1, 1) */
11
+ static get ONE() {
12
+ return new Vector2(1, 1);
13
+ }
14
+ /**
15
+ * The **`fromJSON`** method creates a `Vector2` from a `Position` object.
16
+ * @param position The position object with `x` and `y` properties.
17
+ * @returns A new `Vector2` instance.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const vec = Vector2.fromJSON({ x: 10, y: 20 })
22
+ * vec.x // 10
23
+ * vec.y // 20
24
+ * ```
25
+ */
26
+ static fromJSON(position) {
27
+ return new Vector2(position.x, position.y);
28
+ }
29
+ static vectorize(vectorlike) {
30
+ return vectorize(vectorlike);
31
+ }
32
+ constructor(
33
+ /** The **`x`** property of `Vector2` represents the x-coordinate. */
34
+ x,
35
+ /** The **`y`** property of `Vector2` represents the y-coordinate. */
36
+ y) {
37
+ this.x = x;
38
+ this.y = y;
39
+ }
40
+ /**
41
+ * The **`clone`** method clones the vector without the same reference.
42
+ */
43
+ clone() {
44
+ return new Vector2(this.x, this.y);
45
+ }
46
+ add(arg) {
47
+ if (arg instanceof Vector2) {
48
+ this.x += arg.x;
49
+ this.y += arg.y;
50
+ }
51
+ if (typeof arg === 'number') {
52
+ this.x += arg;
53
+ this.y += arg;
54
+ }
55
+ return this;
56
+ }
57
+ toAdded(arg) {
58
+ return this.clone().add(arg);
59
+ }
60
+ subtract(arg) {
61
+ if (arg instanceof Vector2) {
62
+ this.x -= arg.x;
63
+ this.y -= arg.y;
64
+ }
65
+ if (typeof arg === 'number') {
66
+ this.x -= arg;
67
+ this.y -= arg;
68
+ }
69
+ return this;
70
+ }
71
+ toSubtracted(arg) {
72
+ return this.clone().subtract(arg);
73
+ }
74
+ multiply(arg) {
75
+ if (arg instanceof Vector2) {
76
+ this.x *= arg.x;
77
+ this.y *= arg.y;
78
+ }
79
+ if (typeof arg === 'number') {
80
+ this.x *= arg;
81
+ this.y *= arg;
82
+ }
83
+ return this;
84
+ }
85
+ toMultiplied(arg) {
86
+ return this.clone().multiply(arg);
87
+ }
88
+ apply(fn) {
89
+ this.x = fn(this.x, 'x');
90
+ this.y = fn(this.y, 'y');
91
+ return this;
92
+ }
93
+ toApplied(fn) {
94
+ return this.clone().apply(fn);
95
+ }
96
+ /**
97
+ * The **`equals`** method checks if this vector has the same x and y values as another vector.
98
+ * @param vector2 The vector to compare with.
99
+ * @returns `true` if both components are equal, `false` otherwise.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const a = new Vector2(1, 2)
104
+ * const b = new Vector2(1, 2)
105
+ * a.equals(b) // true
106
+ * ```
107
+ */
108
+ equals(vector2) {
109
+ return this.x === vector2.x && this.y === vector2.y;
110
+ }
111
+ /**
112
+ * The **`normalize`** method scales this vector to unit length (magnitude of 1).
113
+ * If the vector is zero, it remains zero.
114
+ * @returns This vector for chaining.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * const dir = new Vector2(3, 4)
119
+ * dir.normalize() // magnitude is now 1
120
+ * ```
121
+ */
122
+ normalize() {
123
+ const length = Math.sqrt(this.x * this.x + this.y * this.y);
124
+ if (length > 0) {
125
+ this.x /= length;
126
+ this.y /= length;
127
+ }
128
+ return this;
129
+ }
130
+ /**
131
+ * The **`toJSON`** method converts this vector to a plain `Position` object.
132
+ * @returns A `Position` object with `x` and `y` properties.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * const pos = new Vector2(10, 20)
137
+ * pos.toJSON() // { x: 10, y: 20 }
138
+ * ```
139
+ */
140
+ toJSON() {
141
+ return {
142
+ x: this.x,
143
+ y: this.y,
144
+ };
145
+ }
146
+ }
147
+ export function vectorize(vectorLike) {
148
+ if (vectorLike instanceof Vector2)
149
+ return vectorLike;
150
+ if (typeof vectorLike === 'number')
151
+ return new Vector2(vectorLike, vectorLike);
152
+ if ('x' in vectorLike &&
153
+ typeof vectorLike.x === 'number' &&
154
+ 'y' in vectorLike &&
155
+ typeof vectorLike.y === 'number')
156
+ return Vector2.fromJSON(vectorLike);
157
+ if (Array.isArray(vectorLike) &&
158
+ vectorLike.length === 2 &&
159
+ typeof vectorLike[0] === 'number' &&
160
+ typeof vectorLike[1] === 'number')
161
+ return new Vector2(...vectorLike);
162
+ throw new InvalidVectorLikeError(vectorLike);
163
+ }
164
+ //# sourceMappingURL=vector2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector2.js","sourceRoot":"","sources":["../../src/math/vector2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ import { Event } from '../events/event.js';
2
+ import { type NodeInstances } from './lib/types.js';
3
+ import { PrimaryNode } from './lib/enum.js';
4
+ import type { DinixScript } from '../scripts/script.js';
5
+ export interface NodeOptions<T extends PrimaryNode> {
6
+ /**
7
+ * The **`id`** property of a node represents the node's identifier.
8
+ * It can be used to retrieve this node via `child()`.
9
+ * IDs can be non-unique and must match `([a-zA-Z][a-zA-Z0-9-_]*)`.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * const transform = useNode(PrimaryNode.Transform)
14
+ * const container = useChild(['container'], PrimaryNode.Transform)
15
+ *
16
+ * return (
17
+ * <transform ref={transform}>
18
+ * <transform id='container' />
19
+ * </transform>
20
+ * )
21
+ * ```
22
+ *
23
+ * **`id`** can be used as path to find nested nodes.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * const child2 = useChild(['child1', 'child2'], PrimaryNode.Transform)
28
+ *
29
+ * return (
30
+ * <transform>
31
+ * <transform id='child1'>
32
+ * <transform id='child2' />
33
+ * </transform>
34
+ * </transform>
35
+ * )
36
+ * ```
37
+ */
38
+ id?: string | symbol;
39
+ /**
40
+ * The **`zIndex`** property of a node.
41
+ * It represents the position in Z in the plane.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * <transform>
46
+ * <sprite textureId={BALL_TEXTURE} zIndex={0} />
47
+ * <sprite textureId={BALL_2_TEXTURE} zIndex={1} />
48
+ * </transform>
49
+ * ```
50
+ */
51
+ zIndex?: number;
52
+ /**
53
+ * The **`deltaIncrease`** property changes the speed of the node and its children.
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * // Speed x0.5
58
+ * <transform deltaIncrease={0.5}>
59
+ * <Ball />
60
+ * </transform>
61
+ * ```
62
+ */
63
+ deltaIncrease?: number;
64
+ /** Optional script to attach to this node */
65
+ script?: DinixScript<T>;
66
+ /** Child nodes to add */
67
+ children?: Node[];
68
+ }
69
+ export declare abstract class Node<T extends PrimaryNode = PrimaryNode> {
70
+ #private;
71
+ type: T;
72
+ _parent?: Node;
73
+ _children: Node[];
74
+ /**
75
+ * The **`deltaIncrease`** property changes the speed of the node and its children.
76
+ *
77
+ * @example
78
+ * ```tsx
79
+ * // Speed x0.5
80
+ * <transform deltaIncrease={0.5}>
81
+ * <Ball />
82
+ * </transform>
83
+ * ```
84
+ */
85
+ deltaIncrease: number;
86
+ script?: DinixScript<T>;
87
+ /**
88
+ * The **`isStarted`** property of the node indicates whether the node is started.
89
+ */
90
+ isStarted: boolean;
91
+ /**
92
+ * The **`isDestroyed`** property of the node indicates whether the node is destroyed.
93
+ */
94
+ isDestroyed: boolean;
95
+ constructor(type: T, { id, zIndex, deltaIncrease, script, children }: NodeOptions<T>);
96
+ /**
97
+ * The read-only **`id`** property of a node represents the node's identifier.
98
+ * It can be used to retrieve this node via `child()`.
99
+ * IDs can be non-unique and must match `([a-zA-Z][a-zA-Z0-9-_]*)`.
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * const container = useChild(['container'], PrimaryNode.Transform)
104
+ *
105
+ * return (
106
+ * <transform>
107
+ * <transform id='container' />
108
+ * </transform>
109
+ * )
110
+ * ```
111
+ *
112
+ * **`id`** can be used as path to find nested nodes.
113
+ *
114
+ * @example
115
+ * ```tsx
116
+ * const child2 = useChild(['child1', 'child2'], PrimaryNode.Transform)
117
+ *
118
+ * return (
119
+ * <transform>
120
+ * <transform id='child1'>
121
+ * <transform id='child2' />
122
+ * </transform>
123
+ * </transform>
124
+ * )
125
+ * ```
126
+ */
127
+ get id(): string | symbol;
128
+ /**
129
+ * The read-only **`parent`** property returns the parent of this node.
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * const transform = useNode(PrimaryNode.Transform)
134
+ *
135
+ * useMount(() => {
136
+ * const parent = transform.node.parent
137
+ * parent?.destroy()
138
+ * })
139
+ *
140
+ * return (
141
+ * <transform ref={transform}>
142
+ * <transform id='container' />
143
+ * </transform>
144
+ * )
145
+ * ```
146
+ */
147
+ get parent(): Node<PrimaryNode> | undefined;
148
+ /**
149
+ * The read-only **`children`** property returns the child nodes.
150
+ *
151
+ * @example
152
+ * ```tsx
153
+ * const transform = useNode(PrimaryNode.Transform)
154
+ *
155
+ * useMount(() => {
156
+ * const children = transform.node.children
157
+ * console.log(children) // [Node]
158
+ * })
159
+ *
160
+ * return (
161
+ * <transform ref={transform}>
162
+ * <transform id='container' />
163
+ * </transform>
164
+ * )
165
+ * ```
166
+ */
167
+ get children(): Node<PrimaryNode>[];
168
+ /**
169
+ * Gets or sets the **`zIndex`** of the node.
170
+ */
171
+ set zIndex(value: number);
172
+ get zIndex(): number;
173
+ /**
174
+ * Gets or sets the **`globalZIndex`** of the node.
175
+ */
176
+ set globalZIndex(value: number);
177
+ get globalZIndex(): number;
178
+ /**
179
+ * Gets or sets the **`globalDeltaIncrease`** of the node.
180
+ */
181
+ set globalDeltaIncrease(value: number);
182
+ get globalDeltaIncrease(): number;
183
+ /**
184
+ * Returns the first descendant node that matches the given path and type.
185
+ *
186
+ * @param options Options to filter nodes
187
+ * @returns The matching node, or throws if not found
188
+ *
189
+ * @example
190
+ * ```tsx
191
+ * const transform = useNode(PrimaryNode.Transform)
192
+ *
193
+ * useMount(() => {
194
+ * const sprite = transform.node.child({
195
+ * path: ['sprite'],
196
+ * type: PrimaryNode.Sprite
197
+ * })
198
+ * })
199
+ *
200
+ * return (
201
+ * <transform ref={transform}>
202
+ * <sprite id='sprite' />
203
+ * </transform>
204
+ * )
205
+ * ```
206
+ */
207
+ child<T extends PrimaryNode>(options: {
208
+ path: (string | symbol)[];
209
+ type: T;
210
+ }): NodeInstances[T];
211
+ /**
212
+ * Add child nodes to this node.
213
+ * @param children Nodes to add as children
214
+ */
215
+ addChild(...children: Node[]): void;
216
+ removeChild(child: Node): void;
217
+ /**
218
+ * The **`zIndexChanged`** event fires when the node's `zIndex` value changes.
219
+ */
220
+ zIndexChanged: Event<[_zIndex: number], "zIndexChange">;
221
+ /**
222
+ * The **`started`** event fires when the node finishes its `start()` lifecycle.
223
+ */
224
+ started: Event<[], "start">;
225
+ /**
226
+ * The **`drawed`** event fires each frame when the node is being drawn.
227
+ */
228
+ drawed: Event<[_delta: number], "draw">;
229
+ /**
230
+ * The **`updated`** event fires each frame during the node's update cycle.
231
+ */
232
+ updated: Event<[_delta: number], "update">;
233
+ /**
234
+ * The **`destroyed`** event fires when the node is destroyed.
235
+ */
236
+ destroyed: Event<[], "destroy">;
237
+ onZIndexChange?(_zIndex: number): void;
238
+ onStart?(): void;
239
+ onDraw?(_delta: number): void;
240
+ onUpdate?(_delta: number): void;
241
+ onDestroy?(): void;
242
+ /**
243
+ * The **`start`** method initializes the node and starts its lifecycle.
244
+ * It attaches event callbacks and starts all child nodes.
245
+ * Called automatically when the node is added to the scene.
246
+ */
247
+ start(): void;
248
+ /**
249
+ * The **`update`** method is called each frame to update the node and its children.
250
+ * @param delta The time elapsed since the last frame in seconds.
251
+ */
252
+ update(delta: number): void;
253
+ /**
254
+ * The **`draw`** method is called each frame to render the node and its children.
255
+ * It applies position translation for proper rendering hierarchy.
256
+ * @param delta The time elapsed since the last frame in seconds.
257
+ */
258
+ draw(delta: number): void;
259
+ /**
260
+ * The **`destroy`** method destroys this node and all its children.
261
+ */
262
+ destroy(): void;
263
+ /**
264
+ * The **`cleanEvents`** method removes all event listeners from this node.
265
+ * It is called automatically when the node is destroyed.
266
+ *
267
+ * @example
268
+ * ```tsx
269
+ * const transform = useNode(PrimaryNode.Transform)
270
+ *
271
+ * useMount(() => {
272
+ * transform.node.started.on(() => {
273
+ * console.log('Node started')
274
+ * })
275
+ *
276
+ * transform.node.cleanEvents()
277
+ * // No listeners will fire
278
+ * })
279
+ * ```
280
+ */
281
+ cleanEvents(): void;
282
+ }
283
+ //# sourceMappingURL=_node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_node.d.ts","sourceRoot":"","sources":["../../src/nodes/_node.ts"],"names":[],"mappings":"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"}