@number10/phaserjsx 0.1.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 (326) hide show
  1. package/LICENSE +667 -0
  2. package/README.md +238 -0
  3. package/dist/TransformOriginView-BYPbRH8N.cjs +17045 -0
  4. package/dist/TransformOriginView-BYPbRH8N.cjs.map +1 -0
  5. package/dist/TransformOriginView-CO-tJCmV.js +17046 -0
  6. package/dist/TransformOriginView-CO-tJCmV.js.map +1 -0
  7. package/dist/animation/animated-signal.d.ts +35 -0
  8. package/dist/animation/animated-signal.d.ts.map +1 -0
  9. package/dist/animation/index.d.ts +7 -0
  10. package/dist/animation/index.d.ts.map +1 -0
  11. package/dist/animation/spring-physics.d.ts +120 -0
  12. package/dist/animation/spring-physics.d.ts.map +1 -0
  13. package/dist/animation/useSpring.d.ts +54 -0
  14. package/dist/animation/useSpring.d.ts.map +1 -0
  15. package/dist/colors/color-presets.d.ts +89 -0
  16. package/dist/colors/color-presets.d.ts.map +1 -0
  17. package/dist/colors/color-theme-helpers.d.ts +65 -0
  18. package/dist/colors/color-theme-helpers.d.ts.map +1 -0
  19. package/dist/colors/color-types.d.ts +100 -0
  20. package/dist/colors/color-types.d.ts.map +1 -0
  21. package/dist/colors/color-utils.d.ts +171 -0
  22. package/dist/colors/color-utils.d.ts.map +1 -0
  23. package/dist/colors/index.d.ts +17 -0
  24. package/dist/colors/index.d.ts.map +1 -0
  25. package/dist/colors/preset-manager.d.ts +35 -0
  26. package/dist/colors/preset-manager.d.ts.map +1 -0
  27. package/dist/colors/use-color-mode.d.ts +22 -0
  28. package/dist/colors/use-color-mode.d.ts.map +1 -0
  29. package/dist/colors/use-colors.d.ts +40 -0
  30. package/dist/colors/use-colors.d.ts.map +1 -0
  31. package/dist/components/appliers/applyBackground.d.ts +13 -0
  32. package/dist/components/appliers/applyBackground.d.ts.map +1 -0
  33. package/dist/components/appliers/applyGestures.d.ts +12 -0
  34. package/dist/components/appliers/applyGestures.d.ts.map +1 -0
  35. package/dist/components/appliers/applyGraphics.d.ts +10 -0
  36. package/dist/components/appliers/applyGraphics.d.ts.map +1 -0
  37. package/dist/components/appliers/applyGraphicsLayout.d.ts +10 -0
  38. package/dist/components/appliers/applyGraphicsLayout.d.ts.map +1 -0
  39. package/dist/components/appliers/applyImage.d.ts +10 -0
  40. package/dist/components/appliers/applyImage.d.ts.map +1 -0
  41. package/dist/components/appliers/applyImageLayout.d.ts +15 -0
  42. package/dist/components/appliers/applyImageLayout.d.ts.map +1 -0
  43. package/dist/components/appliers/applyLayout.d.ts +15 -0
  44. package/dist/components/appliers/applyLayout.d.ts.map +1 -0
  45. package/dist/components/appliers/applyNineSlice.d.ts +11 -0
  46. package/dist/components/appliers/applyNineSlice.d.ts.map +1 -0
  47. package/dist/components/appliers/applyNineSliceLayout.d.ts +15 -0
  48. package/dist/components/appliers/applyNineSliceLayout.d.ts.map +1 -0
  49. package/dist/components/appliers/applyPhaser.d.ts +22 -0
  50. package/dist/components/appliers/applyPhaser.d.ts.map +1 -0
  51. package/dist/components/appliers/applySprite.d.ts +10 -0
  52. package/dist/components/appliers/applySprite.d.ts.map +1 -0
  53. package/dist/components/appliers/applySpriteLayout.d.ts +14 -0
  54. package/dist/components/appliers/applySpriteLayout.d.ts.map +1 -0
  55. package/dist/components/appliers/applyText.d.ts +25 -0
  56. package/dist/components/appliers/applyText.d.ts.map +1 -0
  57. package/dist/components/appliers/applyTextLayout.d.ts +15 -0
  58. package/dist/components/appliers/applyTextLayout.d.ts.map +1 -0
  59. package/dist/components/appliers/applyTooltip.d.ts +12 -0
  60. package/dist/components/appliers/applyTooltip.d.ts.map +1 -0
  61. package/dist/components/appliers/applyTransform.d.ts +21 -0
  62. package/dist/components/appliers/applyTransform.d.ts.map +1 -0
  63. package/dist/components/creators/createBackground.d.ts +15 -0
  64. package/dist/components/creators/createBackground.d.ts.map +1 -0
  65. package/dist/components/creators/createGestures.d.ts +11 -0
  66. package/dist/components/creators/createGestures.d.ts.map +1 -0
  67. package/dist/components/creators/createGraphicsLayout.d.ts +9 -0
  68. package/dist/components/creators/createGraphicsLayout.d.ts.map +1 -0
  69. package/dist/components/creators/createImageLayout.d.ts +14 -0
  70. package/dist/components/creators/createImageLayout.d.ts.map +1 -0
  71. package/dist/components/creators/createLayout.d.ts +15 -0
  72. package/dist/components/creators/createLayout.d.ts.map +1 -0
  73. package/dist/components/creators/createNineSliceLayout.d.ts +14 -0
  74. package/dist/components/creators/createNineSliceLayout.d.ts.map +1 -0
  75. package/dist/components/creators/createPhaser.d.ts +14 -0
  76. package/dist/components/creators/createPhaser.d.ts.map +1 -0
  77. package/dist/components/creators/createSpriteLayout.d.ts +15 -0
  78. package/dist/components/creators/createSpriteLayout.d.ts.map +1 -0
  79. package/dist/components/creators/createTextLayout.d.ts +14 -0
  80. package/dist/components/creators/createTextLayout.d.ts.map +1 -0
  81. package/dist/components/creators/createTransform.d.ts +11 -0
  82. package/dist/components/creators/createTransform.d.ts.map +1 -0
  83. package/dist/components/custom/Accordion.d.ts +34 -0
  84. package/dist/components/custom/Accordion.d.ts.map +1 -0
  85. package/dist/components/custom/AlertDialog.d.ts +63 -0
  86. package/dist/components/custom/AlertDialog.d.ts.map +1 -0
  87. package/dist/components/custom/Button.d.ts +44 -0
  88. package/dist/components/custom/Button.d.ts.map +1 -0
  89. package/dist/components/custom/CharText/CharText.d.ts +8 -0
  90. package/dist/components/custom/CharText/CharText.d.ts.map +1 -0
  91. package/dist/components/custom/CharText/index.d.ts +3 -0
  92. package/dist/components/custom/CharText/index.d.ts.map +1 -0
  93. package/dist/components/custom/CharText/types.d.ts +117 -0
  94. package/dist/components/custom/CharText/types.d.ts.map +1 -0
  95. package/dist/components/custom/CharText/utils.d.ts +34 -0
  96. package/dist/components/custom/CharText/utils.d.ts.map +1 -0
  97. package/dist/components/custom/CharTextInput.d.ts +62 -0
  98. package/dist/components/custom/CharTextInput.d.ts.map +1 -0
  99. package/dist/components/custom/Dialog.d.ts +60 -0
  100. package/dist/components/custom/Dialog.d.ts.map +1 -0
  101. package/dist/components/custom/Divider.d.ts +21 -0
  102. package/dist/components/custom/Divider.d.ts.map +1 -0
  103. package/dist/components/custom/Dropdown.d.ts +91 -0
  104. package/dist/components/custom/Dropdown.d.ts.map +1 -0
  105. package/dist/components/custom/Icon.d.ts +75 -0
  106. package/dist/components/custom/Icon.d.ts.map +1 -0
  107. package/dist/components/custom/Image.d.ts +50 -0
  108. package/dist/components/custom/Image.d.ts.map +1 -0
  109. package/dist/components/custom/Modal.d.ts +37 -0
  110. package/dist/components/custom/Modal.d.ts.map +1 -0
  111. package/dist/components/custom/NineSlice.d.ts +81 -0
  112. package/dist/components/custom/NineSlice.d.ts.map +1 -0
  113. package/dist/components/custom/NineSliceButton.d.ts +128 -0
  114. package/dist/components/custom/NineSliceButton.d.ts.map +1 -0
  115. package/dist/components/custom/Portal.d.ts +43 -0
  116. package/dist/components/custom/Portal.d.ts.map +1 -0
  117. package/dist/components/custom/Portal.test.d.ts +2 -0
  118. package/dist/components/custom/Portal.test.d.ts.map +1 -0
  119. package/dist/components/custom/RadioButton.d.ts +20 -0
  120. package/dist/components/custom/RadioButton.d.ts.map +1 -0
  121. package/dist/components/custom/RadioGroup.d.ts +33 -0
  122. package/dist/components/custom/RadioGroup.d.ts.map +1 -0
  123. package/dist/components/custom/RefOriginView.d.ts +45 -0
  124. package/dist/components/custom/RefOriginView.d.ts.map +1 -0
  125. package/dist/components/custom/ScrollSlider.d.ts +36 -0
  126. package/dist/components/custom/ScrollSlider.d.ts.map +1 -0
  127. package/dist/components/custom/ScrollView.d.ts +48 -0
  128. package/dist/components/custom/ScrollView.d.ts.map +1 -0
  129. package/dist/components/custom/Sidebar.d.ts +50 -0
  130. package/dist/components/custom/Sidebar.d.ts.map +1 -0
  131. package/dist/components/custom/Slider.d.ts +131 -0
  132. package/dist/components/custom/Slider.d.ts.map +1 -0
  133. package/dist/components/custom/Text.d.ts +26 -0
  134. package/dist/components/custom/Text.d.ts.map +1 -0
  135. package/dist/components/custom/Toggle.d.ts +51 -0
  136. package/dist/components/custom/Toggle.d.ts.map +1 -0
  137. package/dist/components/custom/TransformOriginView.d.ts +34 -0
  138. package/dist/components/custom/TransformOriginView.d.ts.map +1 -0
  139. package/dist/components/custom/View.d.ts +33 -0
  140. package/dist/components/custom/View.d.ts.map +1 -0
  141. package/dist/components/custom/WrapText.d.ts +60 -0
  142. package/dist/components/custom/WrapText.d.ts.map +1 -0
  143. package/dist/components/custom/index.cjs +32 -0
  144. package/dist/components/custom/index.cjs.map +1 -0
  145. package/dist/components/custom/index.d.ts +29 -0
  146. package/dist/components/custom/index.d.ts.map +1 -0
  147. package/dist/components/custom/index.js +32 -0
  148. package/dist/components/custom/index.js.map +1 -0
  149. package/dist/components/index.d.ts +28 -0
  150. package/dist/components/index.d.ts.map +1 -0
  151. package/dist/components/internal/SceneWrapper.d.ts +20 -0
  152. package/dist/components/internal/SceneWrapper.d.ts.map +1 -0
  153. package/dist/components/primitives/graphics.d.ts +40 -0
  154. package/dist/components/primitives/graphics.d.ts.map +1 -0
  155. package/dist/components/primitives/image.d.ts +45 -0
  156. package/dist/components/primitives/image.d.ts.map +1 -0
  157. package/dist/components/primitives/nineslice.d.ts +111 -0
  158. package/dist/components/primitives/nineslice.d.ts.map +1 -0
  159. package/dist/components/primitives/sprite.d.ts +58 -0
  160. package/dist/components/primitives/sprite.d.ts.map +1 -0
  161. package/dist/components/primitives/text.d.ts +26 -0
  162. package/dist/components/primitives/text.d.ts.map +1 -0
  163. package/dist/components/primitives/tilesprite.d.ts +47 -0
  164. package/dist/components/primitives/tilesprite.d.ts.map +1 -0
  165. package/dist/components/primitives/view.d.ts +23 -0
  166. package/dist/components/primitives/view.d.ts.map +1 -0
  167. package/dist/core-props.d.ts +605 -0
  168. package/dist/core-props.d.ts.map +1 -0
  169. package/dist/core-types.d.ts +59 -0
  170. package/dist/core-types.d.ts.map +1 -0
  171. package/dist/design-tokens/design-token-presets.d.ts +26 -0
  172. package/dist/design-tokens/design-token-presets.d.ts.map +1 -0
  173. package/dist/design-tokens/design-token-types.d.ts +109 -0
  174. package/dist/design-tokens/design-token-types.d.ts.map +1 -0
  175. package/dist/design-tokens/index.d.ts +8 -0
  176. package/dist/design-tokens/index.d.ts.map +1 -0
  177. package/dist/design-tokens/use-theme-tokens.d.ts +28 -0
  178. package/dist/design-tokens/use-theme-tokens.d.ts.map +1 -0
  179. package/dist/dev-config.d.ts +238 -0
  180. package/dist/dev-config.d.ts.map +1 -0
  181. package/dist/effects/effect-registry.d.ts +54 -0
  182. package/dist/effects/effect-registry.d.ts.map +1 -0
  183. package/dist/effects/index.d.ts +56 -0
  184. package/dist/effects/index.d.ts.map +1 -0
  185. package/dist/effects/use-effect.d.ts +172 -0
  186. package/dist/effects/use-effect.d.ts.map +1 -0
  187. package/dist/fx/convenience-hooks/index.d.ts +7 -0
  188. package/dist/fx/convenience-hooks/index.d.ts.map +1 -0
  189. package/dist/fx/convenience-hooks/use-blur.d.ts +21 -0
  190. package/dist/fx/convenience-hooks/use-blur.d.ts.map +1 -0
  191. package/dist/fx/convenience-hooks/use-glow.d.ts +21 -0
  192. package/dist/fx/convenience-hooks/use-glow.d.ts.map +1 -0
  193. package/dist/fx/convenience-hooks/use-shadow.d.ts +21 -0
  194. package/dist/fx/convenience-hooks/use-shadow.d.ts.map +1 -0
  195. package/dist/fx/fx-creators/blur.d.ts +37 -0
  196. package/dist/fx/fx-creators/blur.d.ts.map +1 -0
  197. package/dist/fx/fx-creators/color-matrix.d.ts +31 -0
  198. package/dist/fx/fx-creators/color-matrix.d.ts.map +1 -0
  199. package/dist/fx/fx-creators/glow.d.ts +36 -0
  200. package/dist/fx/fx-creators/glow.d.ts.map +1 -0
  201. package/dist/fx/fx-creators/index.d.ts +10 -0
  202. package/dist/fx/fx-creators/index.d.ts.map +1 -0
  203. package/dist/fx/fx-creators/pixelate.d.ts +24 -0
  204. package/dist/fx/fx-creators/pixelate.d.ts.map +1 -0
  205. package/dist/fx/fx-creators/shadow.d.ts +43 -0
  206. package/dist/fx/fx-creators/shadow.d.ts.map +1 -0
  207. package/dist/fx/fx-creators/vignette.d.ts +33 -0
  208. package/dist/fx/fx-creators/vignette.d.ts.map +1 -0
  209. package/dist/fx/fx-registry.d.ts +59 -0
  210. package/dist/fx/fx-registry.d.ts.map +1 -0
  211. package/dist/fx/index.d.ts +51 -0
  212. package/dist/fx/index.d.ts.map +1 -0
  213. package/dist/fx/use-fx.d.ts +53 -0
  214. package/dist/fx/use-fx.d.ts.map +1 -0
  215. package/dist/gestures/gesture-manager.d.ts +149 -0
  216. package/dist/gestures/gesture-manager.d.ts.map +1 -0
  217. package/dist/gestures/gesture-types.d.ts +229 -0
  218. package/dist/gestures/gesture-types.d.ts.map +1 -0
  219. package/dist/hooks-svg.d.ts +104 -0
  220. package/dist/hooks-svg.d.ts.map +1 -0
  221. package/dist/hooks.d.ts +135 -0
  222. package/dist/hooks.d.ts.map +1 -0
  223. package/dist/host.d.ts +74 -0
  224. package/dist/host.d.ts.map +1 -0
  225. package/dist/index.cjs +584 -0
  226. package/dist/index.cjs.map +1 -0
  227. package/dist/index.d.ts +34 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +582 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/jsx-dev-runtime.cjs +10 -0
  232. package/dist/jsx-dev-runtime.cjs.map +1 -0
  233. package/dist/jsx-dev-runtime.d.ts +5 -0
  234. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  235. package/dist/jsx-dev-runtime.js +11 -0
  236. package/dist/jsx-dev-runtime.js.map +1 -0
  237. package/dist/jsx-runtime.cjs +43 -0
  238. package/dist/jsx-runtime.cjs.map +1 -0
  239. package/dist/jsx-runtime.d.ts +25 -0
  240. package/dist/jsx-runtime.d.ts.map +1 -0
  241. package/dist/jsx-runtime.js +43 -0
  242. package/dist/jsx-runtime.js.map +1 -0
  243. package/dist/jsx-types.d.ts +33 -0
  244. package/dist/jsx-types.d.ts.map +1 -0
  245. package/dist/layout/appliers/background-applier.d.ts +16 -0
  246. package/dist/layout/appliers/background-applier.d.ts.map +1 -0
  247. package/dist/layout/appliers/container-applier.d.ts +9 -0
  248. package/dist/layout/appliers/container-applier.d.ts.map +1 -0
  249. package/dist/layout/appliers/position-applier.d.ts +8 -0
  250. package/dist/layout/appliers/position-applier.d.ts.map +1 -0
  251. package/dist/layout/index.d.ts +22 -0
  252. package/dist/layout/index.d.ts.map +1 -0
  253. package/dist/layout/layout-engine-test-utils.d.ts +19 -0
  254. package/dist/layout/layout-engine-test-utils.d.ts.map +1 -0
  255. package/dist/layout/layout-engine.d.ts +98 -0
  256. package/dist/layout/layout-engine.d.ts.map +1 -0
  257. package/dist/layout/strategies/base-strategy.d.ts +59 -0
  258. package/dist/layout/strategies/base-strategy.d.ts.map +1 -0
  259. package/dist/layout/strategies/column-layout.d.ts +38 -0
  260. package/dist/layout/strategies/column-layout.d.ts.map +1 -0
  261. package/dist/layout/strategies/row-layout.d.ts +38 -0
  262. package/dist/layout/strategies/row-layout.d.ts.map +1 -0
  263. package/dist/layout/strategies/stack-layout.d.ts +30 -0
  264. package/dist/layout/strategies/stack-layout.d.ts.map +1 -0
  265. package/dist/layout/types.d.ts +137 -0
  266. package/dist/layout/types.d.ts.map +1 -0
  267. package/dist/layout/utils/child-utils.d.ts +74 -0
  268. package/dist/layout/utils/child-utils.d.ts.map +1 -0
  269. package/dist/layout/utils/dimension-calculator.d.ts +59 -0
  270. package/dist/layout/utils/dimension-calculator.d.ts.map +1 -0
  271. package/dist/layout/utils/flex-distributor.d.ts +18 -0
  272. package/dist/layout/utils/flex-distributor.d.ts.map +1 -0
  273. package/dist/layout/utils/size-resolver.d.ts +84 -0
  274. package/dist/layout/utils/size-resolver.d.ts.map +1 -0
  275. package/dist/layout/utils/spacing-calculator.d.ts +27 -0
  276. package/dist/layout/utils/spacing-calculator.d.ts.map +1 -0
  277. package/dist/memo.d.ts +29 -0
  278. package/dist/memo.d.ts.map +1 -0
  279. package/dist/portal/index.d.ts +6 -0
  280. package/dist/portal/index.d.ts.map +1 -0
  281. package/dist/portal/portal-registry.d.ts +97 -0
  282. package/dist/portal/portal-registry.d.ts.map +1 -0
  283. package/dist/portal/portal-types.d.ts +20 -0
  284. package/dist/portal/portal-types.d.ts.map +1 -0
  285. package/dist/render-context.d.ts +118 -0
  286. package/dist/render-context.d.ts.map +1 -0
  287. package/dist/scripts/generate-icon-loaders.d.ts +2 -0
  288. package/dist/scripts/generate-icon-loaders.d.ts.map +1 -0
  289. package/dist/scripts/generate-icon-loaders.js +195 -0
  290. package/dist/scripts/generate-icon-types.d.ts +2 -0
  291. package/dist/scripts/generate-icon-types.d.ts.map +1 -0
  292. package/dist/scripts/generate-icon-types.js +124 -0
  293. package/dist/scripts/generate-icons.d.ts +37 -0
  294. package/dist/scripts/generate-icons.d.ts.map +1 -0
  295. package/dist/scripts/generate-icons.js +494 -0
  296. package/dist/scripts/icon-generator-config.d.ts +87 -0
  297. package/dist/scripts/icon-generator-config.d.ts.map +1 -0
  298. package/dist/scripts/icon-generator-config.js +6 -0
  299. package/dist/theme-base.d.ts +116 -0
  300. package/dist/theme-base.d.ts.map +1 -0
  301. package/dist/theme-custom.d.ts +262 -0
  302. package/dist/theme-custom.d.ts.map +1 -0
  303. package/dist/theme-defaults.d.ts +6 -0
  304. package/dist/theme-defaults.d.ts.map +1 -0
  305. package/dist/theme.d.ts +132 -0
  306. package/dist/theme.d.ts.map +1 -0
  307. package/dist/tooltip/tooltip-types.d.ts +57 -0
  308. package/dist/tooltip/tooltip-types.d.ts.map +1 -0
  309. package/dist/types.d.ts +34 -0
  310. package/dist/types.d.ts.map +1 -0
  311. package/dist/utils/KeyboardInputManager.d.ts +48 -0
  312. package/dist/utils/KeyboardInputManager.d.ts.map +1 -0
  313. package/dist/utils/dom-input-manager.d.ts +109 -0
  314. package/dist/utils/dom-input-manager.d.ts.map +1 -0
  315. package/dist/utils/svg-texture.d.ts +30 -0
  316. package/dist/utils/svg-texture.d.ts.map +1 -0
  317. package/dist/utils/texture-registry.d.ts +49 -0
  318. package/dist/utils/texture-registry.d.ts.map +1 -0
  319. package/dist/vdom.d.ts +60 -0
  320. package/dist/vdom.d.ts.map +1 -0
  321. package/dist/viewport-context.d.ts +39 -0
  322. package/dist/viewport-context.d.ts.map +1 -0
  323. package/dist/vite-plugin-icons.d.ts +29 -0
  324. package/dist/vite-plugin-icons.d.ts.map +1 -0
  325. package/dist/vite-plugin-icons.js +95 -0
  326. package/package.json +117 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Ref object type
3
+ */
4
+ type RefObject<T> = {
5
+ current: T | null;
6
+ };
7
+ /**
8
+ * FX configuration base type
9
+ */
10
+ export interface FXConfig {
11
+ intensity?: number;
12
+ quality?: number;
13
+ onComplete?: () => void;
14
+ }
15
+ /**
16
+ * FX type discriminator (postFX vs preFX)
17
+ */
18
+ export type FXType = 'post' | 'pre';
19
+ /**
20
+ * GameObject with FX pipeline support
21
+ */
22
+ export type FXCapableGameObject = Phaser.GameObjects.Image | Phaser.GameObjects.Sprite | Phaser.GameObjects.Container | Phaser.GameObjects.Text | Phaser.GameObjects.TileSprite | Phaser.GameObjects.NineSlice | Phaser.GameObjects.RenderTexture | Phaser.GameObjects.Video;
23
+ /**
24
+ * FX creator function signature
25
+ * @param obj - GameObject with FX pipeline
26
+ * @param config - Effect-specific configuration
27
+ * @param type - 'post' or 'pre' FX pipeline
28
+ * @returns Cleanup function or FX controller (or any Phaser.FX effect)
29
+ */
30
+ export type FXCreatorFn<TConfig extends FXConfig = FXConfig> = (obj: FXCapableGameObject, config: TConfig, type?: FXType) => (() => void) | Phaser.FX.Controller | any | null;
31
+ /**
32
+ * Hook for applying FX to GameObject
33
+ * @param ref - Ref to GameObject
34
+ * @returns Object with applyFX and clearFX methods
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const ref = useRef(null)
39
+ * const { applyFX, clearFX } = useFX(ref)
40
+ *
41
+ * const handleClick = () => {
42
+ * applyFX(createShadowFX, { offsetX: 4, offsetY: 4, blur: 8 })
43
+ * }
44
+ *
45
+ * return <View ref={ref} onClick={handleClick}>Click me</View>
46
+ * ```
47
+ */
48
+ export declare function useFX<T extends FXCapableGameObject>(ref: RefObject<T>): {
49
+ applyFX: <TConfig extends FXConfig>(fxCreator: FXCreatorFn<TConfig>, config: TConfig, type?: FXType) => void;
50
+ clearFX: () => void;
51
+ };
52
+ export {};
53
+ //# sourceMappingURL=use-fx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-fx.d.ts","sourceRoot":"","sources":["../../src/fx/use-fx.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,KAAK,SAAS,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,CAAA;AAEzC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAEnC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,CAAC,WAAW,CAAC,KAAK,GACxB,MAAM,CAAC,WAAW,CAAC,MAAM,GACzB,MAAM,CAAC,WAAW,CAAC,SAAS,GAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,GACvB,MAAM,CAAC,WAAW,CAAC,UAAU,GAC7B,MAAM,CAAC,WAAW,CAAC,SAAS,GAC5B,MAAM,CAAC,WAAW,CAAC,aAAa,GAChC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAC7D,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,KAEV,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAA;AAErD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;cAiBnD,OAAO,SAAS,QAAQ,aAC5B,WAAW,CAAC,OAAO,CAAC,UACvB,OAAO,SACT,MAAM;;EAmCf"}
@@ -0,0 +1,149 @@
1
+ import { default as Phaser } from 'phaser';
2
+ import { GestureCallbacks, GestureConfig } from './gesture-types';
3
+ /**
4
+ * Generate unique mount root ID for mountJSX isolation
5
+ * @returns Unique root ID
6
+ */
7
+ export declare function generateMountRootId(): number;
8
+ /**
9
+ * Manager for gesture detection across all containers in a scene
10
+ * Singleton per scene, stored in scene.data
11
+ */
12
+ export declare class GestureManager {
13
+ private scene;
14
+ private containers;
15
+ private lastPointerPositions;
16
+ private activePointerDown;
17
+ private activeContainersForMove;
18
+ private hoveredContainers;
19
+ private pendingTimeouts;
20
+ private isInitialized;
21
+ private isDestroyed;
22
+ constructor(scene: Phaser.Scene);
23
+ /**
24
+ * Initialize global event listeners (called once per scene)
25
+ */
26
+ private initialize;
27
+ /**
28
+ * Register a container for gesture tracking
29
+ * @param container - Container to track
30
+ * @param callbacks - Gesture event callbacks
31
+ * @param hitArea - Interactive hit area
32
+ * @param config - Gesture configuration
33
+ */
34
+ registerContainer(container: Phaser.GameObjects.Container, callbacks: GestureCallbacks, hitArea: Phaser.Geom.Rectangle, config?: GestureConfig): void;
35
+ /**
36
+ * Unregister a container
37
+ * @param container - Container to remove
38
+ */
39
+ unregisterContainer(container: Phaser.GameObjects.Container): void;
40
+ /**
41
+ * Check if a container is registered
42
+ * @param container - Container to check
43
+ * @returns True if container is registered
44
+ */
45
+ hasContainer(container: Phaser.GameObjects.Container): boolean;
46
+ /**
47
+ * Create a gesture event data object with propagation control
48
+ * @param pointer - Phaser pointer
49
+ * @param localX - Local X coordinate
50
+ * @param localY - Local Y coordinate
51
+ * @param width - Hit area width
52
+ * @param height - Hit area height
53
+ * @param options - Optional additional data (dx, dy, isInside, state)
54
+ * @returns Event data with stopPropagation support
55
+ */
56
+ private createEventData;
57
+ /**
58
+ * Get effective depth considering entire parent hierarchy
59
+ * @param container - Container to calculate depth for
60
+ * @returns Accumulated depth from container and all parents
61
+ */
62
+ private getEffectiveDepth;
63
+ /**
64
+ * Get mount root ID from container hierarchy
65
+ * Walks up to find the topmost container with __mountRootId
66
+ * @param container - Container to check
67
+ * @returns Mount root ID or 0 if none found
68
+ */
69
+ private getRootId;
70
+ /**
71
+ * Bubble an event through overlapping containers
72
+ * Iterates all containers at pointer position and calls handler until stopPropagation
73
+ * Sorts containers by their actual display list order (z-index) to respect visual stacking
74
+ * @param pointer - The pointer that triggered the event
75
+ * @param eventType - Type of event for filtering callbacks
76
+ * @param handler - Function to call for each container, returns true if propagation stopped
77
+ * @param filterSet - Optional set of containers to limit bubbling to (for move events)
78
+ * @param skipContainerCheck - Skip the isPointerInContainer check (for final move events)
79
+ */
80
+ private bubbleEvent;
81
+ /**
82
+ * Update hit area for a container
83
+ * @param container - Container to update
84
+ * @param hitArea - New hit area
85
+ */
86
+ updateHitArea(container: Phaser.GameObjects.Container, hitArea: Phaser.Geom.Rectangle): void;
87
+ /**
88
+ * Update callbacks for a container
89
+ * @param container - Container to update
90
+ * @param callbacks - New callbacks
91
+ */
92
+ updateCallbacks(container: Phaser.GameObjects.Container, callbacks: GestureCallbacks): void;
93
+ /**
94
+ * Handle global pointer down event
95
+ * Registers all containers that were hit for move event tracking
96
+ * Only the topmost gets touch/longpress callbacks
97
+ */
98
+ private handlePointerDown;
99
+ /**
100
+ * Handle global pointer up event
101
+ */
102
+ private handlePointerUp;
103
+ /**
104
+ * Handle pointer up outside canvas (global window events)
105
+ * Ensures touch move 'end' state is sent even when pointer released outside
106
+ * Also handles onTouchOutside for ALL containers
107
+ */
108
+ private handleGlobalPointerUp;
109
+ /**
110
+ * Handle global pointer move event
111
+ * Detects hover state changes and notifies containers with onHoverStart/onHoverEnd
112
+ * Only notifies containers that were hit during pointer down for onTouchMove
113
+ * Bubbles through them until stopPropagation() is called
114
+ */
115
+ private handlePointerMove;
116
+ /**
117
+ * Check if pointer is within a container's hit area
118
+ * Also checks parent visibility chain to handle collapsed accordions
119
+ */
120
+ private isPointerInContainer;
121
+ /**
122
+ * Convert global pointer position to container local coordinates
123
+ */
124
+ private getLocalPosition;
125
+ /**
126
+ * Detect hover state changes for all containers (desktop/mouse only)
127
+ * Called on every pointer move to update hover state
128
+ */
129
+ private detectHoverChanges;
130
+ /**
131
+ * Create hover event data
132
+ */
133
+ private createHoverEventData;
134
+ /**
135
+ * Handle mouse wheel event
136
+ * Bubbles to all containers under the pointer
137
+ */
138
+ private handleWheel;
139
+ /**
140
+ * Cleanup all resources
141
+ */
142
+ private destroy;
143
+ }
144
+ /**
145
+ * Get or create GestureManager for a scene
146
+ * Stored in scene.data to ensure singleton per scene
147
+ */
148
+ export declare function getGestureManager(scene: Phaser.Scene): GestureManager;
149
+ //# sourceMappingURL=gesture-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture-manager.d.ts","sourceRoot":"","sources":["../../src/gestures/gesture-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EAKd,MAAM,iBAAiB,CAAA;AAMxB;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAiE;IAGnF,OAAO,CAAC,oBAAoB,CAA8C;IAG1E,OAAO,CAAC,iBAAiB,CAKV;IAGf,OAAO,CAAC,uBAAuB,CAAuD;IAGtF,OAAO,CAAC,iBAAiB,CAAmD;IAG5E,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAQ;gBAEf,KAAK,EAAE,MAAM,CAAC,KAAK;IAI/B;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;;;;;OAMG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EACvC,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAC9B,MAAM,GAAE,aAAkB,GACzB,IAAI;IAkBP;;;OAGG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI;IAoBlE;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO;IAI9D;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAejB;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAkEnB;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI;IAO5F;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAO3F;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAwGzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsIvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA+G7B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAyFzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAyGnB;;OAEG;IACH,OAAO,CAAC,OAAO;CA2ChB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,cAAc,CAerE"}
@@ -0,0 +1,229 @@
1
+ import { default as Phaser } from 'phaser';
2
+ /**
3
+ * Touch move gesture state
4
+ */
5
+ export type TouchMoveState = 'start' | 'move' | 'end';
6
+ /**
7
+ * Data passed to keyboard event handlers
8
+ */
9
+ export interface KeyboardEventData {
10
+ /** The original DOM keyboard event */
11
+ event: KeyboardEvent;
12
+ /** The key value of the key represented by the event */
13
+ key: string;
14
+ /** The code value of the physical key */
15
+ code: string;
16
+ /** Whether the Alt key was pressed */
17
+ altKey: boolean;
18
+ /** Whether the Ctrl key was pressed */
19
+ ctrlKey: boolean;
20
+ /** Whether the Shift key was pressed */
21
+ shiftKey: boolean;
22
+ /** Whether the Meta key (Cmd/Win) was pressed */
23
+ metaKey: boolean;
24
+ /** Whether this is a repeat event (key held down) */
25
+ repeat: boolean;
26
+ /**
27
+ * Prevent default browser behavior
28
+ */
29
+ preventDefault(): void;
30
+ /**
31
+ * Stop event propagation
32
+ */
33
+ stopPropagation(): void;
34
+ }
35
+ /**
36
+ * Data passed to input event handlers
37
+ */
38
+ export interface InputEventData {
39
+ /** The current value of the input */
40
+ value: string;
41
+ /** The original DOM input event */
42
+ event: Event;
43
+ /**
44
+ * Prevent default browser behavior
45
+ */
46
+ preventDefault(): void;
47
+ /**
48
+ * Stop event propagation
49
+ */
50
+ stopPropagation(): void;
51
+ }
52
+ /**
53
+ * Data passed to focus/blur event handlers
54
+ */
55
+ export interface FocusEventData {
56
+ /** The original DOM focus event */
57
+ event: FocusEvent;
58
+ /**
59
+ * Prevent default browser behavior
60
+ */
61
+ preventDefault(): void;
62
+ /**
63
+ * Stop event propagation
64
+ */
65
+ stopPropagation(): void;
66
+ }
67
+ /**
68
+ * Data passed to hover event handlers (desktop/mouse only)
69
+ */
70
+ export interface HoverEventData {
71
+ /** The Phaser pointer that triggered the event */
72
+ pointer: Phaser.Input.Pointer;
73
+ /** Local X coordinate relative to container origin (0,0) */
74
+ localX: number;
75
+ /** Local Y coordinate relative to container origin (0,0) */
76
+ localY: number;
77
+ /** Width of the container's hit area */
78
+ width: number;
79
+ /** Height of the container's hit area */
80
+ height: number;
81
+ /**
82
+ * Stop event propagation to parent containers
83
+ */
84
+ stopPropagation(): void;
85
+ /**
86
+ * Check if propagation has been stopped
87
+ * @returns true if stopPropagation() was called
88
+ */
89
+ isPropagationStopped(): boolean;
90
+ }
91
+ /**
92
+ * Data passed to wheel event handlers (desktop/mouse only)
93
+ */
94
+ export interface WheelEventData {
95
+ /** The Phaser pointer at the time of the wheel event */
96
+ pointer: Phaser.Input.Pointer;
97
+ /** Local X coordinate relative to container origin (0,0) */
98
+ localX: number;
99
+ /** Local Y coordinate relative to container origin (0,0) */
100
+ localY: number;
101
+ /** Wheel scroll delta X (horizontal scrolling) */
102
+ deltaX: number;
103
+ /** Wheel scroll delta Y (vertical scrolling) */
104
+ deltaY: number;
105
+ /** Wheel scroll delta Z (some mice) */
106
+ deltaZ: number;
107
+ /** Delta mode: 0 = pixels, 1 = lines, 2 = pages */
108
+ deltaMode: number;
109
+ /** Width of the container's hit area */
110
+ width: number;
111
+ /** Height of the container's hit area */
112
+ height: number;
113
+ /** Original DOM wheel event */
114
+ originalEvent: WheelEvent;
115
+ /**
116
+ * Stop event propagation to parent containers
117
+ */
118
+ stopPropagation(): void;
119
+ /**
120
+ * Check if propagation has been stopped
121
+ * @returns true if stopPropagation() was called
122
+ */
123
+ isPropagationStopped(): boolean;
124
+ /**
125
+ * Prevent default browser behavior (e.g., page scroll)
126
+ */
127
+ preventDefault(): void;
128
+ }
129
+ /**
130
+ * Data passed to gesture event handlers
131
+ * Supports DOM-style event propagation control
132
+ */
133
+ export interface GestureEventData {
134
+ /** The Phaser pointer that triggered the event */
135
+ pointer: Phaser.Input.Pointer;
136
+ /** Local X coordinate relative to container origin (0,0) */
137
+ localX: number;
138
+ /** Local Y coordinate relative to container origin (0,0) */
139
+ localY: number;
140
+ /** Delta X since last move event (only for onTouchMove) */
141
+ dx?: number;
142
+ /** Delta Y since last move event (only for onTouchMove) */
143
+ dy?: number;
144
+ /** Width of the container's hit area */
145
+ width: number;
146
+ /** Height of the container's hit area */
147
+ height: number;
148
+ /** Whether pointer is currently inside the container hit area */
149
+ isInside?: boolean;
150
+ /** Current state of touch move gesture: 'start' (first move), 'move' (during), 'end' (pointer up) (only for onTouchMove) */
151
+ state?: TouchMoveState;
152
+ /**
153
+ * Stop event propagation to parent containers
154
+ * Similar to DOM's event.stopPropagation()
155
+ * Default behavior: events bubble up to parent containers
156
+ */
157
+ stopPropagation(): void;
158
+ /**
159
+ * Check if propagation has been stopped
160
+ * @returns true if stopPropagation() was called
161
+ */
162
+ isPropagationStopped(): boolean;
163
+ }
164
+ /**
165
+ * Callback functions for gesture events
166
+ */
167
+ export interface GestureCallbacks {
168
+ /** Called on pointer down + up on the same target (click/tap) */
169
+ onTouch?: (data: GestureEventData) => void;
170
+ /** Called when pointer up occurs outside the container (for click-outside detection) */
171
+ onTouchOutside?: (data: GestureEventData) => void;
172
+ /** Called during pointer movement - continues even when outside bounds */
173
+ onTouchMove?: (data: GestureEventData) => void;
174
+ /** Called when double tap/click is detected */
175
+ onDoubleTap?: (data: GestureEventData) => void;
176
+ /** Called when pointer is held down for configured duration */
177
+ onLongPress?: (data: GestureEventData) => void;
178
+ /** Called when a key is pressed down */
179
+ onKeyDown?: (data: KeyboardEventData) => void;
180
+ /** Called when a key is released */
181
+ onKeyUp?: (data: KeyboardEventData) => void;
182
+ /** Called when input value changes */
183
+ onInput?: (data: InputEventData) => void;
184
+ /** Called when element receives focus */
185
+ onFocus?: (data: FocusEventData) => void;
186
+ /** Called when element loses focus */
187
+ onBlur?: (data: FocusEventData) => void;
188
+ /** Called when pointer enters the container (desktop/mouse only) */
189
+ onHoverStart?: (data: HoverEventData) => void;
190
+ /** Called when pointer exits the container (desktop/mouse only) */
191
+ onHoverEnd?: (data: HoverEventData) => void;
192
+ /** Called when mouse wheel is scrolled over container (desktop/mouse only) */
193
+ onWheel?: (data: WheelEventData) => void;
194
+ }
195
+ /**
196
+ * Configuration for gesture detection
197
+ */
198
+ export interface GestureConfig {
199
+ /** Duration in ms to trigger long press (default: 500) */
200
+ longPressDuration?: number;
201
+ /** Max time in ms between taps for double tap (default: 300) */
202
+ doubleTapDelay?: number;
203
+ /** Max time in ms for a valid touch/click (prevents delayed touch after long hold) (default: 500) */
204
+ maxTouchDuration?: number;
205
+ }
206
+ /**
207
+ * Default gesture configuration values
208
+ */
209
+ export declare const DEFAULT_GESTURE_CONFIG: Required<GestureConfig>;
210
+ /**
211
+ * Internal state for tracking a registered container
212
+ */
213
+ export interface GestureContainerState {
214
+ container: Phaser.GameObjects.Container;
215
+ callbacks: GestureCallbacks;
216
+ config: Required<GestureConfig>;
217
+ hitArea: Phaser.Geom.Rectangle;
218
+ mountRootId?: number | undefined;
219
+ lastTapTime?: number | undefined;
220
+ longPressTimer?: NodeJS.Timeout | undefined;
221
+ pointerDownPosition?: {
222
+ x: number;
223
+ y: number;
224
+ } | undefined;
225
+ pointerDownTime?: number | undefined;
226
+ longPressTriggered?: boolean | undefined;
227
+ isFirstMove?: boolean | undefined;
228
+ }
229
+ //# sourceMappingURL=gesture-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture-types.d.ts","sourceRoot":"","sources":["../../src/gestures/gesture-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { default as Phaser } from 'phaser';
2
+ /**
3
+ * SVG texture configuration for loading
4
+ */
5
+ export interface SVGTextureConfig {
6
+ key: string;
7
+ svg: string;
8
+ width?: number;
9
+ height?: number;
10
+ }
11
+ /**
12
+ * Manually release a global SVG texture from memory
13
+ * Only call this if you're sure no component needs the texture anymore
14
+ *
15
+ * @param key - The texture key to release
16
+ * @example
17
+ * ```ts
18
+ * // In a Phaser scene
19
+ * import { releaseSVGTexture } from '@number10/phaserjsx'
20
+ *
21
+ * // When changing levels or cleaning up
22
+ * releaseSVGTexture('icon-bell')
23
+ * ```
24
+ */
25
+ export declare function releaseSVGTexture(scene: Phaser.Scene, key: string): void;
26
+ /**
27
+ * Manually release multiple global SVG textures from memory
28
+ * Only call this if you're sure no component needs these textures anymore
29
+ *
30
+ * @param keys - Array of texture keys to release
31
+ * @example
32
+ * ```ts
33
+ * // In a Phaser scene
34
+ * import { releaseSVGTextures } from '@number10/phaserjsx'
35
+ *
36
+ * // Clean up all icon textures when changing scenes
37
+ * releaseSVGTextures(['icon-bell', 'icon-settings', 'icon-user'])
38
+ * ```
39
+ */
40
+ export declare function releaseSVGTextures(scene: Phaser.Scene, keys: string[]): void;
41
+ /**
42
+ * Manually release ALL global SVG textures from memory
43
+ * Use with caution - this clears all textures managed by the texture registry
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * // In a Phaser scene shutdown or cleanup
48
+ * import { releaseAllSVGTextures } from '@number10/phaserjsx'
49
+ *
50
+ * // When changing to a different scene or restarting
51
+ * releaseAllSVGTextures()
52
+ * ```
53
+ */
54
+ export declare function releaseAllSVGTextures(): void;
55
+ /**
56
+ * Hook to load a single SVG as a Phaser texture
57
+ *
58
+ * Automatically handles:
59
+ * - Scene detection from component context
60
+ * - Texture loading and registration
61
+ * - Cleanup on unmount (removes texture from Phaser)
62
+ *
63
+ * @param key - Unique texture key
64
+ * @param svg - SVG string or URL
65
+ * @param width - Texture width in pixels (default: 32)
66
+ * @param height - Texture height in pixels (default: 32)
67
+ * @returns true when texture is loaded and ready to use
68
+ * @example
69
+ * ```tsx
70
+ * function MyIcon() {
71
+ * const ready = useSVGTexture('icon-bell', bellIconSvg, 32, 32)
72
+ * return ready ? <Image texture="icon-bell" /> : null
73
+ * }
74
+ * ```
75
+ */
76
+ export declare function useSVGTexture(key: string, svg: string, width?: number, height?: number): boolean;
77
+ /**
78
+ * Hook to load multiple SVG textures
79
+ *
80
+ * Automatically handles:
81
+ * - Scene detection from component context
82
+ * - Parallel texture loading
83
+ * - Cleanup on unmount (removes all textures from Phaser)
84
+ *
85
+ * @param configs - Array of SVG texture configurations
86
+ * @returns true when all textures are loaded and ready to use
87
+ * @example
88
+ * ```tsx
89
+ * function MyIcons() {
90
+ * const ready = useSVGTextures([
91
+ * { key: 'icon-bell', svg: bellSvg, width: 32, height: 32 },
92
+ * { key: 'icon-settings', svg: settingsSvg, width: 24 },
93
+ * ])
94
+ * return ready ? (
95
+ * <>
96
+ * <Image texture="icon-bell" />
97
+ * <Image texture="icon-settings" />
98
+ * </>
99
+ * ) : null
100
+ * }
101
+ * ```
102
+ */
103
+ export declare function useSVGTextures(configs: SVGTextureConfig[]): boolean;
104
+ //# sourceMappingURL=hooks-svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-svg.d.ts","sourceRoot":"","sources":["../src/hooks-svg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAK3B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAI5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAAW,GAClB,OAAO,CAoCT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAwDnE"}