@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,42 @@
1
+ import { applyNineSliceProps } from "../appliers/applyNineSlice.js";
2
+ import { applyNineSliceLayout } from "../appliers/applyNineSliceLayout.js";
3
+ import { applyPhaserProps } from "../appliers/applyPhaser.js";
4
+ import { applyTransformProps } from "../appliers/applyTransform.js";
5
+ import { createNineSliceLayout } from "../creators/createNineSliceLayout.js";
6
+ import { createPhaser } from "../creators/createPhaser.js";
7
+ import { resolveAnimatableNumber, createTransform } from "../creators/createTransform.js";
8
+ const nineSliceCreator = (scene, props) => {
9
+ const initialWidth = typeof props.width === "number" ? props.width : 64;
10
+ const initialHeight = typeof props.height === "number" ? props.height : 64;
11
+ const nineSlice = scene.add.nineslice(
12
+ resolveAnimatableNumber(props.x) ?? 0,
13
+ resolveAnimatableNumber(props.y) ?? 0,
14
+ props.texture,
15
+ props.frame,
16
+ initialWidth,
17
+ initialHeight,
18
+ props.leftWidth,
19
+ props.rightWidth,
20
+ props.topHeight,
21
+ props.bottomHeight
22
+ );
23
+ nineSlice.setOrigin(0, 0);
24
+ if (props.tint !== void 0) {
25
+ nineSlice.setTint(props.tint);
26
+ }
27
+ createTransform(nineSlice, props);
28
+ createPhaser(nineSlice, props);
29
+ createNineSliceLayout(nineSlice, props);
30
+ return nineSlice;
31
+ };
32
+ const nineSlicePatcher = (node, prev, next) => {
33
+ applyTransformProps(node, prev, next);
34
+ applyPhaserProps(node, prev, next);
35
+ applyNineSliceProps(node, prev, next);
36
+ applyNineSliceLayout(node, prev, next);
37
+ };
38
+ export {
39
+ nineSliceCreator,
40
+ nineSlicePatcher
41
+ };
42
+ //# sourceMappingURL=nineslice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nineslice.js","sources":["../../../src/components/primitives/nineslice.ts"],"sourcesContent":["/**\n * NineSlice component - Phaser NineSlice GameObject for scalable UI panels\n * Status: IMPLEMENTED ✅\n *\n * Design Overview:\n * ================\n *\n * 1. Component Role: SCALABLE UI PANELS\n * Purpose: Create resizable UI elements that preserve border/corner integrity\n * Phaser Type: Phaser.GameObjects.NineSlice (9-slice scaling)\n * Use Cases:\n * - Buttons with fixed corner radius\n * - Dialog boxes with preserved borders\n * - Progress bars with capped ends\n * - Panels that scale without distorting decorative edges\n *\n * 2. Nine-Slice Scaling Concept:\n * Texture divided into 9 regions:\n * ┌─────┬─────────┬─────┐\n * │ TL │ Top │ TR │ (corners + edges)\n * ├─────┼─────────┼─────┤\n * │Left │ Center │Right│ (center scales, edges stretch)\n * ├─────┼─────────┼─────┤\n * │ BL │ Bottom │ BR │ (corners stay fixed)\n * └─────┴─────────┴─────┘\n * Behavior:\n * - Corners: Never scale (preserve pixel-perfect)\n * - Edges: Stretch along one axis (top/bottom: horizontal, left/right: vertical)\n * - Center: Scales in both directions\n * Benefit: UI elements scale to any size without visual distortion\n *\n * 3. Three-Slice Mode (Optional):\n * Feature: Omit topHeight/bottomHeight for horizontal-only slicing\n * Use Case: Horizontal buttons, progress bars\n * Layout:\n * ┌─────┬─────────────────┬─────┐\n * │Left │ Center │Right│\n * └─────┴─────────────────┴─────┘\n * Props: Only leftWidth + rightWidth required\n *\n * 4. Headless Default: FALSE ✅\n * Decision: NineSlice participates in layout by default\n * Reasoning:\n * - NineSlice is a UI element (buttons, panels, containers)\n * - Should affect parent container dimensions\n * - Similar to View component (container semantics)\n * Use Cases:\n * - ✅ Layout-aware (default): Buttons, panels, dialogs, cards\n * - ❌ Headless (optional): Background overlays, decorative frames\n * Usage:\n * <NineSlice texture=\"panel\" leftWidth={16} rightWidth={16} width={200} height={100} />\n * <NineSlice texture=\"frame\" headless={true} /> // Decorative\n *\n * 5. Layout Size Provider:\n * Implementation: Uses explicit width/height (required props)\n * Reasoning:\n * - NineSlice requires explicit dimensions (Phaser constructor param)\n * - No auto-sizing (unlike Text)\n * - Dimensions always known and stable\n * __getLayoutSize:\n * return { width: nineSlice.width, height: nineSlice.height }\n * Note: getBounds() not needed (no rotation typically applied)\n *\n * 6. Slice Configuration:\n * Required Props:\n * - texture: string (texture key)\n * - leftWidth: number (pixels)\n * - rightWidth: number (pixels)\n * - width: number (total width)\n * - height: number (total height)\n * Optional Props:\n * - topHeight: number (9-slice mode, default: 0 for 3-slice)\n * - bottomHeight: number (9-slice mode, default: 0 for 3-slice)\n * - frame: string | number (texture atlas frame)\n * Validation:\n * - Width must be >= leftWidth + rightWidth\n * - Height must be >= topHeight + bottomHeight\n * - Slice widths/heights define source texture regions\n *\n * 7. Inner Bounds Feature:\n * Purpose: Calculate content area excluding slices\n * Use Case: Position children inside panel borders\n * Calculation:\n * innerBounds = {\n * x: leftWidth,\n * y: topHeight,\n * width: totalWidth - leftWidth - rightWidth,\n * height: totalHeight - topHeight - bottomHeight\n * }\n * Access:\n * const ref = useRef<NineSliceRef>(null)\n * <NineSlice ref={ref} ... />\n * console.log(ref.current?.innerBounds) // { x, y, width, height }\n * Pattern: Useful for padding-aware content positioning\n *\n * 8. Ref Extension:\n * Feature: NineSliceRef provides slice metadata\n * Properties:\n * - node: Phaser.GameObjects.NineSlice (the GameObject)\n * - leftWidth, rightWidth, topHeight, bottomHeight: Slice dimensions\n * - innerBounds: Content area calculation\n * Usage:\n * const panelRef = useRef<NineSliceRef>(null)\n * // Access slice info for child positioning\n * const { innerBounds } = panelRef.current\n *\n * 9. Common Patterns:\n * Button:\n * <NineSlice\n * texture=\"button\"\n * leftWidth={16} rightWidth={16}\n * topHeight={16} bottomHeight={16}\n * width={200} height={60}\n * >\n * <Text text=\"Click Me\" />\n * </NineSlice>\n * Dialog Box:\n * <NineSlice\n * texture=\"panel\"\n * leftWidth={32} rightWidth={32}\n * topHeight={32} bottomHeight={32}\n * width={400} height={300}\n * >\n * <View padding={32}> {/* Padding matches slice sizes * }\n * <Text text=\"Dialog Content\" />\n * </View>\n * </NineSlice>\n * Progress Bar (3-slice):\n * <NineSlice\n * texture=\"progressbar\"\n * leftWidth={8} rightWidth={8}\n * width={progress * 200} height={20}\n * />\n *\n * 10. Performance Considerations:\n * - Efficient rendering (single draw call per NineSlice)\n * - Texture atlases recommended (reduce texture switches)\n * - Scaling performance: No geometry regeneration needed\n * - Slice configuration: Calculated once on creation\n * - Dynamic resizing: Efficiently handled by Phaser\n *\n * 11. Known Limitations:\n * - Requires pre-designed 9-slice texture\n * - Slice dimensions must match source texture layout exactly\n * - Rotation not recommended (distorts slice alignment)\n * - Can't animate slice dimensions (only width/height)\n * - No rounded corner support (must be in texture)\n *\n * Implementation Status:\n * ======================\n * [✅] Phaser NineSlice creation with slice configuration\n * [✅] Transform props (position, scale, alpha, depth)\n * [✅] Layout system integration (__layoutProps, __getLayoutSize)\n * [✅] Width/height as layout props (explicit sizing)\n * [✅] Three-slice mode support (optional topHeight/bottomHeight)\n * [✅] NineSliceRef with innerBounds calculation\n * [✅] Slice dimension validation\n * [✅] Theme system integration\n * [✅] Dynamic resizing support (width/height patching)\n */\nimport type * as Phaser from 'phaser'\nimport type { LayoutProps, PhaserProps, TransformProps } from '../../core-props'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { PropsDefaultExtension } from '../../types'\nimport { applyNineSliceProps } from '../appliers/applyNineSlice'\nimport { applyNineSliceLayout } from '../appliers/applyNineSliceLayout'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createNineSliceLayout } from '../creators/createNineSliceLayout'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\n/**\n * Inner bounds of a NineSlice - the content area excluding slices\n */\nexport interface NineSliceInnerBounds {\n /**\n * X offset from left edge (equals leftWidth)\n */\n x: number\n /**\n * Y offset from top edge (equals topHeight)\n */\n y: number\n /**\n * Width of inner content area (totalWidth - leftWidth - rightWidth)\n */\n width: number\n /**\n * Height of inner content area (totalHeight - topHeight - bottomHeight)\n */\n height: number\n}\n\n/**\n * Extended NineSlice reference with slice information and inner bounds\n */\nexport interface NineSliceRef {\n /**\n * The underlying Phaser NineSlice GameObject\n */\n node: Phaser.GameObjects.NineSlice | null\n /**\n * Width of the left slice in pixels\n */\n leftWidth: number\n /**\n * Width of the right slice in pixels\n */\n rightWidth: number\n /**\n * Height of the top slice in pixels (0 for 3-slice mode)\n */\n topHeight: number\n /**\n * Height of the bottom slice in pixels (0 for 3-slice mode)\n */\n bottomHeight: number\n /**\n * Inner content bounds excluding slices\n * Useful for positioning content within the NineSlice\n */\n innerBounds: NineSliceInnerBounds\n}\n\n/**\n * NineSlice-specific properties for texture and slice configuration\n */\nexport interface NineSliceSpecificProps {\n /**\n * Texture key to use for the NineSlice\n */\n texture: string\n\n /**\n * Optional tint to apply to the NineSlice\n */\n tint?: number | undefined\n\n /**\n * Optional frame within the texture atlas\n */\n frame?: string | number\n\n /**\n * Width of the left slice (in pixels of source texture)\n */\n leftWidth: number\n\n /**\n * Width of the right slice (in pixels of source texture)\n */\n rightWidth: number\n\n /**\n * Height of the top slice (in pixels of source texture)\n * Optional - omit for 3-slice mode (horizontal only)\n */\n topHeight?: number\n\n /**\n * Height of the bottom slice (in pixels of source texture)\n * Optional - omit for 3-slice mode (horizontal only)\n */\n bottomHeight?: number\n}\n\n/**\n * Base props for NineSlice - composing shared prop groups\n * Note: No InteractionProps - interaction should be handled by parent View container\n */\nexport interface NineSliceBaseProps\n extends TransformProps, PhaserProps, LayoutProps, NineSliceSpecificProps {}\n\n/**\n * Props for NineSlice primitive - extends base props with JSX-specific props\n * Renamed to avoid conflict with custom NineSlice wrapper\n */\nexport interface NineSlicePrimitiveProps\n extends NineSliceBaseProps, PropsDefaultExtension<Phaser.GameObjects.NineSlice> {}\n\n/**\n * NineSlice creator - creates a Phaser NineSlice object\n */\nexport const nineSliceCreator: HostCreator<'NineSlice'> = (scene, props) => {\n // For width/height, use a small default that will be overridden by layout system\n // This prevents the NineSlice from being created with huge dimensions\n const initialWidth = typeof props.width === 'number' ? props.width : 64\n const initialHeight = typeof props.height === 'number' ? props.height : 64\n\n const nineSlice = scene.add.nineslice(\n resolveAnimatableNumber(props.x) ?? 0,\n resolveAnimatableNumber(props.y) ?? 0,\n props.texture,\n props.frame,\n initialWidth,\n initialHeight,\n props.leftWidth,\n props.rightWidth,\n props.topHeight,\n props.bottomHeight\n )\n nineSlice.setOrigin(0, 0) // Top-left origin for easier layout handling as it is in UI\n\n // Apply tint if provided\n if (props.tint !== undefined) {\n nineSlice.setTint(props.tint)\n }\n\n // Apply transform props (scale, rotation)\n createTransform(nineSlice, props)\n\n // Apply Phaser display props (alpha, depth, visible)\n createPhaser(nineSlice, props)\n\n // Setup layout system (props and size provider)\n createNineSliceLayout(nineSlice, props)\n\n return nineSlice\n}\n\n/**\n * NineSlice patcher - updates NineSlice properties\n */\nexport const nineSlicePatcher: HostPatcher<'NineSlice'> = (node, prev, next) => {\n // Apply transform props (position, rotation, scale)\n applyTransformProps(node, prev, next)\n\n // Apply Phaser display props (alpha, depth, visible)\n applyPhaserProps(node, prev, next)\n\n // Apply NineSlice-specific props (texture, frame, slice dimensions)\n applyNineSliceProps(node, prev, next)\n\n // Apply layout props and update size provider if needed\n applyNineSliceLayout(node, prev, next)\n}\n"],"names":[],"mappings":";;;;;;;AA4RO,MAAM,mBAA6C,CAAC,OAAO,UAAU;AAG1E,QAAM,eAAe,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ;AACrE,QAAM,gBAAgB,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAExE,QAAM,YAAY,MAAM,IAAI;AAAA,IAC1B,wBAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,wBAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAER,YAAU,UAAU,GAAG,CAAC;AAGxB,MAAI,MAAM,SAAS,QAAW;AAC5B,cAAU,QAAQ,MAAM,IAAI;AAAA,EAC9B;AAGA,kBAAgB,WAAW,KAAK;AAGhC,eAAa,WAAW,KAAK;AAG7B,wBAAsB,WAAW,KAAK;AAEtC,SAAO;AACT;AAKO,MAAM,mBAA6C,CAAC,MAAM,MAAM,SAAS;AAE9E,sBAAoB,MAAM,MAAM,IAAI;AAGpC,mBAAiB,MAAM,MAAM,IAAI;AAGjC,sBAAoB,MAAM,MAAM,IAAI;AAGpC,uBAAqB,MAAM,MAAM,IAAI;AACvC;"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const emitZone = require("../../particles/emit-zone.cjs");
4
+ const presetRegistry = require("../../particles/preset-registry.cjs");
5
+ const utils = require("../../particles/utils.cjs");
6
+ const applyParticles = require("../appliers/applyParticles.cjs");
7
+ const applyParticlesLayout = require("../appliers/applyParticlesLayout.cjs");
8
+ const applyPhaser = require("../appliers/applyPhaser.cjs");
9
+ const applyTransform = require("../appliers/applyTransform.cjs");
10
+ const createParticlesLayout = require("../creators/createParticlesLayout.cjs");
11
+ const createPhaser = require("../creators/createPhaser.cjs");
12
+ const createTransform = require("../creators/createTransform.cjs");
13
+ const particlesCreator = (scene, props) => {
14
+ const resolvedConfig = {
15
+ ...presetRegistry.resolveParticlePreset(props.preset, props.config)
16
+ };
17
+ const emitZoneProps = props.emitZone ?? props.zone;
18
+ const deathZoneProps = props.deathZones ?? props.excludeZones;
19
+ if (emitZoneProps) {
20
+ const emitZone$1 = emitZone.buildEmitZoneFromLayout(emitZoneProps, props.width, props.height);
21
+ if (emitZone$1) {
22
+ const configWithZone = resolvedConfig;
23
+ configWithZone.emitZone = emitZone$1;
24
+ }
25
+ }
26
+ const particles = scene.add.particles(
27
+ createTransform.resolveAnimatableNumber(props.x) ?? 0,
28
+ createTransform.resolveAnimatableNumber(props.y) ?? 0,
29
+ props.texture,
30
+ resolvedConfig
31
+ );
32
+ if (props.frame !== void 0) {
33
+ const configWithFrame = resolvedConfig;
34
+ configWithFrame.frame = props.frame;
35
+ if ("setTexture" in particles && particles.setTexture) {
36
+ particles.setTexture(props.texture, props.frame);
37
+ }
38
+ }
39
+ const emitter = utils.isParticleEmitter(particles) ? particles : utils.getFirstEmitter(particles);
40
+ if (!utils.isParticleEmitter(particles)) {
41
+ particles.__emitter = emitter;
42
+ }
43
+ if ("setOrigin" in particles && typeof particles.setOrigin === "function") {
44
+ particles.setOrigin(0, 0);
45
+ }
46
+ createTransform.createTransform(particles, props);
47
+ createPhaser.createPhaser(particles, props);
48
+ createParticlesLayout.createParticlesLayout(particles, props);
49
+ if (deathZoneProps && emitter) {
50
+ const deathZones = emitZone.buildDeathZonesFromLayout(
51
+ deathZoneProps,
52
+ props.width,
53
+ props.height,
54
+ particles
55
+ );
56
+ const combinedDeathZones = utils.mergeDeathZones(
57
+ resolvedConfig.deathZone,
58
+ deathZones
59
+ );
60
+ if (combinedDeathZones) {
61
+ utils.applyDeathZone(emitter, combinedDeathZones);
62
+ }
63
+ }
64
+ if (props.onReady) {
65
+ props.onReady(particles);
66
+ }
67
+ return particles;
68
+ };
69
+ const particlesPatcher = (node, prev, next) => {
70
+ applyTransform.applyTransformProps(node, prev, next);
71
+ applyPhaser.applyPhaserProps(node, prev, next);
72
+ applyParticles.applyParticlesProps(node, prev, next);
73
+ applyParticlesLayout.applyParticlesLayout(node, prev, next);
74
+ };
75
+ exports.particlesCreator = particlesCreator;
76
+ exports.particlesPatcher = particlesPatcher;
77
+ //# sourceMappingURL=particles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.cjs","sources":["../../../src/components/primitives/particles.ts"],"sourcesContent":["/**\n * Particles component - Phaser ParticleEmitterManager wrapper\n * Status: IMPLEMENTED ✅\n *\n * Design Overview:\n * ================\n * - Always headless (does not affect layout)\n * - Emits particles via a single emitter (configurable)\n * - Optional emit zone support (rect, circle, ellipse, line)\n */\nimport type { LayoutProps, PhaserProps, TransformProps } from '../../core-props'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { ParticleDeathZoneConfig, ParticleZoneConfig } from '../../particles/emit-zone'\nimport { buildDeathZonesFromLayout, buildEmitZoneFromLayout } from '../../particles/emit-zone'\nimport type { ParticleEmitterManagerLike, ParticlesHandle } from '../../particles/particle-types'\nimport type { ParticleEmitterConfig, ParticlePresetName } from '../../particles/preset-registry'\nimport { resolveParticlePreset } from '../../particles/preset-registry'\nimport {\n applyDeathZone,\n getFirstEmitter,\n isParticleEmitter,\n mergeDeathZones,\n} from '../../particles/utils'\nimport type { PropsDefaultExtension } from '../../types'\nimport { applyParticlesProps } from '../appliers/applyParticles'\nimport { applyParticlesLayout } from '../appliers/applyParticlesLayout'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createParticlesLayout } from '../creators/createParticlesLayout'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\n/**\n * Base props for Particles component\n */\nexport interface ParticlesBaseProps extends TransformProps, PhaserProps, LayoutProps {\n /** Texture key (loaded via Phaser's texture manager) */\n texture: string\n\n /** Optional frame from texture atlas or spritesheet */\n frame?: string | number\n\n /** Built-in preset name */\n preset?: ParticlePresetName\n\n /** Optional emitter config overrides */\n config?: ParticleEmitterConfig\n\n /** Optional emit zone: where particles are born */\n emitZone?: ParticleZoneConfig\n\n /**\n * Optional emit zone: where particles are born.\n * @deprecated Use emitZone.\n */\n zone?: ParticleZoneConfig\n\n /** Optional death zones: where particles are removed */\n deathZones?: ParticleDeathZoneConfig | ParticleDeathZoneConfig[] | undefined\n\n /**\n * Optional death zones: where particles are removed.\n * @deprecated Use deathZones.\n */\n excludeZones?: ParticleDeathZoneConfig | ParticleDeathZoneConfig[] | undefined\n}\n\n/**\n * Props for primitive Particles component (internal use only)\n */\nexport interface ParticlesPrimitiveProps\n extends ParticlesBaseProps, PropsDefaultExtension<ParticlesHandle> {}\n\n/**\n * Particles creator - creates a Phaser ParticleEmitterManager with a single emitter\n */\nexport const particlesCreator: HostCreator<'Particles'> = (scene, props) => {\n const resolvedConfig = {\n ...resolveParticlePreset(props.preset, props.config),\n } as ParticleEmitterConfig\n\n const emitZoneProps = props.emitZone ?? props.zone\n const deathZoneProps = props.deathZones ?? props.excludeZones\n\n if (emitZoneProps) {\n const emitZone = buildEmitZoneFromLayout(emitZoneProps, props.width, props.height)\n if (emitZone) {\n const configWithZone = resolvedConfig as unknown as { emitZone?: unknown }\n configWithZone.emitZone = emitZone\n }\n }\n\n // Don't set death zones yet - will be applied after transform\n\n const particles = scene.add.particles(\n resolveAnimatableNumber(props.x) ?? 0,\n resolveAnimatableNumber(props.y) ?? 0,\n props.texture,\n resolvedConfig\n ) as unknown as ParticlesHandle\n if (props.frame !== undefined) {\n const configWithFrame = resolvedConfig as unknown as { frame?: string | number }\n configWithFrame.frame = props.frame\n if ('setTexture' in particles && particles.setTexture) {\n particles.setTexture(props.texture, props.frame)\n }\n }\n\n const emitter = isParticleEmitter(particles)\n ? particles\n : getFirstEmitter(particles as ParticleEmitterManagerLike)\n\n if (!isParticleEmitter(particles)) {\n ;(particles as ParticleEmitterManagerLike).__emitter = emitter\n }\n\n // Set origin to (0, 0) for consistent coordinate system (top-left)\n if ('setOrigin' in particles && typeof particles.setOrigin === 'function') {\n particles.setOrigin(0, 0)\n }\n\n // Apply transform props\n createTransform(particles, props)\n\n // Apply Phaser display props (alpha, depth, visible)\n createPhaser(particles, props)\n\n // Setup layout system (headless)\n createParticlesLayout(particles, props)\n\n // Now apply death zones with container-relative coordinates\n if (deathZoneProps && emitter) {\n const deathZones = buildDeathZonesFromLayout(\n deathZoneProps,\n props.width,\n props.height,\n particles\n )\n const combinedDeathZones = mergeDeathZones(\n (resolvedConfig as unknown as { deathZone?: unknown }).deathZone,\n deathZones\n )\n if (combinedDeathZones) {\n applyDeathZone(emitter, combinedDeathZones as Parameters<typeof applyDeathZone>[1])\n }\n }\n\n // Call onReady callback if provided\n if (props.onReady) {\n props.onReady(particles)\n }\n\n return particles\n}\n\n/**\n * Particles patcher - updates ParticleEmitterManager properties\n */\nexport const particlesPatcher: HostPatcher<'Particles'> = (node, prev, next) => {\n // Apply transform props\n applyTransformProps(node, prev, next)\n\n // Apply Phaser display props\n applyPhaserProps(node, prev, next)\n\n // Apply particle-specific props\n applyParticlesProps(node, prev, next)\n\n // Apply layout props\n applyParticlesLayout(node, prev, next)\n}\n"],"names":["resolveParticlePreset","emitZone","buildEmitZoneFromLayout","resolveAnimatableNumber","isParticleEmitter","getFirstEmitter","createTransform","createPhaser","createParticlesLayout","buildDeathZonesFromLayout","mergeDeathZones","applyDeathZone","applyTransformProps","applyPhaserProps","applyParticlesProps","applyParticlesLayout"],"mappings":";;;;;;;;;;;;AA4EO,MAAM,mBAA6C,CAAC,OAAO,UAAU;AAC1E,QAAM,iBAAiB;AAAA,IACrB,GAAGA,qCAAsB,MAAM,QAAQ,MAAM,MAAM;AAAA,EAAA;AAGrD,QAAM,gBAAgB,MAAM,YAAY,MAAM;AAC9C,QAAM,iBAAiB,MAAM,cAAc,MAAM;AAEjD,MAAI,eAAe;AACjB,UAAMC,aAAWC,SAAAA,wBAAwB,eAAe,MAAM,OAAO,MAAM,MAAM;AACjF,QAAID,YAAU;AACZ,YAAM,iBAAiB;AACvB,qBAAe,WAAWA;AAAAA,IAC5B;AAAA,EACF;AAIA,QAAM,YAAY,MAAM,IAAI;AAAA,IAC1BE,wCAAwB,MAAM,CAAC,KAAK;AAAA,IACpCA,wCAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,MAAM;AAAA,IACN;AAAA,EAAA;AAEF,MAAI,MAAM,UAAU,QAAW;AAC7B,UAAM,kBAAkB;AACxB,oBAAgB,QAAQ,MAAM;AAC9B,QAAI,gBAAgB,aAAa,UAAU,YAAY;AACrD,gBAAU,WAAW,MAAM,SAAS,MAAM,KAAK;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,UAAUC,MAAAA,kBAAkB,SAAS,IACvC,YACAC,MAAAA,gBAAgB,SAAuC;AAE3D,MAAI,CAACD,MAAAA,kBAAkB,SAAS,GAAG;AAC/B,cAAyC,YAAY;AAAA,EACzD;AAGA,MAAI,eAAe,aAAa,OAAO,UAAU,cAAc,YAAY;AACzE,cAAU,UAAU,GAAG,CAAC;AAAA,EAC1B;AAGAE,kBAAAA,gBAAgB,WAAW,KAAK;AAGhCC,eAAAA,aAAa,WAAW,KAAK;AAG7BC,wBAAAA,sBAAsB,WAAW,KAAK;AAGtC,MAAI,kBAAkB,SAAS;AAC7B,UAAM,aAAaC,SAAAA;AAAAA,MACjB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IAAA;AAEF,UAAM,qBAAqBC,MAAAA;AAAAA,MACxB,eAAsD;AAAA,MACvD;AAAA,IAAA;AAEF,QAAI,oBAAoB;AACtBC,YAAAA,eAAe,SAAS,kBAA0D;AAAA,IACpF;AAAA,EACF;AAGA,MAAI,MAAM,SAAS;AACjB,UAAM,QAAQ,SAAS;AAAA,EACzB;AAEA,SAAO;AACT;AAKO,MAAM,mBAA6C,CAAC,MAAM,MAAM,SAAS;AAE9EC,qCAAoB,MAAM,MAAM,IAAI;AAGpCC,+BAAiB,MAAM,MAAM,IAAI;AAGjCC,qCAAoB,MAAM,MAAM,IAAI;AAGpCC,4CAAqB,MAAM,MAAM,IAAI;AACvC;;;"}
@@ -0,0 +1,47 @@
1
+ import { LayoutProps, PhaserProps, TransformProps } from '../../core-props';
2
+ import { HostCreator, HostPatcher } from '../../host';
3
+ import { ParticleDeathZoneConfig, ParticleZoneConfig } from '../../particles/emit-zone';
4
+ import { ParticlesHandle } from '../../particles/particle-types';
5
+ import { ParticleEmitterConfig, ParticlePresetName } from '../../particles/preset-registry';
6
+ import { PropsDefaultExtension } from '../../types';
7
+ /**
8
+ * Base props for Particles component
9
+ */
10
+ export interface ParticlesBaseProps extends TransformProps, PhaserProps, LayoutProps {
11
+ /** Texture key (loaded via Phaser's texture manager) */
12
+ texture: string;
13
+ /** Optional frame from texture atlas or spritesheet */
14
+ frame?: string | number;
15
+ /** Built-in preset name */
16
+ preset?: ParticlePresetName;
17
+ /** Optional emitter config overrides */
18
+ config?: ParticleEmitterConfig;
19
+ /** Optional emit zone: where particles are born */
20
+ emitZone?: ParticleZoneConfig;
21
+ /**
22
+ * Optional emit zone: where particles are born.
23
+ * @deprecated Use emitZone.
24
+ */
25
+ zone?: ParticleZoneConfig;
26
+ /** Optional death zones: where particles are removed */
27
+ deathZones?: ParticleDeathZoneConfig | ParticleDeathZoneConfig[] | undefined;
28
+ /**
29
+ * Optional death zones: where particles are removed.
30
+ * @deprecated Use deathZones.
31
+ */
32
+ excludeZones?: ParticleDeathZoneConfig | ParticleDeathZoneConfig[] | undefined;
33
+ }
34
+ /**
35
+ * Props for primitive Particles component (internal use only)
36
+ */
37
+ export interface ParticlesPrimitiveProps extends ParticlesBaseProps, PropsDefaultExtension<ParticlesHandle> {
38
+ }
39
+ /**
40
+ * Particles creator - creates a Phaser ParticleEmitterManager with a single emitter
41
+ */
42
+ export declare const particlesCreator: HostCreator<'Particles'>;
43
+ /**
44
+ * Particles patcher - updates ParticleEmitterManager properties
45
+ */
46
+ export declare const particlesPatcher: HostPatcher<'Particles'>;
47
+ //# sourceMappingURL=particles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/particles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE5F,OAAO,KAAK,EAA8B,eAAe,EAAE,MAAM,gCAAgC,CAAA;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAQhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AASxD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,EAAE,WAAW,EAAE,WAAW;IAClF,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAA;IAEf,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAE3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAE9B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B;;;OAGG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAA;IAEzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,SAAS,CAAA;IAE5E;;;OAGG;IACH,YAAY,CAAC,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,SAAS,CAAA;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,uBACf,SAAQ,kBAAkB,EAAE,qBAAqB,CAAC,eAAe,CAAC;CAAG;AAEvE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,WAAW,CA6ErD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,WAAW,CAYrD,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { buildEmitZoneFromLayout, buildDeathZonesFromLayout } from "../../particles/emit-zone.js";
2
+ import { resolveParticlePreset } from "../../particles/preset-registry.js";
3
+ import { isParticleEmitter, getFirstEmitter, mergeDeathZones, applyDeathZone } from "../../particles/utils.js";
4
+ import { applyParticlesProps } from "../appliers/applyParticles.js";
5
+ import { applyParticlesLayout } from "../appliers/applyParticlesLayout.js";
6
+ import { applyPhaserProps } from "../appliers/applyPhaser.js";
7
+ import { applyTransformProps } from "../appliers/applyTransform.js";
8
+ import { createParticlesLayout } from "../creators/createParticlesLayout.js";
9
+ import { createPhaser } from "../creators/createPhaser.js";
10
+ import { resolveAnimatableNumber, createTransform } from "../creators/createTransform.js";
11
+ const particlesCreator = (scene, props) => {
12
+ const resolvedConfig = {
13
+ ...resolveParticlePreset(props.preset, props.config)
14
+ };
15
+ const emitZoneProps = props.emitZone ?? props.zone;
16
+ const deathZoneProps = props.deathZones ?? props.excludeZones;
17
+ if (emitZoneProps) {
18
+ const emitZone = buildEmitZoneFromLayout(emitZoneProps, props.width, props.height);
19
+ if (emitZone) {
20
+ const configWithZone = resolvedConfig;
21
+ configWithZone.emitZone = emitZone;
22
+ }
23
+ }
24
+ const particles = scene.add.particles(
25
+ resolveAnimatableNumber(props.x) ?? 0,
26
+ resolveAnimatableNumber(props.y) ?? 0,
27
+ props.texture,
28
+ resolvedConfig
29
+ );
30
+ if (props.frame !== void 0) {
31
+ const configWithFrame = resolvedConfig;
32
+ configWithFrame.frame = props.frame;
33
+ if ("setTexture" in particles && particles.setTexture) {
34
+ particles.setTexture(props.texture, props.frame);
35
+ }
36
+ }
37
+ const emitter = isParticleEmitter(particles) ? particles : getFirstEmitter(particles);
38
+ if (!isParticleEmitter(particles)) {
39
+ particles.__emitter = emitter;
40
+ }
41
+ if ("setOrigin" in particles && typeof particles.setOrigin === "function") {
42
+ particles.setOrigin(0, 0);
43
+ }
44
+ createTransform(particles, props);
45
+ createPhaser(particles, props);
46
+ createParticlesLayout(particles, props);
47
+ if (deathZoneProps && emitter) {
48
+ const deathZones = buildDeathZonesFromLayout(
49
+ deathZoneProps,
50
+ props.width,
51
+ props.height,
52
+ particles
53
+ );
54
+ const combinedDeathZones = mergeDeathZones(
55
+ resolvedConfig.deathZone,
56
+ deathZones
57
+ );
58
+ if (combinedDeathZones) {
59
+ applyDeathZone(emitter, combinedDeathZones);
60
+ }
61
+ }
62
+ if (props.onReady) {
63
+ props.onReady(particles);
64
+ }
65
+ return particles;
66
+ };
67
+ const particlesPatcher = (node, prev, next) => {
68
+ applyTransformProps(node, prev, next);
69
+ applyPhaserProps(node, prev, next);
70
+ applyParticlesProps(node, prev, next);
71
+ applyParticlesLayout(node, prev, next);
72
+ };
73
+ export {
74
+ particlesCreator,
75
+ particlesPatcher
76
+ };
77
+ //# sourceMappingURL=particles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.js","sources":["../../../src/components/primitives/particles.ts"],"sourcesContent":["/**\n * Particles component - Phaser ParticleEmitterManager wrapper\n * Status: IMPLEMENTED ✅\n *\n * Design Overview:\n * ================\n * - Always headless (does not affect layout)\n * - Emits particles via a single emitter (configurable)\n * - Optional emit zone support (rect, circle, ellipse, line)\n */\nimport type { LayoutProps, PhaserProps, TransformProps } from '../../core-props'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { ParticleDeathZoneConfig, ParticleZoneConfig } from '../../particles/emit-zone'\nimport { buildDeathZonesFromLayout, buildEmitZoneFromLayout } from '../../particles/emit-zone'\nimport type { ParticleEmitterManagerLike, ParticlesHandle } from '../../particles/particle-types'\nimport type { ParticleEmitterConfig, ParticlePresetName } from '../../particles/preset-registry'\nimport { resolveParticlePreset } from '../../particles/preset-registry'\nimport {\n applyDeathZone,\n getFirstEmitter,\n isParticleEmitter,\n mergeDeathZones,\n} from '../../particles/utils'\nimport type { PropsDefaultExtension } from '../../types'\nimport { applyParticlesProps } from '../appliers/applyParticles'\nimport { applyParticlesLayout } from '../appliers/applyParticlesLayout'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createParticlesLayout } from '../creators/createParticlesLayout'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\n/**\n * Base props for Particles component\n */\nexport interface ParticlesBaseProps extends TransformProps, PhaserProps, LayoutProps {\n /** Texture key (loaded via Phaser's texture manager) */\n texture: string\n\n /** Optional frame from texture atlas or spritesheet */\n frame?: string | number\n\n /** Built-in preset name */\n preset?: ParticlePresetName\n\n /** Optional emitter config overrides */\n config?: ParticleEmitterConfig\n\n /** Optional emit zone: where particles are born */\n emitZone?: ParticleZoneConfig\n\n /**\n * Optional emit zone: where particles are born.\n * @deprecated Use emitZone.\n */\n zone?: ParticleZoneConfig\n\n /** Optional death zones: where particles are removed */\n deathZones?: ParticleDeathZoneConfig | ParticleDeathZoneConfig[] | undefined\n\n /**\n * Optional death zones: where particles are removed.\n * @deprecated Use deathZones.\n */\n excludeZones?: ParticleDeathZoneConfig | ParticleDeathZoneConfig[] | undefined\n}\n\n/**\n * Props for primitive Particles component (internal use only)\n */\nexport interface ParticlesPrimitiveProps\n extends ParticlesBaseProps, PropsDefaultExtension<ParticlesHandle> {}\n\n/**\n * Particles creator - creates a Phaser ParticleEmitterManager with a single emitter\n */\nexport const particlesCreator: HostCreator<'Particles'> = (scene, props) => {\n const resolvedConfig = {\n ...resolveParticlePreset(props.preset, props.config),\n } as ParticleEmitterConfig\n\n const emitZoneProps = props.emitZone ?? props.zone\n const deathZoneProps = props.deathZones ?? props.excludeZones\n\n if (emitZoneProps) {\n const emitZone = buildEmitZoneFromLayout(emitZoneProps, props.width, props.height)\n if (emitZone) {\n const configWithZone = resolvedConfig as unknown as { emitZone?: unknown }\n configWithZone.emitZone = emitZone\n }\n }\n\n // Don't set death zones yet - will be applied after transform\n\n const particles = scene.add.particles(\n resolveAnimatableNumber(props.x) ?? 0,\n resolveAnimatableNumber(props.y) ?? 0,\n props.texture,\n resolvedConfig\n ) as unknown as ParticlesHandle\n if (props.frame !== undefined) {\n const configWithFrame = resolvedConfig as unknown as { frame?: string | number }\n configWithFrame.frame = props.frame\n if ('setTexture' in particles && particles.setTexture) {\n particles.setTexture(props.texture, props.frame)\n }\n }\n\n const emitter = isParticleEmitter(particles)\n ? particles\n : getFirstEmitter(particles as ParticleEmitterManagerLike)\n\n if (!isParticleEmitter(particles)) {\n ;(particles as ParticleEmitterManagerLike).__emitter = emitter\n }\n\n // Set origin to (0, 0) for consistent coordinate system (top-left)\n if ('setOrigin' in particles && typeof particles.setOrigin === 'function') {\n particles.setOrigin(0, 0)\n }\n\n // Apply transform props\n createTransform(particles, props)\n\n // Apply Phaser display props (alpha, depth, visible)\n createPhaser(particles, props)\n\n // Setup layout system (headless)\n createParticlesLayout(particles, props)\n\n // Now apply death zones with container-relative coordinates\n if (deathZoneProps && emitter) {\n const deathZones = buildDeathZonesFromLayout(\n deathZoneProps,\n props.width,\n props.height,\n particles\n )\n const combinedDeathZones = mergeDeathZones(\n (resolvedConfig as unknown as { deathZone?: unknown }).deathZone,\n deathZones\n )\n if (combinedDeathZones) {\n applyDeathZone(emitter, combinedDeathZones as Parameters<typeof applyDeathZone>[1])\n }\n }\n\n // Call onReady callback if provided\n if (props.onReady) {\n props.onReady(particles)\n }\n\n return particles\n}\n\n/**\n * Particles patcher - updates ParticleEmitterManager properties\n */\nexport const particlesPatcher: HostPatcher<'Particles'> = (node, prev, next) => {\n // Apply transform props\n applyTransformProps(node, prev, next)\n\n // Apply Phaser display props\n applyPhaserProps(node, prev, next)\n\n // Apply particle-specific props\n applyParticlesProps(node, prev, next)\n\n // Apply layout props\n applyParticlesLayout(node, prev, next)\n}\n"],"names":[],"mappings":";;;;;;;;;;AA4EO,MAAM,mBAA6C,CAAC,OAAO,UAAU;AAC1E,QAAM,iBAAiB;AAAA,IACrB,GAAG,sBAAsB,MAAM,QAAQ,MAAM,MAAM;AAAA,EAAA;AAGrD,QAAM,gBAAgB,MAAM,YAAY,MAAM;AAC9C,QAAM,iBAAiB,MAAM,cAAc,MAAM;AAEjD,MAAI,eAAe;AACjB,UAAM,WAAW,wBAAwB,eAAe,MAAM,OAAO,MAAM,MAAM;AACjF,QAAI,UAAU;AACZ,YAAM,iBAAiB;AACvB,qBAAe,WAAW;AAAA,IAC5B;AAAA,EACF;AAIA,QAAM,YAAY,MAAM,IAAI;AAAA,IAC1B,wBAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,wBAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,MAAM;AAAA,IACN;AAAA,EAAA;AAEF,MAAI,MAAM,UAAU,QAAW;AAC7B,UAAM,kBAAkB;AACxB,oBAAgB,QAAQ,MAAM;AAC9B,QAAI,gBAAgB,aAAa,UAAU,YAAY;AACrD,gBAAU,WAAW,MAAM,SAAS,MAAM,KAAK;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,UAAU,kBAAkB,SAAS,IACvC,YACA,gBAAgB,SAAuC;AAE3D,MAAI,CAAC,kBAAkB,SAAS,GAAG;AAC/B,cAAyC,YAAY;AAAA,EACzD;AAGA,MAAI,eAAe,aAAa,OAAO,UAAU,cAAc,YAAY;AACzE,cAAU,UAAU,GAAG,CAAC;AAAA,EAC1B;AAGA,kBAAgB,WAAW,KAAK;AAGhC,eAAa,WAAW,KAAK;AAG7B,wBAAsB,WAAW,KAAK;AAGtC,MAAI,kBAAkB,SAAS;AAC7B,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IAAA;AAEF,UAAM,qBAAqB;AAAA,MACxB,eAAsD;AAAA,MACvD;AAAA,IAAA;AAEF,QAAI,oBAAoB;AACtB,qBAAe,SAAS,kBAA0D;AAAA,IACpF;AAAA,EACF;AAGA,MAAI,MAAM,SAAS;AACjB,UAAM,QAAQ,SAAS;AAAA,EACzB;AAEA,SAAO;AACT;AAKO,MAAM,mBAA6C,CAAC,MAAM,MAAM,SAAS;AAE9E,sBAAoB,MAAM,MAAM,IAAI;AAGpC,mBAAiB,MAAM,MAAM,IAAI;AAGjC,sBAAoB,MAAM,MAAM,IAAI;AAGpC,uBAAqB,MAAM,MAAM,IAAI;AACvC;"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const applyPhaser = require("../appliers/applyPhaser.cjs");
4
+ const applySprite = require("../appliers/applySprite.cjs");
5
+ const applySpriteLayout = require("../appliers/applySpriteLayout.cjs");
6
+ const applyTransform = require("../appliers/applyTransform.cjs");
7
+ const createPhaser = require("../creators/createPhaser.cjs");
8
+ const createSpriteLayout = require("../creators/createSpriteLayout.cjs");
9
+ const createTransform = require("../creators/createTransform.cjs");
10
+ const spriteCreator = (scene, props) => {
11
+ const sprite = scene.add.sprite(
12
+ createTransform.resolveAnimatableNumber(props.x) ?? 0,
13
+ createTransform.resolveAnimatableNumber(props.y) ?? 0,
14
+ props.texture,
15
+ props.frame
16
+ );
17
+ sprite.setOrigin(0.5, 0.5);
18
+ if (props.originX !== void 0 || props.originY !== void 0) {
19
+ sprite.setOrigin(props.originX ?? sprite.originX, props.originY ?? sprite.originY);
20
+ }
21
+ createTransform.createTransform(sprite, props);
22
+ createPhaser.createPhaser(sprite, props);
23
+ if (props.tint !== void 0) {
24
+ sprite.setTint(props.tint);
25
+ }
26
+ if (props.displayWidth !== void 0 || props.displayHeight !== void 0) {
27
+ if (props.displayWidth !== void 0 && props.displayHeight !== void 0) {
28
+ const fit = props.fit ?? "fill";
29
+ const textureWidth = sprite.width;
30
+ const textureHeight = sprite.height;
31
+ if (textureWidth > 0 && textureHeight > 0) {
32
+ if (fit === "fill") {
33
+ sprite.setDisplaySize(props.displayWidth, props.displayHeight);
34
+ } else if (fit === "contain") {
35
+ const targetAspect = props.displayWidth / props.displayHeight;
36
+ const textureAspect = textureWidth / textureHeight;
37
+ const scale = targetAspect > textureAspect ? props.displayHeight / textureHeight : props.displayWidth / textureWidth;
38
+ sprite.setScale(scale);
39
+ } else if (fit === "cover") {
40
+ const targetAspect = props.displayWidth / props.displayHeight;
41
+ const textureAspect = textureWidth / textureHeight;
42
+ const scale = targetAspect < textureAspect ? props.displayHeight / textureHeight : props.displayWidth / textureWidth;
43
+ sprite.setScale(scale);
44
+ }
45
+ }
46
+ } else if (props.displayWidth !== void 0) {
47
+ const scale = props.displayWidth / sprite.width;
48
+ sprite.setScale(scale);
49
+ } else if (props.displayHeight !== void 0) {
50
+ const scale = props.displayHeight / sprite.height;
51
+ sprite.setScale(scale);
52
+ }
53
+ }
54
+ if (props.animationKey) {
55
+ if (sprite.scene && sprite.scene.anims.exists(props.animationKey)) {
56
+ sprite.anims.play({
57
+ key: props.animationKey,
58
+ repeat: props.loop ? -1 : 0,
59
+ repeatDelay: props.repeatDelay ?? 0
60
+ });
61
+ }
62
+ }
63
+ if (props.onAnimationStart) {
64
+ sprite.on("animationstart", (anim) => {
65
+ props.onAnimationStart?.(anim.key);
66
+ });
67
+ }
68
+ if (props.onAnimationComplete) {
69
+ sprite.on("animationcomplete", (anim) => {
70
+ props.onAnimationComplete?.(anim.key);
71
+ });
72
+ }
73
+ if (props.onAnimationRepeat) {
74
+ sprite.on("animationrepeat", (anim) => {
75
+ props.onAnimationRepeat?.(anim.key);
76
+ });
77
+ }
78
+ if (props.onAnimationUpdate) {
79
+ sprite.on(
80
+ "animationupdate",
81
+ (anim, frame) => {
82
+ props.onAnimationUpdate?.(anim.key, frame);
83
+ }
84
+ );
85
+ }
86
+ createSpriteLayout.createSpriteLayout(sprite, props);
87
+ if (props.onReady) {
88
+ props.onReady(sprite);
89
+ }
90
+ return sprite;
91
+ };
92
+ const spritePatcher = (node, prev, next) => {
93
+ applyTransform.applyTransformProps(node, prev, next);
94
+ applyPhaser.applyPhaserProps(node, prev, next);
95
+ applySprite.applySpriteProps(node, prev, next);
96
+ applySpriteLayout.applySpriteLayout(node, prev, next);
97
+ };
98
+ exports.spriteCreator = spriteCreator;
99
+ exports.spritePatcher = spritePatcher;
100
+ //# sourceMappingURL=sprite.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite.cjs","sources":["../../../src/components/primitives/sprite.ts"],"sourcesContent":["/**\n * Sprite component - Phaser Sprite GameObject (animated texture)\n * Status: IMPLEMENTED ✅\n *\n * Design Overview:\n * ================\n *\n * 1. Component Role: ANIMATED GAME OBJECTS\n * Purpose: Display animated sprites in game scenes (characters, effects, particles)\n * Phaser Type: Phaser.GameObjects.Sprite (animation-capable texture rendering)\n * Characteristics:\n * - Always headless (does not affect parent layout)\n * - Supports Phaser Animation system\n * - Free positioning with rotation/scale\n *\n * 2. Headless Behavior: MANDATORY ✅\n * Decision: Sprites are ALWAYS headless (not configurable)\n * Reasoning:\n * - Sprites are game objects, not UI elements\n * - Should NOT affect parent layout dimensions\n * - Free positioning with full transform support (rotation, scale)\n * Layout Impact: Returns minimal size (0.01x0.01) - participates in alignment only\n * Use Cases:\n * - ✅ Game characters, particles, effects, free-floating objects\n * - ✅ Animated decorations, background elements\n * - ❌ NOT for layout-based UIs (use Image component instead)\n *\n * 3. Layout Size Provider: MINIMAL SIZE ✅\n * Implementation: Always returns { width: 0.01, height: 0.01 }\n * Reasoning:\n * - Sprites don't affect layout spacing\n * - Minimal size allows alignment but no spacing impact\n * - Simpler than getBounds() with same result\n *\n * 4. Animation System: PHASER ANIMATIONS ✅\n * Features:\n * - animationKey: Play pre-registered animation\n * - loop: Repeat animation indefinitely\n * - repeatDelay: Delay between animation repeats (ms)\n * Callbacks:\n * - onAnimationStart: Triggered when animation begins\n * - onAnimationComplete: Triggered when animation ends\n * - onAnimationRepeat: Triggered on each repeat\n * - onAnimationUpdate: Triggered on each frame update\n * Note: Animations must be pre-registered in Phaser AnimationManager\n *\n * 5. Texture & Sizing: LIKE IMAGE ✅\n * Props:\n * - texture: Texture key (required)\n * - frame: Frame from atlas/spritesheet\n * - tint: Color tint (0xRRGGBB)\n * - displayWidth/displayHeight: Scale sprite to fit\n * - fit: 'fill' | 'contain' | 'cover' (aspect ratio handling)\n * Error Handling: Missing texture → Phaser default (white square)\n *\n * 6. Origin Behavior: CENTERED (0.5, 0.5) ✅\n * Decision: Default origin (0.5, 0.5) - centered\n * Reasoning:\n * - Phaser sprite default\n * - Natural for rotation/scale pivot\n * - Game object semantics\n * Override: Use originX/originY props for custom origin\n *\n * 7. Performance: SPRITE BATCHING ✅\n * Strategy:\n * - Leverages Phaser's sprite batching (WebGL)\n * - Props that preserve batching: tint, alpha, scale, position\n * - Props that break batching: custom shaders, blend modes (use sparingly)\n * - Texture atlases strongly recommended for multiple sprites\n *\n * 8. Common Patterns:\n * Character:\n * <Sprite texture=\"player\" animationKey=\"walk\" loop={true} />\n * Particle Effect:\n * <Sprite texture=\"explosion\" animationKey=\"explode\" onAnimationComplete={destroy} />\n * Scaled Sprite:\n * <Sprite texture=\"coin\" displayWidth={32} displayHeight={32} fit=\"contain\" />\n *\n * Implementation Status:\n * ======================\n * [✅] Phaser Sprite creation with texture/frame support\n * [✅] Transform props (position, rotation, scale, alpha)\n * [✅] Layout system integration (always headless)\n * [✅] Origin handling (0.5, 0.5 default)\n * [✅] Display size with fit modes (contain/cover/fill)\n * [✅] Tint support\n * [✅] Animation system (play, loop, callbacks)\n * [✅] Texture and frame patching\n */\nimport type * as Phaser from 'phaser'\nimport type { LayoutProps, PhaserProps, TransformProps } from '../../core-props'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { PropsDefaultExtension } from '../../types'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applySpriteProps } from '../appliers/applySprite'\nimport { applySpriteLayout } from '../appliers/applySpriteLayout'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createSpriteLayout } from '../creators/createSpriteLayout'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\n/**\n * Base props for Sprite component\n */\nexport interface SpriteBaseProps extends TransformProps, PhaserProps, LayoutProps {\n /** Texture key (loaded via Phaser's texture manager) */\n texture: string\n\n /** Optional frame from texture atlas or spritesheet */\n frame?: string | number\n\n /** Tint color applied to sprite (0xRRGGBB) */\n tint?: number\n\n /** Display width (scales sprite to fit) */\n displayWidth?: number\n\n /** Display height (scales sprite to fit) */\n displayHeight?: number\n\n /**\n * How sprite should fit within bounds (if displayWidth/displayHeight set)\n * - 'fill': Stretch to fill (default, may distort aspect ratio)\n * - 'contain': Scale to fit within bounds, preserve aspect ratio\n * - 'cover': Scale to cover bounds, preserve aspect ratio (may crop)\n */\n fit?: 'fill' | 'contain' | 'cover'\n\n /** Animation key to play (pre-registered in Phaser AnimationManager) */\n animationKey?: string\n\n /** Loop animation (default: false) */\n loop?: boolean\n\n /** Delay between animation repeats in ms (default: 0) */\n repeatDelay?: number\n\n /** Callback when animation starts */\n onAnimationStart?: (key: string) => void\n\n /** Callback when animation completes */\n onAnimationComplete?: (key: string) => void\n\n /** Callback when animation repeats */\n onAnimationRepeat?: (key: string) => void\n\n /** Callback on each animation frame update */\n onAnimationUpdate?: (key: string, frame: Phaser.Animations.AnimationFrame) => void\n\n /** Origin X (0-1, default 0.5) */\n originX?: number\n\n /** Origin Y (0-1, default 0.5) */\n originY?: number\n}\n\n/**\n * Props for Sprite component\n */\nexport interface SpriteProps\n extends SpriteBaseProps, PropsDefaultExtension<Phaser.GameObjects.Sprite> {}\n\n/**\n * Sprite creator - creates a Phaser Sprite object with animations\n */\nexport const spriteCreator: HostCreator<'Sprite'> = (scene, props) => {\n const sprite = scene.add.sprite(\n resolveAnimatableNumber(props.x) ?? 0,\n resolveAnimatableNumber(props.y) ?? 0,\n props.texture,\n props.frame\n )\n\n // Set origin - always centered (0.5, 0.5) for sprites\n sprite.setOrigin(0.5, 0.5)\n\n // Apply custom origin if specified\n if (props.originX !== undefined || props.originY !== undefined) {\n sprite.setOrigin(props.originX ?? sprite.originX, props.originY ?? sprite.originY)\n }\n\n // Apply transform props (scale, rotation)\n createTransform(sprite, props)\n\n // Apply Phaser display props (alpha, depth, visible)\n createPhaser(sprite, props)\n\n // Apply sprite-specific props (tint, displaySize, fit)\n if (props.tint !== undefined) {\n sprite.setTint(props.tint)\n }\n\n // Apply displayWidth/displayHeight if specified\n if (props.displayWidth !== undefined || props.displayHeight !== undefined) {\n if (props.displayWidth !== undefined && props.displayHeight !== undefined) {\n // Both specified - use fit mode\n const fit = props.fit ?? 'fill'\n const textureWidth = sprite.width\n const textureHeight = sprite.height\n\n if (textureWidth > 0 && textureHeight > 0) {\n if (fit === 'fill') {\n sprite.setDisplaySize(props.displayWidth, props.displayHeight)\n } else if (fit === 'contain') {\n const targetAspect = props.displayWidth / props.displayHeight\n const textureAspect = textureWidth / textureHeight\n const scale =\n targetAspect > textureAspect\n ? props.displayHeight / textureHeight\n : props.displayWidth / textureWidth\n sprite.setScale(scale)\n } else if (fit === 'cover') {\n const targetAspect = props.displayWidth / props.displayHeight\n const textureAspect = textureWidth / textureHeight\n const scale =\n targetAspect < textureAspect\n ? props.displayHeight / textureHeight\n : props.displayWidth / textureWidth\n sprite.setScale(scale)\n }\n }\n } else if (props.displayWidth !== undefined) {\n const scale = props.displayWidth / sprite.width\n sprite.setScale(scale)\n } else if (props.displayHeight !== undefined) {\n const scale = props.displayHeight / sprite.height\n sprite.setScale(scale)\n }\n }\n\n // Setup animation system\n // Only play if the animation is already registered in the AnimationManager.\n // Calling `sprite.anims.play` with a missing key causes Phaser to log\n // \"Missing animation: <key>\". Many examples register animations in a\n // separate effect that may run after the Sprite is created, so avoid\n // attempting to play until the animation actually exists.\n if (props.animationKey) {\n if (sprite.scene && sprite.scene.anims.exists(props.animationKey)) {\n sprite.anims.play({\n key: props.animationKey,\n repeat: props.loop ? -1 : 0,\n repeatDelay: props.repeatDelay ?? 0,\n })\n }\n }\n\n // Setup animation callbacks\n if (props.onAnimationStart) {\n sprite.on('animationstart', (anim: Phaser.Animations.Animation) => {\n props.onAnimationStart?.(anim.key)\n })\n }\n\n if (props.onAnimationComplete) {\n sprite.on('animationcomplete', (anim: Phaser.Animations.Animation) => {\n props.onAnimationComplete?.(anim.key)\n })\n }\n\n if (props.onAnimationRepeat) {\n sprite.on('animationrepeat', (anim: Phaser.Animations.Animation) => {\n props.onAnimationRepeat?.(anim.key)\n })\n }\n\n if (props.onAnimationUpdate) {\n sprite.on(\n 'animationupdate',\n (anim: Phaser.Animations.Animation, frame: Phaser.Animations.AnimationFrame) => {\n props.onAnimationUpdate?.(anim.key, frame)\n }\n )\n }\n\n // Setup layout system (props and size provider)\n createSpriteLayout(sprite, props)\n\n // Call onReady callback if provided\n if (props.onReady) {\n props.onReady(sprite)\n }\n\n return sprite\n}\n\n/**\n * Sprite patcher - updates Sprite properties\n */\nexport const spritePatcher: HostPatcher<'Sprite'> = (node, prev, next) => {\n // Apply transform props (position, rotation, scale)\n applyTransformProps(node, prev, next)\n\n // Apply Phaser display props (alpha, depth, visible)\n applyPhaserProps(node, prev, next)\n\n // Apply sprite-specific props (texture, frame, tint, displaySize, fit, animations)\n applySpriteProps(node, prev, next)\n\n // Apply layout props and update size provider if needed\n applySpriteLayout(node, prev, next)\n}\n"],"names":["resolveAnimatableNumber","createTransform","createPhaser","createSpriteLayout","applyTransformProps","applyPhaserProps","applySpriteProps","applySpriteLayout"],"mappings":";;;;;;;;;AAqKO,MAAM,gBAAuC,CAAC,OAAO,UAAU;AACpE,QAAM,SAAS,MAAM,IAAI;AAAA,IACvBA,wCAAwB,MAAM,CAAC,KAAK;AAAA,IACpCA,wCAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAIR,SAAO,UAAU,KAAK,GAAG;AAGzB,MAAI,MAAM,YAAY,UAAa,MAAM,YAAY,QAAW;AAC9D,WAAO,UAAU,MAAM,WAAW,OAAO,SAAS,MAAM,WAAW,OAAO,OAAO;AAAA,EACnF;AAGAC,kBAAAA,gBAAgB,QAAQ,KAAK;AAG7BC,eAAAA,aAAa,QAAQ,KAAK;AAG1B,MAAI,MAAM,SAAS,QAAW;AAC5B,WAAO,QAAQ,MAAM,IAAI;AAAA,EAC3B;AAGA,MAAI,MAAM,iBAAiB,UAAa,MAAM,kBAAkB,QAAW;AACzE,QAAI,MAAM,iBAAiB,UAAa,MAAM,kBAAkB,QAAW;AAEzE,YAAM,MAAM,MAAM,OAAO;AACzB,YAAM,eAAe,OAAO;AAC5B,YAAM,gBAAgB,OAAO;AAE7B,UAAI,eAAe,KAAK,gBAAgB,GAAG;AACzC,YAAI,QAAQ,QAAQ;AAClB,iBAAO,eAAe,MAAM,cAAc,MAAM,aAAa;AAAA,QAC/D,WAAW,QAAQ,WAAW;AAC5B,gBAAM,eAAe,MAAM,eAAe,MAAM;AAChD,gBAAM,gBAAgB,eAAe;AACrC,gBAAM,QACJ,eAAe,gBACX,MAAM,gBAAgB,gBACtB,MAAM,eAAe;AAC3B,iBAAO,SAAS,KAAK;AAAA,QACvB,WAAW,QAAQ,SAAS;AAC1B,gBAAM,eAAe,MAAM,eAAe,MAAM;AAChD,gBAAM,gBAAgB,eAAe;AACrC,gBAAM,QACJ,eAAe,gBACX,MAAM,gBAAgB,gBACtB,MAAM,eAAe;AAC3B,iBAAO,SAAS,KAAK;AAAA,QACvB;AAAA,MACF;AAAA,IACF,WAAW,MAAM,iBAAiB,QAAW;AAC3C,YAAM,QAAQ,MAAM,eAAe,OAAO;AAC1C,aAAO,SAAS,KAAK;AAAA,IACvB,WAAW,MAAM,kBAAkB,QAAW;AAC5C,YAAM,QAAQ,MAAM,gBAAgB,OAAO;AAC3C,aAAO,SAAS,KAAK;AAAA,IACvB;AAAA,EACF;AAQA,MAAI,MAAM,cAAc;AACtB,QAAI,OAAO,SAAS,OAAO,MAAM,MAAM,OAAO,MAAM,YAAY,GAAG;AACjE,aAAO,MAAM,KAAK;AAAA,QAChB,KAAK,MAAM;AAAA,QACX,QAAQ,MAAM,OAAO,KAAK;AAAA,QAC1B,aAAa,MAAM,eAAe;AAAA,MAAA,CACnC;AAAA,IACH;AAAA,EACF;AAGA,MAAI,MAAM,kBAAkB;AAC1B,WAAO,GAAG,kBAAkB,CAAC,SAAsC;AACjE,YAAM,mBAAmB,KAAK,GAAG;AAAA,IACnC,CAAC;AAAA,EACH;AAEA,MAAI,MAAM,qBAAqB;AAC7B,WAAO,GAAG,qBAAqB,CAAC,SAAsC;AACpE,YAAM,sBAAsB,KAAK,GAAG;AAAA,IACtC,CAAC;AAAA,EACH;AAEA,MAAI,MAAM,mBAAmB;AAC3B,WAAO,GAAG,mBAAmB,CAAC,SAAsC;AAClE,YAAM,oBAAoB,KAAK,GAAG;AAAA,IACpC,CAAC;AAAA,EACH;AAEA,MAAI,MAAM,mBAAmB;AAC3B,WAAO;AAAA,MACL;AAAA,MACA,CAAC,MAAmC,UAA4C;AAC9E,cAAM,oBAAoB,KAAK,KAAK,KAAK;AAAA,MAC3C;AAAA,IAAA;AAAA,EAEJ;AAGAC,qBAAAA,mBAAmB,QAAQ,KAAK;AAGhC,MAAI,MAAM,SAAS;AACjB,UAAM,QAAQ,MAAM;AAAA,EACtB;AAEA,SAAO;AACT;AAKO,MAAM,gBAAuC,CAAC,MAAM,MAAM,SAAS;AAExEC,qCAAoB,MAAM,MAAM,IAAI;AAGpCC,+BAAiB,MAAM,MAAM,IAAI;AAGjCC,+BAAiB,MAAM,MAAM,IAAI;AAGjCC,sCAAkB,MAAM,MAAM,IAAI;AACpC;;;"}
@@ -0,0 +1,147 @@
1
+ import { LayoutProps, PhaserProps, TransformProps } from '../../core-props';
2
+ import { HostCreator, HostPatcher } from '../../host';
3
+ import { PropsDefaultExtension } from '../../types';
4
+ /**
5
+ * Sprite component - Phaser Sprite GameObject (animated texture)
6
+ * Status: IMPLEMENTED ✅
7
+ *
8
+ * Design Overview:
9
+ * ================
10
+ *
11
+ * 1. Component Role: ANIMATED GAME OBJECTS
12
+ * Purpose: Display animated sprites in game scenes (characters, effects, particles)
13
+ * Phaser Type: Phaser.GameObjects.Sprite (animation-capable texture rendering)
14
+ * Characteristics:
15
+ * - Always headless (does not affect parent layout)
16
+ * - Supports Phaser Animation system
17
+ * - Free positioning with rotation/scale
18
+ *
19
+ * 2. Headless Behavior: MANDATORY ✅
20
+ * Decision: Sprites are ALWAYS headless (not configurable)
21
+ * Reasoning:
22
+ * - Sprites are game objects, not UI elements
23
+ * - Should NOT affect parent layout dimensions
24
+ * - Free positioning with full transform support (rotation, scale)
25
+ * Layout Impact: Returns minimal size (0.01x0.01) - participates in alignment only
26
+ * Use Cases:
27
+ * - ✅ Game characters, particles, effects, free-floating objects
28
+ * - ✅ Animated decorations, background elements
29
+ * - ❌ NOT for layout-based UIs (use Image component instead)
30
+ *
31
+ * 3. Layout Size Provider: MINIMAL SIZE ✅
32
+ * Implementation: Always returns { width: 0.01, height: 0.01 }
33
+ * Reasoning:
34
+ * - Sprites don't affect layout spacing
35
+ * - Minimal size allows alignment but no spacing impact
36
+ * - Simpler than getBounds() with same result
37
+ *
38
+ * 4. Animation System: PHASER ANIMATIONS ✅
39
+ * Features:
40
+ * - animationKey: Play pre-registered animation
41
+ * - loop: Repeat animation indefinitely
42
+ * - repeatDelay: Delay between animation repeats (ms)
43
+ * Callbacks:
44
+ * - onAnimationStart: Triggered when animation begins
45
+ * - onAnimationComplete: Triggered when animation ends
46
+ * - onAnimationRepeat: Triggered on each repeat
47
+ * - onAnimationUpdate: Triggered on each frame update
48
+ * Note: Animations must be pre-registered in Phaser AnimationManager
49
+ *
50
+ * 5. Texture & Sizing: LIKE IMAGE ✅
51
+ * Props:
52
+ * - texture: Texture key (required)
53
+ * - frame: Frame from atlas/spritesheet
54
+ * - tint: Color tint (0xRRGGBB)
55
+ * - displayWidth/displayHeight: Scale sprite to fit
56
+ * - fit: 'fill' | 'contain' | 'cover' (aspect ratio handling)
57
+ * Error Handling: Missing texture → Phaser default (white square)
58
+ *
59
+ * 6. Origin Behavior: CENTERED (0.5, 0.5) ✅
60
+ * Decision: Default origin (0.5, 0.5) - centered
61
+ * Reasoning:
62
+ * - Phaser sprite default
63
+ * - Natural for rotation/scale pivot
64
+ * - Game object semantics
65
+ * Override: Use originX/originY props for custom origin
66
+ *
67
+ * 7. Performance: SPRITE BATCHING ✅
68
+ * Strategy:
69
+ * - Leverages Phaser's sprite batching (WebGL)
70
+ * - Props that preserve batching: tint, alpha, scale, position
71
+ * - Props that break batching: custom shaders, blend modes (use sparingly)
72
+ * - Texture atlases strongly recommended for multiple sprites
73
+ *
74
+ * 8. Common Patterns:
75
+ * Character:
76
+ * <Sprite texture="player" animationKey="walk" loop={true} />
77
+ * Particle Effect:
78
+ * <Sprite texture="explosion" animationKey="explode" onAnimationComplete={destroy} />
79
+ * Scaled Sprite:
80
+ * <Sprite texture="coin" displayWidth={32} displayHeight={32} fit="contain" />
81
+ *
82
+ * Implementation Status:
83
+ * ======================
84
+ * [✅] Phaser Sprite creation with texture/frame support
85
+ * [✅] Transform props (position, rotation, scale, alpha)
86
+ * [✅] Layout system integration (always headless)
87
+ * [✅] Origin handling (0.5, 0.5 default)
88
+ * [✅] Display size with fit modes (contain/cover/fill)
89
+ * [✅] Tint support
90
+ * [✅] Animation system (play, loop, callbacks)
91
+ * [✅] Texture and frame patching
92
+ */
93
+ import type * as Phaser from 'phaser';
94
+ /**
95
+ * Base props for Sprite component
96
+ */
97
+ export interface SpriteBaseProps extends TransformProps, PhaserProps, LayoutProps {
98
+ /** Texture key (loaded via Phaser's texture manager) */
99
+ texture: string;
100
+ /** Optional frame from texture atlas or spritesheet */
101
+ frame?: string | number;
102
+ /** Tint color applied to sprite (0xRRGGBB) */
103
+ tint?: number;
104
+ /** Display width (scales sprite to fit) */
105
+ displayWidth?: number;
106
+ /** Display height (scales sprite to fit) */
107
+ displayHeight?: number;
108
+ /**
109
+ * How sprite should fit within bounds (if displayWidth/displayHeight set)
110
+ * - 'fill': Stretch to fill (default, may distort aspect ratio)
111
+ * - 'contain': Scale to fit within bounds, preserve aspect ratio
112
+ * - 'cover': Scale to cover bounds, preserve aspect ratio (may crop)
113
+ */
114
+ fit?: 'fill' | 'contain' | 'cover';
115
+ /** Animation key to play (pre-registered in Phaser AnimationManager) */
116
+ animationKey?: string;
117
+ /** Loop animation (default: false) */
118
+ loop?: boolean;
119
+ /** Delay between animation repeats in ms (default: 0) */
120
+ repeatDelay?: number;
121
+ /** Callback when animation starts */
122
+ onAnimationStart?: (key: string) => void;
123
+ /** Callback when animation completes */
124
+ onAnimationComplete?: (key: string) => void;
125
+ /** Callback when animation repeats */
126
+ onAnimationRepeat?: (key: string) => void;
127
+ /** Callback on each animation frame update */
128
+ onAnimationUpdate?: (key: string, frame: Phaser.Animations.AnimationFrame) => void;
129
+ /** Origin X (0-1, default 0.5) */
130
+ originX?: number;
131
+ /** Origin Y (0-1, default 0.5) */
132
+ originY?: number;
133
+ }
134
+ /**
135
+ * Props for Sprite component
136
+ */
137
+ export interface SpriteProps extends SpriteBaseProps, PropsDefaultExtension<Phaser.GameObjects.Sprite> {
138
+ }
139
+ /**
140
+ * Sprite creator - creates a Phaser Sprite object with animations
141
+ */
142
+ export declare const spriteCreator: HostCreator<'Sprite'>;
143
+ /**
144
+ * Sprite patcher - updates Sprite properties
145
+ */
146
+ export declare const spritePatcher: HostPatcher<'Sprite'>;
147
+ //# sourceMappingURL=sprite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/sprite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AASxD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc,EAAE,WAAW,EAAE,WAAW;IAC/E,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAA;IAEf,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;IAElC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,sCAAsC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAExC,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAE3C,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAEzC,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,KAAK,IAAI,CAAA;IAElF,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WACf,SAAQ,eAAe,EAAE,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;CAAG;AAE9E;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,QAAQ,CAsH/C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,QAAQ,CAY/C,CAAA"}