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,68 @@
1
+ import { DinixError } from './base.js';
2
+ /**
3
+ * The **`NodeError`** error is thrown when an error occurs during node creation, manipulation, or traversal.
4
+ * @example
5
+ * ```ts
6
+ * // When this happens:
7
+ * throw new NodeError('Node operation failed')
8
+ * ```
9
+ */
10
+ export declare class NodeError extends DinixError {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * The **`InvalidNodeIdError`** error is thrown when a node ID does not match the required pattern `([a-zA-Z][a-zA-Z0-9-_]*)`.
15
+ * @example
16
+ * ```ts
17
+ * // When this happens:
18
+ * throw new InvalidNodeIdError('123-invalid')
19
+ * ```
20
+ */
21
+ export declare class InvalidNodeIdError extends NodeError {
22
+ constructor(id: string);
23
+ }
24
+ /**
25
+ * The **`NodeChildNotFoundError`** error is thrown when attempting to access a child node at a path that does not exist within a parent node.
26
+ * @example
27
+ * ```ts
28
+ * // When this happens:
29
+ * throw new NodeChildNotFoundError('player/sprite')
30
+ * ```
31
+ */
32
+ export declare class NodeChildNotFoundError extends NodeError {
33
+ constructor(path: string);
34
+ }
35
+ /**
36
+ * The **`NodeTypeMismatchError`** error is thrown when a node has an unexpected type that does not match the expected type.
37
+ * @example
38
+ * ```ts
39
+ * // When this happens:
40
+ * throw new NodeTypeMismatchError('Sprite', 'Button')
41
+ * ```
42
+ */
43
+ export declare class NodeTypeMismatchError extends NodeError {
44
+ constructor(expected: string, received: string);
45
+ }
46
+ /**
47
+ * The **`UnknownNodeTypeError`** error is thrown when attempting to create or reference a node type that is not registered in the node registry.
48
+ * @example
49
+ * ```ts
50
+ * // When this happens:
51
+ * throw new UnknownNodeTypeError('CustomWidget')
52
+ * ```
53
+ */
54
+ export declare class UnknownNodeTypeError extends NodeError {
55
+ constructor(type: string);
56
+ }
57
+ /**
58
+ * The **`InvalidNodeInstanceError`** error is thrown when a value is not a valid Node instance (e.g., null, undefined, or a non-Node object).
59
+ * @example
60
+ * ```ts
61
+ * // When this happens:
62
+ * throw new InvalidNodeInstanceError(null)
63
+ * ```
64
+ */
65
+ export declare class InvalidNodeInstanceError extends NodeError {
66
+ constructor(received: unknown);
67
+ }
68
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/errors/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,UAAU;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,EAAE,EAAE,MAAM;CAGvB;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,SAAS;gBACvC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;gBACtC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAG/C;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,SAAS;gBACzC,QAAQ,EAAE,OAAO;CAU9B"}
@@ -0,0 +1,87 @@
1
+ import { Nodes } from '../nodes/lib/registry.js';
2
+ import { DinixError } from './base.js';
3
+ /**
4
+ * The **`NodeError`** error is thrown when an error occurs during node creation, manipulation, or traversal.
5
+ * @example
6
+ * ```ts
7
+ * // When this happens:
8
+ * throw new NodeError('Node operation failed')
9
+ * ```
10
+ */
11
+ export class NodeError extends DinixError {
12
+ constructor(message) {
13
+ super(message);
14
+ this.name = 'NodeError';
15
+ }
16
+ }
17
+ /**
18
+ * The **`InvalidNodeIdError`** error is thrown when a node ID does not match the required pattern `([a-zA-Z][a-zA-Z0-9-_]*)`.
19
+ * @example
20
+ * ```ts
21
+ * // When this happens:
22
+ * throw new InvalidNodeIdError('123-invalid')
23
+ * ```
24
+ */
25
+ export class InvalidNodeIdError extends NodeError {
26
+ constructor(id) {
27
+ super(`Invalid node id "${id}". Expected pattern ([a-zA-Z][a-zA-Z0-9-_]*)`);
28
+ }
29
+ }
30
+ /**
31
+ * The **`NodeChildNotFoundError`** error is thrown when attempting to access a child node at a path that does not exist within a parent node.
32
+ * @example
33
+ * ```ts
34
+ * // When this happens:
35
+ * throw new NodeChildNotFoundError('player/sprite')
36
+ * ```
37
+ */
38
+ export class NodeChildNotFoundError extends NodeError {
39
+ constructor(path) {
40
+ super(`Node child with path "${path}" does not exist`);
41
+ }
42
+ }
43
+ /**
44
+ * The **`NodeTypeMismatchError`** error is thrown when a node has an unexpected type that does not match the expected type.
45
+ * @example
46
+ * ```ts
47
+ * // When this happens:
48
+ * throw new NodeTypeMismatchError('Sprite', 'Button')
49
+ * ```
50
+ */
51
+ export class NodeTypeMismatchError extends NodeError {
52
+ constructor(expected, received) {
53
+ super(`Expected node type "${expected}" but received "${received}"`);
54
+ }
55
+ }
56
+ /**
57
+ * The **`UnknownNodeTypeError`** error is thrown when attempting to create or reference a node type that is not registered in the node registry.
58
+ * @example
59
+ * ```ts
60
+ * // When this happens:
61
+ * throw new UnknownNodeTypeError('CustomWidget')
62
+ * ```
63
+ */
64
+ export class UnknownNodeTypeError extends NodeError {
65
+ constructor(type) {
66
+ super(`Unknown node type "${type}". Available types: ${Object.keys(Nodes).join(', ')}`);
67
+ }
68
+ }
69
+ /**
70
+ * The **`InvalidNodeInstanceError`** error is thrown when a value is not a valid Node instance (e.g., null, undefined, or a non-Node object).
71
+ * @example
72
+ * ```ts
73
+ * // When this happens:
74
+ * throw new InvalidNodeInstanceError(null)
75
+ * ```
76
+ */
77
+ export class InvalidNodeInstanceError extends NodeError {
78
+ constructor(received) {
79
+ const type = received === null
80
+ ? 'null'
81
+ : received === undefined
82
+ ? 'undefined'
83
+ : (received?.constructor?.name ?? typeof received);
84
+ super(`Expected a Node instance but received ${type}`);
85
+ }
86
+ }
87
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/errors/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;;;;GAOG;AACH,MAAM,OAAO,SAAU,SAAQ,UAAU;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;IACzB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,EAAU;QACpB,KAAK,CAAC,oBAAoB,EAAE,8CAA8C,CAAC,CAAA;IAC7E,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACnD,YAAY,IAAY;QACtB,KAAK,CAAC,yBAAyB,IAAI,kBAAkB,CAAC,CAAA;IACxD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAClD,YAAY,QAAgB,EAAE,QAAgB;QAC5C,KAAK,CAAC,uBAAuB,QAAQ,mBAAmB,QAAQ,GAAG,CAAC,CAAA;IACtE,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,YAAY,IAAY;QACtB,KAAK,CAAC,sBAAsB,IAAI,uBAAuB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IACrD,YAAY,QAAiB;QAC3B,MAAM,IAAI,GACR,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,QAAQ,CAAC,CAAA;QAExD,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ import { DinixError } from './base.js';
2
+ /**
3
+ * The **`SceneError`** error is thrown when an error occurs during scene management, loading, or rendering.
4
+ * @example
5
+ * ```ts
6
+ * // When this happens:
7
+ * throw new SceneError('Scene operation failed')
8
+ * ```
9
+ */
10
+ export declare class SceneError extends DinixError {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * The **`SceneNotFoundError`** error is thrown when attempting to access a scene that does not exist in the scene registry.
15
+ * @example
16
+ * ```ts
17
+ * // When this happens:
18
+ * throw new SceneNotFoundError('MainMenu')
19
+ * ```
20
+ */
21
+ export declare class SceneNotFoundError extends SceneError {
22
+ constructor(name: string);
23
+ }
24
+ /**
25
+ * The **`InvalidSceneRootError`** error is thrown when the root element of a scene is not a valid Node instance.
26
+ * @example
27
+ * ```ts
28
+ * // When this happens:
29
+ * throw new InvalidSceneRootError()
30
+ * ```
31
+ */
32
+ export declare class InvalidSceneRootError extends SceneError {
33
+ constructor();
34
+ }
35
+ //# sourceMappingURL=scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/errors/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;;CAIpD"}
@@ -0,0 +1,42 @@
1
+ import { DinixError } from './base.js';
2
+ /**
3
+ * The **`SceneError`** error is thrown when an error occurs during scene management, loading, or rendering.
4
+ * @example
5
+ * ```ts
6
+ * // When this happens:
7
+ * throw new SceneError('Scene operation failed')
8
+ * ```
9
+ */
10
+ export class SceneError extends DinixError {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = 'SceneError';
14
+ }
15
+ }
16
+ /**
17
+ * The **`SceneNotFoundError`** error is thrown when attempting to access a scene that does not exist in the scene registry.
18
+ * @example
19
+ * ```ts
20
+ * // When this happens:
21
+ * throw new SceneNotFoundError('MainMenu')
22
+ * ```
23
+ */
24
+ export class SceneNotFoundError extends SceneError {
25
+ constructor(name) {
26
+ super(`Scene "${name}" does not exist`);
27
+ }
28
+ }
29
+ /**
30
+ * The **`InvalidSceneRootError`** error is thrown when the root element of a scene is not a valid Node instance.
31
+ * @example
32
+ * ```ts
33
+ * // When this happens:
34
+ * throw new InvalidSceneRootError()
35
+ * ```
36
+ */
37
+ export class InvalidSceneRootError extends SceneError {
38
+ constructor() {
39
+ super(`Scene root must be an instance of Node`);
40
+ }
41
+ }
42
+ //# sourceMappingURL=scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/errors/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;;;;GAOG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,IAAY;QACtB,KAAK,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAA;IACzC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD;QACE,KAAK,CAAC,wCAAwC,CAAC,CAAA;IACjD,CAAC;CACF"}
@@ -0,0 +1,106 @@
1
+ import type { EventName, Fun } from './types.js';
2
+ /**
3
+ * The **`Event`** class is a type-safe event emitter that supports subscribing, unsubscribing, and emitting events.
4
+ *
5
+ * @typeParam T The parameter types of the event callback.
6
+ * @typeParam K The string literal type of the event base name.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const onDamage = new Event<[number], 'damage'>('damage', (amount) => {})
11
+ *
12
+ * onDamage.on((amount) => {
13
+ * console.log('Damage taken:', amount)
14
+ * })
15
+ *
16
+ * onDamage.emit(25) // logs: "Damage taken: 25"
17
+ * ```
18
+ */
19
+ export declare class Event<T extends any[], const K extends string> {
20
+ #private;
21
+ /** The base name used to derive the event handler name (e.g., `'damage'` → `'onDamage'`). */
22
+ baseName: K;
23
+ /** An example function used for type inference in event subscriptions. */
24
+ exampleFun: Fun<T>;
25
+ /**
26
+ * The **`on`** method subscribes a callback to this event.
27
+ * @param cb The callback function to invoke when the event is emitted.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * sprite.started.on(() => {
32
+ * console.log('Sprite started!')
33
+ * })
34
+ * ```
35
+ */
36
+ on(cb: Fun<T>): void;
37
+ /**
38
+ * The **`onFirst`** method subscribes a callback to this event with highest priority.
39
+ * @param cb The callback function to invoke first when the event is emitted.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * // This callback will be called before any previously registered callbacks
44
+ * collider.collided.onFirst((other) => {
45
+ * console.log('Priority handler:', other)
46
+ * })
47
+ * ```
48
+ */
49
+ onFirst(cb: Fun<T>): void;
50
+ /**
51
+ * The **`off`** method unsubscribes a callback from this event.
52
+ * @param cb The callback function to remove.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const handler = (delta: number) => { ... }
57
+ * node.updated.on(handler)
58
+ * node.updated.off(handler)
59
+ * ```
60
+ */
61
+ off(cb: Fun<T>): void;
62
+ /**
63
+ * The **`emit`** method invokes all subscribed callbacks with the given parameters.
64
+ * @param params The parameters to pass to each callback.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * collider.colliderEntered.emit(otherCollider)
69
+ * ```
70
+ */
71
+ emit(...params: T): void;
72
+ /**
73
+ * The **`clean`** method removes all subscribed callbacks from this event.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * // Remove all listeners before destroying a node
78
+ * node.updated.clean()
79
+ * ```
80
+ */
81
+ clean(): void;
82
+ /**
83
+ * Creates a new `Event` instance.
84
+ * @param baseName The base name of the event (e.g., `'damage'`, `'colliderEnter'`).
85
+ * @param exampleFun An example function signature for type inference.
86
+ */
87
+ constructor(
88
+ /** The base name used to derive the event handler name (e.g., `'damage'` → `'onDamage'`). */
89
+ baseName: K,
90
+ /** An example function used for type inference in event subscriptions. */
91
+ exampleFun: Fun<T>);
92
+ }
93
+ /**
94
+ * The **`getEventName`** function converts a base event name to its handler name.
95
+ * For example, `'damage'` becomes `'onDamage'`.
96
+ * @param baseName The base name of the event.
97
+ * @returns The event handler name with `on` prefix.
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * getEventName('damage') // 'onDamage'
102
+ * getEventName('colliderEnter') // 'onColliderEnter'
103
+ * ```
104
+ */
105
+ export declare function getEventName<const K extends string>(baseName: K): EventName<K>;
106
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/events/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,MAAM;;IAqFtD,6FAA6F;IACtF,QAAQ,EAAE,CAAC;IAClB,0EAA0E;IACnE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAvF3B;;;;;;;;;;OAUG;IACH,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAIb;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAIlB;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAOd;;;;;;;;OAQG;IACH,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;IAKjB;;;;;;;;OAQG;IACH,KAAK;IAML;;;;OAIG;;IAED,6FAA6F;IACtF,QAAQ,EAAE,CAAC;IAClB,0EAA0E;IACnE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;CAE5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAK9E"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * The **`Event`** class is a type-safe event emitter that supports subscribing, unsubscribing, and emitting events.
3
+ *
4
+ * @typeParam T The parameter types of the event callback.
5
+ * @typeParam K The string literal type of the event base name.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const onDamage = new Event<[number], 'damage'>('damage', (amount) => {})
10
+ *
11
+ * onDamage.on((amount) => {
12
+ * console.log('Damage taken:', amount)
13
+ * })
14
+ *
15
+ * onDamage.emit(25) // logs: "Damage taken: 25"
16
+ * ```
17
+ */
18
+ export class Event {
19
+ baseName;
20
+ exampleFun;
21
+ /**
22
+ * The **`on`** method subscribes a callback to this event.
23
+ * @param cb The callback function to invoke when the event is emitted.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * sprite.started.on(() => {
28
+ * console.log('Sprite started!')
29
+ * })
30
+ * ```
31
+ */
32
+ on(cb) {
33
+ this.#list.push(cb);
34
+ }
35
+ /**
36
+ * The **`onFirst`** method subscribes a callback to this event with highest priority.
37
+ * @param cb The callback function to invoke first when the event is emitted.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * // This callback will be called before any previously registered callbacks
42
+ * collider.collided.onFirst((other) => {
43
+ * console.log('Priority handler:', other)
44
+ * })
45
+ * ```
46
+ */
47
+ onFirst(cb) {
48
+ this.#list.unshift(cb);
49
+ }
50
+ /**
51
+ * The **`off`** method unsubscribes a callback from this event.
52
+ * @param cb The callback function to remove.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const handler = (delta: number) => { ... }
57
+ * node.updated.on(handler)
58
+ * node.updated.off(handler)
59
+ * ```
60
+ */
61
+ off(cb) {
62
+ const index = this.#list.indexOf(cb);
63
+ if (index < 0)
64
+ return;
65
+ this.#list.splice(index, 1);
66
+ }
67
+ /**
68
+ * The **`emit`** method invokes all subscribed callbacks with the given parameters.
69
+ * @param params The parameters to pass to each callback.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * collider.colliderEntered.emit(otherCollider)
74
+ * ```
75
+ */
76
+ emit(...params) {
77
+ const listeners = [...this.#list];
78
+ listeners.forEach((cb) => cb(...params));
79
+ }
80
+ /**
81
+ * The **`clean`** method removes all subscribed callbacks from this event.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * // Remove all listeners before destroying a node
86
+ * node.updated.clean()
87
+ * ```
88
+ */
89
+ clean() {
90
+ this.#list.length = 0;
91
+ }
92
+ #list = [];
93
+ /**
94
+ * Creates a new `Event` instance.
95
+ * @param baseName The base name of the event (e.g., `'damage'`, `'colliderEnter'`).
96
+ * @param exampleFun An example function signature for type inference.
97
+ */
98
+ constructor(
99
+ /** The base name used to derive the event handler name (e.g., `'damage'` → `'onDamage'`). */
100
+ baseName,
101
+ /** An example function used for type inference in event subscriptions. */
102
+ exampleFun) {
103
+ this.baseName = baseName;
104
+ this.exampleFun = exampleFun;
105
+ }
106
+ }
107
+ /**
108
+ * The **`getEventName`** function converts a base event name to its handler name.
109
+ * For example, `'damage'` becomes `'onDamage'`.
110
+ * @param baseName The base name of the event.
111
+ * @returns The event handler name with `on` prefix.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * getEventName('damage') // 'onDamage'
116
+ * getEventName('colliderEnter') // 'onColliderEnter'
117
+ * ```
118
+ */
119
+ export function getEventName(baseName) {
120
+ const first = baseName[0]?.toUpperCase() ?? '';
121
+ const rest = baseName.slice(1);
122
+ const eventName = `on${first}${rest}`;
123
+ return eventName;
124
+ }
125
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/events/event.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,KAAK;IAsFP;IAEA;IAvFT;;;;;;;;;;OAUG;IACH,EAAE,CAAC,EAAU;QACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC;IAED;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAU;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAM;QAErB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,GAAG,MAAS;QACf,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACjC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,GAAa,EAAE,CAAA;IAEpB;;;;OAIG;IACH;IACE,6FAA6F;IACtF,QAAW;IAClB,0EAA0E;IACnE,UAAkB;QAFlB,aAAQ,GAAR,QAAQ,CAAG;QAEX,eAAU,GAAV,UAAU,CAAQ;IACxB,CAAC;CACL;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAyB,QAAW;IAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,KAAK,GAAG,IAAI,EAAE,CAAA;IACrC,OAAO,SAAyB,CAAA;AAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './event.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './event.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { Event } from './event';
2
+ /**
3
+ * The **`Fun`** type represents a function with the given parameter types.
4
+ * @typeParam T The parameter types of the function.
5
+ */
6
+ export type Fun<T extends any[]> = (...args: T) => void;
7
+ /**
8
+ * The **`EventName`** type converts a base event name to its handler name.
9
+ * For example, `'damage'` becomes `'onDamage'`.
10
+ * @typeParam T The base event name string.
11
+ */
12
+ export type EventName<T extends string> = `on${Capitalize<T>}`;
13
+ /**
14
+ * The **`EventsFromRecord`** type extracts event handler types from a record of `Event` instances.
15
+ * Used internally to generate type-safe event handler properties.
16
+ */
17
+ export type EventsFromRecord<T extends Record<string, Event<any[], string>>> = {
18
+ [P in keyof T as EventName<T[P]['baseName']>]: T[P]['exampleFun'];
19
+ };
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAEvD;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;AAE9D;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI;KAC5E,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;CAClE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type { Node } from '../nodes/_node.js';
2
+ import type { Context } from './use-context.js';
3
+ export interface HookContext {
4
+ node: Node[] | null;
5
+ effects: HookEffect[];
6
+ context?: Context<any>;
7
+ }
8
+ type HookEffect = (nodes: Node[], currentContext: HookContext[]) => void;
9
+ export declare const currentContext: HookContext[];
10
+ export declare function startHooks(): void;
11
+ export declare function finishHooks(node: Node[]): void;
12
+ export declare function declareDerivedHook(hookName: string): void;
13
+ export declare function pushEffect(hookName: string, effect: HookEffect): void;
14
+ export {};
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;CACvB;AAED,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;AAExE,eAAO,MAAM,cAAc,EAAE,WAAW,EAAO,CAAA;AAE/C,wBAAgB,UAAU,SAKzB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAKvC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,QAIlD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,QAM9D"}
@@ -0,0 +1,26 @@
1
+ import { HookOutsideComponentError } from '../errors/hook.js';
2
+ export const currentContext = [];
3
+ export function startHooks() {
4
+ currentContext.push({
5
+ node: null,
6
+ effects: [],
7
+ });
8
+ }
9
+ export function finishHooks(node) {
10
+ if (!currentContext)
11
+ return;
12
+ currentContext.at(-1)?.effects.forEach((fn) => fn(node, currentContext));
13
+ currentContext.pop();
14
+ }
15
+ export function declareDerivedHook(hookName) {
16
+ if (!currentContext) {
17
+ throw new HookOutsideComponentError(hookName);
18
+ }
19
+ }
20
+ export function pushEffect(hookName, effect) {
21
+ if (!currentContext) {
22
+ throw new HookOutsideComponentError(hookName);
23
+ }
24
+ currentContext.at(-1)?.effects.push(effect);
25
+ }
26
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAY7D,MAAM,CAAC,MAAM,cAAc,GAAkB,EAAE,CAAA;AAE/C,MAAM,UAAU,UAAU;IACxB,cAAc,CAAC,IAAI,CAAC;QAClB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,EAAE;KACZ,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,cAAc;QAAE,OAAM;IAE3B,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;IACxE,cAAc,CAAC,GAAG,EAAE,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,MAAkB;IAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { useClickable } from './use-clickable.js';
2
+ export { useTimer } from './use-timer.js';
3
+ export { useRayCast } from './use-ray-cast.js';
4
+ export { useCollider } from './use-collider.js';
5
+ export { useAnimation } from './use-animation.js';
6
+ export { useAudio } from './use-audio.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/deriveds/by-nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,7 @@
1
+ export { useClickable } from './use-clickable.js';
2
+ export { useTimer } from './use-timer.js';
3
+ export { useRayCast } from './use-ray-cast.js';
4
+ export { useCollider } from './use-collider.js';
5
+ export { useAnimation } from './use-animation.js';
6
+ export { useAudio } from './use-audio.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/deriveds/by-nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { PrimaryNode } from '../../../nodes/index.js';
2
+ import type { NodeReference } from '../../use-node.js';
3
+ /**
4
+ * The **`useAnimation`** derived hook provides a declarative API for the `AnimationPlayer` node.
5
+ * Returns the node reference, reactive `animName` and `frameIndex` signals,
6
+ * a reactive `ended` boolean, and control methods.
7
+ *
8
+ * @param anim An optional existing `NodeReference` to the AnimationPlayer node
9
+ * @returns An object with `ref`, `animName`, `frameIndex`, `ended`, `play`, `stop`, `setNext`
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { useAnimation } from 'dinix/hooks'
14
+ *
15
+ * function Character() {
16
+ * const sprite = useNode(PrimaryNode.Sprite)
17
+ * const { ref, animName, ended, play, setNext } = useAnimation()
18
+ *
19
+ * useEffect(() => {
20
+ * play(isWalking() ? 'walk' : 'idle')
21
+ * })
22
+ *
23
+ * useEvent(ref, 'animationEnded', () => {
24
+ * setNext('idle')
25
+ * })
26
+ *
27
+ * return (
28
+ * <sprite ref={sprite} textureId={CHAR}>
29
+ * <animation-player ref={ref} animations={() => anims} currentAnim={animName} />
30
+ * </sprite>
31
+ * )
32
+ * }
33
+ * ```
34
+ */
35
+ export declare function useAnimation(anim?: NodeReference<PrimaryNode.AnimationPlayer>): {
36
+ ref: NodeReference<PrimaryNode.AnimationPlayer>;
37
+ animName: import("../../../index.js").SignalGetter<string | null>;
38
+ frameIndex: import("../../../index.js").SignalGetter<number>;
39
+ ended: import("../../../index.js").SignalGetter<boolean>;
40
+ play: (animName: string, index?: number) => void;
41
+ stop: () => void;
42
+ setNext: (animName: string | null) => void;
43
+ };
44
+ //# sourceMappingURL=use-animation.d.ts.map