@caperjs/core 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 (600) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +62 -0
  3. package/cli/add.mjs +197 -0
  4. package/cli/audio/cc.mjs +128 -0
  5. package/cli/audio/index.mjs +42 -0
  6. package/cli/audio/utils.mjs +56 -0
  7. package/cli/create-caper.mjs +8 -0
  8. package/cli/create.mjs +351 -0
  9. package/cli/install-peerdeps.mjs +57 -0
  10. package/cli/update.mjs +9 -0
  11. package/cli/utils.mjs +81 -0
  12. package/cli/vite.mjs +55 -0
  13. package/cli/voiceover/generateVoiceoverCSV.mjs +158 -0
  14. package/cli/voiceover/index.mjs +1 -0
  15. package/cli.mjs +157 -0
  16. package/client.d.ts +7 -0
  17. package/config/assetpack.mjs +212 -0
  18. package/config/tsconfig.base.json +28 -0
  19. package/config/vite.mjs +2464 -0
  20. package/extras/css/accessibility.css +9 -0
  21. package/extras/css/fullscreen.css +28 -0
  22. package/extras/css/loader.css +67 -0
  23. package/extras/llms.txt +1602 -0
  24. package/lib/CaptionsPlugin-Dc8fIrjy.js +277 -0
  25. package/lib/CaptionsPlugin-Dc8fIrjy.js.map +1 -0
  26. package/lib/DataAdapter-BY2114sp.js +84 -0
  27. package/lib/DataAdapter-BY2114sp.js.map +1 -0
  28. package/lib/DebugRenderer-BJMLILqI.js +1385 -0
  29. package/lib/DebugRenderer-BJMLILqI.js.map +1 -0
  30. package/lib/DevToolsPlugin-wQ5rOkn0.js +31 -0
  31. package/lib/DevToolsPlugin-wQ5rOkn0.js.map +1 -0
  32. package/lib/GSAPPlugin-DHhSZKv8.js +350 -0
  33. package/lib/GSAPPlugin-DHhSZKv8.js.map +1 -0
  34. package/lib/LayoutPlugin-B-DF9SYM.js +1271 -0
  35. package/lib/LayoutPlugin-B-DF9SYM.js.map +1 -0
  36. package/lib/SpinePlugin-Dz_3dljz.js +6077 -0
  37. package/lib/SpinePlugin-Dz_3dljz.js.map +1 -0
  38. package/lib/StatsPlugin-Cg82JMBD.js +70 -0
  39. package/lib/StatsPlugin-Cg82JMBD.js.map +1 -0
  40. package/lib/VoiceOverPlugin-BR3ImT8C.js +114 -0
  41. package/lib/VoiceOverPlugin-BR3ImT8C.js.map +1 -0
  42. package/lib/caper.mjs +1233 -0
  43. package/lib/caper.mjs.map +1 -0
  44. package/lib/core/Application.d.ts +268 -0
  45. package/lib/core/Application.d.ts.map +1 -0
  46. package/lib/core/config.d.ts +39 -0
  47. package/lib/core/config.d.ts.map +1 -0
  48. package/lib/core/create.d.ts +41 -0
  49. package/lib/core/create.d.ts.map +1 -0
  50. package/lib/core/globals.d.ts +51 -0
  51. package/lib/core/globals.d.ts.map +1 -0
  52. package/lib/core/index.d.ts +7 -0
  53. package/lib/core/index.d.ts.map +1 -0
  54. package/lib/core/interfaces/IApplication.d.ts +566 -0
  55. package/lib/core/interfaces/IApplication.d.ts.map +1 -0
  56. package/lib/core/interfaces/IApplicationOptions.d.ts +65 -0
  57. package/lib/core/interfaces/IApplicationOptions.d.ts.map +1 -0
  58. package/lib/core/interfaces/ICoreFunctions.d.ts +49 -0
  59. package/lib/core/interfaces/ICoreFunctions.d.ts.map +1 -0
  60. package/lib/core/interfaces/ICoreSignals.d.ts +57 -0
  61. package/lib/core/interfaces/ICoreSignals.d.ts.map +1 -0
  62. package/lib/core/interfaces/IStorageCapability.d.ts +20 -0
  63. package/lib/core/interfaces/IStorageCapability.d.ts.map +1 -0
  64. package/lib/core/interfaces/IStorageCapability.test.d.ts +2 -0
  65. package/lib/core/interfaces/IStorageCapability.test.d.ts.map +1 -0
  66. package/lib/core/interfaces/index.d.ts +7 -0
  67. package/lib/core/interfaces/index.d.ts.map +1 -0
  68. package/lib/core/registries.d.ts +8 -0
  69. package/lib/core/registries.d.ts.map +1 -0
  70. package/lib/core/types.d.ts +12 -0
  71. package/lib/core/types.d.ts.map +1 -0
  72. package/lib/display/AnimatedSprite.d.ts +40 -0
  73. package/lib/display/AnimatedSprite.d.ts.map +1 -0
  74. package/lib/display/Camera.d.ts +102 -0
  75. package/lib/display/Camera.d.ts.map +1 -0
  76. package/lib/display/Container.d.ts +115 -0
  77. package/lib/display/Container.d.ts.map +1 -0
  78. package/lib/display/Entity.d.ts +46 -0
  79. package/lib/display/Entity.d.ts.map +1 -0
  80. package/lib/display/ParticleContainer.d.ts +58 -0
  81. package/lib/display/ParticleContainer.d.ts.map +1 -0
  82. package/lib/display/Scene.d.ts +250 -0
  83. package/lib/display/Scene.d.ts.map +1 -0
  84. package/lib/display/SceneTransition.d.ts +41 -0
  85. package/lib/display/SceneTransition.d.ts.map +1 -0
  86. package/lib/display/SpineAnimation.d.ts +76 -0
  87. package/lib/display/SpineAnimation.d.ts.map +1 -0
  88. package/lib/display/Svg.d.ts +5 -0
  89. package/lib/display/Svg.d.ts.map +1 -0
  90. package/lib/display/index.d.ts +10 -0
  91. package/lib/display/index.d.ts.map +1 -0
  92. package/lib/env.d.ts +6 -0
  93. package/lib/hello.d.ts +2 -0
  94. package/lib/hello.d.ts.map +1 -0
  95. package/lib/index.d.ts +15 -0
  96. package/lib/index.d.ts.map +1 -0
  97. package/lib/mixins/animated.d.ts +53 -0
  98. package/lib/mixins/animated.d.ts.map +1 -0
  99. package/lib/mixins/factory/Factory.d.ts +8 -0
  100. package/lib/mixins/factory/Factory.d.ts.map +1 -0
  101. package/lib/mixins/factory/const.d.ts +67 -0
  102. package/lib/mixins/factory/const.d.ts.map +1 -0
  103. package/lib/mixins/factory/index.d.ts +8 -0
  104. package/lib/mixins/factory/index.d.ts.map +1 -0
  105. package/lib/mixins/factory/methods.d.ts +3 -0
  106. package/lib/mixins/factory/methods.d.ts.map +1 -0
  107. package/lib/mixins/factory/props.d.ts +160 -0
  108. package/lib/mixins/factory/props.d.ts.map +1 -0
  109. package/lib/mixins/factory/registry.d.ts +27 -0
  110. package/lib/mixins/factory/registry.d.ts.map +1 -0
  111. package/lib/mixins/factory/registry.test.d.ts +2 -0
  112. package/lib/mixins/factory/registry.test.d.ts.map +1 -0
  113. package/lib/mixins/factory/schema.d.ts +71 -0
  114. package/lib/mixins/factory/schema.d.ts.map +1 -0
  115. package/lib/mixins/factory/ui-registry.d.ts +20 -0
  116. package/lib/mixins/factory/ui-registry.d.ts.map +1 -0
  117. package/lib/mixins/factory/utils.d.ts +11 -0
  118. package/lib/mixins/factory/utils.d.ts.map +1 -0
  119. package/lib/mixins/focus.d.ts +15 -0
  120. package/lib/mixins/focus.d.ts.map +1 -0
  121. package/lib/mixins/index.d.ts +6 -0
  122. package/lib/mixins/index.d.ts.map +1 -0
  123. package/lib/mixins/interaction.d.ts +20 -0
  124. package/lib/mixins/interaction.d.ts.map +1 -0
  125. package/lib/mixins/signals.d.ts +15 -0
  126. package/lib/mixins/signals.d.ts.map +1 -0
  127. package/lib/plugins/AssetsPlugin.d.ts +79 -0
  128. package/lib/plugins/AssetsPlugin.d.ts.map +1 -0
  129. package/lib/plugins/DataAdapter.d.ts +95 -0
  130. package/lib/plugins/DataAdapter.d.ts.map +1 -0
  131. package/lib/plugins/DevToolsPlugin.d.ts +97 -0
  132. package/lib/plugins/DevToolsPlugin.d.ts.map +1 -0
  133. package/lib/plugins/FullScreenPlugin.d.ts +240 -0
  134. package/lib/plugins/FullScreenPlugin.d.ts.map +1 -0
  135. package/lib/plugins/GSAPPlugin.d.ts +634 -0
  136. package/lib/plugins/GSAPPlugin.d.ts.map +1 -0
  137. package/lib/plugins/KeyboardPlugin.d.ts +53 -0
  138. package/lib/plugins/KeyboardPlugin.d.ts.map +1 -0
  139. package/lib/plugins/LayoutPlugin.d.ts +100 -0
  140. package/lib/plugins/LayoutPlugin.d.ts.map +1 -0
  141. package/lib/plugins/LookupPlugin.d.ts +223 -0
  142. package/lib/plugins/LookupPlugin.d.ts.map +1 -0
  143. package/lib/plugins/Plugin.d.ts +132 -0
  144. package/lib/plugins/Plugin.d.ts.map +1 -0
  145. package/lib/plugins/Plugin.test.d.ts +2 -0
  146. package/lib/plugins/Plugin.test.d.ts.map +1 -0
  147. package/lib/plugins/PopupManagerPlugin.d.ts +108 -0
  148. package/lib/plugins/PopupManagerPlugin.d.ts.map +1 -0
  149. package/lib/plugins/ResizerPlugin.d.ts +62 -0
  150. package/lib/plugins/ResizerPlugin.d.ts.map +1 -0
  151. package/lib/plugins/SceneManagerPlugin.d.ts +122 -0
  152. package/lib/plugins/SceneManagerPlugin.d.ts.map +1 -0
  153. package/lib/plugins/StatsPlugin.d.ts +8 -0
  154. package/lib/plugins/StatsPlugin.d.ts.map +1 -0
  155. package/lib/plugins/TimerPlugin.d.ts +401 -0
  156. package/lib/plugins/TimerPlugin.d.ts.map +1 -0
  157. package/lib/plugins/WebEventsPlugin.d.ts +60 -0
  158. package/lib/plugins/WebEventsPlugin.d.ts.map +1 -0
  159. package/lib/plugins/actions/ActionsPlugin.d.ts +39 -0
  160. package/lib/plugins/actions/ActionsPlugin.d.ts.map +1 -0
  161. package/lib/plugins/actions/constants.d.ts +52 -0
  162. package/lib/plugins/actions/constants.d.ts.map +1 -0
  163. package/lib/plugins/actions/index.d.ts +5 -0
  164. package/lib/plugins/actions/index.d.ts.map +1 -0
  165. package/lib/plugins/actions/methods.d.ts +11 -0
  166. package/lib/plugins/actions/methods.d.ts.map +1 -0
  167. package/lib/plugins/actions/types.d.ts +25 -0
  168. package/lib/plugins/actions/types.d.ts.map +1 -0
  169. package/lib/plugins/audio/AudioChannel.d.ts +46 -0
  170. package/lib/plugins/audio/AudioChannel.d.ts.map +1 -0
  171. package/lib/plugins/audio/AudioChannel.test.d.ts +2 -0
  172. package/lib/plugins/audio/AudioChannel.test.d.ts.map +1 -0
  173. package/lib/plugins/audio/AudioInstance.d.ts +79 -0
  174. package/lib/plugins/audio/AudioInstance.d.ts.map +1 -0
  175. package/lib/plugins/audio/AudioManagerPlugin.d.ts +323 -0
  176. package/lib/plugins/audio/AudioManagerPlugin.d.ts.map +1 -0
  177. package/lib/plugins/audio/VoiceOverPlugin.d.ts +69 -0
  178. package/lib/plugins/audio/VoiceOverPlugin.d.ts.map +1 -0
  179. package/lib/plugins/audio/index.d.ts +4 -0
  180. package/lib/plugins/audio/index.d.ts.map +1 -0
  181. package/lib/plugins/breakpoints/BreakpointPlugin.d.ts +109 -0
  182. package/lib/plugins/breakpoints/BreakpointPlugin.d.ts.map +1 -0
  183. package/lib/plugins/breakpoints/BreakpointPlugin.test.d.ts +2 -0
  184. package/lib/plugins/breakpoints/BreakpointPlugin.test.d.ts.map +1 -0
  185. package/lib/plugins/breakpoints/evaluate.d.ts +53 -0
  186. package/lib/plugins/breakpoints/evaluate.d.ts.map +1 -0
  187. package/lib/plugins/breakpoints/evaluate.test.d.ts +2 -0
  188. package/lib/plugins/breakpoints/evaluate.test.d.ts.map +1 -0
  189. package/lib/plugins/breakpoints/index.d.ts +4 -0
  190. package/lib/plugins/breakpoints/index.d.ts.map +1 -0
  191. package/lib/plugins/breakpoints/methods.d.ts +23 -0
  192. package/lib/plugins/breakpoints/methods.d.ts.map +1 -0
  193. package/lib/plugins/breakpoints/types.d.ts +70 -0
  194. package/lib/plugins/breakpoints/types.d.ts.map +1 -0
  195. package/lib/plugins/captions/CaptionsPlugin.d.ts +150 -0
  196. package/lib/plugins/captions/CaptionsPlugin.d.ts.map +1 -0
  197. package/lib/plugins/captions/CaptionsRenderer.d.ts +37 -0
  198. package/lib/plugins/captions/CaptionsRenderer.d.ts.map +1 -0
  199. package/lib/plugins/captions/index.d.ts +3 -0
  200. package/lib/plugins/captions/index.d.ts.map +1 -0
  201. package/lib/plugins/defaults.d.ts +4 -0
  202. package/lib/plugins/defaults.d.ts.map +1 -0
  203. package/lib/plugins/focus/FocusManagerPlugin.d.ts +148 -0
  204. package/lib/plugins/focus/FocusManagerPlugin.d.ts.map +1 -0
  205. package/lib/plugins/focus/FocusOutliner.d.ts +32 -0
  206. package/lib/plugins/focus/FocusOutliner.d.ts.map +1 -0
  207. package/lib/plugins/focus/index.d.ts +3 -0
  208. package/lib/plugins/focus/index.d.ts.map +1 -0
  209. package/lib/plugins/i18nPlugin.d.ts +128 -0
  210. package/lib/plugins/i18nPlugin.d.ts.map +1 -0
  211. package/lib/plugins/index.d.ts +18 -0
  212. package/lib/plugins/index.d.ts.map +1 -0
  213. package/lib/plugins/input/AbstractControls.d.ts +8 -0
  214. package/lib/plugins/input/AbstractControls.d.ts.map +1 -0
  215. package/lib/plugins/input/Controls.d.ts +16 -0
  216. package/lib/plugins/input/Controls.d.ts.map +1 -0
  217. package/lib/plugins/input/InputPlugin.d.ts +52 -0
  218. package/lib/plugins/input/InputPlugin.d.ts.map +1 -0
  219. package/lib/plugins/input/constants.d.ts +8 -0
  220. package/lib/plugins/input/constants.d.ts.map +1 -0
  221. package/lib/plugins/input/index.d.ts +10 -0
  222. package/lib/plugins/input/index.d.ts.map +1 -0
  223. package/lib/plugins/input/interfaces.d.ts +30 -0
  224. package/lib/plugins/input/interfaces.d.ts.map +1 -0
  225. package/lib/plugins/input/keyboard/KeyboardContols.d.ts +28 -0
  226. package/lib/plugins/input/keyboard/KeyboardContols.d.ts.map +1 -0
  227. package/lib/plugins/input/keyboard/index.d.ts +3 -0
  228. package/lib/plugins/input/keyboard/index.d.ts.map +1 -0
  229. package/lib/plugins/input/keyboard/interfaces.d.ts +18 -0
  230. package/lib/plugins/input/keyboard/interfaces.d.ts.map +1 -0
  231. package/lib/plugins/input/methods.d.ts +4 -0
  232. package/lib/plugins/input/methods.d.ts.map +1 -0
  233. package/lib/plugins/input/touch/TouchControls.d.ts +35 -0
  234. package/lib/plugins/input/touch/TouchControls.d.ts.map +1 -0
  235. package/lib/plugins/input/touch/constants.d.ts +14 -0
  236. package/lib/plugins/input/touch/constants.d.ts.map +1 -0
  237. package/lib/plugins/input/touch/index.d.ts +4 -0
  238. package/lib/plugins/input/touch/index.d.ts.map +1 -0
  239. package/lib/plugins/input/touch/interfaces.d.ts +15 -0
  240. package/lib/plugins/input/touch/interfaces.d.ts.map +1 -0
  241. package/lib/plugins/input/types.d.ts +32 -0
  242. package/lib/plugins/input/types.d.ts.map +1 -0
  243. package/lib/plugins/input/utils.d.ts +23 -0
  244. package/lib/plugins/input/utils.d.ts.map +1 -0
  245. package/lib/plugins/spine/SpinePlugin.d.ts +6 -0
  246. package/lib/plugins/spine/SpinePlugin.d.ts.map +1 -0
  247. package/lib/plugins/spine/pixi-spine/BatchableSpineSlot.d.ts +31 -0
  248. package/lib/plugins/spine/pixi-spine/BatchableSpineSlot.d.ts.map +1 -0
  249. package/lib/plugins/spine/pixi-spine/Spine.d.ts +211 -0
  250. package/lib/plugins/spine/pixi-spine/Spine.d.ts.map +1 -0
  251. package/lib/plugins/spine/pixi-spine/SpineDebugRenderer.d.ts +81 -0
  252. package/lib/plugins/spine/pixi-spine/SpineDebugRenderer.d.ts.map +1 -0
  253. package/lib/plugins/spine/pixi-spine/SpinePipe.d.ts +21 -0
  254. package/lib/plugins/spine/pixi-spine/SpinePipe.d.ts.map +1 -0
  255. package/lib/plugins/spine/pixi-spine/SpineTexture.d.ts +16 -0
  256. package/lib/plugins/spine/pixi-spine/SpineTexture.d.ts.map +1 -0
  257. package/lib/plugins/spine/pixi-spine/assets/atlasLoader.d.ts +10 -0
  258. package/lib/plugins/spine/pixi-spine/assets/atlasLoader.d.ts.map +1 -0
  259. package/lib/plugins/spine/pixi-spine/assets/skeletonLoader.d.ts +6 -0
  260. package/lib/plugins/spine/pixi-spine/assets/skeletonLoader.d.ts.map +1 -0
  261. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.d.ts +5 -0
  262. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.d.ts.map +1 -0
  263. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatcher.d.ts +22 -0
  264. package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatcher.d.ts.map +1 -0
  265. package/lib/plugins/spine/pixi-spine/darktint/DarkTintShader.d.ts +5 -0
  266. package/lib/plugins/spine/pixi-spine/darktint/DarkTintShader.d.ts.map +1 -0
  267. package/lib/plugins/spine/pixi-spine/darktint/darkTintBit.d.ts +51 -0
  268. package/lib/plugins/spine/pixi-spine/darktint/darkTintBit.d.ts.map +1 -0
  269. package/lib/plugins/spine/pixi-spine/index.d.ts +9 -0
  270. package/lib/plugins/spine/pixi-spine/index.d.ts.map +1 -0
  271. package/lib/plugins/spine/pixi-spine/require-shim.d.ts +34 -0
  272. package/lib/plugins/spine/pixi-spine/require-shim.d.ts.map +1 -0
  273. package/lib/registries-CYCaYKZI.js +6885 -0
  274. package/lib/registries-CYCaYKZI.js.map +1 -0
  275. package/lib/signals/Signal.d.ts +16 -0
  276. package/lib/signals/Signal.d.ts.map +1 -0
  277. package/lib/signals/Signal.test.d.ts +2 -0
  278. package/lib/signals/Signal.test.d.ts.map +1 -0
  279. package/lib/signals/index.d.ts +3 -0
  280. package/lib/signals/index.d.ts.map +1 -0
  281. package/lib/store/Store.d.ts +56 -0
  282. package/lib/store/Store.d.ts.map +1 -0
  283. package/lib/store/Store.test.d.ts +2 -0
  284. package/lib/store/Store.test.d.ts.map +1 -0
  285. package/lib/store/index.d.ts +2 -0
  286. package/lib/store/index.d.ts.map +1 -0
  287. package/lib/types/framework.d.ts +46 -0
  288. package/lib/types/gsap.d.ts +23 -0
  289. package/lib/ui/Button.d.ts +162 -0
  290. package/lib/ui/Button.d.ts.map +1 -0
  291. package/lib/ui/FlexContainer.d.ts +109 -0
  292. package/lib/ui/FlexContainer.d.ts.map +1 -0
  293. package/lib/ui/Input.d.ts +384 -0
  294. package/lib/ui/Input.d.ts.map +1 -0
  295. package/lib/ui/Joystick.d.ts +61 -0
  296. package/lib/ui/Joystick.d.ts.map +1 -0
  297. package/lib/ui/Popup.d.ts +109 -0
  298. package/lib/ui/Popup.d.ts.map +1 -0
  299. package/lib/ui/Toast.d.ts +131 -0
  300. package/lib/ui/Toast.d.ts.map +1 -0
  301. package/lib/ui/Toaster.d.ts +188 -0
  302. package/lib/ui/Toaster.d.ts.map +1 -0
  303. package/lib/ui/UICanvas.d.ts +155 -0
  304. package/lib/ui/UICanvas.d.ts.map +1 -0
  305. package/lib/ui/index.d.ts +9 -0
  306. package/lib/ui/index.d.ts.map +1 -0
  307. package/lib/utils/array.d.ts +11 -0
  308. package/lib/utils/array.d.ts.map +1 -0
  309. package/lib/utils/bind.d.ts +21 -0
  310. package/lib/utils/bind.d.ts.map +1 -0
  311. package/lib/utils/canvas.d.ts +2 -0
  312. package/lib/utils/canvas.d.ts.map +1 -0
  313. package/lib/utils/color.d.ts +66 -0
  314. package/lib/utils/color.d.ts.map +1 -0
  315. package/lib/utils/console/Logger.d.ts +15 -0
  316. package/lib/utils/console/Logger.d.ts.map +1 -0
  317. package/lib/utils/console/index.d.ts +2 -0
  318. package/lib/utils/console/index.d.ts.map +1 -0
  319. package/lib/utils/debug.d.ts +34 -0
  320. package/lib/utils/debug.d.ts.map +1 -0
  321. package/lib/utils/define.d.ts +100 -0
  322. package/lib/utils/define.d.ts.map +1 -0
  323. package/lib/utils/env.d.ts +4 -0
  324. package/lib/utils/env.d.ts.map +1 -0
  325. package/lib/utils/events.d.ts +12 -0
  326. package/lib/utils/events.d.ts.map +1 -0
  327. package/lib/utils/framework.d.ts +12 -0
  328. package/lib/utils/framework.d.ts.map +1 -0
  329. package/lib/utils/index.d.ts +28 -0
  330. package/lib/utils/index.d.ts.map +1 -0
  331. package/lib/utils/map.d.ts +31 -0
  332. package/lib/utils/map.d.ts.map +1 -0
  333. package/lib/utils/math.d.ts +15 -0
  334. package/lib/utils/math.d.ts.map +1 -0
  335. package/lib/utils/misc.d.ts +13 -0
  336. package/lib/utils/misc.d.ts.map +1 -0
  337. package/lib/utils/number.d.ts +2 -0
  338. package/lib/utils/number.d.ts.map +1 -0
  339. package/lib/utils/object.d.ts +21 -0
  340. package/lib/utils/object.d.ts.map +1 -0
  341. package/lib/utils/padding.d.ts +4 -0
  342. package/lib/utils/padding.d.ts.map +1 -0
  343. package/lib/utils/pixi.d.ts +42 -0
  344. package/lib/utils/pixi.d.ts.map +1 -0
  345. package/lib/utils/platform.d.ts +20 -0
  346. package/lib/utils/platform.d.ts.map +1 -0
  347. package/lib/utils/point.d.ts +66 -0
  348. package/lib/utils/point.d.ts.map +1 -0
  349. package/lib/utils/promise/Queue.d.ts +60 -0
  350. package/lib/utils/promise/Queue.d.ts.map +1 -0
  351. package/lib/utils/promise/functions.d.ts +14 -0
  352. package/lib/utils/promise/functions.d.ts.map +1 -0
  353. package/lib/utils/promise/index.d.ts +3 -0
  354. package/lib/utils/promise/index.d.ts.map +1 -0
  355. package/lib/utils/random.d.ts +42 -0
  356. package/lib/utils/random.d.ts.map +1 -0
  357. package/lib/utils/rect.d.ts +26 -0
  358. package/lib/utils/rect.d.ts.map +1 -0
  359. package/lib/utils/set.d.ts +15 -0
  360. package/lib/utils/set.d.ts.map +1 -0
  361. package/lib/utils/string.d.ts +3 -0
  362. package/lib/utils/string.d.ts.map +1 -0
  363. package/lib/utils/text.d.ts +3 -0
  364. package/lib/utils/text.d.ts.map +1 -0
  365. package/lib/utils/typefilters.d.ts +4 -0
  366. package/lib/utils/typefilters.d.ts.map +1 -0
  367. package/lib/utils/types.d.ts +209 -0
  368. package/lib/utils/types.d.ts.map +1 -0
  369. package/lib/utils/vite.d.ts +25 -0
  370. package/lib/utils/vite.d.ts.map +1 -0
  371. package/lib/utils/web.d.ts +3 -0
  372. package/lib/utils/web.d.ts.map +1 -0
  373. package/lib/version.d.ts +3 -0
  374. package/lib/version.d.ts.map +1 -0
  375. package/lib/webgl-check.d.ts +2 -0
  376. package/lib/webgl-check.d.ts.map +1 -0
  377. package/package.json +138 -0
  378. package/src/core/Application.ts +1091 -0
  379. package/src/core/config.ts +168 -0
  380. package/src/core/create.ts +186 -0
  381. package/src/core/globals.ts +299 -0
  382. package/src/core/index.ts +6 -0
  383. package/src/core/interfaces/IApplication.ts +628 -0
  384. package/src/core/interfaces/IApplicationOptions.ts +81 -0
  385. package/src/core/interfaces/ICoreFunctions.ts +86 -0
  386. package/src/core/interfaces/ICoreSignals.ts +77 -0
  387. package/src/core/interfaces/IStorageCapability.test.ts +27 -0
  388. package/src/core/interfaces/IStorageCapability.ts +26 -0
  389. package/src/core/interfaces/index.ts +6 -0
  390. package/src/core/registries.ts +7 -0
  391. package/src/core/types.ts +13 -0
  392. package/src/display/AnimatedSprite.ts +227 -0
  393. package/src/display/Camera.ts +371 -0
  394. package/src/display/Container.ts +240 -0
  395. package/src/display/Entity.ts +50 -0
  396. package/src/display/ParticleContainer.ts +107 -0
  397. package/src/display/Scene.ts +305 -0
  398. package/src/display/SceneTransition.ts +108 -0
  399. package/src/display/SpineAnimation.ts +170 -0
  400. package/src/display/Svg.ts +9 -0
  401. package/src/display/index.ts +11 -0
  402. package/src/env.d.ts +6 -0
  403. package/src/hello.ts +20 -0
  404. package/src/index.ts +17 -0
  405. package/src/mixins/animated.ts +340 -0
  406. package/src/mixins/factory/Factory.ts +24 -0
  407. package/src/mixins/factory/const.ts +363 -0
  408. package/src/mixins/factory/index.ts +7 -0
  409. package/src/mixins/factory/methods.ts +21 -0
  410. package/src/mixins/factory/props.ts +207 -0
  411. package/src/mixins/factory/registry.test.ts +83 -0
  412. package/src/mixins/factory/registry.ts +61 -0
  413. package/src/mixins/factory/schema.ts +153 -0
  414. package/src/mixins/factory/ui-registry.ts +54 -0
  415. package/src/mixins/factory/utils.ts +130 -0
  416. package/src/mixins/focus.ts +124 -0
  417. package/src/mixins/index.ts +5 -0
  418. package/src/mixins/interaction.ts +74 -0
  419. package/src/mixins/signals.ts +49 -0
  420. package/src/plugins/AssetsPlugin.ts +407 -0
  421. package/src/plugins/DataAdapter.ts +259 -0
  422. package/src/plugins/DevToolsPlugin.ts +103 -0
  423. package/src/plugins/FullScreenPlugin.ts +359 -0
  424. package/src/plugins/GSAPPlugin.ts +811 -0
  425. package/src/plugins/KeyboardPlugin.ts +160 -0
  426. package/src/plugins/LayoutPlugin.ts +127 -0
  427. package/src/plugins/LookupPlugin.ts +308 -0
  428. package/src/plugins/Plugin.test.ts +73 -0
  429. package/src/plugins/Plugin.ts +200 -0
  430. package/src/plugins/PopupManagerPlugin.ts +263 -0
  431. package/src/plugins/ResizerPlugin.ts +220 -0
  432. package/src/plugins/SceneManagerPlugin.ts +669 -0
  433. package/src/plugins/StatsPlugin.ts +24 -0
  434. package/src/plugins/TimerPlugin.ts +841 -0
  435. package/src/plugins/WebEventsPlugin.ts +132 -0
  436. package/src/plugins/actions/ActionsPlugin.ts +113 -0
  437. package/src/plugins/actions/constants.ts +45 -0
  438. package/src/plugins/actions/index.ts +4 -0
  439. package/src/plugins/actions/methods.ts +28 -0
  440. package/src/plugins/actions/types.ts +47 -0
  441. package/src/plugins/audio/AudioChannel.test.ts +101 -0
  442. package/src/plugins/audio/AudioChannel.ts +164 -0
  443. package/src/plugins/audio/AudioInstance.ts +228 -0
  444. package/src/plugins/audio/AudioManagerPlugin.ts +903 -0
  445. package/src/plugins/audio/VoiceOverPlugin.ts +354 -0
  446. package/src/plugins/audio/index.ts +3 -0
  447. package/src/plugins/breakpoints/BreakpointPlugin.test.ts +228 -0
  448. package/src/plugins/breakpoints/BreakpointPlugin.ts +293 -0
  449. package/src/plugins/breakpoints/evaluate.test.ts +239 -0
  450. package/src/plugins/breakpoints/evaluate.ts +201 -0
  451. package/src/plugins/breakpoints/index.ts +3 -0
  452. package/src/plugins/breakpoints/methods.ts +22 -0
  453. package/src/plugins/breakpoints/types.ts +86 -0
  454. package/src/plugins/captions/CaptionsPlugin.ts +468 -0
  455. package/src/plugins/captions/CaptionsRenderer.ts +184 -0
  456. package/src/plugins/captions/font/Sans.fnt +116 -0
  457. package/src/plugins/captions/font/Sans.png +0 -0
  458. package/src/plugins/captions/index.ts +2 -0
  459. package/src/plugins/defaults.ts +95 -0
  460. package/src/plugins/focus/FocusManagerPlugin.ts +773 -0
  461. package/src/plugins/focus/FocusOutliner.ts +111 -0
  462. package/src/plugins/focus/index.ts +2 -0
  463. package/src/plugins/i18nPlugin.ts +284 -0
  464. package/src/plugins/index.ts +17 -0
  465. package/src/plugins/input/AbstractControls.ts +15 -0
  466. package/src/plugins/input/Controls.ts +55 -0
  467. package/src/plugins/input/InputPlugin.ts +168 -0
  468. package/src/plugins/input/constants.ts +12 -0
  469. package/src/plugins/input/index.ts +9 -0
  470. package/src/plugins/input/interfaces.ts +37 -0
  471. package/src/plugins/input/keyboard/KeyboardContols.ts +182 -0
  472. package/src/plugins/input/keyboard/index.ts +2 -0
  473. package/src/plugins/input/keyboard/interfaces.ts +21 -0
  474. package/src/plugins/input/methods.ts +9 -0
  475. package/src/plugins/input/touch/TouchControls.ts +237 -0
  476. package/src/plugins/input/touch/constants.ts +34 -0
  477. package/src/plugins/input/touch/index.ts +3 -0
  478. package/src/plugins/input/touch/interfaces.ts +15 -0
  479. package/src/plugins/input/types.ts +41 -0
  480. package/src/plugins/input/utils.ts +10 -0
  481. package/src/plugins/spine/SpinePlugin.ts +14 -0
  482. package/src/plugins/spine/pixi-spine/BatchableSpineSlot.ts +138 -0
  483. package/src/plugins/spine/pixi-spine/Spine.ts +897 -0
  484. package/src/plugins/spine/pixi-spine/SpineDebugRenderer.ts +615 -0
  485. package/src/plugins/spine/pixi-spine/SpinePipe.ts +197 -0
  486. package/src/plugins/spine/pixi-spine/SpineTexture.ts +143 -0
  487. package/src/plugins/spine/pixi-spine/assets/atlasLoader.ts +156 -0
  488. package/src/plugins/spine/pixi-spine/assets/skeletonLoader.ts +80 -0
  489. package/src/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.ts +92 -0
  490. package/src/plugins/spine/pixi-spine/darktint/DarkTintBatcher.ts +186 -0
  491. package/src/plugins/spine/pixi-spine/darktint/DarkTintShader.ts +74 -0
  492. package/src/plugins/spine/pixi-spine/darktint/darkTintBit.ts +77 -0
  493. package/src/plugins/spine/pixi-spine/index.ts +43 -0
  494. package/src/plugins/spine/pixi-spine/require-shim.ts +43 -0
  495. package/src/signals/Signal.test.ts +54 -0
  496. package/src/signals/Signal.ts +68 -0
  497. package/src/signals/index.ts +10 -0
  498. package/src/store/Store.test.ts +146 -0
  499. package/src/store/Store.ts +192 -0
  500. package/src/store/index.ts +1 -0
  501. package/src/types/framework.d.ts +47 -0
  502. package/src/types/gsap.d.ts +26 -0
  503. package/src/ui/Button.ts +454 -0
  504. package/src/ui/FlexContainer.ts +526 -0
  505. package/src/ui/Input.ts +1274 -0
  506. package/src/ui/Joystick.ts +288 -0
  507. package/src/ui/Popup.ts +242 -0
  508. package/src/ui/Toast.ts +399 -0
  509. package/src/ui/Toaster.ts +409 -0
  510. package/src/ui/UICanvas.ts +812 -0
  511. package/src/ui/index.ts +8 -0
  512. package/src/utils/array.ts +24 -0
  513. package/src/utils/bind.ts +79 -0
  514. package/src/utils/canvas.ts +26 -0
  515. package/src/utils/color.ts +126 -0
  516. package/src/utils/console/Logger.ts +86 -0
  517. package/src/utils/console/index.ts +1 -0
  518. package/src/utils/debug.ts +69 -0
  519. package/src/utils/define.ts +120 -0
  520. package/src/utils/env.ts +3 -0
  521. package/src/utils/events.ts +10 -0
  522. package/src/utils/framework.ts +45 -0
  523. package/src/utils/index.ts +27 -0
  524. package/src/utils/map.ts +59 -0
  525. package/src/utils/math.ts +19 -0
  526. package/src/utils/misc.ts +45 -0
  527. package/src/utils/number.ts +3 -0
  528. package/src/utils/object.ts +43 -0
  529. package/src/utils/padding.ts +43 -0
  530. package/src/utils/pixi.ts +116 -0
  531. package/src/utils/platform.ts +33 -0
  532. package/src/utils/point.ts +123 -0
  533. package/src/utils/promise/Queue.ts +125 -0
  534. package/src/utils/promise/functions.ts +16 -0
  535. package/src/utils/promise/index.ts +2 -0
  536. package/src/utils/random.ts +69 -0
  537. package/src/utils/rect.ts +50 -0
  538. package/src/utils/set.ts +32 -0
  539. package/src/utils/string.ts +9 -0
  540. package/src/utils/text.ts +30 -0
  541. package/src/utils/typefilters.ts +29 -0
  542. package/src/utils/types.ts +426 -0
  543. package/src/utils/vite.ts +41 -0
  544. package/src/utils/web.ts +7 -0
  545. package/src/version.ts +3 -0
  546. package/src/webgl-check.ts +12 -0
  547. package/templates/app/default/.eslintrc.json +21 -0
  548. package/templates/app/default/.meta.json +4 -0
  549. package/templates/app/default/.nvmrc +1 -0
  550. package/templates/app/default/.prettierrc.json +7 -0
  551. package/templates/app/default/README.md +8 -0
  552. package/templates/app/default/assets/audio{m}/music/Cheerful Annoyance.ogg +0 -0
  553. package/templates/app/default/assets/audio{m}/music/Drumming Sticks.ogg +0 -0
  554. package/templates/app/default/assets/audio{m}/music/Game Over.ogg +0 -0
  555. package/templates/app/default/assets/audio{m}/music/Mishief Stroll.ogg +0 -0
  556. package/templates/app/default/assets/audio{m}/music/Night at the Beach.ogg +0 -0
  557. package/templates/app/default/assets/audio{m}/sfx/click.ogg +0 -0
  558. package/templates/app/default/assets/audio{m}/sfx/hover.ogg +0 -0
  559. package/templates/app/default/assets/required{m}/caper.png +0 -0
  560. package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Bold{family=Space Grotesk}{wf}.ttf +0 -0
  561. package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Medium{family=Space Grotesk}{wf}.ttf +0 -0
  562. package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Regular{family=Space Grotesk}{wf}.ttf +0 -0
  563. package/templates/app/default/assets/required{m}/fonts{fix}/Syncopate-Bold{family=Syncopate}{wf}.ttf +0 -0
  564. package/templates/app/default/assets/required{m}/ui{tps}/btn/blue.png +0 -0
  565. package/templates/app/default/assets/required{m}/ui{tps}/btn/green.png +0 -0
  566. package/templates/app/default/assets/required{m}/ui{tps}/btn/grey.png +0 -0
  567. package/templates/app/default/assets/required{m}/ui{tps}/btn/orange.png +0 -0
  568. package/templates/app/default/assets/required{m}/ui{tps}/btn/purple.png +0 -0
  569. package/templates/app/default/assets/required{m}/ui{tps}/btn/red.png +0 -0
  570. package/templates/app/default/assets/required{m}/ui{tps}/btn/yellow.png +0 -0
  571. package/templates/app/default/assets/required{m}/ui{tps}/btn_a/down.png +0 -0
  572. package/templates/app/default/assets/required{m}/ui{tps}/btn_a/over.png +0 -0
  573. package/templates/app/default/assets/required{m}/ui{tps}/btn_a/up.png +0 -0
  574. package/templates/app/default/assets/required{m}/ui{tps}/btn_b/down.png +0 -0
  575. package/templates/app/default/assets/required{m}/ui{tps}/btn_b/over.png +0 -0
  576. package/templates/app/default/assets/required{m}/ui{tps}/btn_b/up.png +0 -0
  577. package/templates/app/default/assets/required{m}/ui{tps}/joystick/base.png +0 -0
  578. package/templates/app/default/assets/required{m}/ui{tps}/joystick/handle.png +0 -0
  579. package/templates/app/default/assets/required{m}/wordmark.svg +1 -0
  580. package/templates/app/default/assets/spine{m}/spineboy-pro.png +0 -0
  581. package/templates/app/default/assets/spine{m}/spineboy-pro.skel +0 -0
  582. package/templates/app/default/assets/spine{m}/spineboy-pro{fix}.atlas +94 -0
  583. package/templates/app/default/caper.config.ts +60 -0
  584. package/templates/app/default/index.html +23 -0
  585. package/templates/app/default/package.template.json +17 -0
  586. package/templates/app/default/public/favicon.ico +0 -0
  587. package/templates/app/default/src/__APPLICATION_NAME__.ts +3 -0
  588. package/templates/app/default/src/main.ts +9 -0
  589. package/templates/app/default/src/scenes/Base.ts +39 -0
  590. package/templates/app/default/src/scenes/Game.ts +34 -0
  591. package/templates/app/default/src/scenes/Splash.ts +70 -0
  592. package/templates/app/default/src/scenes/Start.ts +90 -0
  593. package/templates/app/default/src/utils/Constants.ts +3 -0
  594. package/templates/app/default/tsconfig.json +1 -0
  595. package/templates/plugin/package.template.json +33 -0
  596. package/templates/plugin/src/Plugin.template.ts +24 -0
  597. package/templates/plugin/src/index.template.ts +3 -0
  598. package/templates/plugin/tsconfig.template.json +43 -0
  599. package/templates/plugin/vite-env.template.d.ts +16 -0
  600. package/templates/plugin/vite.config.template.ts +19 -0
@@ -0,0 +1,634 @@
1
+ import { gsap } from 'gsap';
2
+ import { IApplication } from '../core';
3
+ import { Signal } from '../signals';
4
+ import { Eases } from '../utils';
5
+ import { Plugin, IPlugin } from './Plugin';
6
+ /**
7
+ * Configuration options for the GSAP plugin.
8
+ */
9
+ export interface GSAPPluginOptions {
10
+ /** Custom easing functions to register with GSAP */
11
+ eases: Eases;
12
+ }
13
+ /**
14
+ * Interface for the GSAPPlugin, defining its public API for high-performance animations.
15
+ * Provides comprehensive GSAP integration with custom animation context management.
16
+ */
17
+ export interface IGSAPPlugin extends IPlugin {
18
+ /**
19
+ * Array of all registered custom ease names.
20
+ * @readonly
21
+ */
22
+ readonly easeNames: string[];
23
+ /**
24
+ * Object containing all registered custom eases, where keys are ease names and values are GSAP ease functions.
25
+ * @readonly
26
+ */
27
+ readonly eases: Eases;
28
+ /**
29
+ * The GSAP instance for creating animations.
30
+ * @readonly
31
+ */
32
+ readonly anim: typeof gsap;
33
+ /**
34
+ * Adds one or more GSAP tweens or timelines to a specified animation context.
35
+ * Animation contexts are custom collections (Set) of tweens/timelines managed by this plugin,
36
+ * NOT `gsap.Context` instances. If no contextId is provided, animations are added to the global context.
37
+ *
38
+ * @param animation - A single GSAP tween/timeline or an array of them
39
+ * @param contextId - Optional ID of the custom animation context. Defaults to the global context
40
+ * @returns The animation(s) that were added
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // Add single animation to specific context
45
+ * const tween = gsap.to(mySprite, { x: 100, duration: 1 });
46
+ * gsapPlugin.addAnimation(tween, 'gameplayAnimations');
47
+ *
48
+ * // Add multiple animations to global context
49
+ * const tweens = [
50
+ * gsap.to(sprite1, { alpha: 0.5, duration: 1 }),
51
+ * gsap.to(sprite2, { rotation: Math.PI, duration: 2 })
52
+ * ];
53
+ * gsapPlugin.addAnimation(tweens);
54
+ * ```
55
+ */
56
+ addAnimation(animation: gsap.core.Tween | gsap.core.Timeline | (gsap.core.Tween | gsap.core.Timeline)[], contextId?: string): gsap.core.Tween | gsap.core.Timeline | (gsap.core.Tween | gsap.core.Timeline)[];
57
+ /**
58
+ * Registers a custom ease function with GSAP.
59
+ *
60
+ * @param name - The name of the custom ease
61
+ * @param ease - The GSAP ease function
62
+ * @returns An object containing the registered ease
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * // Register a custom bounce ease
67
+ * gsapPlugin.registerCustomEase('myBounce', (progress) => {
68
+ * return progress < 0.5
69
+ * ? 2 * progress * progress
70
+ * : 1 - Math.pow(-2 * progress + 2, 3) / 2;
71
+ * });
72
+ *
73
+ * // Use the custom ease in animations
74
+ * gsap.to(mySprite, { x: 200, duration: 1, ease: 'myBounce' });
75
+ * ```
76
+ */
77
+ registerCustomEase(name: string, ease: gsap.EaseFunction): Record<string, gsap.EaseFunction>;
78
+ /**
79
+ * Registers multiple custom ease functions with GSAP in batch.
80
+ *
81
+ * @param eases - An object where keys are ease names and values are GSAP ease functions
82
+ * @returns The complete map of registered eases
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * gsapPlugin.registerEases({
87
+ * 'softBounce': (t) => t * t * (3 - 2 * t),
88
+ * 'sharpEase': (t) => t * t * t,
89
+ * 'customBack': (t) => t * t * (2.7 * t - 1.7)
90
+ * });
91
+ * ```
92
+ */
93
+ registerEases(eases: Eases): Eases;
94
+ /**
95
+ * Retrieves a custom animation context (a Set of tweens/timelines) by its ID.
96
+ * This is NOT a `gsap.Context` instance but rather a custom collection for grouping animations.
97
+ *
98
+ * @param contextId - The ID of the animation context
99
+ * @returns The animation context (a Set of tweens/timelines) or null if not found
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * const menuAnimations = gsapPlugin.getContext('menuAnimations');
104
+ * if (menuAnimations) {
105
+ * console.log(`Menu has ${menuAnimations.size} active animations`);
106
+ * }
107
+ * ```
108
+ */
109
+ getContext(contextId: string): Set<gsap.core.Tween | gsap.core.Timeline> | null;
110
+ /**
111
+ * Plays all animations in a specified custom animation context, or all animations in all contexts.
112
+ *
113
+ * @param contextId - Optional ID of the animation context. If omitted, plays all animations
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * // Play all animations in a specific context
118
+ * gsapPlugin.playAll('gameplayAnimations');
119
+ *
120
+ * // Play all animations in all contexts
121
+ * gsapPlugin.playAll();
122
+ * ```
123
+ */
124
+ playAll(contextId?: string): void;
125
+ /**
126
+ * Pauses all animations in a specified custom animation context, or all animations in all contexts.
127
+ *
128
+ * @param contextId - Optional ID of the animation context. If omitted, pauses all animations
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * // Pause game animations when menu opens
133
+ * gsapPlugin.pauseAll('gameplayAnimations');
134
+ *
135
+ * // Pause everything when app loses focus
136
+ * gsapPlugin.pauseAll();
137
+ * ```
138
+ */
139
+ pauseAll(contextId?: string): void;
140
+ /**
141
+ * Kills (stops and removes) all animations in a specified custom animation context, or all animations.
142
+ * If all contexts are killed, the plugin's global animation collection is recreated.
143
+ *
144
+ * @param contextId - Optional ID of the animation context. If omitted, kills all animations
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * // Kill specific context when transitioning scenes
149
+ * gsapPlugin.killAll('oldSceneAnimations');
150
+ *
151
+ * // Emergency stop all animations
152
+ * gsapPlugin.killAll();
153
+ * ```
154
+ */
155
+ killAll(contextId?: string): void;
156
+ /**
157
+ * Reverts all animations in a specified custom animation context to their initial state.
158
+ *
159
+ * @param contextId - Optional ID of the animation context. If omitted, reverts all animations
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * // Reset UI animations to initial state
164
+ * gsapPlugin.revertAll('uiAnimations');
165
+ *
166
+ * // Reset everything for game restart
167
+ * gsapPlugin.revertAll();
168
+ * ```
169
+ */
170
+ revertAll(contextId?: string): void;
171
+ /**
172
+ * Clears (removes) a specific custom animation context and its tracked animations.
173
+ * If this results in no active contexts, the global collection is recreated if all contexts are cleared.
174
+ *
175
+ * @param contextId - The ID of the animation context to clear
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * // Clean up completed level animations
180
+ * gsapPlugin.clear('level1Animations');
181
+ * ```
182
+ */
183
+ clear(contextId: string): void;
184
+ /**
185
+ * Clears all custom animation contexts and recreates the plugin's global animation collection.
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * // Complete reset when restarting the game
190
+ * gsapPlugin.clearAll();
191
+ * ```
192
+ */
193
+ clearAll(): void;
194
+ /**
195
+ * Kills all animations within the global animation collection managed by this plugin.
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * // Stop only global animations, keep context-specific ones
200
+ * gsapPlugin.killGlobal();
201
+ * ```
202
+ */
203
+ killGlobal(): void;
204
+ /**
205
+ * Reverts all animations within the global animation collection to their initial state.
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * // Reset global animations without affecting contexts
210
+ * gsapPlugin.revertGlobal();
211
+ * ```
212
+ */
213
+ revertGlobal(): void;
214
+ /**
215
+ * Clears all animations from the global animation collection managed by this plugin.
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * // Clear global animations for cleanup
220
+ * gsapPlugin.clearGlobal();
221
+ * ```
222
+ */
223
+ clearGlobal(): void;
224
+ onPlayAll: Signal<(contextId: string) => void>;
225
+ onPauseAll: Signal<(contextId: string) => void>;
226
+ onKillAll: Signal<(contextId: string) => void>;
227
+ onRevertAll: Signal<(contextId: string) => void>;
228
+ onClear: Signal<(detail: {
229
+ contextId: string;
230
+ kill: boolean;
231
+ }) => void>;
232
+ onClearAll: Signal<(kill: boolean) => void>;
233
+ onKillGlobal: Signal<() => void>;
234
+ onRevertGlobal: Signal<() => void>;
235
+ onClearGlobal: Signal<(kill: boolean) => void>;
236
+ onEaseRegistered: Signal<(detail: {
237
+ name: string;
238
+ ease: gsap.EaseFunction;
239
+ }) => void>;
240
+ onEasesRegistered: Signal<(eases: Eases) => void>;
241
+ onAnimationAddded: Signal<(detail: {
242
+ animation: gsap.core.Tween | gsap.core.Timeline;
243
+ contextId: string;
244
+ }) => void>;
245
+ }
246
+ /**
247
+ * Type alias for animation context collections.
248
+ * Represents a Set containing GSAP tweens and timelines for grouped animation management.
249
+ */
250
+ export type AnimationContext = Set<gsap.core.Tween | gsap.core.Timeline>;
251
+ /**
252
+ * High-performance GSAP animation plugin for PIXI.js applications.
253
+ *
254
+ * Integrates the GreenSock Animation Platform (GSAP) into the application framework,
255
+ * providing powerful and flexible animation capabilities with optimized PIXI.js integration.
256
+ * Features custom animation context management for grouped animation control, custom easing
257
+ * registration, and automatic PIXI.js property animation support.
258
+ *
259
+ * Key Features:
260
+ * - Full GSAP integration with PIXI.js optimization
261
+ * - Custom animation contexts for grouped control (pause/play/kill by category)
262
+ * - Custom easing function registration and management
263
+ * - Automatic PIXI filter integration (BlurFilter, ColorMatrixFilter)
264
+ * - Memory-efficient animation tracking and cleanup
265
+ * - Global and context-specific animation management
266
+ *
267
+ * **Important:** Animation "contexts" in this plugin are custom collections (Sets) for grouping
268
+ * animations and are NOT the same as `gsap.Context` objects provided by GSAP itself.
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * // Basic setup and usage
273
+ * const gsapPlugin = app.plugins.get<IGSAPPlugin>('GSAPPlugin');
274
+ *
275
+ * // Create optimized PIXI animations
276
+ * const sprite = new PIXI.Sprite(texture);
277
+ * gsapPlugin.anim.to(sprite, {
278
+ * x: 100,
279
+ * y: 50,
280
+ * alpha: 0.8,
281
+ * duration: 1,
282
+ * ease: 'back.out(1.7)'
283
+ * });
284
+ *
285
+ * // Register custom eases for game feel
286
+ * gsapPlugin.registerCustomEase('gameJuice', (t) => {
287
+ * return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
288
+ * });
289
+ *
290
+ * // Context-based animation management
291
+ * const menuTween = gsapPlugin.anim.to(menuButton, { scale: 1.1, duration: 0.3 });
292
+ * gsapPlugin.addAnimation(menuTween, 'menuAnimations');
293
+ *
294
+ * // Later: pause all menu animations when game starts
295
+ * gsapPlugin.pauseAll('menuAnimations');
296
+ *
297
+ * // Animate PIXI filters
298
+ * const blurFilter = new PIXI.BlurFilter();
299
+ * sprite.filters = [blurFilter];
300
+ * gsapPlugin.anim.to(blurFilter, { blur: 10, duration: 2 });
301
+ * ```
302
+ *
303
+ * @remarks
304
+ * - Automatically registers PixiPlugin for optimized PIXI.js property animations
305
+ * - Includes ColorMatrixFilter and BlurFilter integration for advanced effects
306
+ * - Uses efficient Set-based tracking for O(1) animation context operations
307
+ * - Provides both global and context-specific animation lifecycle management
308
+ * - Custom eases are automatically registered with GSAP and stored for reference
309
+ */
310
+ export declare class GSAPPlugin extends Plugin implements IGSAPPlugin {
311
+ /** Internal identifier for the global animation context */
312
+ private static readonly GLOBAL_CONTEXT_ID;
313
+ /** Plugin identifier for framework registration */
314
+ readonly id = "GSAPPlugin";
315
+ onPlayAll: Signal<(contextId: string) => void>;
316
+ onPauseAll: Signal<(contextId: string) => void>;
317
+ onKillAll: Signal<(contextId: string) => void>;
318
+ onRevertAll: Signal<(contextId: string) => void>;
319
+ onClear: Signal<(detail: {
320
+ contextId: string;
321
+ kill: boolean;
322
+ }) => void>;
323
+ onClearAll: Signal<(kill: boolean) => void>;
324
+ onKillGlobal: Signal<() => void>;
325
+ onRevertGlobal: Signal<() => void>;
326
+ onClearGlobal: Signal<(kill: boolean) => void>;
327
+ onEaseRegistered: Signal<(detail: {
328
+ name: string;
329
+ ease: gsap.EaseFunction;
330
+ }) => void>;
331
+ onEasesRegistered: Signal<(eases: Eases) => void>;
332
+ onAnimationAddded: Signal<(detail: {
333
+ animation: gsap.core.Tween | gsap.core.Timeline;
334
+ contextId: string;
335
+ }) => void>;
336
+ /** Global animation context reference for quick access */
337
+ private _globalContext;
338
+ /** Map of all custom animation contexts by their string identifiers */
339
+ private _animationContexts;
340
+ /**
341
+ * Array of all registered custom ease names.
342
+ * @readonly
343
+ */
344
+ get easeNames(): string[];
345
+ /**
346
+ * Object containing all registered custom eases.
347
+ * @readonly
348
+ */
349
+ get eases(): Eases;
350
+ /**
351
+ * Initializes the GSAP plugin with PIXI.js integration and custom configurations.
352
+ * Sets up PixiPlugin, registers custom eases, and creates the global animation context.
353
+ *
354
+ * @param _ - Plugin options (currently unused, relies on app.config.gsap)
355
+ * @param app - The application instance providing configuration
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * // Plugin is automatically initialized by the framework
360
+ * // Configuration comes from app.config.gsap
361
+ * const config = {
362
+ * gsap: {
363
+ * eases: {
364
+ * 'customBounce': (t) => t * t * (3 - 2 * t),
365
+ * 'gameEase': (t) => Math.pow(t, 2.5)
366
+ * }
367
+ * }
368
+ * };
369
+ * ```
370
+ */
371
+ initialize(_: any, app: IApplication): Promise<void>;
372
+ /**
373
+ * Creates and initializes the global animation context.
374
+ * Sets up the default context for animations not assigned to specific contexts.
375
+ * @protected
376
+ */
377
+ protected createGlobalContext(): void;
378
+ /**
379
+ * Registers a single custom ease function with GSAP.
380
+ * The ease becomes available for use in all GSAP animations by name.
381
+ *
382
+ * @param name - Unique name identifier for the ease
383
+ * @param ease - GSAP-compatible easing function (takes progress 0-1, returns eased value)
384
+ * @returns Object containing the registered ease for chaining or reference
385
+ *
386
+ * @example
387
+ * ```typescript
388
+ * // Register a custom elastic ease
389
+ * gsapPlugin.registerCustomEase('elasticOut', (t) => {
390
+ * const c4 = (2 * Math.PI) / 3;
391
+ * return t === 0 ? 0 : t === 1 ? 1 :
392
+ * Math.pow(2, -10 * t) * Math.sin((t * 10 - 0.75) * c4) + 1;
393
+ * });
394
+ *
395
+ * // Use in animations
396
+ * gsap.to(mySprite, { x: 100, duration: 1, ease: 'elasticOut' });
397
+ * ```
398
+ */
399
+ registerCustomEase(name: string, ease: gsap.EaseFunction): Record<string, gsap.EaseFunction>;
400
+ /**
401
+ * Registers multiple custom ease functions with GSAP in a single operation.
402
+ * Efficient batch registration for multiple custom eases.
403
+ *
404
+ * @param eases - Object mapping ease names to ease functions
405
+ * @returns The complete map of all registered eases
406
+ *
407
+ * @example
408
+ * ```typescript
409
+ * // Register a suite of game-specific eases
410
+ * gsapPlugin.registerEases({
411
+ * 'jumpEase': (t) => t * t * (3 - 2 * t),
412
+ * 'impactEase': (t) => 1 - Math.cos(t * Math.PI / 2),
413
+ * 'floatEase': (t) => Math.sin(t * Math.PI / 2),
414
+ * 'snapEase': (t) => t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2
415
+ * });
416
+ * ```
417
+ */
418
+ registerEases(eases: Eases): Eases;
419
+ /**
420
+ * Gets the GSAP instance for creating animations.
421
+ * Provides access to the full GSAP API with PIXI.js optimizations enabled.
422
+ * @readonly
423
+ */
424
+ get anim(): typeof gsap;
425
+ /**
426
+ * Adds animation(s) to a specified context for grouped management.
427
+ * Creates the context if it doesn't exist. Defaults to global context if no contextId provided.
428
+ *
429
+ * @param animation - Single animation or array of animations to track
430
+ * @param contextId - Context identifier (defaults to global context)
431
+ * @returns The same animation(s) passed in for chaining
432
+ *
433
+ * @example
434
+ * ```typescript
435
+ * // Add to specific context for scene management
436
+ * const levelTweens = [
437
+ * gsap.to(player, { x: 100, duration: 2 }),
438
+ * gsap.to(enemy, { rotation: Math.PI, duration: 1.5 }),
439
+ * gsap.to(powerup, { scale: 1.2, yoyo: true, repeat: -1, duration: 0.8 })
440
+ * ];
441
+ * gsapPlugin.addAnimation(levelTweens, 'level1Gameplay');
442
+ *
443
+ * // Add to global context (default)
444
+ * const bgTween = gsap.to(background, { alpha: 0.8, duration: 3 });
445
+ * gsapPlugin.addAnimation(bgTween);
446
+ * ```
447
+ */
448
+ addAnimation(animation: gsap.core.Tween | gsap.core.Timeline | (gsap.core.Tween | gsap.core.Timeline)[], contextId?: string): gsap.core.Tween | gsap.core.Timeline | (gsap.core.Tween | gsap.core.Timeline)[];
449
+ /**
450
+ * Retrieves a custom animation context by its identifier.
451
+ * Returns null if the context doesn't exist.
452
+ *
453
+ * @param contextId - The context identifier to look up
454
+ * @returns The animation context Set or null if not found
455
+ *
456
+ * @example
457
+ * ```typescript
458
+ * // Check if context exists and get info
459
+ * const gameplayContext = gsapPlugin.getContext('gameplayAnimations');
460
+ * if (gameplayContext) {
461
+ * console.log(`Found ${gameplayContext.size} gameplay animations`);
462
+ *
463
+ * // Iterate through animations if needed
464
+ * gameplayContext.forEach(animation => {
465
+ * console.log('Animation progress:', animation.progress());
466
+ * });
467
+ * }
468
+ * ```
469
+ */
470
+ getContext(contextId: string): AnimationContext | null;
471
+ /**
472
+ * Plays all animations in the specified context or all contexts.
473
+ * Useful for resuming paused animations or ensuring all animations are active.
474
+ *
475
+ * @param contextId - Optional context identifier. If omitted, plays all animations in all contexts
476
+ *
477
+ * @example
478
+ * ```typescript
479
+ * // Resume specific context after pause
480
+ * gsapPlugin.playAll('menuAnimations');
481
+ *
482
+ * // Resume all animations (e.g., after app regains focus)
483
+ * gsapPlugin.playAll();
484
+ *
485
+ * // Conditional playback
486
+ * if (gameState === 'playing') {
487
+ * gsapPlugin.playAll('gameplayAnimations');
488
+ * }
489
+ * ```
490
+ */
491
+ playAll(contextId?: string): void;
492
+ /**
493
+ * Pauses all animations in the specified context or all contexts.
494
+ * Animations retain their current progress and can be resumed with playAll().
495
+ *
496
+ * @param contextId - Optional context identifier. If omitted, pauses all animations in all contexts
497
+ *
498
+ * @example
499
+ * ```typescript
500
+ * // Pause game animations when menu opens
501
+ * gsapPlugin.pauseAll('gameplayAnimations');
502
+ *
503
+ * // Pause everything when app loses focus
504
+ * window.addEventListener('blur', () => {
505
+ * gsapPlugin.pauseAll();
506
+ * });
507
+ *
508
+ * // Conditional pausing
509
+ * if (gameState === 'paused') {
510
+ * gsapPlugin.pauseAll('gameplayAnimations');
511
+ * }
512
+ * ```
513
+ */
514
+ pauseAll(contextId?: string): void;
515
+ /**
516
+ * Kills (stops and removes) all animations in the specified context or all contexts.
517
+ * Killed animations cannot be resumed and are removed from tracking.
518
+ * If killing all contexts, the global context is automatically recreated.
519
+ *
520
+ * @param contextId - Optional context identifier. If omitted, kills all animations in all contexts
521
+ *
522
+ * @example
523
+ * ```typescript
524
+ * // Kill animations when transitioning scenes
525
+ * gsapPlugin.killAll('currentSceneAnimations');
526
+ *
527
+ * // Emergency stop all animations
528
+ * gsapPlugin.killAll();
529
+ *
530
+ * // Clean up specific context before recreation
531
+ * gsapPlugin.killAll('temporaryEffects');
532
+ * ```
533
+ */
534
+ killAll(contextId?: string): void;
535
+ /**
536
+ * Reverts all animations in the specified context or all contexts to their initial state.
537
+ * Animation targets return to their original property values before the animation started.
538
+ *
539
+ * @param contextId - Optional context identifier. If omitted, reverts all animations in all contexts
540
+ *
541
+ * @example
542
+ * ```typescript
543
+ * // Reset UI to initial state
544
+ * gsapPlugin.revertAll('uiAnimations');
545
+ *
546
+ * // Reset everything for game restart
547
+ * gsapPlugin.revertAll();
548
+ *
549
+ * // Reset temporary effects
550
+ * gsapPlugin.revertAll('screenEffects');
551
+ * ```
552
+ */
553
+ revertAll(contextId?: string): void;
554
+ /**
555
+ * Clears (removes) a specific animation context from tracking.
556
+ * Optionally kills the animations before clearing the context.
557
+ *
558
+ * @param contextId - The context identifier to clear
559
+ * @param kill - Whether to kill animations before clearing (default: false)
560
+ *
561
+ * @example
562
+ * ```typescript
563
+ * // Clear completed level context
564
+ * gsapPlugin.clear('level1Animations');
565
+ *
566
+ * // Clear and kill animations simultaneously
567
+ * gsapPlugin.clear('temporaryEffects', true);
568
+ * ```
569
+ */
570
+ clear(contextId: string, kill?: boolean): void;
571
+ /**
572
+ * Clears all animation contexts and recreates the global context.
573
+ * Optionally kills all animations before clearing contexts.
574
+ *
575
+ * @param kill - Whether to kill all animations before clearing (default: false)
576
+ *
577
+ * @example
578
+ * ```typescript
579
+ * // Complete reset for new game
580
+ * gsapPlugin.clearAll(true);
581
+ *
582
+ * // Clear tracking without killing animations
583
+ * gsapPlugin.clearAll(false);
584
+ * ```
585
+ */
586
+ clearAll(kill?: boolean): void;
587
+ /**
588
+ * Kills all animations within the global animation context only.
589
+ * This affects only animations added to the global context, not other custom contexts.
590
+ *
591
+ * @example
592
+ * ```typescript
593
+ * // Kill only global animations, preserve context-specific ones
594
+ * gsapPlugin.killGlobal();
595
+ *
596
+ * // Useful for clearing background animations while keeping UI animations
597
+ * gsapPlugin.killGlobal();
598
+ * gsapPlugin.playAll('uiAnimations'); // UI animations continue
599
+ * ```
600
+ */
601
+ killGlobal(): void;
602
+ /**
603
+ * Reverts all animations within the global animation context to their initial state.
604
+ * Only affects animations in the global context, not custom contexts.
605
+ *
606
+ * @example
607
+ * ```typescript
608
+ * // Reset only global animations
609
+ * gsapPlugin.revertGlobal();
610
+ *
611
+ * // Reset global animations while preserving context states
612
+ * gsapPlugin.revertGlobal();
613
+ * // Context-specific animations remain unchanged
614
+ * ```
615
+ */
616
+ revertGlobal(): void;
617
+ /**
618
+ * Clears all animations from the global animation context.
619
+ * Optionally kills the animations before clearing from tracking.
620
+ *
621
+ * @param kill - Whether to kill animations before clearing (default: false)
622
+ *
623
+ * @example
624
+ * ```typescript
625
+ * // Clear global context without killing
626
+ * gsapPlugin.clearGlobal();
627
+ *
628
+ * // Clear and kill global animations
629
+ * gsapPlugin.clearGlobal(true);
630
+ * ```
631
+ */
632
+ clearGlobal(kill?: boolean): void;
633
+ }
634
+ //# sourceMappingURL=GSAPPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GSAPPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/GSAPPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { IApplication } from '../core';
2
+ import { Signal } from '../signals';
3
+ import { KeyboardKey } from '../utils';
4
+ import { IPlugin, Plugin } from './Plugin';
5
+ export type KeyboardEventType = 'keydown' | 'keyup';
6
+ export type KeyboardEventDetail = {
7
+ event: KeyboardEvent;
8
+ key: string;
9
+ };
10
+ export type KeySignal = Signal<(detail: KeyboardEventDetail) => void>;
11
+ export interface IKeyboardPlugin extends IPlugin {
12
+ enabled: boolean;
13
+ readonly keysDown: Set<string>;
14
+ onKeyDown(key?: KeyboardKey): KeySignal;
15
+ onKeyUp(key?: KeyboardKey): KeySignal;
16
+ isKeyDown(key: string): boolean;
17
+ }
18
+ export declare function normalizeKey(key: string | undefined): string;
19
+ export declare class KeyboardPlugin extends Plugin implements IKeyboardPlugin {
20
+ readonly id: string;
21
+ onGlobalKeyDown: Signal<(detail: KeyboardEventDetail) => void>;
22
+ onGlobalKeyUp: Signal<(detail: KeyboardEventDetail) => void>;
23
+ private _keyDownSignals;
24
+ private _keyUpSignals;
25
+ private _keysDown;
26
+ private _warnedNoConsumers;
27
+ get keysDown(): Set<string>;
28
+ private _enabled;
29
+ get enabled(): boolean;
30
+ set enabled(value: boolean);
31
+ initialize(_options: any, _app: IApplication): void;
32
+ destroy(): void;
33
+ onKeyDown(key?: KeyboardKey): KeySignal;
34
+ onKeyUp(key?: KeyboardKey): KeySignal;
35
+ isKeyDown(key: KeyboardKey): boolean;
36
+ _update(): void;
37
+ protected getCoreSignals(): string[];
38
+ protected getCoreFunctions(): string[];
39
+ private _handleKeyDown;
40
+ private _handleKeyUp;
41
+ /**
42
+ * Check if the signal exists and add it if it doesn't
43
+ * Also, if this is the first signal, start listening for the event
44
+ * @param {string} key
45
+ * @param {KeyboardEventType} eventType
46
+ * @returns {KeySignal}
47
+ * @private
48
+ */
49
+ private _checkAndAddSignal;
50
+ private _listen;
51
+ private _handleEvent;
52
+ }
53
+ //# sourceMappingURL=KeyboardPlugin.d.ts.map