@number10/jsx-phaser 5.0.0

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 (689) hide show
  1. package/LICENSE +667 -0
  2. package/README.md +44 -0
  3. package/dist/_virtual/_commonjsHelpers.cjs +7 -0
  4. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -0
  5. package/dist/_virtual/_commonjsHelpers.js +7 -0
  6. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  7. package/dist/_virtual/index.cjs +7 -0
  8. package/dist/_virtual/index.cjs.map +1 -0
  9. package/dist/_virtual/index.js +8 -0
  10. package/dist/_virtual/index.js.map +1 -0
  11. package/dist/animation/index.d.ts +7 -0
  12. package/dist/animation/index.d.ts.map +1 -0
  13. package/dist/camera/index.d.ts +5 -0
  14. package/dist/camera/index.d.ts.map +1 -0
  15. package/dist/camera/use-camera-fx.cjs +49 -0
  16. package/dist/camera/use-camera-fx.cjs.map +1 -0
  17. package/dist/camera/use-camera-fx.d.ts +25 -0
  18. package/dist/camera/use-camera-fx.d.ts.map +1 -0
  19. package/dist/camera/use-camera-fx.js +49 -0
  20. package/dist/camera/use-camera-fx.js.map +1 -0
  21. package/dist/clip/index.cjs +8 -0
  22. package/dist/clip/index.cjs.map +1 -0
  23. package/dist/clip/index.d.ts +3 -0
  24. package/dist/clip/index.d.ts.map +1 -0
  25. package/dist/clip/index.js +9 -0
  26. package/dist/clip/index.js.map +1 -0
  27. package/dist/clip/stencil-clip-depth.cjs +24 -0
  28. package/dist/clip/stencil-clip-depth.cjs.map +1 -0
  29. package/dist/clip/stencil-clip-depth.d.ts +10 -0
  30. package/dist/clip/stencil-clip-depth.d.ts.map +1 -0
  31. package/dist/clip/stencil-clip-depth.js +24 -0
  32. package/dist/clip/stencil-clip-depth.js.map +1 -0
  33. package/dist/clip/stencil-clip-extension.cjs +113 -0
  34. package/dist/clip/stencil-clip-extension.cjs.map +1 -0
  35. package/dist/clip/stencil-clip-extension.d.ts +18 -0
  36. package/dist/clip/stencil-clip-extension.d.ts.map +1 -0
  37. package/dist/clip/stencil-clip-extension.js +96 -0
  38. package/dist/clip/stencil-clip-extension.js.map +1 -0
  39. package/dist/clip/stencil-clip-fbo-bridge.cjs +46 -0
  40. package/dist/clip/stencil-clip-fbo-bridge.cjs.map +1 -0
  41. package/dist/clip/stencil-clip-fbo-bridge.d.ts +7 -0
  42. package/dist/clip/stencil-clip-fbo-bridge.d.ts.map +1 -0
  43. package/dist/clip/stencil-clip-fbo-bridge.js +46 -0
  44. package/dist/clip/stencil-clip-fbo-bridge.js.map +1 -0
  45. package/dist/clip/stencil-clip-renderer.cjs +300 -0
  46. package/dist/clip/stencil-clip-renderer.cjs.map +1 -0
  47. package/dist/clip/stencil-clip-renderer.d.ts +7 -0
  48. package/dist/clip/stencil-clip-renderer.d.ts.map +1 -0
  49. package/dist/clip/stencil-clip-renderer.js +300 -0
  50. package/dist/clip/stencil-clip-renderer.js.map +1 -0
  51. package/dist/clip/stencil-clip-state.cjs +84 -0
  52. package/dist/clip/stencil-clip-state.cjs.map +1 -0
  53. package/dist/clip/stencil-clip-state.d.ts +28 -0
  54. package/dist/clip/stencil-clip-state.d.ts.map +1 -0
  55. package/dist/clip/stencil-clip-state.js +84 -0
  56. package/dist/clip/stencil-clip-state.js.map +1 -0
  57. package/dist/clip/stencil-clip-types.d.ts +67 -0
  58. package/dist/clip/stencil-clip-types.d.ts.map +1 -0
  59. package/dist/clip/stencil-clip.cjs +138 -0
  60. package/dist/clip/stencil-clip.cjs.map +1 -0
  61. package/dist/clip/stencil-clip.d.ts +53 -0
  62. package/dist/clip/stencil-clip.d.ts.map +1 -0
  63. package/dist/clip/stencil-clip.js +122 -0
  64. package/dist/clip/stencil-clip.js.map +1 -0
  65. package/dist/colors/use-color-mode.cjs +28 -0
  66. package/dist/colors/use-color-mode.cjs.map +1 -0
  67. package/dist/colors/use-color-mode.d.ts +22 -0
  68. package/dist/colors/use-color-mode.d.ts.map +1 -0
  69. package/dist/colors/use-color-mode.js +28 -0
  70. package/dist/colors/use-color-mode.js.map +1 -0
  71. package/dist/colors/use-colors.cjs +45 -0
  72. package/dist/colors/use-colors.cjs.map +1 -0
  73. package/dist/colors/use-colors.d.ts +36 -0
  74. package/dist/colors/use-colors.d.ts.map +1 -0
  75. package/dist/colors/use-colors.js +45 -0
  76. package/dist/colors/use-colors.js.map +1 -0
  77. package/dist/components/DebugPanel.cjs +88 -0
  78. package/dist/components/DebugPanel.cjs.map +1 -0
  79. package/dist/components/DebugPanel.d.ts +45 -0
  80. package/dist/components/DebugPanel.d.ts.map +1 -0
  81. package/dist/components/DebugPanel.js +71 -0
  82. package/dist/components/DebugPanel.js.map +1 -0
  83. package/dist/components/appliers/applyBackground.cjs +89 -0
  84. package/dist/components/appliers/applyBackground.cjs.map +1 -0
  85. package/dist/components/appliers/applyBackground.d.ts +18 -0
  86. package/dist/components/appliers/applyBackground.d.ts.map +1 -0
  87. package/dist/components/appliers/applyBackground.js +89 -0
  88. package/dist/components/appliers/applyBackground.js.map +1 -0
  89. package/dist/components/appliers/applyGestures.cjs +85 -0
  90. package/dist/components/appliers/applyGestures.cjs.map +1 -0
  91. package/dist/components/appliers/applyGestures.d.ts +12 -0
  92. package/dist/components/appliers/applyGestures.d.ts.map +1 -0
  93. package/dist/components/appliers/applyGestures.js +68 -0
  94. package/dist/components/appliers/applyGestures.js.map +1 -0
  95. package/dist/components/appliers/applyGraphics.cjs +21 -0
  96. package/dist/components/appliers/applyGraphics.cjs.map +1 -0
  97. package/dist/components/appliers/applyGraphics.d.ts +13 -0
  98. package/dist/components/appliers/applyGraphics.d.ts.map +1 -0
  99. package/dist/components/appliers/applyGraphics.js +21 -0
  100. package/dist/components/appliers/applyGraphics.js.map +1 -0
  101. package/dist/components/appliers/applyGraphicsLayout.cjs +18 -0
  102. package/dist/components/appliers/applyGraphicsLayout.cjs.map +1 -0
  103. package/dist/components/appliers/applyGraphicsLayout.d.ts +13 -0
  104. package/dist/components/appliers/applyGraphicsLayout.d.ts.map +1 -0
  105. package/dist/components/appliers/applyGraphicsLayout.js +18 -0
  106. package/dist/components/appliers/applyGraphicsLayout.js.map +1 -0
  107. package/dist/components/appliers/applyImage.cjs +92 -0
  108. package/dist/components/appliers/applyImage.cjs.map +1 -0
  109. package/dist/components/appliers/applyImage.d.ts +47 -0
  110. package/dist/components/appliers/applyImage.d.ts.map +1 -0
  111. package/dist/components/appliers/applyImage.js +92 -0
  112. package/dist/components/appliers/applyImage.js.map +1 -0
  113. package/dist/components/appliers/applyImageLayout.cjs +18 -0
  114. package/dist/components/appliers/applyImageLayout.cjs.map +1 -0
  115. package/dist/components/appliers/applyImageLayout.d.ts +18 -0
  116. package/dist/components/appliers/applyImageLayout.d.ts.map +1 -0
  117. package/dist/components/appliers/applyImageLayout.js +18 -0
  118. package/dist/components/appliers/applyImageLayout.js.map +1 -0
  119. package/dist/components/appliers/applyLayout.cjs +108 -0
  120. package/dist/components/appliers/applyLayout.cjs.map +1 -0
  121. package/dist/components/appliers/applyLayout.d.ts +19 -0
  122. package/dist/components/appliers/applyLayout.d.ts.map +1 -0
  123. package/dist/components/appliers/applyLayout.js +91 -0
  124. package/dist/components/appliers/applyLayout.js.map +1 -0
  125. package/dist/components/appliers/applyNineSlice.cjs +37 -0
  126. package/dist/components/appliers/applyNineSlice.cjs.map +1 -0
  127. package/dist/components/appliers/applyNineSlice.d.ts +14 -0
  128. package/dist/components/appliers/applyNineSlice.d.ts.map +1 -0
  129. package/dist/components/appliers/applyNineSlice.js +37 -0
  130. package/dist/components/appliers/applyNineSlice.js.map +1 -0
  131. package/dist/components/appliers/applyNineSliceLayout.cjs +18 -0
  132. package/dist/components/appliers/applyNineSliceLayout.cjs.map +1 -0
  133. package/dist/components/appliers/applyNineSliceLayout.d.ts +18 -0
  134. package/dist/components/appliers/applyNineSliceLayout.d.ts.map +1 -0
  135. package/dist/components/appliers/applyNineSliceLayout.js +18 -0
  136. package/dist/components/appliers/applyNineSliceLayout.js.map +1 -0
  137. package/dist/components/appliers/applyParticles.cjs +46 -0
  138. package/dist/components/appliers/applyParticles.cjs.map +1 -0
  139. package/dist/components/appliers/applyParticles.d.ts +7 -0
  140. package/dist/components/appliers/applyParticles.d.ts.map +1 -0
  141. package/dist/components/appliers/applyParticles.js +46 -0
  142. package/dist/components/appliers/applyParticles.js.map +1 -0
  143. package/dist/components/appliers/applyParticlesLayout.cjs +7 -0
  144. package/dist/components/appliers/applyParticlesLayout.cjs.map +1 -0
  145. package/dist/components/appliers/applyParticlesLayout.d.ts +11 -0
  146. package/dist/components/appliers/applyParticlesLayout.d.ts.map +1 -0
  147. package/dist/components/appliers/applyParticlesLayout.js +7 -0
  148. package/dist/components/appliers/applyParticlesLayout.js.map +1 -0
  149. package/dist/components/appliers/applyPhaser.cjs +40 -0
  150. package/dist/components/appliers/applyPhaser.cjs.map +1 -0
  151. package/dist/components/appliers/applyPhaser.d.ts +24 -0
  152. package/dist/components/appliers/applyPhaser.d.ts.map +1 -0
  153. package/dist/components/appliers/applyPhaser.js +40 -0
  154. package/dist/components/appliers/applyPhaser.js.map +1 -0
  155. package/dist/components/appliers/applySprite.cjs +124 -0
  156. package/dist/components/appliers/applySprite.cjs.map +1 -0
  157. package/dist/components/appliers/applySprite.d.ts +13 -0
  158. package/dist/components/appliers/applySprite.d.ts.map +1 -0
  159. package/dist/components/appliers/applySprite.js +124 -0
  160. package/dist/components/appliers/applySprite.js.map +1 -0
  161. package/dist/components/appliers/applySpriteLayout.cjs +7 -0
  162. package/dist/components/appliers/applySpriteLayout.cjs.map +1 -0
  163. package/dist/components/appliers/applySpriteLayout.d.ts +17 -0
  164. package/dist/components/appliers/applySpriteLayout.d.ts.map +1 -0
  165. package/dist/components/appliers/applySpriteLayout.js +7 -0
  166. package/dist/components/appliers/applySpriteLayout.js.map +1 -0
  167. package/dist/components/appliers/applyText.cjs +142 -0
  168. package/dist/components/appliers/applyText.cjs.map +1 -0
  169. package/dist/components/appliers/applyText.d.ts +32 -0
  170. package/dist/components/appliers/applyText.d.ts.map +1 -0
  171. package/dist/components/appliers/applyText.js +142 -0
  172. package/dist/components/appliers/applyText.js.map +1 -0
  173. package/dist/components/appliers/applyTextLayout.cjs +16 -0
  174. package/dist/components/appliers/applyTextLayout.cjs.map +1 -0
  175. package/dist/components/appliers/applyTextLayout.d.ts +18 -0
  176. package/dist/components/appliers/applyTextLayout.d.ts.map +1 -0
  177. package/dist/components/appliers/applyTextLayout.js +16 -0
  178. package/dist/components/appliers/applyTextLayout.js.map +1 -0
  179. package/dist/components/appliers/applyTooltip.cjs +247 -0
  180. package/dist/components/appliers/applyTooltip.cjs.map +1 -0
  181. package/dist/components/appliers/applyTooltip.d.ts +16 -0
  182. package/dist/components/appliers/applyTooltip.d.ts.map +1 -0
  183. package/dist/components/appliers/applyTooltip.js +247 -0
  184. package/dist/components/appliers/applyTooltip.js.map +1 -0
  185. package/dist/components/appliers/applyTransform.cjs +61 -0
  186. package/dist/components/appliers/applyTransform.cjs.map +1 -0
  187. package/dist/components/appliers/applyTransform.d.ts +24 -0
  188. package/dist/components/appliers/applyTransform.d.ts.map +1 -0
  189. package/dist/components/appliers/applyTransform.js +61 -0
  190. package/dist/components/appliers/applyTransform.js.map +1 -0
  191. package/dist/components/backgroundImage.cjs +411 -0
  192. package/dist/components/backgroundImage.cjs.map +1 -0
  193. package/dist/components/backgroundImage.d.ts +14 -0
  194. package/dist/components/backgroundImage.d.ts.map +1 -0
  195. package/dist/components/backgroundImage.js +411 -0
  196. package/dist/components/backgroundImage.js.map +1 -0
  197. package/dist/components/creators/createBackground.cjs +18 -0
  198. package/dist/components/creators/createBackground.cjs.map +1 -0
  199. package/dist/components/creators/createBackground.d.ts +20 -0
  200. package/dist/components/creators/createBackground.d.ts.map +1 -0
  201. package/dist/components/creators/createBackground.js +18 -0
  202. package/dist/components/creators/createBackground.js.map +1 -0
  203. package/dist/components/creators/createGestures.cjs +51 -0
  204. package/dist/components/creators/createGestures.cjs.map +1 -0
  205. package/dist/components/creators/createGestures.d.ts +11 -0
  206. package/dist/components/creators/createGestures.d.ts.map +1 -0
  207. package/dist/components/creators/createGestures.js +34 -0
  208. package/dist/components/creators/createGestures.js.map +1 -0
  209. package/dist/components/creators/createGraphicsLayout.cjs +24 -0
  210. package/dist/components/creators/createGraphicsLayout.cjs.map +1 -0
  211. package/dist/components/creators/createGraphicsLayout.d.ts +12 -0
  212. package/dist/components/creators/createGraphicsLayout.d.ts.map +1 -0
  213. package/dist/components/creators/createGraphicsLayout.js +24 -0
  214. package/dist/components/creators/createGraphicsLayout.js.map +1 -0
  215. package/dist/components/creators/createImageLayout.cjs +16 -0
  216. package/dist/components/creators/createImageLayout.cjs.map +1 -0
  217. package/dist/components/creators/createImageLayout.d.ts +17 -0
  218. package/dist/components/creators/createImageLayout.d.ts.map +1 -0
  219. package/dist/components/creators/createImageLayout.js +16 -0
  220. package/dist/components/creators/createImageLayout.js.map +1 -0
  221. package/dist/components/creators/createLayout.cjs +61 -0
  222. package/dist/components/creators/createLayout.cjs.map +1 -0
  223. package/dist/components/creators/createLayout.d.ts +15 -0
  224. package/dist/components/creators/createLayout.d.ts.map +1 -0
  225. package/dist/components/creators/createLayout.js +61 -0
  226. package/dist/components/creators/createLayout.js.map +1 -0
  227. package/dist/components/creators/createNineSliceLayout.cjs +16 -0
  228. package/dist/components/creators/createNineSliceLayout.cjs.map +1 -0
  229. package/dist/components/creators/createNineSliceLayout.d.ts +17 -0
  230. package/dist/components/creators/createNineSliceLayout.d.ts.map +1 -0
  231. package/dist/components/creators/createNineSliceLayout.js +16 -0
  232. package/dist/components/creators/createNineSliceLayout.js.map +1 -0
  233. package/dist/components/creators/createParticlesLayout.cjs +8 -0
  234. package/dist/components/creators/createParticlesLayout.cjs.map +1 -0
  235. package/dist/components/creators/createParticlesLayout.d.ts +14 -0
  236. package/dist/components/creators/createParticlesLayout.d.ts.map +1 -0
  237. package/dist/components/creators/createParticlesLayout.js +8 -0
  238. package/dist/components/creators/createParticlesLayout.js.map +1 -0
  239. package/dist/components/creators/createPhaser.cjs +36 -0
  240. package/dist/components/creators/createPhaser.cjs.map +1 -0
  241. package/dist/components/creators/createPhaser.d.ts +14 -0
  242. package/dist/components/creators/createPhaser.d.ts.map +1 -0
  243. package/dist/components/creators/createPhaser.js +36 -0
  244. package/dist/components/creators/createPhaser.js.map +1 -0
  245. package/dist/components/creators/createSpriteLayout.cjs +10 -0
  246. package/dist/components/creators/createSpriteLayout.cjs.map +1 -0
  247. package/dist/components/creators/createSpriteLayout.d.ts +18 -0
  248. package/dist/components/creators/createSpriteLayout.d.ts.map +1 -0
  249. package/dist/components/creators/createSpriteLayout.js +10 -0
  250. package/dist/components/creators/createSpriteLayout.js.map +1 -0
  251. package/dist/components/creators/createTextLayout.cjs +16 -0
  252. package/dist/components/creators/createTextLayout.cjs.map +1 -0
  253. package/dist/components/creators/createTextLayout.d.ts +17 -0
  254. package/dist/components/creators/createTextLayout.d.ts.map +1 -0
  255. package/dist/components/creators/createTextLayout.js +16 -0
  256. package/dist/components/creators/createTextLayout.js.map +1 -0
  257. package/dist/components/creators/createTransform.cjs +83 -0
  258. package/dist/components/creators/createTransform.cjs.map +1 -0
  259. package/dist/components/creators/createTransform.d.ts +26 -0
  260. package/dist/components/creators/createTransform.d.ts.map +1 -0
  261. package/dist/components/creators/createTransform.js +83 -0
  262. package/dist/components/creators/createTransform.js.map +1 -0
  263. package/dist/components/custom/Graphics.cjs +13 -0
  264. package/dist/components/custom/Graphics.cjs.map +1 -0
  265. package/dist/components/custom/Graphics.d.ts +50 -0
  266. package/dist/components/custom/Graphics.d.ts.map +1 -0
  267. package/dist/components/custom/Graphics.js +13 -0
  268. package/dist/components/custom/Graphics.js.map +1 -0
  269. package/dist/components/custom/NineSlice.cjs +13 -0
  270. package/dist/components/custom/NineSlice.cjs.map +1 -0
  271. package/dist/components/custom/NineSlice.d.ts +87 -0
  272. package/dist/components/custom/NineSlice.d.ts.map +1 -0
  273. package/dist/components/custom/NineSlice.js +13 -0
  274. package/dist/components/custom/NineSlice.js.map +1 -0
  275. package/dist/components/custom/Particles.cjs +8 -0
  276. package/dist/components/custom/Particles.cjs.map +1 -0
  277. package/dist/components/custom/Particles.d.ts +28 -0
  278. package/dist/components/custom/Particles.d.ts.map +1 -0
  279. package/dist/components/custom/Particles.js +8 -0
  280. package/dist/components/custom/Particles.js.map +1 -0
  281. package/dist/components/custom/RefOriginView.cjs +67 -0
  282. package/dist/components/custom/RefOriginView.cjs.map +1 -0
  283. package/dist/components/custom/RefOriginView.d.ts +49 -0
  284. package/dist/components/custom/RefOriginView.d.ts.map +1 -0
  285. package/dist/components/custom/RefOriginView.js +67 -0
  286. package/dist/components/custom/RefOriginView.js.map +1 -0
  287. package/dist/components/custom/Sprite.cjs +13 -0
  288. package/dist/components/custom/Sprite.cjs.map +1 -0
  289. package/dist/components/custom/Sprite.d.ts +79 -0
  290. package/dist/components/custom/Sprite.d.ts.map +1 -0
  291. package/dist/components/custom/Sprite.js +13 -0
  292. package/dist/components/custom/Sprite.js.map +1 -0
  293. package/dist/components/custom/TileSprite.cjs +13 -0
  294. package/dist/components/custom/TileSprite.cjs.map +1 -0
  295. package/dist/components/custom/TileSprite.d.ts +65 -0
  296. package/dist/components/custom/TileSprite.d.ts.map +1 -0
  297. package/dist/components/custom/TileSprite.js +13 -0
  298. package/dist/components/custom/TileSprite.js.map +1 -0
  299. package/dist/components/custom/index.d.ts +15 -0
  300. package/dist/components/custom/index.d.ts.map +1 -0
  301. package/dist/components/index.cjs +33 -0
  302. package/dist/components/index.cjs.map +1 -0
  303. package/dist/components/index.d.ts +11 -0
  304. package/dist/components/index.d.ts.map +1 -0
  305. package/dist/components/index.js +33 -0
  306. package/dist/components/index.js.map +1 -0
  307. package/dist/components/internal/SceneWrapper.cjs +10 -0
  308. package/dist/components/internal/SceneWrapper.cjs.map +1 -0
  309. package/dist/components/internal/SceneWrapper.d.ts +20 -0
  310. package/dist/components/internal/SceneWrapper.d.ts.map +1 -0
  311. package/dist/components/internal/SceneWrapper.js +10 -0
  312. package/dist/components/internal/SceneWrapper.js.map +1 -0
  313. package/dist/components/primitives/graphics.cjs +29 -0
  314. package/dist/components/primitives/graphics.cjs.map +1 -0
  315. package/dist/components/primitives/graphics.d.ts +146 -0
  316. package/dist/components/primitives/graphics.d.ts.map +1 -0
  317. package/dist/components/primitives/graphics.js +29 -0
  318. package/dist/components/primitives/graphics.js.map +1 -0
  319. package/dist/components/primitives/image.cjs +110 -0
  320. package/dist/components/primitives/image.cjs.map +1 -0
  321. package/dist/components/primitives/image.d.ts +170 -0
  322. package/dist/components/primitives/image.d.ts.map +1 -0
  323. package/dist/components/primitives/image.js +110 -0
  324. package/dist/components/primitives/image.js.map +1 -0
  325. package/dist/components/primitives/nineslice.cjs +42 -0
  326. package/dist/components/primitives/nineslice.cjs.map +1 -0
  327. package/dist/components/primitives/nineslice.d.ts +271 -0
  328. package/dist/components/primitives/nineslice.d.ts.map +1 -0
  329. package/dist/components/primitives/nineslice.js +42 -0
  330. package/dist/components/primitives/nineslice.js.map +1 -0
  331. package/dist/components/primitives/particles.cjs +77 -0
  332. package/dist/components/primitives/particles.cjs.map +1 -0
  333. package/dist/components/primitives/particles.d.ts +47 -0
  334. package/dist/components/primitives/particles.d.ts.map +1 -0
  335. package/dist/components/primitives/particles.js +77 -0
  336. package/dist/components/primitives/particles.js.map +1 -0
  337. package/dist/components/primitives/sprite.cjs +100 -0
  338. package/dist/components/primitives/sprite.cjs.map +1 -0
  339. package/dist/components/primitives/sprite.d.ts +147 -0
  340. package/dist/components/primitives/sprite.d.ts.map +1 -0
  341. package/dist/components/primitives/sprite.js +100 -0
  342. package/dist/components/primitives/sprite.js.map +1 -0
  343. package/dist/components/primitives/text.cjs +73 -0
  344. package/dist/components/primitives/text.cjs.map +1 -0
  345. package/dist/components/primitives/text.d.ts +155 -0
  346. package/dist/components/primitives/text.d.ts.map +1 -0
  347. package/dist/components/primitives/text.js +73 -0
  348. package/dist/components/primitives/text.js.map +1 -0
  349. package/dist/components/primitives/tilesprite.cjs +77 -0
  350. package/dist/components/primitives/tilesprite.cjs.map +1 -0
  351. package/dist/components/primitives/tilesprite.d.ts +157 -0
  352. package/dist/components/primitives/tilesprite.d.ts.map +1 -0
  353. package/dist/components/primitives/tilesprite.js +77 -0
  354. package/dist/components/primitives/tilesprite.js.map +1 -0
  355. package/dist/components/primitives/vectorDraw.cjs +73 -0
  356. package/dist/components/primitives/vectorDraw.cjs.map +1 -0
  357. package/dist/components/primitives/vectorDraw.d.ts +4 -0
  358. package/dist/components/primitives/vectorDraw.d.ts.map +1 -0
  359. package/dist/components/primitives/vectorDraw.js +73 -0
  360. package/dist/components/primitives/vectorDraw.js.map +1 -0
  361. package/dist/components/primitives/view.cjs +105 -0
  362. package/dist/components/primitives/view.cjs.map +1 -0
  363. package/dist/components/primitives/view.d.ts +23 -0
  364. package/dist/components/primitives/view.d.ts.map +1 -0
  365. package/dist/components/primitives/view.js +105 -0
  366. package/dist/components/primitives/view.js.map +1 -0
  367. package/dist/core-props.d.ts +105 -0
  368. package/dist/core-props.d.ts.map +1 -0
  369. package/dist/core-types.d.ts +71 -0
  370. package/dist/core-types.d.ts.map +1 -0
  371. package/dist/design-tokens/resolve-theme-tokens.cjs +27 -0
  372. package/dist/design-tokens/resolve-theme-tokens.cjs.map +1 -0
  373. package/dist/design-tokens/resolve-theme-tokens.d.ts +9 -0
  374. package/dist/design-tokens/resolve-theme-tokens.d.ts.map +1 -0
  375. package/dist/design-tokens/resolve-theme-tokens.js +27 -0
  376. package/dist/design-tokens/resolve-theme-tokens.js.map +1 -0
  377. package/dist/design-tokens/use-theme-tokens.cjs +26 -0
  378. package/dist/design-tokens/use-theme-tokens.cjs.map +1 -0
  379. package/dist/design-tokens/use-theme-tokens.d.ts +28 -0
  380. package/dist/design-tokens/use-theme-tokens.d.ts.map +1 -0
  381. package/dist/design-tokens/use-theme-tokens.js +26 -0
  382. package/dist/design-tokens/use-theme-tokens.js.map +1 -0
  383. package/dist/effects/index.d.ts +2 -0
  384. package/dist/effects/index.d.ts.map +1 -0
  385. package/dist/effects/phaser-effects-bridge.cjs +48 -0
  386. package/dist/effects/phaser-effects-bridge.cjs.map +1 -0
  387. package/dist/effects/phaser-effects-bridge.d.ts +2 -0
  388. package/dist/effects/phaser-effects-bridge.d.ts.map +1 -0
  389. package/dist/effects/phaser-effects-bridge.js +30 -0
  390. package/dist/effects/phaser-effects-bridge.js.map +1 -0
  391. package/dist/effects/use-effect.cjs +155 -0
  392. package/dist/effects/use-effect.cjs.map +1 -0
  393. package/dist/effects/use-effect.d.ts +30 -0
  394. package/dist/effects/use-effect.d.ts.map +1 -0
  395. package/dist/effects/use-effect.js +155 -0
  396. package/dist/effects/use-effect.js.map +1 -0
  397. package/dist/fx/convenience-hooks/index.d.ts +7 -0
  398. package/dist/fx/convenience-hooks/index.d.ts.map +1 -0
  399. package/dist/fx/convenience-hooks/use-blur.cjs +18 -0
  400. package/dist/fx/convenience-hooks/use-blur.cjs.map +1 -0
  401. package/dist/fx/convenience-hooks/use-blur.d.ts +21 -0
  402. package/dist/fx/convenience-hooks/use-blur.d.ts.map +1 -0
  403. package/dist/fx/convenience-hooks/use-blur.js +18 -0
  404. package/dist/fx/convenience-hooks/use-blur.js.map +1 -0
  405. package/dist/fx/convenience-hooks/use-glow.cjs +18 -0
  406. package/dist/fx/convenience-hooks/use-glow.cjs.map +1 -0
  407. package/dist/fx/convenience-hooks/use-glow.d.ts +21 -0
  408. package/dist/fx/convenience-hooks/use-glow.d.ts.map +1 -0
  409. package/dist/fx/convenience-hooks/use-glow.js +18 -0
  410. package/dist/fx/convenience-hooks/use-glow.js.map +1 -0
  411. package/dist/fx/convenience-hooks/use-shadow.cjs +18 -0
  412. package/dist/fx/convenience-hooks/use-shadow.cjs.map +1 -0
  413. package/dist/fx/convenience-hooks/use-shadow.d.ts +21 -0
  414. package/dist/fx/convenience-hooks/use-shadow.d.ts.map +1 -0
  415. package/dist/fx/convenience-hooks/use-shadow.js +18 -0
  416. package/dist/fx/convenience-hooks/use-shadow.js.map +1 -0
  417. package/dist/fx/fx-creators/blur.cjs +20 -0
  418. package/dist/fx/fx-creators/blur.cjs.map +1 -0
  419. package/dist/fx/fx-creators/blur.d.ts +37 -0
  420. package/dist/fx/fx-creators/blur.d.ts.map +1 -0
  421. package/dist/fx/fx-creators/blur.js +20 -0
  422. package/dist/fx/fx-creators/blur.js.map +1 -0
  423. package/dist/fx/fx-creators/color-matrix.cjs +47 -0
  424. package/dist/fx/fx-creators/color-matrix.cjs.map +1 -0
  425. package/dist/fx/fx-creators/color-matrix.d.ts +31 -0
  426. package/dist/fx/fx-creators/color-matrix.d.ts.map +1 -0
  427. package/dist/fx/fx-creators/color-matrix.js +47 -0
  428. package/dist/fx/fx-creators/color-matrix.js.map +1 -0
  429. package/dist/fx/fx-creators/glow.cjs +27 -0
  430. package/dist/fx/fx-creators/glow.cjs.map +1 -0
  431. package/dist/fx/fx-creators/glow.d.ts +36 -0
  432. package/dist/fx/fx-creators/glow.d.ts.map +1 -0
  433. package/dist/fx/fx-creators/glow.js +27 -0
  434. package/dist/fx/fx-creators/glow.js.map +1 -0
  435. package/dist/fx/fx-creators/index.d.ts +10 -0
  436. package/dist/fx/fx-creators/index.d.ts.map +1 -0
  437. package/dist/fx/fx-creators/pixelate.cjs +20 -0
  438. package/dist/fx/fx-creators/pixelate.cjs.map +1 -0
  439. package/dist/fx/fx-creators/pixelate.d.ts +24 -0
  440. package/dist/fx/fx-creators/pixelate.d.ts.map +1 -0
  441. package/dist/fx/fx-creators/pixelate.js +20 -0
  442. package/dist/fx/fx-creators/pixelate.js.map +1 -0
  443. package/dist/fx/fx-creators/shadow.cjs +28 -0
  444. package/dist/fx/fx-creators/shadow.cjs.map +1 -0
  445. package/dist/fx/fx-creators/shadow.d.ts +43 -0
  446. package/dist/fx/fx-creators/shadow.d.ts.map +1 -0
  447. package/dist/fx/fx-creators/shadow.js +28 -0
  448. package/dist/fx/fx-creators/shadow.js.map +1 -0
  449. package/dist/fx/fx-creators/vignette.cjs +20 -0
  450. package/dist/fx/fx-creators/vignette.cjs.map +1 -0
  451. package/dist/fx/fx-creators/vignette.d.ts +33 -0
  452. package/dist/fx/fx-creators/vignette.d.ts.map +1 -0
  453. package/dist/fx/fx-creators/vignette.js +20 -0
  454. package/dist/fx/fx-creators/vignette.js.map +1 -0
  455. package/dist/fx/fx-registry.cjs +43 -0
  456. package/dist/fx/fx-registry.cjs.map +1 -0
  457. package/dist/fx/fx-registry.d.ts +59 -0
  458. package/dist/fx/fx-registry.d.ts.map +1 -0
  459. package/dist/fx/fx-registry.js +43 -0
  460. package/dist/fx/fx-registry.js.map +1 -0
  461. package/dist/fx/index.d.ts +51 -0
  462. package/dist/fx/index.d.ts.map +1 -0
  463. package/dist/fx/use-fx.cjs +54 -0
  464. package/dist/fx/use-fx.cjs.map +1 -0
  465. package/dist/fx/use-fx.d.ts +53 -0
  466. package/dist/fx/use-fx.d.ts.map +1 -0
  467. package/dist/fx/use-fx.js +54 -0
  468. package/dist/fx/use-fx.js.map +1 -0
  469. package/dist/gestures/gesture-manager.cjs +773 -0
  470. package/dist/gestures/gesture-manager.cjs.map +1 -0
  471. package/dist/gestures/gesture-manager.d.ts +158 -0
  472. package/dist/gestures/gesture-manager.d.ts.map +1 -0
  473. package/dist/gestures/gesture-manager.js +773 -0
  474. package/dist/gestures/gesture-manager.js.map +1 -0
  475. package/dist/gestures/gesture-types.cjs +9 -0
  476. package/dist/gestures/gesture-types.cjs.map +1 -0
  477. package/dist/gestures/gesture-types.d.ts +232 -0
  478. package/dist/gestures/gesture-types.d.ts.map +1 -0
  479. package/dist/gestures/gesture-types.js +9 -0
  480. package/dist/gestures/gesture-types.js.map +1 -0
  481. package/dist/hooks.cjs +193 -0
  482. package/dist/hooks.cjs.map +1 -0
  483. package/dist/hooks.d.ts +151 -0
  484. package/dist/hooks.d.ts.map +1 -0
  485. package/dist/hooks.js +146 -0
  486. package/dist/hooks.js.map +1 -0
  487. package/dist/host.cjs +85 -0
  488. package/dist/host.cjs.map +1 -0
  489. package/dist/host.d.ts +78 -0
  490. package/dist/host.d.ts.map +1 -0
  491. package/dist/host.js +85 -0
  492. package/dist/host.js.map +1 -0
  493. package/dist/index.cjs +614 -0
  494. package/dist/index.cjs.map +1 -0
  495. package/dist/index.d.ts +61 -0
  496. package/dist/index.d.ts.map +1 -0
  497. package/dist/index.js +273 -0
  498. package/dist/index.js.map +1 -0
  499. package/dist/jsx-dev-runtime.cjs +20 -0
  500. package/dist/jsx-dev-runtime.cjs.map +1 -0
  501. package/dist/jsx-dev-runtime.d.ts +8 -0
  502. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  503. package/dist/jsx-dev-runtime.js +8 -0
  504. package/dist/jsx-dev-runtime.js.map +1 -0
  505. package/dist/jsx-runtime.cjs +16 -0
  506. package/dist/jsx-runtime.cjs.map +1 -0
  507. package/dist/jsx-runtime.d.ts +9 -0
  508. package/dist/jsx-runtime.d.ts.map +1 -0
  509. package/dist/jsx-runtime.js +7 -0
  510. package/dist/jsx-runtime.js.map +1 -0
  511. package/dist/jsx-types.d.ts +40 -0
  512. package/dist/jsx-types.d.ts.map +1 -0
  513. package/dist/layout/appliers/background-applier.cjs +40 -0
  514. package/dist/layout/appliers/background-applier.cjs.map +1 -0
  515. package/dist/layout/appliers/background-applier.d.ts +16 -0
  516. package/dist/layout/appliers/background-applier.d.ts.map +1 -0
  517. package/dist/layout/appliers/background-applier.js +40 -0
  518. package/dist/layout/appliers/background-applier.js.map +1 -0
  519. package/dist/layout/index.d.ts +5 -0
  520. package/dist/layout/index.d.ts.map +1 -0
  521. package/dist/layout/layout-engine-test-utils.d.ts +24 -0
  522. package/dist/layout/layout-engine-test-utils.d.ts.map +1 -0
  523. package/dist/layout/phaser-layout-bridge.cjs +41 -0
  524. package/dist/layout/phaser-layout-bridge.cjs.map +1 -0
  525. package/dist/layout/phaser-layout-bridge.d.ts +9 -0
  526. package/dist/layout/phaser-layout-bridge.d.ts.map +1 -0
  527. package/dist/layout/phaser-layout-bridge.js +40 -0
  528. package/dist/layout/phaser-layout-bridge.js.map +1 -0
  529. package/dist/layout/types.d.ts +14 -0
  530. package/dist/layout/types.d.ts.map +1 -0
  531. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.cjs +39 -0
  532. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.cjs.map +1 -0
  533. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +39 -0
  534. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
  535. package/dist/particles/emit-zone.cjs +205 -0
  536. package/dist/particles/emit-zone.cjs.map +1 -0
  537. package/dist/particles/emit-zone.d.ts +88 -0
  538. package/dist/particles/emit-zone.d.ts.map +1 -0
  539. package/dist/particles/emit-zone.js +205 -0
  540. package/dist/particles/emit-zone.js.map +1 -0
  541. package/dist/particles/index.d.ts +8 -0
  542. package/dist/particles/index.d.ts.map +1 -0
  543. package/dist/particles/particle-types.d.ts +25 -0
  544. package/dist/particles/particle-types.d.ts.map +1 -0
  545. package/dist/particles/preset-registry.cjs +57 -0
  546. package/dist/particles/preset-registry.cjs.map +1 -0
  547. package/dist/particles/preset-registry.d.ts +49 -0
  548. package/dist/particles/preset-registry.d.ts.map +1 -0
  549. package/dist/particles/preset-registry.js +57 -0
  550. package/dist/particles/preset-registry.js.map +1 -0
  551. package/dist/particles/use-particles.cjs +67 -0
  552. package/dist/particles/use-particles.cjs.map +1 -0
  553. package/dist/particles/use-particles.d.ts +19 -0
  554. package/dist/particles/use-particles.d.ts.map +1 -0
  555. package/dist/particles/use-particles.js +67 -0
  556. package/dist/particles/use-particles.js.map +1 -0
  557. package/dist/particles/utils.cjs +82 -0
  558. package/dist/particles/utils.cjs.map +1 -0
  559. package/dist/particles/utils.d.ts +10 -0
  560. package/dist/particles/utils.d.ts.map +1 -0
  561. package/dist/particles/utils.js +82 -0
  562. package/dist/particles/utils.js.map +1 -0
  563. package/dist/phaser-bridges.cjs +148 -0
  564. package/dist/phaser-bridges.cjs.map +1 -0
  565. package/dist/phaser-bridges.d.ts +78 -0
  566. package/dist/phaser-bridges.d.ts.map +1 -0
  567. package/dist/phaser-bridges.js +131 -0
  568. package/dist/phaser-bridges.js.map +1 -0
  569. package/dist/phaser-host-adapter.cjs +148 -0
  570. package/dist/phaser-host-adapter.cjs.map +1 -0
  571. package/dist/phaser-host-adapter.d.ts +30 -0
  572. package/dist/phaser-host-adapter.d.ts.map +1 -0
  573. package/dist/phaser-host-adapter.js +148 -0
  574. package/dist/phaser-host-adapter.js.map +1 -0
  575. package/dist/phaser-runtime-types.d.ts +89 -0
  576. package/dist/phaser-runtime-types.d.ts.map +1 -0
  577. package/dist/phaser-surface-adapter.cjs +488 -0
  578. package/dist/phaser-surface-adapter.cjs.map +1 -0
  579. package/dist/phaser-surface-adapter.d.ts +74 -0
  580. package/dist/phaser-surface-adapter.d.ts.map +1 -0
  581. package/dist/phaser-surface-adapter.js +471 -0
  582. package/dist/phaser-surface-adapter.js.map +1 -0
  583. package/dist/phaser-vdom-runtime.cjs +63 -0
  584. package/dist/phaser-vdom-runtime.cjs.map +1 -0
  585. package/dist/phaser-vdom-runtime.d.ts +2 -0
  586. package/dist/phaser-vdom-runtime.d.ts.map +1 -0
  587. package/dist/phaser-vdom-runtime.js +63 -0
  588. package/dist/phaser-vdom-runtime.js.map +1 -0
  589. package/dist/plugin.cjs +182 -0
  590. package/dist/plugin.cjs.map +1 -0
  591. package/dist/plugin.d.ts +161 -0
  592. package/dist/plugin.d.ts.map +1 -0
  593. package/dist/plugin.js +165 -0
  594. package/dist/plugin.js.map +1 -0
  595. package/dist/render-context.cjs +106 -0
  596. package/dist/render-context.cjs.map +1 -0
  597. package/dist/render-context.d.ts +66 -0
  598. package/dist/render-context.d.ts.map +1 -0
  599. package/dist/render-context.js +106 -0
  600. package/dist/render-context.js.map +1 -0
  601. package/dist/scene-backgrounds.cjs +285 -0
  602. package/dist/scene-backgrounds.cjs.map +1 -0
  603. package/dist/scene-backgrounds.d.ts +69 -0
  604. package/dist/scene-backgrounds.d.ts.map +1 -0
  605. package/dist/scene-backgrounds.js +268 -0
  606. package/dist/scene-backgrounds.js.map +1 -0
  607. package/dist/theme-base.d.ts +133 -0
  608. package/dist/theme-base.d.ts.map +1 -0
  609. package/dist/theme-custom.d.ts +13 -0
  610. package/dist/theme-custom.d.ts.map +1 -0
  611. package/dist/theme-defaults.cjs +29 -0
  612. package/dist/theme-defaults.cjs.map +1 -0
  613. package/dist/theme-defaults.d.ts +1 -0
  614. package/dist/theme-defaults.d.ts.map +1 -0
  615. package/dist/theme-defaults.js +28 -0
  616. package/dist/theme-defaults.js.map +1 -0
  617. package/dist/theme.cjs +34 -0
  618. package/dist/theme.cjs.map +1 -0
  619. package/dist/theme.d.ts +36 -0
  620. package/dist/theme.d.ts.map +1 -0
  621. package/dist/theme.js +32 -0
  622. package/dist/theme.js.map +1 -0
  623. package/dist/tooltip/tooltip-types.d.ts +6 -0
  624. package/dist/tooltip/tooltip-types.d.ts.map +1 -0
  625. package/dist/types.d.ts +22 -0
  626. package/dist/types.d.ts.map +1 -0
  627. package/dist/utils/KeyboardInputManager.cjs +112 -0
  628. package/dist/utils/KeyboardInputManager.cjs.map +1 -0
  629. package/dist/utils/KeyboardInputManager.d.ts +48 -0
  630. package/dist/utils/KeyboardInputManager.d.ts.map +1 -0
  631. package/dist/utils/KeyboardInputManager.js +112 -0
  632. package/dist/utils/KeyboardInputManager.js.map +1 -0
  633. package/dist/utils/dom-input-manager.cjs +253 -0
  634. package/dist/utils/dom-input-manager.cjs.map +1 -0
  635. package/dist/utils/dom-input-manager.d.ts +113 -0
  636. package/dist/utils/dom-input-manager.d.ts.map +1 -0
  637. package/dist/utils/dom-input-manager.js +253 -0
  638. package/dist/utils/dom-input-manager.js.map +1 -0
  639. package/dist/utils/fast-deep-equal.cjs +7 -0
  640. package/dist/utils/fast-deep-equal.cjs.map +1 -0
  641. package/dist/utils/fast-deep-equal.d.ts +4 -0
  642. package/dist/utils/fast-deep-equal.d.ts.map +1 -0
  643. package/dist/utils/fast-deep-equal.js +7 -0
  644. package/dist/utils/fast-deep-equal.js.map +1 -0
  645. package/dist/utils/image-subtexture-registry.cjs +98 -0
  646. package/dist/utils/image-subtexture-registry.cjs.map +1 -0
  647. package/dist/utils/image-subtexture-registry.d.ts +17 -0
  648. package/dist/utils/image-subtexture-registry.d.ts.map +1 -0
  649. package/dist/utils/image-subtexture-registry.js +98 -0
  650. package/dist/utils/image-subtexture-registry.js.map +1 -0
  651. package/dist/utils/phaser-guards.cjs +15 -0
  652. package/dist/utils/phaser-guards.cjs.map +1 -0
  653. package/dist/utils/phaser-guards.d.ts +7 -0
  654. package/dist/utils/phaser-guards.d.ts.map +1 -0
  655. package/dist/utils/phaser-guards.js +15 -0
  656. package/dist/utils/phaser-guards.js.map +1 -0
  657. package/dist/utils/svg-texture.cjs +48 -0
  658. package/dist/utils/svg-texture.cjs.map +1 -0
  659. package/dist/utils/svg-texture.d.ts +34 -0
  660. package/dist/utils/svg-texture.d.ts.map +1 -0
  661. package/dist/utils/svg-texture.js +48 -0
  662. package/dist/utils/svg-texture.js.map +1 -0
  663. package/dist/utils/texture-registry.cjs +117 -0
  664. package/dist/utils/texture-registry.cjs.map +1 -0
  665. package/dist/utils/texture-registry.d.ts +53 -0
  666. package/dist/utils/texture-registry.d.ts.map +1 -0
  667. package/dist/utils/texture-registry.js +117 -0
  668. package/dist/utils/texture-registry.js.map +1 -0
  669. package/dist/vdom-host-types.d.ts +12 -0
  670. package/dist/vdom-host-types.d.ts.map +1 -0
  671. package/dist/vdom-registry.d.ts +27 -0
  672. package/dist/vdom-registry.d.ts.map +1 -0
  673. package/dist/vdom-utils.d.ts +16 -0
  674. package/dist/vdom-utils.d.ts.map +1 -0
  675. package/dist/vdom.cjs +36 -0
  676. package/dist/vdom.cjs.map +1 -0
  677. package/dist/vdom.d.ts +23 -0
  678. package/dist/vdom.d.ts.map +1 -0
  679. package/dist/vdom.js +36 -0
  680. package/dist/vdom.js.map +1 -0
  681. package/dist/vector/PhaserVectorDrawContext.cjs +97 -0
  682. package/dist/vector/PhaserVectorDrawContext.cjs.map +1 -0
  683. package/dist/vector/PhaserVectorDrawContext.d.ts +27 -0
  684. package/dist/vector/PhaserVectorDrawContext.d.ts.map +1 -0
  685. package/dist/vector/PhaserVectorDrawContext.js +97 -0
  686. package/dist/vector/PhaserVectorDrawContext.js.map +1 -0
  687. package/dist/vector/index.d.ts +2 -0
  688. package/dist/vector/index.d.ts.map +1 -0
  689. package/package.json +96 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxCore = require("@number10/jsx-core");
4
+ const phaserGuards = require("./utils/phaser-guards.cjs");
5
+ class RenderContext {
6
+ // @migration(audit:surface-access) Phase 7 — textureScene still needed for SVG/texture loading
7
+ constructor(scene) {
8
+ this.scene = scene;
9
+ this.textureScene = scene;
10
+ }
11
+ scene;
12
+ // Hook context stack (replaces global CURRENT)
13
+ currentCtx = null;
14
+ // Texture management per mount
15
+ textureScene = null;
16
+ textures = /* @__PURE__ */ new Map();
17
+ // Track if context is shutting down
18
+ isShuttingDown = false;
19
+ /**
20
+ * Check if context is shutting down
21
+ */
22
+ isShutdown() {
23
+ return this.isShuttingDown;
24
+ }
25
+ /**
26
+ * Mark context as shutting down
27
+ */
28
+ shutdown() {
29
+ this.isShuttingDown = true;
30
+ }
31
+ /**
32
+ * Get current hook context
33
+ */
34
+ getCurrent() {
35
+ return this.currentCtx;
36
+ }
37
+ /**
38
+ * Set current hook context
39
+ */
40
+ setCurrent(ctx) {
41
+ this.currentCtx = ctx;
42
+ }
43
+ /**
44
+ * Get texture scene.
45
+ * @migration(audit:surface-access) Phase 7 — Capability "textures", renderer-native for now
46
+ */
47
+ getTextureScene() {
48
+ return this.textureScene;
49
+ }
50
+ /**
51
+ * Get textures map
52
+ */
53
+ getTextures() {
54
+ return this.textures;
55
+ }
56
+ /**
57
+ * Defer a layout callback to next frame.
58
+ * Delegates to Core's DeferredLayoutQueue with a shutdown guard.
59
+ */
60
+ deferLayout(callback) {
61
+ if (this.isShuttingDown) return;
62
+ jsxCore.DeferredLayoutQueue.defer(callback);
63
+ }
64
+ }
65
+ const contextStore = /* @__PURE__ */ new WeakMap();
66
+ const shutdownScenes = /* @__PURE__ */ new WeakSet();
67
+ function getRenderContext(parentOrScene) {
68
+ const scene = phaserGuards.isPhaserScene(parentOrScene) ? parentOrScene : parentOrScene.scene;
69
+ if (!scene || !scene.sys || !scene.sys.settings.active) {
70
+ throw new Error("getRenderContext: Invalid scene or inactive scene");
71
+ }
72
+ const containerKey = phaserGuards.isPhaserContainer(parentOrScene) ? `__rc_${parentOrScene.id ?? "container"}__` : "__rc_scene__";
73
+ let sceneContexts = contextStore.get(scene);
74
+ if (!sceneContexts) {
75
+ sceneContexts = /* @__PURE__ */ new Map();
76
+ contextStore.set(scene, sceneContexts);
77
+ }
78
+ let context = sceneContexts.get(containerKey);
79
+ if (!context) {
80
+ context = new RenderContext(scene);
81
+ sceneContexts.set(containerKey, context);
82
+ if (!shutdownScenes.has(scene)) {
83
+ shutdownScenes.add(scene);
84
+ scene.events.once("shutdown", () => {
85
+ const contexts = contextStore.get(scene);
86
+ if (contexts) {
87
+ for (const [, ctx] of contexts) {
88
+ ctx.shutdown();
89
+ }
90
+ contextStore.delete(scene);
91
+ }
92
+ });
93
+ }
94
+ }
95
+ return context;
96
+ }
97
+ function getContextFromParent(parent) {
98
+ if (!parent) {
99
+ throw new Error("getContextFromParent: Parent is null or undefined");
100
+ }
101
+ return getRenderContext(parent);
102
+ }
103
+ exports.RenderContext = RenderContext;
104
+ exports.getContextFromParent = getContextFromParent;
105
+ exports.getRenderContext = getRenderContext;
106
+ //# sourceMappingURL=render-context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-context.cjs","sources":["../src/render-context.ts"],"sourcesContent":["/**\n * Render context - isolates global state per mount point.\n * Storage uses a module-level Map instead of Phaser's scene.data.\n * Deferred layout and layout batching delegate to Core's static queues.\n *\n * @migration(audit:surface-access) Phase 7 — scene.data → Map ✅, deferLayout → DeferredLayoutQueue ✅\n */\nimport { DeferredLayoutQueue } from '@number10/jsx-core'\nimport type * as Phaser from 'phaser'\nimport type { Ctx } from './hooks'\nimport { isPhaserContainer, isPhaserScene } from './utils/phaser-guards'\n\n/**\n * Render context - encapsulates all previously global state.\n * Each mount point gets its own isolated context.\n *\n * Layout batching is handled by Core's LayoutBatchQueue (static, global).\n * Deferred layout callbacks are handled by Core's DeferredLayoutQueue.\n * RenderContext only adds a shutdown guard on top.\n */\nexport class RenderContext {\n // Hook context stack (replaces global CURRENT)\n private currentCtx: Ctx | null = null\n\n // Texture management per mount\n private textureScene: Phaser.Scene | null = null\n private textures = new Map<\n string,\n { refCount: number; promise: Promise<void> | null; loaded: boolean }\n >()\n\n // Track if context is shutting down\n private isShuttingDown = false\n\n // @migration(audit:surface-access) Phase 7 — textureScene still needed for SVG/texture loading\n constructor(public scene: Phaser.Scene) {\n this.textureScene = scene\n }\n\n /**\n * Check if context is shutting down\n */\n isShutdown(): boolean {\n return this.isShuttingDown\n }\n\n /**\n * Mark context as shutting down\n */\n shutdown(): void {\n this.isShuttingDown = true\n }\n\n /**\n * Get current hook context\n */\n getCurrent(): Ctx | null {\n return this.currentCtx\n }\n\n /**\n * Set current hook context\n */\n setCurrent(ctx: Ctx | null): void {\n this.currentCtx = ctx\n }\n\n /**\n * Get texture scene.\n * @migration(audit:surface-access) Phase 7 — Capability \"textures\", renderer-native for now\n */\n getTextureScene(): Phaser.Scene | null {\n return this.textureScene\n }\n\n /**\n * Get textures map\n */\n getTextures(): Map<string, { refCount: number; promise: Promise<void> | null; loaded: boolean }> {\n return this.textures\n }\n\n /**\n * Defer a layout callback to next frame.\n * Delegates to Core's DeferredLayoutQueue with a shutdown guard.\n */\n deferLayout(callback: () => void): void {\n if (this.isShuttingDown) return\n DeferredLayoutQueue.defer(callback)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Internal context storage (replaces scene.data)\n// ---------------------------------------------------------------------------\n\n/**\n * Per-scene context store — isolates RenderContexts between different Phaser.Game instances.\n *\n * Key structure: WeakMap<Scene, Map<containerKey, RenderContext>>\n * This prevents container ID collisions across different Game instances because\n * each Game creates its own Scene objects, and WeakMap keys are based on object\n * identity (not string keys that can collide).\n */\nconst contextStore = new WeakMap<Phaser.Scene, Map<string, RenderContext>>()\n\n/** Track which scenes have shutdown listeners registered */\nconst shutdownScenes = new WeakSet<Phaser.Scene>()\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Get or create RenderContext for a scene or container.\n * Uses an internal Map for storage instead of scene.data.\n * @param parentOrScene - Scene or Container to get context for\n * @returns RenderContext instance\n */\nexport function getRenderContext(\n parentOrScene: Phaser.Scene | Phaser.GameObjects.Container\n): RenderContext {\n const scene = isPhaserScene(parentOrScene) ? parentOrScene : parentOrScene.scene\n\n if (!scene || !scene.sys || !scene.sys.settings.active) {\n throw new Error('getRenderContext: Invalid scene or inactive scene')\n }\n\n // Build unique key: scene identity + container identity for multi-mount isolation\n const containerKey = isPhaserContainer(parentOrScene)\n ? `__rc_${(parentOrScene as unknown as { id?: number }).id ?? 'container'}__`\n : '__rc_scene__'\n\n // Get or create the per-scene context map (WeakMap ensures isolation across Game instances)\n let sceneContexts = contextStore.get(scene)\n if (!sceneContexts) {\n sceneContexts = new Map()\n contextStore.set(scene, sceneContexts)\n }\n\n let context = sceneContexts.get(containerKey)\n\n if (!context) {\n context = new RenderContext(scene)\n sceneContexts.set(containerKey, context)\n\n // Register shutdown cleanup once per scene\n if (!shutdownScenes.has(scene)) {\n shutdownScenes.add(scene)\n scene.events.once('shutdown', () => {\n // Clean up all contexts associated with this scene\n const contexts = contextStore.get(scene)\n if (contexts) {\n for (const [, ctx] of contexts) {\n ctx.shutdown()\n }\n contextStore.delete(scene)\n }\n })\n }\n }\n\n return context\n}\n\n/**\n * Get RenderContext from a parent (used internally by hooks)\n * @param parent - Parent scene or container\n * @returns RenderContext instance\n */\nexport function getContextFromParent(\n parent: Phaser.Scene | Phaser.GameObjects.Container\n): RenderContext {\n if (!parent) {\n throw new Error('getContextFromParent: Parent is null or undefined')\n }\n return getRenderContext(parent)\n}\n"],"names":["DeferredLayoutQueue","isPhaserScene","isPhaserContainer"],"mappings":";;;;AAoBO,MAAM,cAAc;AAAA;AAAA,EAezB,YAAmB,OAAqB;AAArB,SAAA,QAAA;AACjB,SAAK,eAAe;AAAA,EACtB;AAAA,EAFmB;AAAA;AAAA,EAbX,aAAyB;AAAA;AAAA,EAGzB,eAAoC;AAAA,EACpC,+BAAe,IAAA;AAAA;AAAA,EAMf,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAUzB,aAAsB;AACpB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiB;AACf,SAAK,iBAAiB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAyB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAuB;AAChC,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAuC;AACrC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,cAAiG;AAC/F,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,UAA4B;AACtC,QAAI,KAAK,eAAgB;AACzBA,YAAAA,oBAAoB,MAAM,QAAQ;AAAA,EACpC;AACF;AAcA,MAAM,mCAAmB,QAAA;AAGzB,MAAM,qCAAqB,QAAA;AAYpB,SAAS,iBACd,eACe;AACf,QAAM,QAAQC,aAAAA,cAAc,aAAa,IAAI,gBAAgB,cAAc;AAE3E,MAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,SAAS,QAAQ;AACtD,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAGA,QAAM,eAAeC,aAAAA,kBAAkB,aAAa,IAChD,QAAS,cAA6C,MAAM,WAAW,OACvE;AAGJ,MAAI,gBAAgB,aAAa,IAAI,KAAK;AAC1C,MAAI,CAAC,eAAe;AAClB,wCAAoB,IAAA;AACpB,iBAAa,IAAI,OAAO,aAAa;AAAA,EACvC;AAEA,MAAI,UAAU,cAAc,IAAI,YAAY;AAE5C,MAAI,CAAC,SAAS;AACZ,cAAU,IAAI,cAAc,KAAK;AACjC,kBAAc,IAAI,cAAc,OAAO;AAGvC,QAAI,CAAC,eAAe,IAAI,KAAK,GAAG;AAC9B,qBAAe,IAAI,KAAK;AACxB,YAAM,OAAO,KAAK,YAAY,MAAM;AAElC,cAAM,WAAW,aAAa,IAAI,KAAK;AACvC,YAAI,UAAU;AACZ,qBAAW,CAAA,EAAG,GAAG,KAAK,UAAU;AAC9B,gBAAI,SAAA;AAAA,UACN;AACA,uBAAa,OAAO,KAAK;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAOO,SAAS,qBACd,QACe;AACf,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AACA,SAAO,iBAAiB,MAAM;AAChC;;;;"}
@@ -0,0 +1,66 @@
1
+ import { Ctx } from './hooks';
2
+ import type * as Phaser from 'phaser';
3
+ /**
4
+ * Render context - encapsulates all previously global state.
5
+ * Each mount point gets its own isolated context.
6
+ *
7
+ * Layout batching is handled by Core's LayoutBatchQueue (static, global).
8
+ * Deferred layout callbacks are handled by Core's DeferredLayoutQueue.
9
+ * RenderContext only adds a shutdown guard on top.
10
+ */
11
+ export declare class RenderContext {
12
+ scene: Phaser.Scene;
13
+ private currentCtx;
14
+ private textureScene;
15
+ private textures;
16
+ private isShuttingDown;
17
+ constructor(scene: Phaser.Scene);
18
+ /**
19
+ * Check if context is shutting down
20
+ */
21
+ isShutdown(): boolean;
22
+ /**
23
+ * Mark context as shutting down
24
+ */
25
+ shutdown(): void;
26
+ /**
27
+ * Get current hook context
28
+ */
29
+ getCurrent(): Ctx | null;
30
+ /**
31
+ * Set current hook context
32
+ */
33
+ setCurrent(ctx: Ctx | null): void;
34
+ /**
35
+ * Get texture scene.
36
+ * @migration(audit:surface-access) Phase 7 — Capability "textures", renderer-native for now
37
+ */
38
+ getTextureScene(): Phaser.Scene | null;
39
+ /**
40
+ * Get textures map
41
+ */
42
+ getTextures(): Map<string, {
43
+ refCount: number;
44
+ promise: Promise<void> | null;
45
+ loaded: boolean;
46
+ }>;
47
+ /**
48
+ * Defer a layout callback to next frame.
49
+ * Delegates to Core's DeferredLayoutQueue with a shutdown guard.
50
+ */
51
+ deferLayout(callback: () => void): void;
52
+ }
53
+ /**
54
+ * Get or create RenderContext for a scene or container.
55
+ * Uses an internal Map for storage instead of scene.data.
56
+ * @param parentOrScene - Scene or Container to get context for
57
+ * @returns RenderContext instance
58
+ */
59
+ export declare function getRenderContext(parentOrScene: Phaser.Scene | Phaser.GameObjects.Container): RenderContext;
60
+ /**
61
+ * Get RenderContext from a parent (used internally by hooks)
62
+ * @param parent - Parent scene or container
63
+ * @returns RenderContext instance
64
+ */
65
+ export declare function getContextFromParent(parent: Phaser.Scene | Phaser.GameObjects.Container): RenderContext;
66
+ //# sourceMappingURL=render-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../src/render-context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAGlC;;;;;;;GAOG;AACH,qBAAa,aAAa;IAeL,KAAK,EAAE,MAAM,CAAC,KAAK;IAbtC,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAGb;IAGH,OAAO,CAAC,cAAc,CAAQ;gBAGX,KAAK,EAAE,MAAM,CAAC,KAAK;IAItC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,UAAU,IAAI,GAAG,GAAG,IAAI;IAIxB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAIjC;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI;IAItC;;OAEG;IACH,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAIhG;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAIxC;AAuBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,GACzD,aAAa,CA0Cf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,GAClD,aAAa,CAKf"}
@@ -0,0 +1,106 @@
1
+ import { DeferredLayoutQueue } from "@number10/jsx-core";
2
+ import { isPhaserScene, isPhaserContainer } from "./utils/phaser-guards.js";
3
+ class RenderContext {
4
+ // @migration(audit:surface-access) Phase 7 — textureScene still needed for SVG/texture loading
5
+ constructor(scene) {
6
+ this.scene = scene;
7
+ this.textureScene = scene;
8
+ }
9
+ scene;
10
+ // Hook context stack (replaces global CURRENT)
11
+ currentCtx = null;
12
+ // Texture management per mount
13
+ textureScene = null;
14
+ textures = /* @__PURE__ */ new Map();
15
+ // Track if context is shutting down
16
+ isShuttingDown = false;
17
+ /**
18
+ * Check if context is shutting down
19
+ */
20
+ isShutdown() {
21
+ return this.isShuttingDown;
22
+ }
23
+ /**
24
+ * Mark context as shutting down
25
+ */
26
+ shutdown() {
27
+ this.isShuttingDown = true;
28
+ }
29
+ /**
30
+ * Get current hook context
31
+ */
32
+ getCurrent() {
33
+ return this.currentCtx;
34
+ }
35
+ /**
36
+ * Set current hook context
37
+ */
38
+ setCurrent(ctx) {
39
+ this.currentCtx = ctx;
40
+ }
41
+ /**
42
+ * Get texture scene.
43
+ * @migration(audit:surface-access) Phase 7 — Capability "textures", renderer-native for now
44
+ */
45
+ getTextureScene() {
46
+ return this.textureScene;
47
+ }
48
+ /**
49
+ * Get textures map
50
+ */
51
+ getTextures() {
52
+ return this.textures;
53
+ }
54
+ /**
55
+ * Defer a layout callback to next frame.
56
+ * Delegates to Core's DeferredLayoutQueue with a shutdown guard.
57
+ */
58
+ deferLayout(callback) {
59
+ if (this.isShuttingDown) return;
60
+ DeferredLayoutQueue.defer(callback);
61
+ }
62
+ }
63
+ const contextStore = /* @__PURE__ */ new WeakMap();
64
+ const shutdownScenes = /* @__PURE__ */ new WeakSet();
65
+ function getRenderContext(parentOrScene) {
66
+ const scene = isPhaserScene(parentOrScene) ? parentOrScene : parentOrScene.scene;
67
+ if (!scene || !scene.sys || !scene.sys.settings.active) {
68
+ throw new Error("getRenderContext: Invalid scene or inactive scene");
69
+ }
70
+ const containerKey = isPhaserContainer(parentOrScene) ? `__rc_${parentOrScene.id ?? "container"}__` : "__rc_scene__";
71
+ let sceneContexts = contextStore.get(scene);
72
+ if (!sceneContexts) {
73
+ sceneContexts = /* @__PURE__ */ new Map();
74
+ contextStore.set(scene, sceneContexts);
75
+ }
76
+ let context = sceneContexts.get(containerKey);
77
+ if (!context) {
78
+ context = new RenderContext(scene);
79
+ sceneContexts.set(containerKey, context);
80
+ if (!shutdownScenes.has(scene)) {
81
+ shutdownScenes.add(scene);
82
+ scene.events.once("shutdown", () => {
83
+ const contexts = contextStore.get(scene);
84
+ if (contexts) {
85
+ for (const [, ctx] of contexts) {
86
+ ctx.shutdown();
87
+ }
88
+ contextStore.delete(scene);
89
+ }
90
+ });
91
+ }
92
+ }
93
+ return context;
94
+ }
95
+ function getContextFromParent(parent) {
96
+ if (!parent) {
97
+ throw new Error("getContextFromParent: Parent is null or undefined");
98
+ }
99
+ return getRenderContext(parent);
100
+ }
101
+ export {
102
+ RenderContext,
103
+ getContextFromParent,
104
+ getRenderContext
105
+ };
106
+ //# sourceMappingURL=render-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-context.js","sources":["../src/render-context.ts"],"sourcesContent":["/**\n * Render context - isolates global state per mount point.\n * Storage uses a module-level Map instead of Phaser's scene.data.\n * Deferred layout and layout batching delegate to Core's static queues.\n *\n * @migration(audit:surface-access) Phase 7 — scene.data → Map ✅, deferLayout → DeferredLayoutQueue ✅\n */\nimport { DeferredLayoutQueue } from '@number10/jsx-core'\nimport type * as Phaser from 'phaser'\nimport type { Ctx } from './hooks'\nimport { isPhaserContainer, isPhaserScene } from './utils/phaser-guards'\n\n/**\n * Render context - encapsulates all previously global state.\n * Each mount point gets its own isolated context.\n *\n * Layout batching is handled by Core's LayoutBatchQueue (static, global).\n * Deferred layout callbacks are handled by Core's DeferredLayoutQueue.\n * RenderContext only adds a shutdown guard on top.\n */\nexport class RenderContext {\n // Hook context stack (replaces global CURRENT)\n private currentCtx: Ctx | null = null\n\n // Texture management per mount\n private textureScene: Phaser.Scene | null = null\n private textures = new Map<\n string,\n { refCount: number; promise: Promise<void> | null; loaded: boolean }\n >()\n\n // Track if context is shutting down\n private isShuttingDown = false\n\n // @migration(audit:surface-access) Phase 7 — textureScene still needed for SVG/texture loading\n constructor(public scene: Phaser.Scene) {\n this.textureScene = scene\n }\n\n /**\n * Check if context is shutting down\n */\n isShutdown(): boolean {\n return this.isShuttingDown\n }\n\n /**\n * Mark context as shutting down\n */\n shutdown(): void {\n this.isShuttingDown = true\n }\n\n /**\n * Get current hook context\n */\n getCurrent(): Ctx | null {\n return this.currentCtx\n }\n\n /**\n * Set current hook context\n */\n setCurrent(ctx: Ctx | null): void {\n this.currentCtx = ctx\n }\n\n /**\n * Get texture scene.\n * @migration(audit:surface-access) Phase 7 — Capability \"textures\", renderer-native for now\n */\n getTextureScene(): Phaser.Scene | null {\n return this.textureScene\n }\n\n /**\n * Get textures map\n */\n getTextures(): Map<string, { refCount: number; promise: Promise<void> | null; loaded: boolean }> {\n return this.textures\n }\n\n /**\n * Defer a layout callback to next frame.\n * Delegates to Core's DeferredLayoutQueue with a shutdown guard.\n */\n deferLayout(callback: () => void): void {\n if (this.isShuttingDown) return\n DeferredLayoutQueue.defer(callback)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Internal context storage (replaces scene.data)\n// ---------------------------------------------------------------------------\n\n/**\n * Per-scene context store — isolates RenderContexts between different Phaser.Game instances.\n *\n * Key structure: WeakMap<Scene, Map<containerKey, RenderContext>>\n * This prevents container ID collisions across different Game instances because\n * each Game creates its own Scene objects, and WeakMap keys are based on object\n * identity (not string keys that can collide).\n */\nconst contextStore = new WeakMap<Phaser.Scene, Map<string, RenderContext>>()\n\n/** Track which scenes have shutdown listeners registered */\nconst shutdownScenes = new WeakSet<Phaser.Scene>()\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Get or create RenderContext for a scene or container.\n * Uses an internal Map for storage instead of scene.data.\n * @param parentOrScene - Scene or Container to get context for\n * @returns RenderContext instance\n */\nexport function getRenderContext(\n parentOrScene: Phaser.Scene | Phaser.GameObjects.Container\n): RenderContext {\n const scene = isPhaserScene(parentOrScene) ? parentOrScene : parentOrScene.scene\n\n if (!scene || !scene.sys || !scene.sys.settings.active) {\n throw new Error('getRenderContext: Invalid scene or inactive scene')\n }\n\n // Build unique key: scene identity + container identity for multi-mount isolation\n const containerKey = isPhaserContainer(parentOrScene)\n ? `__rc_${(parentOrScene as unknown as { id?: number }).id ?? 'container'}__`\n : '__rc_scene__'\n\n // Get or create the per-scene context map (WeakMap ensures isolation across Game instances)\n let sceneContexts = contextStore.get(scene)\n if (!sceneContexts) {\n sceneContexts = new Map()\n contextStore.set(scene, sceneContexts)\n }\n\n let context = sceneContexts.get(containerKey)\n\n if (!context) {\n context = new RenderContext(scene)\n sceneContexts.set(containerKey, context)\n\n // Register shutdown cleanup once per scene\n if (!shutdownScenes.has(scene)) {\n shutdownScenes.add(scene)\n scene.events.once('shutdown', () => {\n // Clean up all contexts associated with this scene\n const contexts = contextStore.get(scene)\n if (contexts) {\n for (const [, ctx] of contexts) {\n ctx.shutdown()\n }\n contextStore.delete(scene)\n }\n })\n }\n }\n\n return context\n}\n\n/**\n * Get RenderContext from a parent (used internally by hooks)\n * @param parent - Parent scene or container\n * @returns RenderContext instance\n */\nexport function getContextFromParent(\n parent: Phaser.Scene | Phaser.GameObjects.Container\n): RenderContext {\n if (!parent) {\n throw new Error('getContextFromParent: Parent is null or undefined')\n }\n return getRenderContext(parent)\n}\n"],"names":[],"mappings":";;AAoBO,MAAM,cAAc;AAAA;AAAA,EAezB,YAAmB,OAAqB;AAArB,SAAA,QAAA;AACjB,SAAK,eAAe;AAAA,EACtB;AAAA,EAFmB;AAAA;AAAA,EAbX,aAAyB;AAAA;AAAA,EAGzB,eAAoC;AAAA,EACpC,+BAAe,IAAA;AAAA;AAAA,EAMf,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAUzB,aAAsB;AACpB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiB;AACf,SAAK,iBAAiB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAyB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAuB;AAChC,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAuC;AACrC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,cAAiG;AAC/F,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,UAA4B;AACtC,QAAI,KAAK,eAAgB;AACzB,wBAAoB,MAAM,QAAQ;AAAA,EACpC;AACF;AAcA,MAAM,mCAAmB,QAAA;AAGzB,MAAM,qCAAqB,QAAA;AAYpB,SAAS,iBACd,eACe;AACf,QAAM,QAAQ,cAAc,aAAa,IAAI,gBAAgB,cAAc;AAE3E,MAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,SAAS,QAAQ;AACtD,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAGA,QAAM,eAAe,kBAAkB,aAAa,IAChD,QAAS,cAA6C,MAAM,WAAW,OACvE;AAGJ,MAAI,gBAAgB,aAAa,IAAI,KAAK;AAC1C,MAAI,CAAC,eAAe;AAClB,wCAAoB,IAAA;AACpB,iBAAa,IAAI,OAAO,aAAa;AAAA,EACvC;AAEA,MAAI,UAAU,cAAc,IAAI,YAAY;AAE5C,MAAI,CAAC,SAAS;AACZ,cAAU,IAAI,cAAc,KAAK;AACjC,kBAAc,IAAI,cAAc,OAAO;AAGvC,QAAI,CAAC,eAAe,IAAI,KAAK,GAAG;AAC9B,qBAAe,IAAI,KAAK;AACxB,YAAM,OAAO,KAAK,YAAY,MAAM;AAElC,cAAM,WAAW,aAAa,IAAI,KAAK;AACvC,YAAI,UAAU;AACZ,qBAAW,CAAA,EAAG,GAAG,KAAK,UAAU;AAC9B,gBAAI,SAAA;AAAA,UACN;AACA,uBAAa,OAAO,KAAK;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAOO,SAAS,qBACd,QACe;AACf,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AACA,SAAO,iBAAiB,MAAM;AAChC;"}
@@ -0,0 +1,285 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Phaser = require("phaser");
4
+ function _interopNamespaceDefault(e) {
5
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
6
+ if (e) {
7
+ for (const k in e) {
8
+ if (k !== "default") {
9
+ const d = Object.getOwnPropertyDescriptor(e, k);
10
+ Object.defineProperty(n, k, d.get ? d : {
11
+ enumerable: true,
12
+ get: () => e[k]
13
+ });
14
+ }
15
+ }
16
+ }
17
+ n.default = e;
18
+ return Object.freeze(n);
19
+ }
20
+ const Phaser__namespace = /* @__PURE__ */ _interopNamespaceDefault(Phaser);
21
+ const DEFAULT_LOGO_KEY = "phaser-jsx-logo";
22
+ const DEFAULT_BACKGROUND = {
23
+ type: "grid",
24
+ animation: "lemniscate",
25
+ opacity: 0.15,
26
+ color: 4890367
27
+ };
28
+ let sceneBackgroundTextureId = 0;
29
+ function colorToCss(color) {
30
+ return `#${color.toString(16).padStart(6, "0")}`;
31
+ }
32
+ function createCanvasTexture(scene, width, height, draw) {
33
+ const textureKey = `__phaserjsx_scene_bg_${sceneBackgroundTextureId++}`;
34
+ const textureWidth = Math.max(1, Math.ceil(width));
35
+ const textureHeight = Math.max(1, Math.ceil(height));
36
+ const texture = scene.textures.createCanvas(textureKey, textureWidth, textureHeight);
37
+ if (!texture) {
38
+ throw new Error("Unable to create scene background texture");
39
+ }
40
+ const canvas = texture.getSourceImage();
41
+ const ctx = canvas.getContext("2d");
42
+ if (!ctx) {
43
+ throw new Error("Unable to create scene background canvas texture");
44
+ }
45
+ ctx.clearRect(0, 0, textureWidth, textureHeight);
46
+ draw(ctx, textureWidth, textureHeight);
47
+ texture.refresh();
48
+ return textureKey;
49
+ }
50
+ function removeTexture(scene, textureKey) {
51
+ if (textureKey && scene.textures.exists(textureKey)) {
52
+ scene.textures.remove(textureKey);
53
+ }
54
+ }
55
+ function addSceneBackground(scene, config = DEFAULT_BACKGROUND) {
56
+ const bgConfig = config ?? DEFAULT_BACKGROUND;
57
+ if (bgConfig.type === "none") return null;
58
+ let background;
59
+ let backgroundTween;
60
+ const particleTweens = [];
61
+ const textureKeys = /* @__PURE__ */ new Set();
62
+ let resizeFn;
63
+ let destroyed = false;
64
+ const createGridBackground = () => {
65
+ const gridSize = 40;
66
+ const color = bgConfig.color ?? 4890367;
67
+ const opacity = bgConfig.opacity ?? 0.15;
68
+ const textureKey = createCanvasTexture(scene, gridSize, gridSize, (ctx, width, height) => {
69
+ ctx.globalAlpha = opacity;
70
+ ctx.strokeStyle = colorToCss(color);
71
+ ctx.lineWidth = 1;
72
+ ctx.beginPath();
73
+ ctx.moveTo(0.5, 0);
74
+ ctx.lineTo(0.5, height);
75
+ ctx.moveTo(0, 0.5);
76
+ ctx.lineTo(width, 0.5);
77
+ ctx.stroke();
78
+ });
79
+ textureKeys.add(textureKey);
80
+ const tile = scene.add.tileSprite(0, 0, scene.scale.width, scene.scale.height, textureKey);
81
+ tile.setOrigin(0, 0);
82
+ const moveGrid = (offsetX, offsetY) => {
83
+ tile.tilePositionX = -offsetX;
84
+ tile.tilePositionY = -offsetY;
85
+ };
86
+ tile.__redrawFn = moveGrid;
87
+ background = tile;
88
+ resizeFn = (width, height) => {
89
+ tile.setSize(width, height);
90
+ };
91
+ };
92
+ const createLogoBackground = () => {
93
+ const container = scene.add.container(scene.scale.width / 2, scene.scale.height / 2);
94
+ const opacity = bgConfig.opacity ?? 0.1;
95
+ const logoKey = bgConfig.logoKey ?? DEFAULT_LOGO_KEY;
96
+ const logo = scene.add.image(0, 0, logoKey);
97
+ logo.setAlpha(opacity);
98
+ logo.setScale(0.5);
99
+ container.add(logo);
100
+ background = container;
101
+ resizeFn = (width, height) => {
102
+ container.setPosition(width / 2, height / 2);
103
+ };
104
+ };
105
+ const createGradientBackground = () => {
106
+ const color1 = bgConfig.color ?? 4890367;
107
+ const color2 = bgConfig.colorSecondary ?? 7031551;
108
+ const opacity = bgConfig.opacity ?? 0.2;
109
+ const createGradientTexture = (width, height) => createCanvasTexture(scene, width, height, (ctx, textureWidth, textureHeight) => {
110
+ const gradient = ctx.createLinearGradient(0, 0, 0, textureHeight);
111
+ gradient.addColorStop(0, colorToCss(color1));
112
+ gradient.addColorStop(1, colorToCss(color2));
113
+ ctx.globalAlpha = opacity;
114
+ ctx.fillStyle = gradient;
115
+ ctx.fillRect(0, 0, textureWidth, textureHeight);
116
+ });
117
+ let textureKey = createGradientTexture(scene.scale.width, scene.scale.height);
118
+ textureKeys.add(textureKey);
119
+ const image = scene.add.image(0, 0, textureKey);
120
+ image.setOrigin(0, 0);
121
+ resizeFn = (width, height) => {
122
+ const previousTextureKey = textureKey;
123
+ textureKey = createGradientTexture(width, height);
124
+ textureKeys.add(textureKey);
125
+ image.setTexture(textureKey);
126
+ image.setDisplaySize(width, height);
127
+ textureKeys.delete(previousTextureKey);
128
+ removeTexture(scene, previousTextureKey);
129
+ };
130
+ background = image;
131
+ };
132
+ const createParticlesBackground = () => {
133
+ const container = scene.add.container(0, 0);
134
+ const particleCount = 20;
135
+ const color = bgConfig.color ?? 4890367;
136
+ const opacity = bgConfig.opacity ?? 0.1;
137
+ const particles = [];
138
+ for (let i = 0; i < particleCount; i += 1) {
139
+ const size = Phaser__namespace.Math.Between(2, 6);
140
+ const x = Phaser__namespace.Math.Between(0, scene.scale.width);
141
+ const y = Phaser__namespace.Math.Between(0, scene.scale.height);
142
+ const particle = scene.add.circle(x, y, size, color, opacity);
143
+ container.add(particle);
144
+ particles.push(particle);
145
+ particleTweens.push(
146
+ scene.tweens.add({
147
+ targets: particle,
148
+ y: particle.y + Phaser__namespace.Math.Between(-50, 50),
149
+ x: particle.x + Phaser__namespace.Math.Between(-50, 50),
150
+ alpha: opacity * 1.5,
151
+ duration: Phaser__namespace.Math.Between(2e3, 4e3),
152
+ yoyo: true,
153
+ repeat: -1,
154
+ ease: "Sine.easeInOut"
155
+ })
156
+ );
157
+ }
158
+ background = container;
159
+ resizeFn = (width, height) => {
160
+ for (const particle of particles) {
161
+ particle.setPosition(Phaser__namespace.Math.Between(0, width), Phaser__namespace.Math.Between(0, height));
162
+ }
163
+ };
164
+ };
165
+ switch (bgConfig.type) {
166
+ case "grid":
167
+ createGridBackground();
168
+ break;
169
+ case "logo":
170
+ createLogoBackground();
171
+ break;
172
+ case "gradient":
173
+ createGradientBackground();
174
+ break;
175
+ case "particles":
176
+ createParticlesBackground();
177
+ break;
178
+ }
179
+ if (!background) return null;
180
+ if (bgConfig.animation && bgConfig.animation !== "static") {
181
+ backgroundTween = applyAnimation(scene, background, bgConfig.animation);
182
+ }
183
+ const onResize = () => {
184
+ if (resizeFn) resizeFn(scene.scale.width, scene.scale.height);
185
+ };
186
+ const cleanup = () => {
187
+ if (destroyed) return;
188
+ destroyed = true;
189
+ backgroundTween?.stop();
190
+ for (const tween of particleTweens) {
191
+ tween.stop();
192
+ }
193
+ background?.destroy();
194
+ background = void 0;
195
+ for (const textureKey of textureKeys) {
196
+ removeTexture(scene, textureKey);
197
+ }
198
+ textureKeys.clear();
199
+ scene.scale.off(Phaser__namespace.Scale.Events.RESIZE, onResize);
200
+ scene.events.off(Phaser__namespace.Scenes.Events.SHUTDOWN, cleanup);
201
+ scene.events.off(Phaser__namespace.Scenes.Events.DESTROY, cleanup);
202
+ };
203
+ scene.scale.on(Phaser__namespace.Scale.Events.RESIZE, onResize);
204
+ scene.events.once(Phaser__namespace.Scenes.Events.SHUTDOWN, cleanup);
205
+ scene.events.once(Phaser__namespace.Scenes.Events.DESTROY, cleanup);
206
+ return {
207
+ background,
208
+ destroy: cleanup,
209
+ resize: (width, height) => {
210
+ if (resizeFn) resizeFn(width, height);
211
+ }
212
+ };
213
+ }
214
+ function applyAnimation(scene, target, animation) {
215
+ const redrawFn = target.__redrawFn;
216
+ switch (animation) {
217
+ case "lemniscate":
218
+ return redrawFn ? animateLemniscate(scene, redrawFn) : animatePulse(scene, target);
219
+ case "wave":
220
+ return redrawFn ? animateWave(scene, redrawFn) : animatePulse(scene, target);
221
+ case "pulse":
222
+ return animatePulse(scene, target);
223
+ case "rotate":
224
+ return animateRotate(scene, target);
225
+ case "static":
226
+ default:
227
+ return void 0;
228
+ }
229
+ }
230
+ function animateLemniscate(scene, drawFn) {
231
+ const amplitude = 30;
232
+ const duration = 8e3;
233
+ return scene.tweens.addCounter({
234
+ from: 0,
235
+ to: Math.PI * 2,
236
+ duration,
237
+ repeat: -1,
238
+ onUpdate: (tween) => {
239
+ const t = tween.getValue();
240
+ if (t !== null) {
241
+ const offsetX = amplitude * Math.cos(t);
242
+ const offsetY = amplitude * Math.sin(2 * t) / 2;
243
+ drawFn(offsetX, offsetY);
244
+ }
245
+ }
246
+ });
247
+ }
248
+ function animateWave(scene, drawFn) {
249
+ return scene.tweens.addCounter({
250
+ from: 0,
251
+ to: 40,
252
+ duration: 3e3,
253
+ yoyo: true,
254
+ repeat: -1,
255
+ onUpdate: (tween) => {
256
+ const offset = tween.getValue();
257
+ if (offset !== null) {
258
+ drawFn(offset, 0);
259
+ }
260
+ }
261
+ });
262
+ }
263
+ function animatePulse(scene, target) {
264
+ return scene.tweens.add({
265
+ targets: target,
266
+ scaleX: 1.1,
267
+ scaleY: 1.1,
268
+ duration: 2e3,
269
+ yoyo: true,
270
+ repeat: -1,
271
+ ease: "Sine.easeInOut"
272
+ });
273
+ }
274
+ function animateRotate(scene, target) {
275
+ return scene.tweens.add({
276
+ targets: target,
277
+ angle: 360,
278
+ duration: 2e4,
279
+ repeat: -1,
280
+ ease: "Linear"
281
+ });
282
+ }
283
+ exports.DEFAULT_BACKGROUND = DEFAULT_BACKGROUND;
284
+ exports.addSceneBackground = addSceneBackground;
285
+ //# sourceMappingURL=scene-backgrounds.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-backgrounds.cjs","sources":["../src/scene-backgrounds.ts"],"sourcesContent":["import * as Phaser from 'phaser'\n\n/**\n * Built-in decorative background variants that can be attached to a Phaser scene.\n */\nexport type SceneBackgroundType = 'grid' | 'logo' | 'gradient' | 'particles' | 'none'\n\n/**\n * Optional animation applied to a scene background after it is created.\n */\nexport type BackgroundAnimation = 'lemniscate' | 'wave' | 'pulse' | 'rotate' | 'static'\n\n/**\n * Configuration for {@link addSceneBackground}.\n */\nexport interface BackgroundConfig {\n /** Background variant to create. Use `'none'` to disable background creation. */\n type: SceneBackgroundType\n\n /** Animation preset applied to the created background. Defaults depend on caller config. */\n animation?: BackgroundAnimation\n\n /** Background opacity, usually between `0` and `1`. */\n opacity?: number\n\n /** Primary color as a Phaser numeric color, for example `0x4a9eff`. */\n color?: number\n\n /** Secondary color used by gradient backgrounds. */\n colorSecondary?: number\n\n /** Texture key used by the logo background. Defaults to the built-in logo key. */\n logoKey?: string\n}\n\n/**\n * Handle returned by {@link addSceneBackground}.\n */\nexport interface SceneBackgroundHandle {\n /** Root game object created for the background. */\n background: BackgroundTarget\n\n /** Stops animations, destroys game objects, removes generated textures, and detaches listeners. */\n destroy: () => void\n\n /** Manually resize the background to match an external viewport size. */\n resize: (width: number, height: number) => void\n}\n\nconst DEFAULT_LOGO_KEY = 'phaser-jsx-logo'\n\n/**\n * Default scene background used when no explicit config is provided.\n */\nexport const DEFAULT_BACKGROUND: BackgroundConfig = {\n type: 'grid',\n animation: 'lemniscate',\n opacity: 0.15,\n color: 0x4a9eff,\n}\n\ntype BackgroundTarget =\n | Phaser.GameObjects.Container\n | Phaser.GameObjects.Image\n | Phaser.GameObjects.TileSprite\ntype RedrawableTarget = BackgroundTarget & { __redrawFn?: (x: number, y: number) => void }\n\nlet sceneBackgroundTextureId = 0\n\nfunction colorToCss(color: number): string {\n return `#${color.toString(16).padStart(6, '0')}`\n}\n\nfunction createCanvasTexture(\n scene: Phaser.Scene,\n width: number,\n height: number,\n draw: (ctx: CanvasRenderingContext2D, width: number, height: number) => void\n): string {\n const textureKey = `__phaserjsx_scene_bg_${sceneBackgroundTextureId++}`\n const textureWidth = Math.max(1, Math.ceil(width))\n const textureHeight = Math.max(1, Math.ceil(height))\n const texture = scene.textures.createCanvas(textureKey, textureWidth, textureHeight)\n\n if (!texture) {\n throw new Error('Unable to create scene background texture')\n }\n\n const canvas = texture.getSourceImage() as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n\n if (!ctx) {\n throw new Error('Unable to create scene background canvas texture')\n }\n\n ctx.clearRect(0, 0, textureWidth, textureHeight)\n draw(ctx, textureWidth, textureHeight)\n texture.refresh()\n\n return textureKey\n}\n\nfunction removeTexture(scene: Phaser.Scene, textureKey: string | undefined): void {\n if (textureKey && scene.textures.exists(textureKey)) {\n scene.textures.remove(textureKey)\n }\n}\n\n/**\n * Adds a decorative background object to a Phaser scene.\n *\n * The helper owns all game objects, tweens, resize listeners, and generated textures it creates.\n * It automatically cleans up on scene shutdown or destroy. Call `handle.destroy()` when removing\n * the background earlier.\n *\n * @param scene - Phaser scene that receives the background.\n * @param config - Background type, colors, opacity, animation, and optional logo texture key.\n * @returns A handle for manual resize and cleanup, or `null` when `config.type` is `'none'`.\n *\n * @example\n * ```ts\n * const handle = addSceneBackground(scene, {\n * type: 'grid',\n * animation: 'wave',\n * color: 0x4a9eff,\n * opacity: 0.12,\n * })\n *\n * // Later, if the background should be removed before scene shutdown:\n * handle?.destroy()\n * ```\n */\nexport function addSceneBackground(\n scene: Phaser.Scene,\n config: BackgroundConfig = DEFAULT_BACKGROUND\n): SceneBackgroundHandle | null {\n const bgConfig = config ?? DEFAULT_BACKGROUND\n if (bgConfig.type === 'none') return null\n\n let background: BackgroundTarget | undefined\n let backgroundTween: Phaser.Tweens.Tween | undefined\n const particleTweens: Phaser.Tweens.Tween[] = []\n const textureKeys = new Set<string>()\n let resizeFn: ((width: number, height: number) => void) | undefined\n let destroyed = false\n\n const createGridBackground = () => {\n const gridSize = 40\n const color = bgConfig.color ?? 0x4a9eff\n const opacity = bgConfig.opacity ?? 0.15\n const textureKey = createCanvasTexture(scene, gridSize, gridSize, (ctx, width, height) => {\n ctx.globalAlpha = opacity\n ctx.strokeStyle = colorToCss(color)\n ctx.lineWidth = 1\n ctx.beginPath()\n ctx.moveTo(0.5, 0)\n ctx.lineTo(0.5, height)\n ctx.moveTo(0, 0.5)\n ctx.lineTo(width, 0.5)\n ctx.stroke()\n })\n textureKeys.add(textureKey)\n\n const tile = scene.add.tileSprite(0, 0, scene.scale.width, scene.scale.height, textureKey)\n tile.setOrigin(0, 0)\n\n const moveGrid = (offsetX: number, offsetY: number) => {\n tile.tilePositionX = -offsetX\n tile.tilePositionY = -offsetY\n }\n\n ;(tile as RedrawableTarget).__redrawFn = moveGrid\n background = tile\n resizeFn = (width, height) => {\n tile.setSize(width, height)\n }\n }\n\n const createLogoBackground = () => {\n const container = scene.add.container(scene.scale.width / 2, scene.scale.height / 2)\n const opacity = bgConfig.opacity ?? 0.1\n const logoKey = bgConfig.logoKey ?? DEFAULT_LOGO_KEY\n\n const logo = scene.add.image(0, 0, logoKey)\n logo.setAlpha(opacity)\n logo.setScale(0.5)\n\n container.add(logo)\n background = container\n resizeFn = (width, height) => {\n container.setPosition(width / 2, height / 2)\n }\n }\n\n const createGradientBackground = () => {\n const color1 = bgConfig.color ?? 0x4a9eff\n const color2 = bgConfig.colorSecondary ?? 0x6b4aff\n const opacity = bgConfig.opacity ?? 0.2\n\n const createGradientTexture = (width: number, height: number) =>\n createCanvasTexture(scene, width, height, (ctx, textureWidth, textureHeight) => {\n const gradient = ctx.createLinearGradient(0, 0, 0, textureHeight)\n gradient.addColorStop(0, colorToCss(color1))\n gradient.addColorStop(1, colorToCss(color2))\n\n ctx.globalAlpha = opacity\n ctx.fillStyle = gradient\n ctx.fillRect(0, 0, textureWidth, textureHeight)\n })\n\n let textureKey = createGradientTexture(scene.scale.width, scene.scale.height)\n textureKeys.add(textureKey)\n\n const image = scene.add.image(0, 0, textureKey)\n image.setOrigin(0, 0)\n\n resizeFn = (width, height) => {\n const previousTextureKey = textureKey\n textureKey = createGradientTexture(width, height)\n textureKeys.add(textureKey)\n image.setTexture(textureKey)\n image.setDisplaySize(width, height)\n textureKeys.delete(previousTextureKey)\n removeTexture(scene, previousTextureKey)\n }\n\n background = image\n }\n\n const createParticlesBackground = () => {\n const container = scene.add.container(0, 0)\n const particleCount = 20\n const color = bgConfig.color ?? 0x4a9eff\n const opacity = bgConfig.opacity ?? 0.1\n const particles: Phaser.GameObjects.Arc[] = []\n\n for (let i = 0; i < particleCount; i += 1) {\n const size = Phaser.Math.Between(2, 6)\n const x = Phaser.Math.Between(0, scene.scale.width)\n const y = Phaser.Math.Between(0, scene.scale.height)\n\n const particle = scene.add.circle(x, y, size, color, opacity)\n container.add(particle)\n particles.push(particle)\n\n particleTweens.push(\n scene.tweens.add({\n targets: particle,\n y: particle.y + Phaser.Math.Between(-50, 50),\n x: particle.x + Phaser.Math.Between(-50, 50),\n alpha: opacity * 1.5,\n duration: Phaser.Math.Between(2000, 4000),\n yoyo: true,\n repeat: -1,\n ease: 'Sine.easeInOut',\n })\n )\n }\n\n background = container\n resizeFn = (width, height) => {\n for (const particle of particles) {\n particle.setPosition(Phaser.Math.Between(0, width), Phaser.Math.Between(0, height))\n }\n }\n }\n\n switch (bgConfig.type) {\n case 'grid':\n createGridBackground()\n break\n case 'logo':\n createLogoBackground()\n break\n case 'gradient':\n createGradientBackground()\n break\n case 'particles':\n createParticlesBackground()\n break\n }\n\n if (!background) return null\n\n if (bgConfig.animation && bgConfig.animation !== 'static') {\n backgroundTween = applyAnimation(scene, background, bgConfig.animation)\n }\n\n const onResize = () => {\n if (resizeFn) resizeFn(scene.scale.width, scene.scale.height)\n }\n\n const cleanup = () => {\n if (destroyed) return\n destroyed = true\n\n backgroundTween?.stop()\n for (const tween of particleTweens) {\n tween.stop()\n }\n\n background?.destroy()\n background = undefined\n for (const textureKey of textureKeys) {\n removeTexture(scene, textureKey)\n }\n textureKeys.clear()\n\n scene.scale.off(Phaser.Scale.Events.RESIZE, onResize)\n scene.events.off(Phaser.Scenes.Events.SHUTDOWN, cleanup)\n scene.events.off(Phaser.Scenes.Events.DESTROY, cleanup)\n }\n\n scene.scale.on(Phaser.Scale.Events.RESIZE, onResize)\n scene.events.once(Phaser.Scenes.Events.SHUTDOWN, cleanup)\n scene.events.once(Phaser.Scenes.Events.DESTROY, cleanup)\n\n return {\n background,\n destroy: cleanup,\n resize: (width, height) => {\n if (resizeFn) resizeFn(width, height)\n },\n }\n}\n\nfunction applyAnimation(\n scene: Phaser.Scene,\n target: BackgroundTarget,\n animation: BackgroundAnimation\n): Phaser.Tweens.Tween | undefined {\n const redrawFn = (target as RedrawableTarget).__redrawFn\n\n switch (animation) {\n case 'lemniscate':\n return redrawFn ? animateLemniscate(scene, redrawFn) : animatePulse(scene, target)\n case 'wave':\n return redrawFn ? animateWave(scene, redrawFn) : animatePulse(scene, target)\n case 'pulse':\n return animatePulse(scene, target)\n case 'rotate':\n return animateRotate(scene, target)\n case 'static':\n default:\n return undefined\n }\n}\n\nfunction animateLemniscate(\n scene: Phaser.Scene,\n drawFn: (x: number, y: number) => void\n): Phaser.Tweens.Tween {\n const amplitude = 30\n const duration = 8000\n\n return scene.tweens.addCounter({\n from: 0,\n to: Math.PI * 2,\n duration,\n repeat: -1,\n onUpdate: (tween) => {\n const t = tween.getValue()\n if (t !== null) {\n const offsetX = amplitude * Math.cos(t)\n const offsetY = (amplitude * Math.sin(2 * t)) / 2\n drawFn(offsetX, offsetY)\n }\n },\n })\n}\n\nfunction animateWave(\n scene: Phaser.Scene,\n drawFn: (x: number, y: number) => void\n): Phaser.Tweens.Tween {\n return scene.tweens.addCounter({\n from: 0,\n to: 40,\n duration: 3000,\n yoyo: true,\n repeat: -1,\n onUpdate: (tween) => {\n const offset = tween.getValue()\n if (offset !== null) {\n drawFn(offset, 0)\n }\n },\n })\n}\n\nfunction animatePulse(scene: Phaser.Scene, target: BackgroundTarget): Phaser.Tweens.Tween {\n return scene.tweens.add({\n targets: target,\n scaleX: 1.1,\n scaleY: 1.1,\n duration: 2000,\n yoyo: true,\n repeat: -1,\n ease: 'Sine.easeInOut',\n })\n}\n\nfunction animateRotate(scene: Phaser.Scene, target: BackgroundTarget): Phaser.Tweens.Tween {\n return scene.tweens.add({\n targets: target,\n angle: 360,\n duration: 20000,\n repeat: -1,\n ease: 'Linear',\n })\n}\n"],"names":["Phaser"],"mappings":"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"}