@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,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxComponents = require("@number10/jsx-components");
4
+ const jsxCore = require("@number10/jsx-core");
5
+ const Phaser = require("phaser");
6
+ const hooks = require("../hooks.cjs");
7
+ const vdom = require("../vdom.cjs");
8
+ function _interopNamespaceDefault(e) {
9
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
10
+ if (e) {
11
+ for (const k in e) {
12
+ if (k !== "default") {
13
+ const d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: () => e[k]
17
+ });
18
+ }
19
+ }
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+ const Phaser__namespace = /* @__PURE__ */ _interopNamespaceDefault(Phaser);
25
+ function resolveRendererName(scene) {
26
+ const renderer = scene.renderer;
27
+ const canvasType = Phaser__namespace.CANVAS;
28
+ if (renderer.type === Phaser__namespace.WEBGL) return "WebGL";
29
+ if (canvasType !== void 0 && renderer.type === canvasType) return "Canvas";
30
+ if (renderer.constructor?.name) return renderer.constructor.name;
31
+ if (typeof renderer.type === "number") return `Type ${renderer.type}`;
32
+ return "Unknown";
33
+ }
34
+ function resolveTextureCount(scene) {
35
+ const manager = scene.textures;
36
+ const keys = typeof manager.getTextureKeys === "function" ? manager.getTextureKeys() : Object.keys(manager.list ?? {});
37
+ const internalKeys = /* @__PURE__ */ new Set(["__DEFAULT", "__MISSING", "__NORMAL", "__WHITE"]);
38
+ return keys.filter((key) => !internalKeys.has(key.toUpperCase())).length;
39
+ }
40
+ function resolveFrameStats(scene) {
41
+ const loop = scene.game.loop;
42
+ const rawFps = loop?.actualFps ?? loop?.fps ?? 0;
43
+ const rawFrameMs = loop?.delta ?? loop?.frameDelta ?? 0;
44
+ const fps = Number.isFinite(rawFps) ? Number(rawFps.toFixed(1)) : 0;
45
+ const frameMs = Number.isFinite(rawFrameMs) ? Number(rawFrameMs.toFixed(2)) : 0;
46
+ return { fps, frameMs };
47
+ }
48
+ function resolveDebugFlags() {
49
+ const debugConfig = jsxCore.DevConfig.debug;
50
+ if (!debugConfig.enabled) return "off";
51
+ const enabledFlags = Object.entries(debugConfig).filter(([key, value]) => key !== "enabled" && value).map(([key]) => key);
52
+ return enabledFlags.length ? enabledFlags.join(",") : "enabled";
53
+ }
54
+ function collectPhaserSnapshot(scene) {
55
+ const { fps, frameMs } = resolveFrameStats(scene);
56
+ const mountStats = vdom.getMountStats();
57
+ return {
58
+ fps,
59
+ frameMs,
60
+ phaserVersion: Phaser__namespace.VERSION,
61
+ renderer: resolveRendererName(scene),
62
+ viewport: `${scene.scale.width.toFixed(0)}x${scene.scale.height.toFixed(0)}`,
63
+ textureCount: resolveTextureCount(scene),
64
+ mountsTotal: mountStats.totalMounts,
65
+ mountsByType: jsxComponents.summarizeMap(mountStats.byType),
66
+ mountsByParent: jsxComponents.summarizeMap(mountStats.byParent),
67
+ mountsByKey: jsxComponents.summarizeMap(mountStats.byKey),
68
+ debugFlags: resolveDebugFlags()
69
+ };
70
+ }
71
+ function usePhaserDebugSnapshot(intervalMs = 250) {
72
+ const scene = hooks.useScene();
73
+ const [snapshot, setSnapshot] = jsxCore.useState(collectPhaserSnapshot(scene));
74
+ jsxCore.useEffect(() => {
75
+ const delay = Math.max(50, intervalMs);
76
+ setSnapshot(collectPhaserSnapshot(scene));
77
+ const timer = window.setInterval(() => {
78
+ setSnapshot(collectPhaserSnapshot(scene));
79
+ }, delay);
80
+ return () => {
81
+ window.clearInterval(timer);
82
+ };
83
+ }, [scene, intervalMs]);
84
+ return snapshot;
85
+ }
86
+ exports.collectPhaserSnapshot = collectPhaserSnapshot;
87
+ exports.usePhaserDebugSnapshot = usePhaserDebugSnapshot;
88
+ //# sourceMappingURL=DebugPanel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugPanel.cjs","sources":["../../src/components/DebugPanel.tsx"],"sourcesContent":["/** @jsxImportSource .. */\n/**\n * Phaser DebugPanel data collector — provides the {@link usePhaserDebugSnapshot}\n * hook and {@link collectPhaserSnapshot} utility for collecting renderer-specific\n * debug metrics from the Phaser scene.\n *\n * ## Usage\n *\n * Users import the portable `DebugPanel` from `@number10/jsx-components` and\n * compose it with this hook:\n *\n * ```tsx\n * import { DebugPanel } from '@number10/jsx-components'\n * import { usePhaserDebugSnapshot } from '@number10/jsx-phaser'\n *\n * function MyApp() {\n * const snapshot = usePhaserDebugSnapshot(500)\n * return <DebugPanel snapshot={snapshot} metrics={['fps', 'frameMs']} />\n * }\n * ```\n *\n * @migration(audit:debug-panel-split) Phase 8 — split from monolithic\n * Phaser component. Portable UI extracted to @number10/jsx-components.\n * This file provides only the Phaser-specific data collection.\n */\nimport { summarizeMap, type DebugSnapshot } from '@number10/jsx-components'\nimport { DevConfig } from '@number10/jsx-core'\nimport * as Phaser from 'phaser'\nimport { useEffect, useScene, useState } from '../hooks'\nimport { getMountStats } from '../vdom'\n\n// ---------------------------------------------------------------------------\n// Phaser-specific data collection\n// ---------------------------------------------------------------------------\n\nfunction resolveRendererName(scene: Phaser.Scene): string {\n const renderer = scene.renderer as unknown as {\n type?: number\n constructor?: { name?: string }\n }\n const canvasType = (Phaser as unknown as { CANVAS?: number }).CANVAS\n\n if (renderer.type === Phaser.WEBGL) return 'WebGL'\n if (canvasType !== undefined && renderer.type === canvasType) return 'Canvas'\n if (renderer.constructor?.name) return renderer.constructor.name\n if (typeof renderer.type === 'number') return `Type ${renderer.type}`\n return 'Unknown'\n}\n\nfunction resolveTextureCount(scene: Phaser.Scene): number {\n const manager = scene.textures as unknown as {\n getTextureKeys?: () => string[]\n list?: Record<string, unknown>\n }\n\n const keys =\n typeof manager.getTextureKeys === 'function'\n ? manager.getTextureKeys()\n : Object.keys(manager.list ?? {})\n\n const internalKeys = new Set(['__DEFAULT', '__MISSING', '__NORMAL', '__WHITE'])\n return keys.filter((key) => !internalKeys.has(key.toUpperCase())).length\n}\n\nfunction resolveFrameStats(scene: Phaser.Scene): { fps: number; frameMs: number } {\n const loop = (\n scene.game as unknown as {\n loop?: {\n actualFps?: number\n fps?: number\n delta?: number\n frameDelta?: number\n }\n }\n ).loop\n\n const rawFps = loop?.actualFps ?? loop?.fps ?? 0\n const rawFrameMs = loop?.delta ?? loop?.frameDelta ?? 0\n\n const fps = Number.isFinite(rawFps) ? Number(rawFps.toFixed(1)) : 0\n const frameMs = Number.isFinite(rawFrameMs) ? Number(rawFrameMs.toFixed(2)) : 0\n\n return { fps, frameMs }\n}\n\nfunction resolveDebugFlags(): string {\n const debugConfig = DevConfig.debug\n if (!debugConfig.enabled) return 'off'\n\n const enabledFlags = Object.entries(debugConfig)\n .filter(([key, value]) => key !== 'enabled' && value)\n .map(([key]) => key)\n\n return enabledFlags.length ? enabledFlags.join(',') : 'enabled'\n}\n\n/**\n * Collect a complete debug snapshot from the Phaser scene.\n * Includes FPS, renderer info, texture count, mount stats, and debug flags.\n *\n * @param scene - The Phaser Scene to collect data from\n * @returns Partial debug snapshot with all metrics Phaser can provide\n *\n * @example\n * ```ts\n * const snapshot = collectPhaserSnapshot(scene)\n * // { fps: 60, frameMs: 16.67, phaserVersion: '3.80.1', ... }\n * ```\n */\nexport function collectPhaserSnapshot(scene: Phaser.Scene): DebugSnapshot {\n const { fps, frameMs } = resolveFrameStats(scene)\n const mountStats = getMountStats()\n\n return {\n fps,\n frameMs,\n phaserVersion: Phaser.VERSION,\n renderer: resolveRendererName(scene),\n viewport: `${scene.scale.width.toFixed(0)}x${scene.scale.height.toFixed(0)}`,\n textureCount: resolveTextureCount(scene),\n mountsTotal: mountStats.totalMounts,\n mountsByType: summarizeMap(mountStats.byType),\n mountsByParent: summarizeMap(mountStats.byParent),\n mountsByKey: summarizeMap(mountStats.byKey),\n debugFlags: resolveDebugFlags(),\n }\n}\n\n// ---------------------------------------------------------------------------\n// usePhaserDebugSnapshot — interval-based hook\n// ---------------------------------------------------------------------------\n\n/**\n * Hook that collects Phaser debug metrics on an interval and returns\n * a {@link DebugSnapshot} suitable for the portable {@link DebugPanel}.\n *\n * Must be called within a component that has access to the Phaser scene\n * (i.e., mounted via `mountJSX`).\n *\n * @param intervalMs - Refresh interval in milliseconds (default: 250)\n * @returns Current debug snapshot, refreshed on the given interval\n *\n * @example\n * ```tsx\n * import { DebugPanel } from '@number10/jsx-components'\n * import { usePhaserDebugSnapshot } from '@number10/jsx-phaser'\n *\n * function MyApp() {\n * const snapshot = usePhaserDebugSnapshot(500)\n * return (\n * <DebugPanel\n * snapshot={snapshot}\n * metrics={['fps', 'frameMs', 'renderer']}\n * backgroundColor={0x1a1a2e}\n * />\n * )\n * }\n * ```\n */\nexport function usePhaserDebugSnapshot(intervalMs = 250): DebugSnapshot {\n const scene = useScene()\n\n const [snapshot, setSnapshot] = useState<DebugSnapshot>(collectPhaserSnapshot(scene))\n\n useEffect(() => {\n const delay = Math.max(50, intervalMs)\n setSnapshot(collectPhaserSnapshot(scene))\n\n const timer = window.setInterval(() => {\n setSnapshot(collectPhaserSnapshot(scene))\n }, delay)\n\n return () => {\n window.clearInterval(timer)\n }\n }, [scene, intervalMs])\n\n return snapshot\n}\n"],"names":["Phaser","DevConfig","getMountStats","summarizeMap","useScene","useState","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAS,oBAAoB,OAA6B;AACxD,QAAM,WAAW,MAAM;AAIvB,QAAM,aAAcA,kBAA0C;AAE9D,MAAI,SAAS,SAASA,kBAAO,MAAO,QAAO;AAC3C,MAAI,eAAe,UAAa,SAAS,SAAS,WAAY,QAAO;AACrE,MAAI,SAAS,aAAa,KAAM,QAAO,SAAS,YAAY;AAC5D,MAAI,OAAO,SAAS,SAAS,SAAU,QAAO,QAAQ,SAAS,IAAI;AACnE,SAAO;AACT;AAEA,SAAS,oBAAoB,OAA6B;AACxD,QAAM,UAAU,MAAM;AAKtB,QAAM,OACJ,OAAO,QAAQ,mBAAmB,aAC9B,QAAQ,eAAA,IACR,OAAO,KAAK,QAAQ,QAAQ,CAAA,CAAE;AAEpC,QAAM,mCAAmB,IAAI,CAAC,aAAa,aAAa,YAAY,SAAS,CAAC;AAC9E,SAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,aAAa,CAAC,EAAE;AACpE;AAEA,SAAS,kBAAkB,OAAuD;AAChF,QAAM,OACJ,MAAM,KAQN;AAEF,QAAM,SAAS,MAAM,aAAa,MAAM,OAAO;AAC/C,QAAM,aAAa,MAAM,SAAS,MAAM,cAAc;AAEtD,QAAM,MAAM,OAAO,SAAS,MAAM,IAAI,OAAO,OAAO,QAAQ,CAAC,CAAC,IAAI;AAClE,QAAM,UAAU,OAAO,SAAS,UAAU,IAAI,OAAO,WAAW,QAAQ,CAAC,CAAC,IAAI;AAE9E,SAAO,EAAE,KAAK,QAAA;AAChB;AAEA,SAAS,oBAA4B;AACnC,QAAM,cAAcC,QAAAA,UAAU;AAC9B,MAAI,CAAC,YAAY,QAAS,QAAO;AAEjC,QAAM,eAAe,OAAO,QAAQ,WAAW,EAC5C,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,QAAQ,aAAa,KAAK,EACnD,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG;AAErB,SAAO,aAAa,SAAS,aAAa,KAAK,GAAG,IAAI;AACxD;AAeO,SAAS,sBAAsB,OAAoC;AACxE,QAAM,EAAE,KAAK,YAAY,kBAAkB,KAAK;AAChD,QAAM,aAAaC,KAAAA,cAAA;AAEnB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,eAAeF,kBAAO;AAAA,IACtB,UAAU,oBAAoB,KAAK;AAAA,IACnC,UAAU,GAAG,MAAM,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,MAAM,OAAO,QAAQ,CAAC,CAAC;AAAA,IAC1E,cAAc,oBAAoB,KAAK;AAAA,IACvC,aAAa,WAAW;AAAA,IACxB,cAAcG,cAAAA,aAAa,WAAW,MAAM;AAAA,IAC5C,gBAAgBA,cAAAA,aAAa,WAAW,QAAQ;AAAA,IAChD,aAAaA,cAAAA,aAAa,WAAW,KAAK;AAAA,IAC1C,YAAY,kBAAA;AAAA,EAAkB;AAElC;AAiCO,SAAS,uBAAuB,aAAa,KAAoB;AACtE,QAAM,QAAQC,MAAAA,SAAA;AAEd,QAAM,CAAC,UAAU,WAAW,IAAIC,QAAAA,SAAwB,sBAAsB,KAAK,CAAC;AAEpFC,UAAAA,UAAU,MAAM;AACd,UAAM,QAAQ,KAAK,IAAI,IAAI,UAAU;AACrC,gBAAY,sBAAsB,KAAK,CAAC;AAExC,UAAM,QAAQ,OAAO,YAAY,MAAM;AACrC,kBAAY,sBAAsB,KAAK,CAAC;AAAA,IAC1C,GAAG,KAAK;AAER,WAAO,MAAM;AACX,aAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,SAAO;AACT;;;"}
@@ -0,0 +1,45 @@
1
+ import { DebugSnapshot } from '@number10/jsx-components';
2
+ import * as Phaser from 'phaser';
3
+ /**
4
+ * Collect a complete debug snapshot from the Phaser scene.
5
+ * Includes FPS, renderer info, texture count, mount stats, and debug flags.
6
+ *
7
+ * @param scene - The Phaser Scene to collect data from
8
+ * @returns Partial debug snapshot with all metrics Phaser can provide
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const snapshot = collectPhaserSnapshot(scene)
13
+ * // { fps: 60, frameMs: 16.67, phaserVersion: '3.80.1', ... }
14
+ * ```
15
+ */
16
+ export declare function collectPhaserSnapshot(scene: Phaser.Scene): DebugSnapshot;
17
+ /**
18
+ * Hook that collects Phaser debug metrics on an interval and returns
19
+ * a {@link DebugSnapshot} suitable for the portable {@link DebugPanel}.
20
+ *
21
+ * Must be called within a component that has access to the Phaser scene
22
+ * (i.e., mounted via `mountJSX`).
23
+ *
24
+ * @param intervalMs - Refresh interval in milliseconds (default: 250)
25
+ * @returns Current debug snapshot, refreshed on the given interval
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * import { DebugPanel } from '@number10/jsx-components'
30
+ * import { usePhaserDebugSnapshot } from '@number10/jsx-phaser'
31
+ *
32
+ * function MyApp() {
33
+ * const snapshot = usePhaserDebugSnapshot(500)
34
+ * return (
35
+ * <DebugPanel
36
+ * snapshot={snapshot}
37
+ * metrics={['fps', 'frameMs', 'renderer']}
38
+ * backgroundColor={0x1a1a2e}
39
+ * />
40
+ * )
41
+ * }
42
+ * ```
43
+ */
44
+ export declare function usePhaserDebugSnapshot(intervalMs?: number): DebugSnapshot;
45
+ //# sourceMappingURL=DebugPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugPanel.d.ts","sourceRoot":"","sources":["../../src/components/DebugPanel.tsx"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAqEhC;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,aAAa,CAiBxE;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,SAAM,GAAG,aAAa,CAmBtE"}
@@ -0,0 +1,71 @@
1
+ import { summarizeMap } from "@number10/jsx-components";
2
+ import { useState, useEffect, DevConfig } from "@number10/jsx-core";
3
+ import * as Phaser from "phaser";
4
+ import { useScene } from "../hooks.js";
5
+ import { getMountStats } from "../vdom.js";
6
+ function resolveRendererName(scene) {
7
+ const renderer = scene.renderer;
8
+ const canvasType = Phaser.CANVAS;
9
+ if (renderer.type === Phaser.WEBGL) return "WebGL";
10
+ if (canvasType !== void 0 && renderer.type === canvasType) return "Canvas";
11
+ if (renderer.constructor?.name) return renderer.constructor.name;
12
+ if (typeof renderer.type === "number") return `Type ${renderer.type}`;
13
+ return "Unknown";
14
+ }
15
+ function resolveTextureCount(scene) {
16
+ const manager = scene.textures;
17
+ const keys = typeof manager.getTextureKeys === "function" ? manager.getTextureKeys() : Object.keys(manager.list ?? {});
18
+ const internalKeys = /* @__PURE__ */ new Set(["__DEFAULT", "__MISSING", "__NORMAL", "__WHITE"]);
19
+ return keys.filter((key) => !internalKeys.has(key.toUpperCase())).length;
20
+ }
21
+ function resolveFrameStats(scene) {
22
+ const loop = scene.game.loop;
23
+ const rawFps = loop?.actualFps ?? loop?.fps ?? 0;
24
+ const rawFrameMs = loop?.delta ?? loop?.frameDelta ?? 0;
25
+ const fps = Number.isFinite(rawFps) ? Number(rawFps.toFixed(1)) : 0;
26
+ const frameMs = Number.isFinite(rawFrameMs) ? Number(rawFrameMs.toFixed(2)) : 0;
27
+ return { fps, frameMs };
28
+ }
29
+ function resolveDebugFlags() {
30
+ const debugConfig = DevConfig.debug;
31
+ if (!debugConfig.enabled) return "off";
32
+ const enabledFlags = Object.entries(debugConfig).filter(([key, value]) => key !== "enabled" && value).map(([key]) => key);
33
+ return enabledFlags.length ? enabledFlags.join(",") : "enabled";
34
+ }
35
+ function collectPhaserSnapshot(scene) {
36
+ const { fps, frameMs } = resolveFrameStats(scene);
37
+ const mountStats = getMountStats();
38
+ return {
39
+ fps,
40
+ frameMs,
41
+ phaserVersion: Phaser.VERSION,
42
+ renderer: resolveRendererName(scene),
43
+ viewport: `${scene.scale.width.toFixed(0)}x${scene.scale.height.toFixed(0)}`,
44
+ textureCount: resolveTextureCount(scene),
45
+ mountsTotal: mountStats.totalMounts,
46
+ mountsByType: summarizeMap(mountStats.byType),
47
+ mountsByParent: summarizeMap(mountStats.byParent),
48
+ mountsByKey: summarizeMap(mountStats.byKey),
49
+ debugFlags: resolveDebugFlags()
50
+ };
51
+ }
52
+ function usePhaserDebugSnapshot(intervalMs = 250) {
53
+ const scene = useScene();
54
+ const [snapshot, setSnapshot] = useState(collectPhaserSnapshot(scene));
55
+ useEffect(() => {
56
+ const delay = Math.max(50, intervalMs);
57
+ setSnapshot(collectPhaserSnapshot(scene));
58
+ const timer = window.setInterval(() => {
59
+ setSnapshot(collectPhaserSnapshot(scene));
60
+ }, delay);
61
+ return () => {
62
+ window.clearInterval(timer);
63
+ };
64
+ }, [scene, intervalMs]);
65
+ return snapshot;
66
+ }
67
+ export {
68
+ collectPhaserSnapshot,
69
+ usePhaserDebugSnapshot
70
+ };
71
+ //# sourceMappingURL=DebugPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugPanel.js","sources":["../../src/components/DebugPanel.tsx"],"sourcesContent":["/** @jsxImportSource .. */\n/**\n * Phaser DebugPanel data collector — provides the {@link usePhaserDebugSnapshot}\n * hook and {@link collectPhaserSnapshot} utility for collecting renderer-specific\n * debug metrics from the Phaser scene.\n *\n * ## Usage\n *\n * Users import the portable `DebugPanel` from `@number10/jsx-components` and\n * compose it with this hook:\n *\n * ```tsx\n * import { DebugPanel } from '@number10/jsx-components'\n * import { usePhaserDebugSnapshot } from '@number10/jsx-phaser'\n *\n * function MyApp() {\n * const snapshot = usePhaserDebugSnapshot(500)\n * return <DebugPanel snapshot={snapshot} metrics={['fps', 'frameMs']} />\n * }\n * ```\n *\n * @migration(audit:debug-panel-split) Phase 8 — split from monolithic\n * Phaser component. Portable UI extracted to @number10/jsx-components.\n * This file provides only the Phaser-specific data collection.\n */\nimport { summarizeMap, type DebugSnapshot } from '@number10/jsx-components'\nimport { DevConfig } from '@number10/jsx-core'\nimport * as Phaser from 'phaser'\nimport { useEffect, useScene, useState } from '../hooks'\nimport { getMountStats } from '../vdom'\n\n// ---------------------------------------------------------------------------\n// Phaser-specific data collection\n// ---------------------------------------------------------------------------\n\nfunction resolveRendererName(scene: Phaser.Scene): string {\n const renderer = scene.renderer as unknown as {\n type?: number\n constructor?: { name?: string }\n }\n const canvasType = (Phaser as unknown as { CANVAS?: number }).CANVAS\n\n if (renderer.type === Phaser.WEBGL) return 'WebGL'\n if (canvasType !== undefined && renderer.type === canvasType) return 'Canvas'\n if (renderer.constructor?.name) return renderer.constructor.name\n if (typeof renderer.type === 'number') return `Type ${renderer.type}`\n return 'Unknown'\n}\n\nfunction resolveTextureCount(scene: Phaser.Scene): number {\n const manager = scene.textures as unknown as {\n getTextureKeys?: () => string[]\n list?: Record<string, unknown>\n }\n\n const keys =\n typeof manager.getTextureKeys === 'function'\n ? manager.getTextureKeys()\n : Object.keys(manager.list ?? {})\n\n const internalKeys = new Set(['__DEFAULT', '__MISSING', '__NORMAL', '__WHITE'])\n return keys.filter((key) => !internalKeys.has(key.toUpperCase())).length\n}\n\nfunction resolveFrameStats(scene: Phaser.Scene): { fps: number; frameMs: number } {\n const loop = (\n scene.game as unknown as {\n loop?: {\n actualFps?: number\n fps?: number\n delta?: number\n frameDelta?: number\n }\n }\n ).loop\n\n const rawFps = loop?.actualFps ?? loop?.fps ?? 0\n const rawFrameMs = loop?.delta ?? loop?.frameDelta ?? 0\n\n const fps = Number.isFinite(rawFps) ? Number(rawFps.toFixed(1)) : 0\n const frameMs = Number.isFinite(rawFrameMs) ? Number(rawFrameMs.toFixed(2)) : 0\n\n return { fps, frameMs }\n}\n\nfunction resolveDebugFlags(): string {\n const debugConfig = DevConfig.debug\n if (!debugConfig.enabled) return 'off'\n\n const enabledFlags = Object.entries(debugConfig)\n .filter(([key, value]) => key !== 'enabled' && value)\n .map(([key]) => key)\n\n return enabledFlags.length ? enabledFlags.join(',') : 'enabled'\n}\n\n/**\n * Collect a complete debug snapshot from the Phaser scene.\n * Includes FPS, renderer info, texture count, mount stats, and debug flags.\n *\n * @param scene - The Phaser Scene to collect data from\n * @returns Partial debug snapshot with all metrics Phaser can provide\n *\n * @example\n * ```ts\n * const snapshot = collectPhaserSnapshot(scene)\n * // { fps: 60, frameMs: 16.67, phaserVersion: '3.80.1', ... }\n * ```\n */\nexport function collectPhaserSnapshot(scene: Phaser.Scene): DebugSnapshot {\n const { fps, frameMs } = resolveFrameStats(scene)\n const mountStats = getMountStats()\n\n return {\n fps,\n frameMs,\n phaserVersion: Phaser.VERSION,\n renderer: resolveRendererName(scene),\n viewport: `${scene.scale.width.toFixed(0)}x${scene.scale.height.toFixed(0)}`,\n textureCount: resolveTextureCount(scene),\n mountsTotal: mountStats.totalMounts,\n mountsByType: summarizeMap(mountStats.byType),\n mountsByParent: summarizeMap(mountStats.byParent),\n mountsByKey: summarizeMap(mountStats.byKey),\n debugFlags: resolveDebugFlags(),\n }\n}\n\n// ---------------------------------------------------------------------------\n// usePhaserDebugSnapshot — interval-based hook\n// ---------------------------------------------------------------------------\n\n/**\n * Hook that collects Phaser debug metrics on an interval and returns\n * a {@link DebugSnapshot} suitable for the portable {@link DebugPanel}.\n *\n * Must be called within a component that has access to the Phaser scene\n * (i.e., mounted via `mountJSX`).\n *\n * @param intervalMs - Refresh interval in milliseconds (default: 250)\n * @returns Current debug snapshot, refreshed on the given interval\n *\n * @example\n * ```tsx\n * import { DebugPanel } from '@number10/jsx-components'\n * import { usePhaserDebugSnapshot } from '@number10/jsx-phaser'\n *\n * function MyApp() {\n * const snapshot = usePhaserDebugSnapshot(500)\n * return (\n * <DebugPanel\n * snapshot={snapshot}\n * metrics={['fps', 'frameMs', 'renderer']}\n * backgroundColor={0x1a1a2e}\n * />\n * )\n * }\n * ```\n */\nexport function usePhaserDebugSnapshot(intervalMs = 250): DebugSnapshot {\n const scene = useScene()\n\n const [snapshot, setSnapshot] = useState<DebugSnapshot>(collectPhaserSnapshot(scene))\n\n useEffect(() => {\n const delay = Math.max(50, intervalMs)\n setSnapshot(collectPhaserSnapshot(scene))\n\n const timer = window.setInterval(() => {\n setSnapshot(collectPhaserSnapshot(scene))\n }, delay)\n\n return () => {\n window.clearInterval(timer)\n }\n }, [scene, intervalMs])\n\n return snapshot\n}\n"],"names":[],"mappings":";;;;;AAmCA,SAAS,oBAAoB,OAA6B;AACxD,QAAM,WAAW,MAAM;AAIvB,QAAM,aAAc,OAA0C;AAE9D,MAAI,SAAS,SAAS,OAAO,MAAO,QAAO;AAC3C,MAAI,eAAe,UAAa,SAAS,SAAS,WAAY,QAAO;AACrE,MAAI,SAAS,aAAa,KAAM,QAAO,SAAS,YAAY;AAC5D,MAAI,OAAO,SAAS,SAAS,SAAU,QAAO,QAAQ,SAAS,IAAI;AACnE,SAAO;AACT;AAEA,SAAS,oBAAoB,OAA6B;AACxD,QAAM,UAAU,MAAM;AAKtB,QAAM,OACJ,OAAO,QAAQ,mBAAmB,aAC9B,QAAQ,eAAA,IACR,OAAO,KAAK,QAAQ,QAAQ,CAAA,CAAE;AAEpC,QAAM,mCAAmB,IAAI,CAAC,aAAa,aAAa,YAAY,SAAS,CAAC;AAC9E,SAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,aAAa,CAAC,EAAE;AACpE;AAEA,SAAS,kBAAkB,OAAuD;AAChF,QAAM,OACJ,MAAM,KAQN;AAEF,QAAM,SAAS,MAAM,aAAa,MAAM,OAAO;AAC/C,QAAM,aAAa,MAAM,SAAS,MAAM,cAAc;AAEtD,QAAM,MAAM,OAAO,SAAS,MAAM,IAAI,OAAO,OAAO,QAAQ,CAAC,CAAC,IAAI;AAClE,QAAM,UAAU,OAAO,SAAS,UAAU,IAAI,OAAO,WAAW,QAAQ,CAAC,CAAC,IAAI;AAE9E,SAAO,EAAE,KAAK,QAAA;AAChB;AAEA,SAAS,oBAA4B;AACnC,QAAM,cAAc,UAAU;AAC9B,MAAI,CAAC,YAAY,QAAS,QAAO;AAEjC,QAAM,eAAe,OAAO,QAAQ,WAAW,EAC5C,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,QAAQ,aAAa,KAAK,EACnD,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG;AAErB,SAAO,aAAa,SAAS,aAAa,KAAK,GAAG,IAAI;AACxD;AAeO,SAAS,sBAAsB,OAAoC;AACxE,QAAM,EAAE,KAAK,YAAY,kBAAkB,KAAK;AAChD,QAAM,aAAa,cAAA;AAEnB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,eAAe,OAAO;AAAA,IACtB,UAAU,oBAAoB,KAAK;AAAA,IACnC,UAAU,GAAG,MAAM,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,MAAM,OAAO,QAAQ,CAAC,CAAC;AAAA,IAC1E,cAAc,oBAAoB,KAAK;AAAA,IACvC,aAAa,WAAW;AAAA,IACxB,cAAc,aAAa,WAAW,MAAM;AAAA,IAC5C,gBAAgB,aAAa,WAAW,QAAQ;AAAA,IAChD,aAAa,aAAa,WAAW,KAAK;AAAA,IAC1C,YAAY,kBAAA;AAAA,EAAkB;AAElC;AAiCO,SAAS,uBAAuB,aAAa,KAAoB;AACtE,QAAM,QAAQ,SAAA;AAEd,QAAM,CAAC,UAAU,WAAW,IAAI,SAAwB,sBAAsB,KAAK,CAAC;AAEpF,YAAU,MAAM;AACd,UAAM,QAAQ,KAAK,IAAI,IAAI,UAAU;AACrC,gBAAY,sBAAsB,KAAK,CAAC;AAExC,UAAM,QAAQ,OAAO,YAAY,MAAM;AACrC,kBAAY,sBAAsB,KAAK,CAAC;AAAA,IAC1C,GAAG,KAAK;AAER,WAAO,MAAM;AACX,aAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,SAAO;AACT;"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxCore = require("@number10/jsx-core");
4
+ const signalsCore = require("@preact/signals-core");
5
+ require("phaser");
6
+ const backgroundImage = require("../backgroundImage.cjs");
7
+ function unwrapAlpha(v) {
8
+ if (v === void 0) return 1;
9
+ return jsxCore.isAnimatedSignal(v) ? v.value : v;
10
+ }
11
+ function applyBackgroundProps(container, prev, next) {
12
+ const prevBgColor = prev.backgroundColor;
13
+ const nextBgColor = next.backgroundColor;
14
+ const prevBgAlpha = unwrapAlpha(prev.backgroundAlpha);
15
+ const nextBgAlpha = unwrapAlpha(next.backgroundAlpha);
16
+ let prevWidth = typeof prev.width === "number" ? prev.width : 100;
17
+ let prevHeight = typeof prev.height === "number" ? prev.height : 100;
18
+ let nextWidth = typeof next.width === "number" ? next.width : 100;
19
+ let nextHeight = typeof next.height === "number" ? next.height : 100;
20
+ if (container.__getLayoutSize) {
21
+ const layoutSize = container.__getLayoutSize();
22
+ prevWidth = layoutSize.width;
23
+ prevHeight = layoutSize.height;
24
+ nextWidth = layoutSize.width;
25
+ nextHeight = layoutSize.height;
26
+ }
27
+ const prevCornerRadius = prev.cornerRadius ?? 0;
28
+ const nextCornerRadius = next.cornerRadius ?? 0;
29
+ const prevBorderColor = prev.borderColor;
30
+ const nextBorderColor = next.borderColor;
31
+ const prevBorderWidth = prev.borderWidth ?? 0;
32
+ const nextBorderWidth = next.borderWidth ?? 0;
33
+ const prevBorderAlpha = unwrapAlpha(prev.borderAlpha);
34
+ const nextBorderAlpha = unwrapAlpha(next.borderAlpha);
35
+ const prevBorder = prev.border;
36
+ const nextBorder = next.border;
37
+ const borderChanged = JSON.stringify(prevBorder) !== JSON.stringify(nextBorder);
38
+ const hasAdvancedBorder = (b) => {
39
+ if (!b) return false;
40
+ if (typeof b.width === "number") return b.width > 0;
41
+ if (b.width)
42
+ return (b.width.top ?? 0) > 0 || (b.width.right ?? 0) > 0 || (b.width.bottom ?? 0) > 0 || (b.width.left ?? 0) > 0;
43
+ return false;
44
+ };
45
+ const prevHasBorder = prevBorderWidth > 0 && prevBorderColor !== void 0;
46
+ const nextHasBorder = nextBorderWidth > 0 && nextBorderColor !== void 0;
47
+ const prevHasGraphics = prevBgColor !== void 0 || prevHasBorder || hasAdvancedBorder(prevBorder);
48
+ const nextHasGraphics = nextBgColor !== void 0 || nextHasBorder || hasAdvancedBorder(nextBorder);
49
+ if (prevHasGraphics && !nextHasGraphics) {
50
+ if (container.__background) {
51
+ backgroundImage.destroyBackgroundImage(container.__background);
52
+ delete container.__background;
53
+ }
54
+ } else if (!prevHasGraphics && nextHasGraphics) {
55
+ if (container.scene) {
56
+ const background = backgroundImage.createBackgroundImage(container.scene, next, nextWidth, nextHeight);
57
+ if (!background) return;
58
+ container.addAt(background, 0);
59
+ container.__background = background;
60
+ }
61
+ } else if (container.__background && nextHasGraphics) {
62
+ const needsRedraw = prevBgColor !== nextBgColor || prevBgAlpha !== nextBgAlpha || prevWidth !== nextWidth || prevHeight !== nextHeight || prevCornerRadius !== nextCornerRadius || prevBorderWidth !== nextBorderWidth || prevBorderColor !== nextBorderColor || prevBorderAlpha !== nextBorderAlpha || borderChanged;
63
+ if (needsRedraw) {
64
+ const oldBackground = container.__background;
65
+ const background = backgroundImage.createBackgroundImage(container.scene, next, nextWidth, nextHeight);
66
+ if (!background) return;
67
+ container.addAt(background, 0);
68
+ container.__background = background;
69
+ backgroundImage.destroyBackgroundImage(oldBackground);
70
+ }
71
+ }
72
+ const signalEffects = container.__signalEffects ?? /* @__PURE__ */ new Map();
73
+ container.__signalEffects = signalEffects;
74
+ const bgSignal = next.backgroundAlpha;
75
+ const prevBgClean = signalEffects.get("__bgAlpha");
76
+ if (prevBgClean) {
77
+ prevBgClean();
78
+ signalEffects.delete("__bgAlpha");
79
+ }
80
+ if (bgSignal !== void 0 && jsxCore.isAnimatedSignal(bgSignal)) {
81
+ const cleanup = signalsCore.effect(() => {
82
+ if (!container.__background) return;
83
+ container.__background.alpha = Math.max(0, Math.min(1, bgSignal.value));
84
+ });
85
+ signalEffects.set("__bgAlpha", cleanup);
86
+ }
87
+ }
88
+ exports.applyBackgroundProps = applyBackgroundProps;
89
+ //# sourceMappingURL=applyBackground.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBackground.cjs","sources":["../../../src/components/appliers/applyBackground.ts"],"sourcesContent":["/**\n * Shared property appliers for component patching\n * These functions avoid code duplication when updating node properties\n */\nimport { isAnimatedSignal } from '@number10/jsx-core'\nimport { effect } from '@preact/signals-core'\nimport * as Phaser from 'phaser'\nimport type { BackgroundProps, LayoutProps } from '../../core-props'\nimport {\n createBackgroundImage,\n destroyBackgroundImage,\n type BackgroundImage,\n} from '../backgroundImage'\n\n/**\n * Unwrap an Animatable<number> to a plain number.\n */\nfunction unwrapAlpha(v: unknown): number {\n if (v === undefined) return 1\n return (isAnimatedSignal(v) ? v.value : v) as number\n}\n\n/**\n * Applies background properties (color, alpha, corner radius, border)\n * Handles adding, removing, and updating background graphics on containers\n * @param container - Phaser Container with potential background\n * @param prev - Previous props\n * @param next - New props\n */\nexport function applyBackgroundProps(\n container: Phaser.GameObjects.Container & {\n __background?: BackgroundImage\n __getLayoutSize?: () => { width: number; height: number }\n },\n prev: Partial<BackgroundProps & LayoutProps>,\n next: Partial<BackgroundProps & LayoutProps>\n): void {\n const prevBgColor = prev.backgroundColor\n const nextBgColor = next.backgroundColor\n const prevBgAlpha = unwrapAlpha(prev.backgroundAlpha)\n const nextBgAlpha = unwrapAlpha(next.backgroundAlpha)\n\n // Get actual layout size if available, fall back to props\n let prevWidth = typeof prev.width === 'number' ? prev.width : 100\n let prevHeight = typeof prev.height === 'number' ? prev.height : 100\n let nextWidth = typeof next.width === 'number' ? next.width : 100\n let nextHeight = typeof next.height === 'number' ? next.height : 100\n\n // Use actual layout size if available (for auto-sized or calculated dimensions)\n if (container.__getLayoutSize) {\n const layoutSize = container.__getLayoutSize()\n prevWidth = layoutSize.width\n prevHeight = layoutSize.height\n nextWidth = layoutSize.width\n nextHeight = layoutSize.height\n }\n\n const prevCornerRadius = prev.cornerRadius ?? 0\n const nextCornerRadius = next.cornerRadius ?? 0\n const prevBorderColor = prev.borderColor\n const nextBorderColor = next.borderColor\n const prevBorderWidth = prev.borderWidth ?? 0\n const nextBorderWidth = next.borderWidth ?? 0\n const prevBorderAlpha = unwrapAlpha(prev.borderAlpha)\n const nextBorderAlpha = unwrapAlpha(next.borderAlpha)\n\n // BorderPropsV2 support: check if border object changed\n const prevBorder = prev.border\n const nextBorder = next.border\n const borderChanged = JSON.stringify(prevBorder) !== JSON.stringify(nextBorder)\n const hasAdvancedBorder = (b: typeof nextBorder): boolean => {\n if (!b) return false\n if (typeof b.width === 'number') return b.width > 0\n if (b.width)\n return (\n (b.width.top ?? 0) > 0 ||\n (b.width.right ?? 0) > 0 ||\n (b.width.bottom ?? 0) > 0 ||\n (b.width.left ?? 0) > 0\n )\n return false\n }\n\n const prevHasBorder = prevBorderWidth > 0 && prevBorderColor !== undefined\n const nextHasBorder = nextBorderWidth > 0 && nextBorderColor !== undefined\n const prevHasGraphics =\n prevBgColor !== undefined || prevHasBorder || hasAdvancedBorder(prevBorder)\n const nextHasGraphics =\n nextBgColor !== undefined || nextHasBorder || hasAdvancedBorder(nextBorder)\n\n if (prevHasGraphics && !nextHasGraphics) {\n if (container.__background) {\n destroyBackgroundImage(container.__background)\n delete container.__background\n }\n } else if (!prevHasGraphics && nextHasGraphics) {\n if (container.scene) {\n const background = createBackgroundImage(container.scene, next, nextWidth, nextHeight)\n\n if (!background) return\n\n container.addAt(background, 0)\n container.__background = background\n }\n } else if (container.__background && nextHasGraphics) {\n const needsRedraw =\n prevBgColor !== nextBgColor ||\n prevBgAlpha !== nextBgAlpha ||\n prevWidth !== nextWidth ||\n prevHeight !== nextHeight ||\n prevCornerRadius !== nextCornerRadius ||\n prevBorderWidth !== nextBorderWidth ||\n prevBorderColor !== nextBorderColor ||\n prevBorderAlpha !== nextBorderAlpha ||\n borderChanged\n\n if (needsRedraw) {\n const oldBackground = container.__background\n const background = createBackgroundImage(container.scene, next, nextWidth, nextHeight)\n\n if (!background) return\n\n container.addAt(background, 0)\n container.__background = background\n destroyBackgroundImage(oldBackground)\n }\n }\n\n // Subscribe to animated backgroundAlpha so the background updates live\n // without VDOM re-renders.\n const signalEffects =\n (container as unknown as { __signalEffects?: Map<string, () => void> }).__signalEffects ??\n new Map()\n ;(container as unknown as { __signalEffects?: Map<string, () => void> }).__signalEffects =\n signalEffects\n\n const bgSignal = next.backgroundAlpha\n const prevBgClean = signalEffects.get('__bgAlpha')\n if (prevBgClean) {\n prevBgClean()\n signalEffects.delete('__bgAlpha')\n }\n if (bgSignal !== undefined && isAnimatedSignal(bgSignal)) {\n const cleanup = effect(() => {\n if (!container.__background) return\n container.__background.alpha = Math.max(0, Math.min(1, bgSignal.value as number))\n })\n signalEffects.set('__bgAlpha', cleanup)\n }\n}\n"],"names":["isAnimatedSignal","destroyBackgroundImage","createBackgroundImage","effect"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BackgroundProps, LayoutProps } from '../../core-props';
2
+ import { BackgroundImage } from '../backgroundImage';
3
+ import * as Phaser from 'phaser';
4
+ /**
5
+ * Applies background properties (color, alpha, corner radius, border)
6
+ * Handles adding, removing, and updating background graphics on containers
7
+ * @param container - Phaser Container with potential background
8
+ * @param prev - Previous props
9
+ * @param next - New props
10
+ */
11
+ export declare function applyBackgroundProps(container: Phaser.GameObjects.Container & {
12
+ __background?: BackgroundImage;
13
+ __getLayoutSize?: () => {
14
+ width: number;
15
+ height: number;
16
+ };
17
+ }, prev: Partial<BackgroundProps & LayoutProps>, next: Partial<BackgroundProps & LayoutProps>): void;
18
+ //# sourceMappingURL=applyBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBackground.d.ts","sourceRoot":"","sources":["../../../src/components/appliers/applyBackground.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAU3B;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG;IACxC,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,eAAe,CAAC,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1D,EACD,IAAI,EAAE,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,EAC5C,IAAI,EAAE,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,GAC3C,IAAI,CAiHN"}
@@ -0,0 +1,89 @@
1
+ import { isAnimatedSignal } from "@number10/jsx-core";
2
+ import { effect } from "@preact/signals-core";
3
+ import "phaser";
4
+ import { destroyBackgroundImage, createBackgroundImage } from "../backgroundImage.js";
5
+ function unwrapAlpha(v) {
6
+ if (v === void 0) return 1;
7
+ return isAnimatedSignal(v) ? v.value : v;
8
+ }
9
+ function applyBackgroundProps(container, prev, next) {
10
+ const prevBgColor = prev.backgroundColor;
11
+ const nextBgColor = next.backgroundColor;
12
+ const prevBgAlpha = unwrapAlpha(prev.backgroundAlpha);
13
+ const nextBgAlpha = unwrapAlpha(next.backgroundAlpha);
14
+ let prevWidth = typeof prev.width === "number" ? prev.width : 100;
15
+ let prevHeight = typeof prev.height === "number" ? prev.height : 100;
16
+ let nextWidth = typeof next.width === "number" ? next.width : 100;
17
+ let nextHeight = typeof next.height === "number" ? next.height : 100;
18
+ if (container.__getLayoutSize) {
19
+ const layoutSize = container.__getLayoutSize();
20
+ prevWidth = layoutSize.width;
21
+ prevHeight = layoutSize.height;
22
+ nextWidth = layoutSize.width;
23
+ nextHeight = layoutSize.height;
24
+ }
25
+ const prevCornerRadius = prev.cornerRadius ?? 0;
26
+ const nextCornerRadius = next.cornerRadius ?? 0;
27
+ const prevBorderColor = prev.borderColor;
28
+ const nextBorderColor = next.borderColor;
29
+ const prevBorderWidth = prev.borderWidth ?? 0;
30
+ const nextBorderWidth = next.borderWidth ?? 0;
31
+ const prevBorderAlpha = unwrapAlpha(prev.borderAlpha);
32
+ const nextBorderAlpha = unwrapAlpha(next.borderAlpha);
33
+ const prevBorder = prev.border;
34
+ const nextBorder = next.border;
35
+ const borderChanged = JSON.stringify(prevBorder) !== JSON.stringify(nextBorder);
36
+ const hasAdvancedBorder = (b) => {
37
+ if (!b) return false;
38
+ if (typeof b.width === "number") return b.width > 0;
39
+ if (b.width)
40
+ return (b.width.top ?? 0) > 0 || (b.width.right ?? 0) > 0 || (b.width.bottom ?? 0) > 0 || (b.width.left ?? 0) > 0;
41
+ return false;
42
+ };
43
+ const prevHasBorder = prevBorderWidth > 0 && prevBorderColor !== void 0;
44
+ const nextHasBorder = nextBorderWidth > 0 && nextBorderColor !== void 0;
45
+ const prevHasGraphics = prevBgColor !== void 0 || prevHasBorder || hasAdvancedBorder(prevBorder);
46
+ const nextHasGraphics = nextBgColor !== void 0 || nextHasBorder || hasAdvancedBorder(nextBorder);
47
+ if (prevHasGraphics && !nextHasGraphics) {
48
+ if (container.__background) {
49
+ destroyBackgroundImage(container.__background);
50
+ delete container.__background;
51
+ }
52
+ } else if (!prevHasGraphics && nextHasGraphics) {
53
+ if (container.scene) {
54
+ const background = createBackgroundImage(container.scene, next, nextWidth, nextHeight);
55
+ if (!background) return;
56
+ container.addAt(background, 0);
57
+ container.__background = background;
58
+ }
59
+ } else if (container.__background && nextHasGraphics) {
60
+ const needsRedraw = prevBgColor !== nextBgColor || prevBgAlpha !== nextBgAlpha || prevWidth !== nextWidth || prevHeight !== nextHeight || prevCornerRadius !== nextCornerRadius || prevBorderWidth !== nextBorderWidth || prevBorderColor !== nextBorderColor || prevBorderAlpha !== nextBorderAlpha || borderChanged;
61
+ if (needsRedraw) {
62
+ const oldBackground = container.__background;
63
+ const background = createBackgroundImage(container.scene, next, nextWidth, nextHeight);
64
+ if (!background) return;
65
+ container.addAt(background, 0);
66
+ container.__background = background;
67
+ destroyBackgroundImage(oldBackground);
68
+ }
69
+ }
70
+ const signalEffects = container.__signalEffects ?? /* @__PURE__ */ new Map();
71
+ container.__signalEffects = signalEffects;
72
+ const bgSignal = next.backgroundAlpha;
73
+ const prevBgClean = signalEffects.get("__bgAlpha");
74
+ if (prevBgClean) {
75
+ prevBgClean();
76
+ signalEffects.delete("__bgAlpha");
77
+ }
78
+ if (bgSignal !== void 0 && isAnimatedSignal(bgSignal)) {
79
+ const cleanup = effect(() => {
80
+ if (!container.__background) return;
81
+ container.__background.alpha = Math.max(0, Math.min(1, bgSignal.value));
82
+ });
83
+ signalEffects.set("__bgAlpha", cleanup);
84
+ }
85
+ }
86
+ export {
87
+ applyBackgroundProps
88
+ };
89
+ //# sourceMappingURL=applyBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBackground.js","sources":["../../../src/components/appliers/applyBackground.ts"],"sourcesContent":["/**\n * Shared property appliers for component patching\n * These functions avoid code duplication when updating node properties\n */\nimport { isAnimatedSignal } from '@number10/jsx-core'\nimport { effect } from '@preact/signals-core'\nimport * as Phaser from 'phaser'\nimport type { BackgroundProps, LayoutProps } from '../../core-props'\nimport {\n createBackgroundImage,\n destroyBackgroundImage,\n type BackgroundImage,\n} from '../backgroundImage'\n\n/**\n * Unwrap an Animatable<number> to a plain number.\n */\nfunction unwrapAlpha(v: unknown): number {\n if (v === undefined) return 1\n return (isAnimatedSignal(v) ? v.value : v) as number\n}\n\n/**\n * Applies background properties (color, alpha, corner radius, border)\n * Handles adding, removing, and updating background graphics on containers\n * @param container - Phaser Container with potential background\n * @param prev - Previous props\n * @param next - New props\n */\nexport function applyBackgroundProps(\n container: Phaser.GameObjects.Container & {\n __background?: BackgroundImage\n __getLayoutSize?: () => { width: number; height: number }\n },\n prev: Partial<BackgroundProps & LayoutProps>,\n next: Partial<BackgroundProps & LayoutProps>\n): void {\n const prevBgColor = prev.backgroundColor\n const nextBgColor = next.backgroundColor\n const prevBgAlpha = unwrapAlpha(prev.backgroundAlpha)\n const nextBgAlpha = unwrapAlpha(next.backgroundAlpha)\n\n // Get actual layout size if available, fall back to props\n let prevWidth = typeof prev.width === 'number' ? prev.width : 100\n let prevHeight = typeof prev.height === 'number' ? prev.height : 100\n let nextWidth = typeof next.width === 'number' ? next.width : 100\n let nextHeight = typeof next.height === 'number' ? next.height : 100\n\n // Use actual layout size if available (for auto-sized or calculated dimensions)\n if (container.__getLayoutSize) {\n const layoutSize = container.__getLayoutSize()\n prevWidth = layoutSize.width\n prevHeight = layoutSize.height\n nextWidth = layoutSize.width\n nextHeight = layoutSize.height\n }\n\n const prevCornerRadius = prev.cornerRadius ?? 0\n const nextCornerRadius = next.cornerRadius ?? 0\n const prevBorderColor = prev.borderColor\n const nextBorderColor = next.borderColor\n const prevBorderWidth = prev.borderWidth ?? 0\n const nextBorderWidth = next.borderWidth ?? 0\n const prevBorderAlpha = unwrapAlpha(prev.borderAlpha)\n const nextBorderAlpha = unwrapAlpha(next.borderAlpha)\n\n // BorderPropsV2 support: check if border object changed\n const prevBorder = prev.border\n const nextBorder = next.border\n const borderChanged = JSON.stringify(prevBorder) !== JSON.stringify(nextBorder)\n const hasAdvancedBorder = (b: typeof nextBorder): boolean => {\n if (!b) return false\n if (typeof b.width === 'number') return b.width > 0\n if (b.width)\n return (\n (b.width.top ?? 0) > 0 ||\n (b.width.right ?? 0) > 0 ||\n (b.width.bottom ?? 0) > 0 ||\n (b.width.left ?? 0) > 0\n )\n return false\n }\n\n const prevHasBorder = prevBorderWidth > 0 && prevBorderColor !== undefined\n const nextHasBorder = nextBorderWidth > 0 && nextBorderColor !== undefined\n const prevHasGraphics =\n prevBgColor !== undefined || prevHasBorder || hasAdvancedBorder(prevBorder)\n const nextHasGraphics =\n nextBgColor !== undefined || nextHasBorder || hasAdvancedBorder(nextBorder)\n\n if (prevHasGraphics && !nextHasGraphics) {\n if (container.__background) {\n destroyBackgroundImage(container.__background)\n delete container.__background\n }\n } else if (!prevHasGraphics && nextHasGraphics) {\n if (container.scene) {\n const background = createBackgroundImage(container.scene, next, nextWidth, nextHeight)\n\n if (!background) return\n\n container.addAt(background, 0)\n container.__background = background\n }\n } else if (container.__background && nextHasGraphics) {\n const needsRedraw =\n prevBgColor !== nextBgColor ||\n prevBgAlpha !== nextBgAlpha ||\n prevWidth !== nextWidth ||\n prevHeight !== nextHeight ||\n prevCornerRadius !== nextCornerRadius ||\n prevBorderWidth !== nextBorderWidth ||\n prevBorderColor !== nextBorderColor ||\n prevBorderAlpha !== nextBorderAlpha ||\n borderChanged\n\n if (needsRedraw) {\n const oldBackground = container.__background\n const background = createBackgroundImage(container.scene, next, nextWidth, nextHeight)\n\n if (!background) return\n\n container.addAt(background, 0)\n container.__background = background\n destroyBackgroundImage(oldBackground)\n }\n }\n\n // Subscribe to animated backgroundAlpha so the background updates live\n // without VDOM re-renders.\n const signalEffects =\n (container as unknown as { __signalEffects?: Map<string, () => void> }).__signalEffects ??\n new Map()\n ;(container as unknown as { __signalEffects?: Map<string, () => void> }).__signalEffects =\n signalEffects\n\n const bgSignal = next.backgroundAlpha\n const prevBgClean = signalEffects.get('__bgAlpha')\n if (prevBgClean) {\n prevBgClean()\n signalEffects.delete('__bgAlpha')\n }\n if (bgSignal !== undefined && isAnimatedSignal(bgSignal)) {\n const cleanup = effect(() => {\n if (!container.__background) return\n container.__background.alpha = Math.max(0, Math.min(1, bgSignal.value as number))\n })\n signalEffects.set('__bgAlpha', cleanup)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Phaser = require("phaser");
4
+ const gestureManager = require("../../gestures/gesture-manager.cjs");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const Phaser__namespace = /* @__PURE__ */ _interopNamespaceDefault(Phaser);
22
+ function applyGesturesProps(scene, container, prev, next) {
23
+ if (!scene || !scene.sys || !scene.data) {
24
+ console.warn("applyGesturesProps: Invalid scene or scene not initialized");
25
+ return;
26
+ }
27
+ if (scene.sys.game === null) {
28
+ return;
29
+ }
30
+ const hasAnyGesture = !!(next.onTouch || next.onTouchOutside || next.onTouchMove || next.onDoubleTap || next.onLongPress || next.onHoverStart || next.onHoverEnd || next.onWheel);
31
+ const hadAnyGesture = !!(prev.onTouch || prev.onTouchOutside || prev.onTouchMove || prev.onDoubleTap || prev.onLongPress || prev.onHoverStart || prev.onHoverEnd || prev.onWheel);
32
+ const prevEnabled = hadAnyGesture && prev.enableGestures !== false;
33
+ const nextEnabled = hasAnyGesture && next.enableGestures !== false;
34
+ const manager = gestureManager.getGestureManager(scene);
35
+ if (!prevEnabled && nextEnabled && hasAnyGesture) {
36
+ const containerWithLayout = container;
37
+ const { width, height } = containerWithLayout.__getLayoutSize ? containerWithLayout.__getLayoutSize() : (() => {
38
+ const bounds = container.getBounds();
39
+ return { width: bounds.width || 100, height: bounds.height || 100 };
40
+ })();
41
+ const hitArea = new Phaser__namespace.Geom.Rectangle(0, 0, width, height);
42
+ const callbacks = {};
43
+ if (next.onTouch) callbacks.onTouch = next.onTouch;
44
+ if (next.onTouchOutside) callbacks.onTouchOutside = next.onTouchOutside;
45
+ if (next.onTouchMove) callbacks.onTouchMove = next.onTouchMove;
46
+ if (next.onDoubleTap) callbacks.onDoubleTap = next.onDoubleTap;
47
+ if (next.onLongPress) callbacks.onLongPress = next.onLongPress;
48
+ if (next.onHoverStart) callbacks.onHoverStart = next.onHoverStart;
49
+ if (next.onHoverEnd) callbacks.onHoverEnd = next.onHoverEnd;
50
+ if (next.onWheel) callbacks.onWheel = next.onWheel;
51
+ const config = {};
52
+ if (next.longPressDuration !== void 0) config.longPressDuration = next.longPressDuration;
53
+ if (next.doubleTapDelay !== void 0) config.doubleTapDelay = next.doubleTapDelay;
54
+ manager.registerContainer(container, callbacks, hitArea, config);
55
+ return;
56
+ }
57
+ if (prevEnabled && (!nextEnabled || !hasAnyGesture)) {
58
+ manager.unregisterContainer(container);
59
+ return;
60
+ }
61
+ if (nextEnabled && hasAnyGesture) {
62
+ const callbacksChanged = prev.onTouch !== next.onTouch || prev.onTouchOutside !== next.onTouchOutside || prev.onTouchMove !== next.onTouchMove || prev.onDoubleTap !== next.onDoubleTap || prev.onLongPress !== next.onLongPress || prev.onHoverStart !== next.onHoverStart || prev.onHoverEnd !== next.onHoverEnd || prev.onWheel !== next.onWheel;
63
+ if (callbacksChanged) {
64
+ const callbacks = {};
65
+ if (next.onTouch) callbacks.onTouch = next.onTouch;
66
+ if (next.onTouchOutside) callbacks.onTouchOutside = next.onTouchOutside;
67
+ if (next.onTouchMove) callbacks.onTouchMove = next.onTouchMove;
68
+ if (next.onDoubleTap) callbacks.onDoubleTap = next.onDoubleTap;
69
+ if (next.onLongPress) callbacks.onLongPress = next.onLongPress;
70
+ if (next.onHoverStart) callbacks.onHoverStart = next.onHoverStart;
71
+ if (next.onHoverEnd) callbacks.onHoverEnd = next.onHoverEnd;
72
+ if (next.onWheel) callbacks.onWheel = next.onWheel;
73
+ manager.updateCallbacks(container, callbacks);
74
+ }
75
+ const containerWithLayout = container;
76
+ const { width, height } = containerWithLayout.__getLayoutSize ? containerWithLayout.__getLayoutSize() : (() => {
77
+ const bounds = container.getBounds();
78
+ return { width: bounds.width || 100, height: bounds.height || 100 };
79
+ })();
80
+ const hitArea = new Phaser__namespace.Geom.Rectangle(0, 0, width, height);
81
+ manager.updateHitArea(container, hitArea);
82
+ }
83
+ }
84
+ exports.applyGesturesProps = applyGesturesProps;
85
+ //# sourceMappingURL=applyGestures.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyGestures.cjs","sources":["../../../src/components/appliers/applyGestures.ts"],"sourcesContent":["/**\n * Gesture property appliers for component patching\n * Updates gesture registration when props change\n */\nimport type { LayoutSize } from '@number10/jsx-core'\nimport * as Phaser from 'phaser'\nimport type { GestureProps, LayoutProps } from '../../core-props'\nimport { getGestureManager } from '../../gestures/gesture-manager'\nimport type { GestureCallbacks } from '../../gestures/gesture-types'\n\n/**\n * Applies gesture properties when props change\n * Handles enabling/disabling gestures, updating callbacks, and hit area changes\n * @param scene - Scene containing the gesture manager\n * @param container - Phaser Container to update gestures on\n * @param prev - Previous props\n * @param next - New props\n */\nexport function applyGesturesProps(\n scene: Phaser.Scene,\n container: Phaser.GameObjects.Container,\n prev: Partial<GestureProps & LayoutProps>,\n next: Partial<GestureProps & LayoutProps>\n): void {\n // Safety check: ensure scene is valid and not destroyed\n // Note: We skip isActive() check because multiple scenes can coexist (e.g., in docs-site)\n // where only one is \"active\" at a time, but all need functional gesture management\n if (!scene || !scene.sys || !scene.data) {\n console.warn('applyGesturesProps: Invalid scene or scene not initialized')\n return\n }\n\n // Only skip if scene's game instance is null (scene being destroyed)\n if (scene.sys.game === null) {\n return\n }\n\n const hasAnyGesture = !!(\n next.onTouch ||\n next.onTouchOutside ||\n next.onTouchMove ||\n next.onDoubleTap ||\n next.onLongPress ||\n next.onHoverStart ||\n next.onHoverEnd ||\n next.onWheel\n )\n const hadAnyGesture = !!(\n prev.onTouch ||\n prev.onTouchOutside ||\n prev.onTouchMove ||\n prev.onDoubleTap ||\n prev.onLongPress ||\n prev.onHoverStart ||\n prev.onHoverEnd ||\n prev.onWheel\n )\n\n // Auto-enable if callbacks present, unless explicitly disabled\n const prevEnabled = hadAnyGesture && prev.enableGestures !== false\n const nextEnabled = hasAnyGesture && next.enableGestures !== false\n\n const manager = getGestureManager(scene)\n\n // Case 1: Gestures newly enabled\n if (!prevEnabled && nextEnabled && hasAnyGesture) {\n // Register for the first time\n // Use __getLayoutSize for actual calculated dimensions\n const containerWithLayout = container as typeof container & {\n __getLayoutSize?: () => LayoutSize\n }\n\n const { width, height } = containerWithLayout.__getLayoutSize\n ? containerWithLayout.__getLayoutSize()\n : (() => {\n const bounds = container.getBounds()\n return { width: bounds.width || 100, height: bounds.height || 100 }\n })()\n\n const hitArea = new Phaser.Geom.Rectangle(0, 0, width, height)\n\n const callbacks: GestureCallbacks = {}\n if (next.onTouch) callbacks.onTouch = next.onTouch\n if (next.onTouchOutside) callbacks.onTouchOutside = next.onTouchOutside\n if (next.onTouchMove) callbacks.onTouchMove = next.onTouchMove\n if (next.onDoubleTap) callbacks.onDoubleTap = next.onDoubleTap\n if (next.onLongPress) callbacks.onLongPress = next.onLongPress\n if (next.onHoverStart) callbacks.onHoverStart = next.onHoverStart\n if (next.onHoverEnd) callbacks.onHoverEnd = next.onHoverEnd\n if (next.onWheel) callbacks.onWheel = next.onWheel\n\n const config: { longPressDuration?: number; doubleTapDelay?: number } = {}\n if (next.longPressDuration !== undefined) config.longPressDuration = next.longPressDuration\n if (next.doubleTapDelay !== undefined) config.doubleTapDelay = next.doubleTapDelay\n\n manager.registerContainer(container, callbacks, hitArea, config)\n return\n }\n\n // Case 2: Gestures disabled or no callbacks\n if (prevEnabled && (!nextEnabled || !hasAnyGesture)) {\n manager.unregisterContainer(container)\n return\n }\n\n // Case 3: Gestures still enabled, update callbacks/hit area\n if (nextEnabled && hasAnyGesture) {\n // Update callbacks if any changed\n const callbacksChanged =\n prev.onTouch !== next.onTouch ||\n prev.onTouchOutside !== next.onTouchOutside ||\n prev.onTouchMove !== next.onTouchMove ||\n prev.onDoubleTap !== next.onDoubleTap ||\n prev.onLongPress !== next.onLongPress ||\n prev.onHoverStart !== next.onHoverStart ||\n prev.onHoverEnd !== next.onHoverEnd ||\n prev.onWheel !== next.onWheel\n\n if (callbacksChanged) {\n const callbacks: GestureCallbacks = {}\n if (next.onTouch) callbacks.onTouch = next.onTouch\n if (next.onTouchOutside) callbacks.onTouchOutside = next.onTouchOutside\n if (next.onTouchMove) callbacks.onTouchMove = next.onTouchMove\n if (next.onDoubleTap) callbacks.onDoubleTap = next.onDoubleTap\n if (next.onLongPress) callbacks.onLongPress = next.onLongPress\n if (next.onHoverStart) callbacks.onHoverStart = next.onHoverStart\n if (next.onHoverEnd) callbacks.onHoverEnd = next.onHoverEnd\n if (next.onWheel) callbacks.onWheel = next.onWheel\n\n manager.updateCallbacks(container, callbacks)\n }\n\n // Always update hit area when gestures are enabled\n // This ensures animated size changes (overlayHeight.value) are reflected\n // Use __getLayoutSize for actual calculated dimensions\n const containerWithLayout = container as typeof container & {\n __getLayoutSize?: () => LayoutSize\n }\n\n const { width, height } = containerWithLayout.__getLayoutSize\n ? containerWithLayout.__getLayoutSize()\n : (() => {\n const bounds = container.getBounds()\n return { width: bounds.width || 100, height: bounds.height || 100 }\n })()\n\n const hitArea = new Phaser.Geom.Rectangle(0, 0, width, height)\n\n manager.updateHitArea(container, hitArea)\n }\n}\n"],"names":["getGestureManager","Phaser"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { GestureProps, LayoutProps } from '../../core-props';
2
+ import * as Phaser from 'phaser';
3
+ /**
4
+ * Applies gesture properties when props change
5
+ * Handles enabling/disabling gestures, updating callbacks, and hit area changes
6
+ * @param scene - Scene containing the gesture manager
7
+ * @param container - Phaser Container to update gestures on
8
+ * @param prev - Previous props
9
+ * @param next - New props
10
+ */
11
+ export declare function applyGesturesProps(scene: Phaser.Scene, container: Phaser.GameObjects.Container, prev: Partial<GestureProps & LayoutProps>, next: Partial<GestureProps & LayoutProps>): void;
12
+ //# sourceMappingURL=applyGestures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyGestures.d.ts","sourceRoot":"","sources":["../../../src/components/appliers/applyGestures.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAIjE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EACvC,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,EACzC,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,GACxC,IAAI,CA+HN"}