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 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/nodes/node2d/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAGzD;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC;CAAG;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,SAAU,SAAQ,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC9C,OAAO,EAAE,gBAAgB;CAGtC"}
@@ -0,0 +1,30 @@
1
+ import { PrimaryNode } from '../lib/enum.js';
2
+ import { Node2D } from './_node2d.js';
3
+ import { Nodes } from '../lib/registry.js';
4
+ /**
5
+ * The **`Transform`** node is a container for positioning and organizing child nodes.
6
+ * It has no visual representation but provides a coordinate system for its children.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { useNode } from 'dinix/hooks'
11
+ * import { PrimaryNode } from 'dinix/nodes/enum'
12
+ *
13
+ * function Player() {
14
+ * const body = useNode(PrimaryNode.Transform)
15
+ *
16
+ * return (
17
+ * <transform ref={body} position={new Vector2(100, 200)}>
18
+ * <sprite textureId={PLAYER} />
19
+ * </transform>
20
+ * )
21
+ * }
22
+ * ```
23
+ */
24
+ export class Transform extends Node2D {
25
+ constructor(options) {
26
+ super(PrimaryNode.Transform, options);
27
+ }
28
+ }
29
+ Nodes.transform = Transform;
30
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/nodes/node2d/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAQ1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,SAAU,SAAQ,MAA6B;IAC1D,YAAY,OAAyB;QACnC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;CACF;AAED,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA"}
@@ -0,0 +1,107 @@
1
+ import { Event } from '../events/event.js';
2
+ import { PrimaryNode } from './lib/enum.js';
3
+ import { Node, type NodeOptions } from './_node.js';
4
+ import type { Reactive } from '../reactivity/types.js';
5
+ /**
6
+ * The **`TimerOptions`** interface defines the options for a `Timer` node.
7
+ */
8
+ export interface TimerOptions extends NodeOptions<PrimaryNode.Timer> {
9
+ /**
10
+ * The **`duration`** property defines the total duration of the timer in seconds.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // 5 second timer
15
+ * <timer duration={5} />
16
+ * ```
17
+ */
18
+ duration: Reactive<number>;
19
+ /**
20
+ * The **`autoPlay`** property determines whether the timer starts automatically.
21
+ *
22
+ * @default false
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * // Auto-starts when the node is added to the scene
27
+ * <timer duration={3} autoPlay />
28
+ * ```
29
+ */
30
+ autoPlay?: boolean;
31
+ }
32
+ /**
33
+ * The **`Timer`** node counts up to a duration and emits events when time changes or the timer completes.
34
+ * It has no visual representation but can contain child nodes.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * import { useNode, useEvent } from 'dinix/hooks'
39
+ * import { PrimaryNode } from 'dinix/nodes/enum'
40
+ *
41
+ * function CooldownTimer() {
42
+ * const timer = useNode(PrimaryNode.Timer)
43
+ *
44
+ * useEvent(timer, 'timeout', () => {
45
+ * console.log('Cooldown finished!')
46
+ * })
47
+ *
48
+ * useEvent(timer, 'timeChanged', (time) => {
49
+ * console.log('Time:', time)
50
+ * })
51
+ *
52
+ * return (
53
+ * <timer ref={timer} duration={5} autoPlay />
54
+ * )
55
+ * }
56
+ * ```
57
+ */
58
+ export declare class Timer extends Node<PrimaryNode.Timer> {
59
+ #private;
60
+ /**
61
+ * The **`duration`** property defines the total duration of the timer in seconds.
62
+ */
63
+ duration: number;
64
+ constructor(options: TimerOptions);
65
+ /**
66
+ * The **`timeout`** event fires when the timer reaches its duration.
67
+ */
68
+ timeout: Event<[], "timeout">;
69
+ /**
70
+ * The **`timeChanged`** event fires every frame while the timer is playing.
71
+ * The callback receives the current elapsed time in seconds.
72
+ */
73
+ timeChanged: Event<[_time: number], "timeChange">;
74
+ /**
75
+ * The **`play`** method starts or resumes the timer.
76
+ * @param from Optional time in seconds to start from. Clamped to `[0, duration]`.
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * timer.node.play() // Resume from current position
81
+ * timer.node.play(0) // Start from the beginning
82
+ * timer.node.play(2.5) // Start from 2.5 seconds
83
+ * ```
84
+ */
85
+ play(from?: number): void;
86
+ /**
87
+ * The **`pause`** method pauses the timer without resetting its position.
88
+ *
89
+ * @example
90
+ * ```tsx
91
+ * timer.node.pause()
92
+ * ```
93
+ */
94
+ pause(): void;
95
+ /**
96
+ * The **`stop`** method stops the timer and resets the elapsed time to zero.
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * timer.node.stop()
101
+ * ```
102
+ */
103
+ stop(): void;
104
+ /** @internal Updates the timer each frame. */
105
+ update(delta: number): void;
106
+ }
107
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/nodes/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGtD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;IAClE;;;;;;;;OAQG;IACH,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,KAAM,SAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;IAEhD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;gBAGJ,OAAO,EAAE,YAAY;IAMjC;;OAEG;IACH,OAAO,uBAAiC;IAExC;;;OAGG;IACH,WAAW,uCAAiD;IAE5D;;;;;;;;;;OAUG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM;IAKlB;;;;;;;OAOG;IACH,KAAK;IAIL;;;;;;;OAOG;IACH,IAAI;IAKJ,8CAA8C;IAC9C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAa5B"}
@@ -0,0 +1,108 @@
1
+ import { Event } from '../events/event.js';
2
+ import { PrimaryNode } from './lib/enum.js';
3
+ import { Node } from './_node.js';
4
+ import { Nodes } from './lib/registry.js';
5
+ import { propSignal } from '../utils/ternaries.js';
6
+ /**
7
+ * The **`Timer`** node counts up to a duration and emits events when time changes or the timer completes.
8
+ * It has no visual representation but can contain child nodes.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import { useNode, useEvent } from 'dinix/hooks'
13
+ * import { PrimaryNode } from 'dinix/nodes/enum'
14
+ *
15
+ * function CooldownTimer() {
16
+ * const timer = useNode(PrimaryNode.Timer)
17
+ *
18
+ * useEvent(timer, 'timeout', () => {
19
+ * console.log('Cooldown finished!')
20
+ * })
21
+ *
22
+ * useEvent(timer, 'timeChanged', (time) => {
23
+ * console.log('Time:', time)
24
+ * })
25
+ *
26
+ * return (
27
+ * <timer ref={timer} duration={5} autoPlay />
28
+ * )
29
+ * }
30
+ * ```
31
+ */
32
+ export class Timer extends Node {
33
+ #counter = 0;
34
+ /**
35
+ * The **`duration`** property defines the total duration of the timer in seconds.
36
+ */
37
+ duration;
38
+ #isPlaying = false;
39
+ constructor(options) {
40
+ super(PrimaryNode.Timer, options);
41
+ this.duration = propSignal(this, 'duration', options.duration);
42
+ if (options.autoPlay)
43
+ this.play();
44
+ }
45
+ /**
46
+ * The **`timeout`** event fires when the timer reaches its duration.
47
+ */
48
+ timeout = new Event('timeout', () => { });
49
+ /**
50
+ * The **`timeChanged`** event fires every frame while the timer is playing.
51
+ * The callback receives the current elapsed time in seconds.
52
+ */
53
+ timeChanged = new Event('timeChange', (_time) => { });
54
+ /**
55
+ * The **`play`** method starts or resumes the timer.
56
+ * @param from Optional time in seconds to start from. Clamped to `[0, duration]`.
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * timer.node.play() // Resume from current position
61
+ * timer.node.play(0) // Start from the beginning
62
+ * timer.node.play(2.5) // Start from 2.5 seconds
63
+ * ```
64
+ */
65
+ play(from) {
66
+ this.#counter = Math.min(from ?? this.#counter, this.duration);
67
+ this.#isPlaying = true;
68
+ }
69
+ /**
70
+ * The **`pause`** method pauses the timer without resetting its position.
71
+ *
72
+ * @example
73
+ * ```tsx
74
+ * timer.node.pause()
75
+ * ```
76
+ */
77
+ pause() {
78
+ this.#isPlaying = false;
79
+ }
80
+ /**
81
+ * The **`stop`** method stops the timer and resets the elapsed time to zero.
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * timer.node.stop()
86
+ * ```
87
+ */
88
+ stop() {
89
+ this.#isPlaying = false;
90
+ this.#counter = 0;
91
+ }
92
+ /** @internal Updates the timer each frame. */
93
+ update(delta) {
94
+ if (this.#isPlaying) {
95
+ if (this.#counter >= this.duration) {
96
+ this.stop();
97
+ this.timeout.emit();
98
+ }
99
+ else {
100
+ this.timeChanged.emit(this.#counter);
101
+ this.#counter += delta;
102
+ }
103
+ }
104
+ super.update(delta);
105
+ }
106
+ }
107
+ Nodes.timer = Timer;
108
+ //# sourceMappingURL=timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/nodes/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAoB,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AA8BlD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,KAAM,SAAQ,IAAuB;IAChD,QAAQ,GAAG,CAAC,CAAA;IACZ;;OAEG;IACH,QAAQ,CAAQ;IAChB,UAAU,GAAG,KAAK,CAAA;IAElB,YAAY,OAAqB;QAC/B,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9D,IAAI,OAAO,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,OAAO,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAExC;;;OAGG;IACH,WAAW,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,GAAE,CAAC,CAAC,CAAA;IAE5D;;;;;;;;;;OAUG;IACH,IAAI,CAAC,IAAa;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI;QACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;IACnB,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,EAAE,CAAA;gBACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACpC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAA;YACxB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;CACF;AAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './signal.js';
2
+ export * from './reactive.js';
3
+ export * from './register.js';
4
+ export * from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reactivity/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './signal.js';
2
+ export * from './reactive.js';
3
+ export * from './register.js';
4
+ export * from './types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reactivity/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Reactive, SignalGetterLike } from './types.js';
2
+ export declare function subReactive<T>(value: Reactive<T>, onUse: (value: T) => void, onSet?: (unsub: () => void) => void): T;
3
+ export declare function reactive<T>(value: Reactive<T>): SignalGetterLike<T>;
4
+ //# sourceMappingURL=reactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../src/reactivity/reactive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE5D,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACzB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,GAClC,CAAC,CA0BH;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA4BnE"}
@@ -0,0 +1,50 @@
1
+ import { SignalRegister } from './register.js';
2
+ export function subReactive(value, onUse, onSet) {
3
+ if (typeof value !== 'function')
4
+ return value;
5
+ const signal = value;
6
+ const currentSignals = [];
7
+ let currentValue = null;
8
+ let first = true;
9
+ const refresh = () => {
10
+ currentSignals.forEach((s) => s.unsub(refresh));
11
+ currentValue = SignalRegister.watch(signal, (signals) => {
12
+ currentSignals.length = 0;
13
+ currentSignals.push(...signals);
14
+ });
15
+ if (!first) {
16
+ onUse(currentValue);
17
+ }
18
+ else {
19
+ first = false;
20
+ }
21
+ currentSignals.forEach((s) => s.sub(refresh));
22
+ };
23
+ refresh();
24
+ onSet?.(() => currentSignals.forEach((s) => s.unsub(refresh)));
25
+ return currentValue;
26
+ }
27
+ export function reactive(value) {
28
+ if (typeof value !== 'function')
29
+ return () => value;
30
+ const signal = value;
31
+ let currentSignals = [];
32
+ let currentValue = null;
33
+ const refresh = () => {
34
+ currentSignals.forEach((s) => s.unsub(refresh));
35
+ evaluateAndTrack();
36
+ currentSignals.forEach((s) => s.sub(refresh));
37
+ };
38
+ const evaluateAndTrack = () => {
39
+ currentValue = SignalRegister.watch(signal, (signals) => {
40
+ currentSignals = signals;
41
+ });
42
+ };
43
+ refresh();
44
+ const getter = () => {
45
+ currentSignals.forEach((signal) => SignalRegister.register(signal));
46
+ return currentValue;
47
+ };
48
+ return getter;
49
+ }
50
+ //# sourceMappingURL=reactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../src/reactivity/reactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,MAAM,UAAU,WAAW,CACzB,KAAkB,EAClB,KAAyB,EACzB,KAAmC;IAEnC,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7C,MAAM,MAAM,GAAG,KAA4B,CAAA;IAE3C,MAAM,cAAc,GAAkB,EAAE,CAAA;IACxC,IAAI,YAAY,GAAa,IAAI,CAAA;IACjC,IAAI,KAAK,GAAG,IAAI,CAAA;IAEhB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/C,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YACtD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA;YACzB,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,YAAY,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;QACD,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAA;IAED,OAAO,EAAE,CAAA;IACT,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAE9D,OAAO,YAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,KAAkB;IAC5C,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAA;IACnD,MAAM,MAAM,GAAG,KAA4B,CAAA;IAE3C,IAAI,cAAc,GAAkB,EAAE,CAAA;IAEtC,IAAI,YAAY,GAAM,IAAK,CAAA;IAE3B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/C,gBAAgB,EAAE,CAAA;QAClB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YACtD,cAAc,GAAG,OAAO,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,EAAE,CAAA;IAET,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACnE,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Signal } from './signal';
2
+ export declare class SignalRegister {
3
+ #private;
4
+ static watch<T>(fn: () => T, deps: (signals: Signal<any>[]) => void): T;
5
+ static register(signal: Signal<any>): void;
6
+ }
7
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/reactivity/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,qBAAa,cAAc;;IAGzB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI;IAQnE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;CAKpC"}
@@ -0,0 +1,18 @@
1
+ import { Signal } from './signal';
2
+ export class SignalRegister {
3
+ static #signals = [];
4
+ static watch(fn, deps) {
5
+ this.#signals.push(new Set());
6
+ const val = fn();
7
+ deps(Array.from(this.#signals.at(-1) ?? []));
8
+ this.#signals.pop();
9
+ return val;
10
+ }
11
+ static register(signal) {
12
+ const s = this.#signals.at(-1);
13
+ if (s == null)
14
+ return;
15
+ s.add(signal);
16
+ }
17
+ }
18
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/reactivity/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,QAAQ,GAAuB,EAAE,CAAA;IAExC,MAAM,CAAC,KAAK,CAAI,EAAW,EAAE,IAAsC;QACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,EAAE,EAAE,CAAA;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACnB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAmB;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,CAAC,IAAI,IAAI;YAAE,OAAM;QACrB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACf,CAAC"}
@@ -0,0 +1,126 @@
1
+ import type { SignalGetter, SignalSetter } from './types';
2
+ /**
3
+ * The **`Signal`** class is a reactive primitive that holds a value and notifies subscribers when it changes.
4
+ *
5
+ * @typeParam T The type of the value held by the signal.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const health = new Signal(100)
10
+ *
11
+ * health.sub((value) => {
12
+ * console.log('Health changed to:', value)
13
+ * })
14
+ *
15
+ * health.value = 50 // logs: "Health changed to: 50"
16
+ * ```
17
+ */
18
+ export declare class Signal<T> {
19
+ #private;
20
+ /**
21
+ * Creates a new `Signal` with an initial value.
22
+ * Automatically creates bound `getter` and `setter` functions that integrate
23
+ * with the reactivity system (`SignalRegister`).
24
+ *
25
+ * @param initialValue The initial value of the signal.
26
+ */
27
+ constructor(initialValue: T);
28
+ /**
29
+ * Sets the signal value and notifies all subscribers.
30
+ * @example
31
+ * ```ts
32
+ * const score = new Signal(0)
33
+ * score.value = 10
34
+ * console.log(score.value) // 10
35
+ * ```
36
+ */
37
+ set value(val: T);
38
+ /**
39
+ * Gets the current signal value.
40
+ * @example
41
+ * ```ts
42
+ * const speed = new Signal(5)
43
+ * console.log(speed.value) // 5
44
+ * ```
45
+ */
46
+ get value(): T;
47
+ /**
48
+ * A bound getter function that returns the current value.
49
+ * Calling it as a function (`getter()`) automatically registers the signal
50
+ * as a dependency of the current `SignalRegister.watch` context.
51
+ * Calling `.value()` bypasses dependency tracking.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * const health = new Signal(100)
56
+ *
57
+ * // Call as function — tracks dependency
58
+ * const val = health.getter() // 100
59
+ *
60
+ * // Use .value() — no dependency tracking
61
+ * const val2 = health.getter.value() // 100
62
+ * ```
63
+ */
64
+ getter: SignalGetter<T>;
65
+ /**
66
+ * A bound setter function that updates the value and notifies subscribers.
67
+ * Equivalent to setting `signal.value = val`.
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * const health = new Signal(100)
72
+ * health.setter(50) // equivalent to health.value = 50
73
+ * ```
74
+ */
75
+ setter: SignalSetter<T>;
76
+ /**
77
+ * The **`sub`** method subscribes a listener that is called whenever the signal value changes.
78
+ * @param fn The callback function to invoke when the value changes.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const damage = new Signal(0)
83
+ *
84
+ * damage.sub((val) => {
85
+ * console.log('Damage taken:', val)
86
+ * })
87
+ *
88
+ * damage.value = 25 // logs: "Damage taken: 25"
89
+ * ```
90
+ */
91
+ sub(fn: (value: T) => void): void;
92
+ /**
93
+ * The **`unsub`** method removes a previously subscribed listener.
94
+ * @param fn The callback function to remove.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * const mana = new Signal(100)
99
+ *
100
+ * const onManaChange = (val: number) => {
101
+ * console.log('Mana:', val)
102
+ * }
103
+ *
104
+ * mana.sub(onManaChange)
105
+ * mana.unsub(onManaChange)
106
+ * ```
107
+ */
108
+ unsub(fn: (value: T) => void): void;
109
+ /**
110
+ * The **`clearSubs`** method removes all subscribers of this signal.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const damage = new Signal(0)
115
+ * const log = (val: number) => console.log('Damage:', val)
116
+ *
117
+ * damage.sub(log)
118
+ * damage.value = 25 // logs: "Damage: 25"
119
+ *
120
+ * damage.clearSubs()
121
+ * damage.value = 50 // nothing logged — listener removed
122
+ * ```
123
+ */
124
+ clearSubs(): void;
125
+ }
126
+ //# sourceMappingURL=signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/reactivity/signal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM,CAAC,CAAC;;IAInB;;;;;;OAMG;gBACS,YAAY,EAAE,CAAC;IAe3B;;;;;;;;OAQG;IACH,IAAI,KAAK,CAAC,GAAG,EAeA,CAAC,AAfD,EAKZ;IAED;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,CAAC,CAEb;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACvB;;;;;;;;;OASG;IACH,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAEvB;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI;IAI1B;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI;IAI5B;;;;;;;;;;;;;;OAcG;IACH,SAAS;CAGV"}
@@ -0,0 +1,152 @@
1
+ import { SignalRegister } from './register';
2
+ /**
3
+ * The **`Signal`** class is a reactive primitive that holds a value and notifies subscribers when it changes.
4
+ *
5
+ * @typeParam T The type of the value held by the signal.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const health = new Signal(100)
10
+ *
11
+ * health.sub((value) => {
12
+ * console.log('Health changed to:', value)
13
+ * })
14
+ *
15
+ * health.value = 50 // logs: "Health changed to: 50"
16
+ * ```
17
+ */
18
+ export class Signal {
19
+ #value;
20
+ #listeners = new Set();
21
+ /**
22
+ * Creates a new `Signal` with an initial value.
23
+ * Automatically creates bound `getter` and `setter` functions that integrate
24
+ * with the reactivity system (`SignalRegister`).
25
+ *
26
+ * @param initialValue The initial value of the signal.
27
+ */
28
+ constructor(initialValue) {
29
+ this.#value = initialValue;
30
+ // setter & getter
31
+ this.getter = (() => {
32
+ SignalRegister.register(this);
33
+ return this.value;
34
+ });
35
+ this.getter.value = () => this.value;
36
+ this.setter = ((value) => {
37
+ this.value = value;
38
+ });
39
+ }
40
+ /**
41
+ * Sets the signal value and notifies all subscribers.
42
+ * @example
43
+ * ```ts
44
+ * const score = new Signal(0)
45
+ * score.value = 10
46
+ * console.log(score.value) // 10
47
+ * ```
48
+ */
49
+ set value(val) {
50
+ if (val === this.#value)
51
+ return;
52
+ this.#value = val;
53
+ const currentListeners = Array.from(this.#listeners);
54
+ currentListeners.forEach((fn) => fn(val));
55
+ }
56
+ /**
57
+ * Gets the current signal value.
58
+ * @example
59
+ * ```ts
60
+ * const speed = new Signal(5)
61
+ * console.log(speed.value) // 5
62
+ * ```
63
+ */
64
+ get value() {
65
+ return this.#value;
66
+ }
67
+ /**
68
+ * A bound getter function that returns the current value.
69
+ * Calling it as a function (`getter()`) automatically registers the signal
70
+ * as a dependency of the current `SignalRegister.watch` context.
71
+ * Calling `.value()` bypasses dependency tracking.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const health = new Signal(100)
76
+ *
77
+ * // Call as function — tracks dependency
78
+ * const val = health.getter() // 100
79
+ *
80
+ * // Use .value() — no dependency tracking
81
+ * const val2 = health.getter.value() // 100
82
+ * ```
83
+ */
84
+ getter;
85
+ /**
86
+ * A bound setter function that updates the value and notifies subscribers.
87
+ * Equivalent to setting `signal.value = val`.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * const health = new Signal(100)
92
+ * health.setter(50) // equivalent to health.value = 50
93
+ * ```
94
+ */
95
+ setter;
96
+ /**
97
+ * The **`sub`** method subscribes a listener that is called whenever the signal value changes.
98
+ * @param fn The callback function to invoke when the value changes.
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * const damage = new Signal(0)
103
+ *
104
+ * damage.sub((val) => {
105
+ * console.log('Damage taken:', val)
106
+ * })
107
+ *
108
+ * damage.value = 25 // logs: "Damage taken: 25"
109
+ * ```
110
+ */
111
+ sub(fn) {
112
+ this.#listeners.add(fn);
113
+ }
114
+ /**
115
+ * The **`unsub`** method removes a previously subscribed listener.
116
+ * @param fn The callback function to remove.
117
+ *
118
+ * @example
119
+ * ```ts
120
+ * const mana = new Signal(100)
121
+ *
122
+ * const onManaChange = (val: number) => {
123
+ * console.log('Mana:', val)
124
+ * }
125
+ *
126
+ * mana.sub(onManaChange)
127
+ * mana.unsub(onManaChange)
128
+ * ```
129
+ */
130
+ unsub(fn) {
131
+ this.#listeners.delete(fn);
132
+ }
133
+ /**
134
+ * The **`clearSubs`** method removes all subscribers of this signal.
135
+ *
136
+ * @example
137
+ * ```ts
138
+ * const damage = new Signal(0)
139
+ * const log = (val: number) => console.log('Damage:', val)
140
+ *
141
+ * damage.sub(log)
142
+ * damage.value = 25 // logs: "Damage: 25"
143
+ *
144
+ * damage.clearSubs()
145
+ * damage.value = 50 // nothing logged — listener removed
146
+ * ```
147
+ */
148
+ clearSubs() {
149
+ this.#listeners.clear();
150
+ }
151
+ }
152
+ //# sourceMappingURL=signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/reactivity/signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,MAAM;IACjB,MAAM,CAAG;IACT,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE1C;;;;;;OAMG;IACH,YAAY,YAAe;QACzB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;QAE1B,kBAAkB;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE;YAClB,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAA;QACnB,CAAC,CAAoB,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAA;QAEpC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC,CAAoB,CAAA;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,CAAC,GAAG;QACX,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,OAAM;QAC/B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;QACjB,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAiB;IACvB;;;;;;;;;OASG;IACH,MAAM,CAAiB;IAEvB;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,EAAsB;QACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAsB;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS;QACP,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;CACF"}