@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 @@
1
+ {"version":3,"file":"KeyboardPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/KeyboardPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAS,WAAW,EAAU,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC;AAEtE,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE/B,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAS5D;AAED,qBAAa,cAAe,SAAQ,MAAO,YAAW,eAAe;IACnE,SAAgB,EAAE,EAAE,MAAM,CAAc;IAEjC,eAAe,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAgB;IAC9E,aAAa,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAgB;IAEnF,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,aAAa,CAAiD;IAEtE,OAAO,CAAC,SAAS,CAA0B;IAG3C,OAAO,CAAC,kBAAkB,CAAS;IAEnC,IAAI,QAAQ,gBAEX;IAED,OAAO,CAAC,QAAQ,CAAiB;IAEjC,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAEhC;IAGM,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAMnD,OAAO;IAOP,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS;IAIvC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS;IAIrC,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;IAI3C,OAAO;IAIP,SAAS,CAAC,cAAc,IAAI,MAAM,EAAE;IAIpC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAE;IAItC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,YAAY;IAkBpB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,YAAY;CASrB"}
@@ -0,0 +1,100 @@
1
+ import { Plugin, IPlugin } from './Plugin';
2
+ /**
3
+ * Interface for the Layout plugin providing PIXI.js layout management.
4
+ * Enables advanced CSS-like layout capabilities for PIXI display objects.
5
+ */
6
+ export interface ILayoutPlugin extends IPlugin {
7
+ }
8
+ /**
9
+ * Layout management plugin for PIXI.js applications using @pixi/layout.
10
+ *
11
+ * Integrates the @pixi/layout library to provide CSS-like layout capabilities
12
+ * for PIXI display objects, including flexbox, positioning, and responsive design.
13
+ * Automatically configures sensible default styles for consistent layout behavior.
14
+ *
15
+ * Key Features:
16
+ * - CSS Flexbox-like layout system for PIXI containers
17
+ * - Responsive design capabilities with intrinsic sizing
18
+ * - Automatic layout calculation and positioning
19
+ * - Gap, padding, and margin support
20
+ * - Transform origin and object positioning controls
21
+ * - Development tools integration for layout debugging
22
+ *
23
+ * Default Style Configuration:
24
+ * - Container: Auto width/height with no gap
25
+ * - Leaf: Intrinsic sizing with flex shrink enabled
26
+ * - Shared: Center transform origin, row direction, stretch alignment
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Plugin is automatically initialized with the application
31
+ * // Layout capabilities are immediately available on all containers
32
+ *
33
+ * // Create a flexbox-style layout
34
+ * const container = new PIXI.Container();
35
+ * container.layout = {
36
+ * display: 'flex',
37
+ * flexDirection: 'row',
38
+ * justifyContent: 'space-between',
39
+ * alignItems: 'center',
40
+ * gap: 10,
41
+ * padding: 20
42
+ * };
43
+ *
44
+ * // Add children that will be automatically laid out
45
+ * const button1 = new PIXI.Sprite(buttonTexture);
46
+ * const button2 = new PIXI.Sprite(buttonTexture);
47
+ * const button3 = new PIXI.Sprite(buttonTexture);
48
+ *
49
+ * container.addChild(button1, button2, button3);
50
+ * // Children are automatically positioned using flexbox rules
51
+ *
52
+ * // Responsive design with intrinsic sizing
53
+ * const responsiveContainer = new PIXI.Container();
54
+ * responsiveContainer.layout = {
55
+ * width: '100%',
56
+ * maxWidth: 800,
57
+ * flexDirection: 'column',
58
+ * alignItems: 'center'
59
+ * };
60
+ * ```
61
+ *
62
+ * @remarks
63
+ * - Requires @pixi/layout package to be installed
64
+ * - Provides devtools integration for layout debugging in development
65
+ * - Default styles are optimized for common game UI patterns
66
+ * - Layout calculations happen automatically when display objects are added/modified
67
+ * - Supports both absolute and relative positioning
68
+ */
69
+ export declare class LayoutPlugin extends Plugin implements ILayoutPlugin {
70
+ /** Plugin identifier for framework registration */
71
+ readonly id = "LayoutPlugin";
72
+ /**
73
+ * Initializes the Layout plugin with optimized default styles.
74
+ * Configures the @pixi/layout system with sensible defaults for game development,
75
+ * including flexbox behavior, sizing, and alignment settings.
76
+ *
77
+ * Default Configuration Details:
78
+ * - **Container styles**: Auto-sizing with no gaps for efficient nesting
79
+ * - **Leaf styles**: Intrinsic sizing with flex shrink for responsive behavior
80
+ * - **Shared styles**: Center origins, row direction, and stretch alignment
81
+ * - **Transform origin**: Set to 50% for predictable scaling and rotation
82
+ * - **Object position**: Centered for consistent alignment behavior
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * // Called automatically by the plugin system
87
+ * // After initialization, all PIXI containers support layout properties
88
+ *
89
+ * const container = new PIXI.Container();
90
+ * container.layout = {
91
+ * display: 'flex', // Use flexbox layout
92
+ * flexDirection: 'column', // Stack children vertically
93
+ * gap: 10, // 10px gap between children
94
+ * padding: 15 // 15px padding around content
95
+ * };
96
+ * ```
97
+ */
98
+ initialize(): Promise<void>;
99
+ }
100
+ //# sourceMappingURL=LayoutPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/LayoutPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;CAAG;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,YAAa,SAAQ,MAAO,YAAW,aAAa;IAC/D,mDAAmD;IACnD,SAAgB,EAAE,kBAAkB;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,UAAU;CAuBjB"}
@@ -0,0 +1,223 @@
1
+ import { Container as PIXIContainer } from 'pixi.js';
2
+ import { IPlugin, Plugin } from '.';
3
+ /**
4
+ * Interface for the LookupPlugin providing fast container lookup functionality.
5
+ * Enables O(1) lookups of PIXI containers using hierarchical path strings.
6
+ */
7
+ export interface ILookupPlugin extends IPlugin {
8
+ /**
9
+ * Retrieves a container at the specified hierarchical path.
10
+ * @param path - Slash-separated path like 'Parent/Child/GrandChild'
11
+ * @returns The container at the path, or undefined if not found
12
+ * @example
13
+ * ```typescript
14
+ * const button = lookupPlugin.getChildAtPath('UI/Menu/StartButton');
15
+ * ```
16
+ */
17
+ getChildAtPath(path: string): PIXIContainer | undefined;
18
+ /**
19
+ * Gets the hierarchical path for a given container.
20
+ * @param container - The PIXI container to get the path for
21
+ * @returns The hierarchical path string, or empty string if not tracked
22
+ * @example
23
+ * ```typescript
24
+ * const path = lookupPlugin.getPathForChild(myContainer); // 'Parent/Child'
25
+ * ```
26
+ */
27
+ getPathForChild(container: PIXIContainer): string;
28
+ /**
29
+ * Batch retrieval of containers at multiple paths.
30
+ * @param paths - Array of hierarchical paths to look up
31
+ * @returns Array of containers found at the specified paths (undefined entries filtered out)
32
+ * @example
33
+ * ```typescript
34
+ * const [ui, player] = lookupPlugin.getChildrenAtPaths('UI/HUD', 'Game/Player');
35
+ * ```
36
+ */
37
+ getChildrenAtPaths(...paths: string[]): PIXIContainer[];
38
+ /**
39
+ * Batch retrieval of paths for multiple containers.
40
+ * @param containers - Array of PIXI containers to get paths for
41
+ * @returns Array of hierarchical paths for the containers
42
+ * @example
43
+ * ```typescript
44
+ * const paths = lookupPlugin.getPathsForChildren(container1, container2);
45
+ * ```
46
+ */
47
+ getPathsForChildren(...containers: PIXIContainer[]): string[];
48
+ /**
49
+ * Gets all currently tracked hierarchical paths.
50
+ * @returns Array of all path strings in the lookup system
51
+ * @example
52
+ * ```typescript
53
+ * const allPaths = lookupPlugin.getAllPaths(); // ['UI/Menu', 'Game/Player', ...]
54
+ * ```
55
+ */
56
+ getAllPaths(): string[];
57
+ }
58
+ /**
59
+ * High-performance container lookup plugin for PIXI.js applications.
60
+ *
61
+ * Provides O(1) lookup of containers using hierarchical path strings by maintaining
62
+ * bidirectional maps between paths and containers. Automatically tracks container
63
+ * hierarchy changes through global Container events.
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * // Access containers by path
68
+ * const player = app.lookup.getChildAtPath('Game/Entities/Player');
69
+ * const menuButton = app.lookup.getChildAtPath('UI/MainMenu/StartButton');
70
+ *
71
+ * // Get paths for containers
72
+ * const playerPath = app.lookup.getPathForChild(playerSprite); // 'Game/Entities/Player'
73
+ * ```
74
+ *
75
+ * @remarks
76
+ * - Paths are built using container labels in hierarchical order
77
+ * - Only containers with labels are included in paths
78
+ * - Automatically handles container addition/removal through event listeners
79
+ * - Uses Map data structures for optimal performance
80
+ */
81
+ export declare class LookupPlugin extends Plugin implements ILookupPlugin {
82
+ name: string;
83
+ /** Fast O(1) lookup map: hierarchical path -> container reference */
84
+ private pathToContainer;
85
+ /** Reverse lookup for efficient path updates: container reference -> hierarchical path */
86
+ private containerToPath;
87
+ /**
88
+ * Core function names exposed by this plugin for framework integration.
89
+ */
90
+ get coreFunctions(): string[];
91
+ /**
92
+ * Initializes the lookup plugin by connecting to global container events.
93
+ * Sets up automatic tracking of container hierarchy changes.
94
+ */
95
+ initialize(): Promise<void>;
96
+ /**
97
+ * Fast O(1) lookup of container by hierarchical path.
98
+ *
99
+ * @param path - Slash-separated path like 'Parent/Child/GrandChild'
100
+ * @returns The container at the specified path, or undefined if not found
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * // Get a specific UI element
105
+ * const healthBar = lookup.getChildAtPath('UI/HUD/HealthBar');
106
+ * if (healthBar) {
107
+ * // Update health display
108
+ * healthBar.visible = true;
109
+ * }
110
+ * ```
111
+ */
112
+ getChildAtPath(path: string): PIXIContainer | undefined;
113
+ /**
114
+ * Batch retrieval of containers at multiple paths.
115
+ * Filters out undefined results for convenience.
116
+ *
117
+ * @param paths - Variable number of hierarchical paths to look up
118
+ * @returns Array of found containers (undefined entries filtered out)
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * // Get multiple UI elements at once
123
+ * const [menu, hud, inventory] = lookup.getChildrenAtPaths(
124
+ * 'UI/MainMenu',
125
+ * 'UI/HUD',
126
+ * 'UI/Inventory'
127
+ * );
128
+ * ```
129
+ */
130
+ getChildrenAtPaths(...paths: string[]): PIXIContainer[];
131
+ /**
132
+ * Get the hierarchical path for a given container.
133
+ *
134
+ * @param container - The container to get the path for
135
+ * @returns The hierarchical path or empty string if not tracked
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * // Get path for debugging or logging
140
+ * const containerPath = lookup.getPathForChild(someSprite);
141
+ * console.log(`Container is at: ${containerPath}`);
142
+ * ```
143
+ */
144
+ getPathForChild(container: PIXIContainer): string;
145
+ /**
146
+ * Batch retrieval of paths for multiple containers.
147
+ *
148
+ * @param containers - Variable number of PIXI containers to get paths for
149
+ * @returns Array of hierarchical paths for the containers
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * // Get paths for multiple containers for debugging
154
+ * const paths = lookup.getPathsForChildren(sprite1, sprite2, sprite3);
155
+ * console.log('Container paths:', paths);
156
+ * ```
157
+ */
158
+ getPathsForChildren(...containers: PIXIContainer[]): string[];
159
+ /**
160
+ * Gets all currently tracked hierarchical paths.
161
+ * Useful for debugging, serialization, or introspection.
162
+ *
163
+ * @returns Array of all path strings in the lookup system
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * // Debug all tracked containers
168
+ * const allPaths = lookup.getAllPaths();
169
+ * console.log('All tracked containers:', allPaths);
170
+ * ```
171
+ */
172
+ getAllPaths(): string[];
173
+ /**
174
+ * Gets all currently tracked containers.
175
+ * Useful for bulk operations or debugging.
176
+ *
177
+ * @returns Array of all container references in the lookup system
178
+ */
179
+ getAllChildren(): PIXIContainer[];
180
+ /**
181
+ * Event handler for when a child is added to any container.
182
+ * Automatically adds the new container to the lookup system.
183
+ *
184
+ * @param child - The newly added container
185
+ */
186
+ private onChildAdded;
187
+ /**
188
+ * Event handler for when a child is removed from any container.
189
+ * Automatically removes the container from the lookup system.
190
+ *
191
+ * @param child - The removed container
192
+ */
193
+ private onChildRemoved;
194
+ /**
195
+ * Add a container and all its descendants to the lookup system.
196
+ * Recursively processes the entire subtree to maintain lookup integrity.
197
+ *
198
+ * @param container - The container to add (along with all its children)
199
+ */
200
+ private addToLookup;
201
+ /**
202
+ * Remove a container and all its descendants from the lookup system.
203
+ * Recursively processes the entire subtree to prevent memory leaks.
204
+ *
205
+ * @param container - The container to remove (along with all its children)
206
+ */
207
+ private removeFromLookup;
208
+ /**
209
+ * Build the hierarchical path for a container by traversing up the parent chain.
210
+ * Only includes containers with labels in the path, stopping at 'Stage'.
211
+ *
212
+ * @param container - The container to build a path for
213
+ * @returns The hierarchical path string, or empty string if no labeled ancestors
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * // For a container structure: Stage -> Game -> Player -> HealthBar
218
+ * // Where each has a label, this would return: 'Game/Player/HealthBar'
219
+ * ```
220
+ */
221
+ private buildPath;
222
+ }
223
+ //# sourceMappingURL=LookupPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookupPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/LookupPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C;;;;;;;;OAQG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAExD;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;IAElD;;;;;;;;OAQG;IACH,kBAAkB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAExD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAE9D;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAa,SAAQ,MAAO,YAAW,aAAa;IACxD,IAAI,SAAY;IAEvB,qEAAqE;IACrE,OAAO,CAAC,eAAe,CAAoC;IAE3D,0FAA0F;IAC1F,OAAO,CAAC,eAAe,CAAoC;IAE3D;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED;;;OAGG;IACU,UAAU;IAKvB;;;;;;;;;;;;;;;OAeG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D;;;;;;;;;;;;;;;;OAgBG;IACI,kBAAkB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE;IAI9D;;;;;;;;;;;;OAYG;IACI,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;IAIxD;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE;IAIpE;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,MAAM,EAAE;IAI9B;;;;;OAKG;IACI,cAAc,IAAI,aAAa,EAAE;IAIxC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,SAAS;CAgBlB"}
@@ -0,0 +1,132 @@
1
+ import { IApplication } from '../core';
2
+ import { SignalConnection, SignalConnections } from '../signals';
3
+ import { AppTypeOverrides, ImportListItemModule } from '../utils';
4
+ /**
5
+ * Public contract for a Caper plugin. A plugin is a long-lived object
6
+ * with `initialize` / `postInitialize` / `destroy` lifecycle hooks,
7
+ * registered at app bootstrap and accessed via `app.getPlugin(id)`.
8
+ *
9
+ * **Lifecycle order** (per plugin):
10
+ *
11
+ * 1. `constructor` — instantiated by the framework. Don't reference
12
+ * the app yet; it isn't attached.
13
+ * 2. `initialize(options, app)` — set up internal state, parse options,
14
+ * open connections, register signals. Awaited by the framework
15
+ * before any other plugin's `initialize` runs (when ordered by
16
+ * `requires`). Don't call out to other plugins here unless they
17
+ * are listed in your `requires` — order isn't guaranteed otherwise.
18
+ * 3. `postInitialize(app)` — runs after every plugin has finished
19
+ * `initialize`. Safe to look up sibling plugins via `app.getPlugin`
20
+ * regardless of `requires`. Use for cross-plugin wiring.
21
+ * 4. (use phase) — the plugin is live; signal handlers fire, exposed
22
+ * methods are called from scenes / other plugins / the app.
23
+ * 5. `destroy()` — called when the app shuts down. Tear down
24
+ * connections, disconnect signals, free resources. The base class
25
+ * already disconnects everything added via `addSignalConnection`.
26
+ *
27
+ * Discovery: plugin classes under `src/plugins/` are auto-discovered
28
+ * by the Vite plugin if they default-export a class. Annotate with
29
+ * `definePlugin({ id, requires })` for the canonical id and any
30
+ * dependency declarations:
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { definePlugin, IApplication, Plugin } from '@caperjs/core';
35
+ *
36
+ * export const plugin = definePlugin({
37
+ * id: 'leaderboard',
38
+ * requires: ['firebase'], // firebase initializes first
39
+ * });
40
+ *
41
+ * export default class LeaderboardPlugin extends Plugin {
42
+ * public readonly id = 'leaderboard';
43
+ *
44
+ * async initialize(_options, app) {
45
+ * this.firebase = app.getPlugin('firebase'); // guaranteed to exist
46
+ * }
47
+ * }
48
+ * ```
49
+ */
50
+ export interface IPlugin<O = any> {
51
+ /** Unique plugin id. Must match the `definePlugin({ id })` value. */
52
+ id: string;
53
+ /** The owning application instance. Available after registration. */
54
+ app: IApplication;
55
+ /** Resolved options after `initialize` merges defaults with the user's. */
56
+ readonly options: O;
57
+ /**
58
+ * Set up the plugin. Called once at bootstrap, awaited before any
59
+ * dependent plugin's `initialize` runs. Use this to parse options,
60
+ * open connections, and register signals.
61
+ *
62
+ * @param options Partial options from `caper.config.ts plugins[]`.
63
+ * @param app The application instance, fully constructed but possibly
64
+ * mid-bootstrap (other plugins may not yet be initialized — see
65
+ * `requires` and `postInitialize`).
66
+ */
67
+ initialize(options: Partial<O>, app: IApplication): Promise<void> | void;
68
+ /**
69
+ * Cross-plugin wiring hook. Called after every plugin has finished
70
+ * `initialize`. Safe to look up siblings via `app.getPlugin(id)` here
71
+ * regardless of `requires` — they're all live.
72
+ */
73
+ postInitialize(_app: IApplication): Promise<void> | void;
74
+ /** Tear down. Called on app shutdown. */
75
+ destroy(): void;
76
+ /**
77
+ * Track a signal connection so it gets auto-disconnected on `destroy`.
78
+ * Prefer this over storing connections manually.
79
+ */
80
+ addSignalConnection(...args: SignalConnection[]): void;
81
+ /** Disconnect every connection added via `addSignalConnection`. */
82
+ clearSignalConnections(): void;
83
+ /** Register methods this plugin exposes via the core function registry. */
84
+ registerCoreFunctions(): void;
85
+ /** Register signals this plugin exposes via the core signal registry. */
86
+ registerCoreSignals(): void;
87
+ }
88
+ export interface PluginListItem {
89
+ id: string;
90
+ path: string;
91
+ module?: ImportListItemModule<IPlugin>;
92
+ assets?: string[];
93
+ plugins?: string[];
94
+ /**
95
+ * IDs of other plugins that must initialize before this one. Populated
96
+ * from `definePlugin({ requires: [...] })` for local plugins; carried
97
+ * through discovery to bootstrap so the framework can topologically
98
+ * sort the active plugin set.
99
+ */
100
+ requires?: string[];
101
+ }
102
+ export declare class Plugin<O = any> implements IPlugin<O> {
103
+ id: string;
104
+ private readonly __caper_method_binding_root;
105
+ protected _signalConnections: SignalConnections;
106
+ protected _options: O;
107
+ get options(): O;
108
+ constructor(id?: string);
109
+ get app(): AppTypeOverrides['App'];
110
+ destroy(): void;
111
+ initialize(options?: Partial<O>, _app?: IApplication): Promise<void> | void;
112
+ postInitialize(_app: IApplication): Promise<void> | void;
113
+ /**
114
+ * Add signal connections to the container.
115
+ * @param args - The signal connections to add.
116
+ */
117
+ addSignalConnection(...args: SignalConnection[]): void;
118
+ clearSignalConnections(): void;
119
+ /**
120
+ * @override
121
+ * @protected
122
+ */
123
+ registerCoreFunctions(): void;
124
+ /**
125
+ * @override
126
+ * @protected
127
+ */
128
+ registerCoreSignals(): void;
129
+ protected getCoreFunctions(): string[];
130
+ protected getCoreSignals(): string[];
131
+ }
132
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,SAAS,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,KAAK,gBAAgB,EAAkB,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,GAAG;IAC9B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IAEX,qEAAqE;IACrE,GAAG,EAAE,YAAY,CAAC;IAElB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpB;;;;;;;;;OASG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzE;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzD,yCAAyC;IACzC,OAAO,IAAI,IAAI,CAAC;IAEhB;;;OAGG;IACH,mBAAmB,CAAC,GAAG,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAEvD,mEAAmE;IACnE,sBAAsB,IAAI,IAAI,CAAC;IAE/B,2EAA2E;IAC3E,qBAAqB,IAAI,IAAI,CAAC;IAE9B,yEAAyE;IACzE,mBAAmB,IAAI,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAW7B,EAAE,EAAE,MAAM;IAV7B,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAQ;IAEpD,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAA2B;IAE1E,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtB,IAAI,OAAO,IAAI,CAAC,CAEf;gBAEkB,EAAE,GAAE,MAAiB;IAIxC,IAAW,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAExC;IAEM,OAAO,IAAI,IAAI;IAIf,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAO3E,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAO/D;;;OAGG;IACI,mBAAmB,CAAC,GAAG,IAAI,EAAE,gBAAgB,EAAE;IAM/C,sBAAsB;IAI7B;;;OAGG;IACI,qBAAqB,IAAI,IAAI;IASpC;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IASlC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAE;IAItC,SAAS,CAAC,cAAc,IAAI,MAAM,EAAE;CAGrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Plugin.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.test.d.ts","sourceRoot":"","sources":["../../src/plugins/Plugin.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,108 @@
1
+ import { Container } from '../display';
2
+ import { Signal } from '../signals';
3
+ import { IPopup } from '../ui';
4
+ import { PopupId, PopupInstance, PopupProps } from '../utils';
5
+ import { IPlugin, Plugin } from './Plugin';
6
+ /**`
7
+ * Interface for PopupManager
8
+ */
9
+ export interface IPopupManagerPlugin extends IPlugin {
10
+ readonly view: Container;
11
+ readonly current: IPopup | undefined;
12
+ readonly hasActivePopups: boolean;
13
+ readonly popupCount: number;
14
+ readonly currentPopupId: string | number | undefined;
15
+ onShowPopup: Signal<(detail: PopupSignalDetail) => void>;
16
+ onHidePopup: Signal<(detail: PopupSignalDetail) => void>;
17
+ onPopupChanged: Signal<(detail: PopupSignalDetail) => void>;
18
+ /**
19
+ * Show a discovered popup by id. The `config.data` field is narrowed to
20
+ * the popup's declared data type (if it extends `Popup<MyData>`). Awaits
21
+ * the full show lifecycle (initialize → beforeShow → show animation).
22
+ */
23
+ showPopup<K extends PopupId>(id: K, config?: PopupProps<K>): Promise<PopupInstance<K> | undefined>;
24
+ /** Alias for `showPopup` — shorter when called as `this.popups.show(...)`. */
25
+ show<K extends PopupId>(id: K, config?: PopupProps<K>): Promise<PopupInstance<K> | undefined>;
26
+ hidePopup<T = any>(id: string | number, data?: any): Promise<IPopup<T> | undefined>;
27
+ removeAllPopups(animate?: boolean): void;
28
+ }
29
+ export type PopupSignalDetail<T = any> = {
30
+ id: string | number;
31
+ data?: T;
32
+ };
33
+ /**
34
+ * PopupManager
35
+ */
36
+ export declare class PopupManagerPlugin extends Plugin implements IPopupManagerPlugin {
37
+ readonly id: string;
38
+ readonly view: Container;
39
+ onShowPopup: Signal<(detail: PopupSignalDetail) => void>;
40
+ onHidePopup: Signal<(detail: PopupSignalDetail) => void>;
41
+ onPopupChanged: Signal<(detail: PopupSignalDetail) => void>;
42
+ private _popups;
43
+ private _activePopups;
44
+ private _currentPopupId;
45
+ get currentPopupId(): string | number | undefined;
46
+ get popupCount(): number;
47
+ get current(): IPopup | undefined;
48
+ get hasActivePopups(): boolean;
49
+ /**
50
+ * Initialize the PopupManager. Reads the discovered `popupList` from the
51
+ * `caper-runtime` global and pre-registers every active popup. Dynamic
52
+ * imports are stored as-is and resolved on first `show()` call.
53
+ */
54
+ initialize(): void;
55
+ /**
56
+ * Destroy the PopupManager
57
+ */
58
+ destroy(): void;
59
+ /**
60
+ * Show a discovered popup by id.
61
+ * @param id - The id of the popup (typed against `AppPopups`).
62
+ * @param config - The configuration for the popup. `config.data` is
63
+ * narrowed via the popup class's `Popup<T>` generic.
64
+ * @returns a promise resolving to the popup instance.
65
+ */
66
+ showPopup<K extends PopupId>(id: K, config?: PopupProps<K>): Promise<PopupInstance<K> | undefined>;
67
+ /** Alias for `showPopup`. */
68
+ show<K extends PopupId>(id: K, config?: PopupProps<K>): Promise<PopupInstance<K> | undefined>;
69
+ /**
70
+ * Hide a popup
71
+ * @param id - The id of the popup
72
+ * @param data
73
+ * @returns a promise resolving to the popup, if it exists
74
+ */
75
+ hidePopup<T = any>(id: string | number, data?: T): Promise<IPopup<T> | undefined>;
76
+ /**
77
+ * Remove all popups
78
+ * @param animate - Whether to animate the removal
79
+ */
80
+ removeAllPopups(animate?: boolean): void;
81
+ protected getCoreFunctions(): string[];
82
+ protected getCoreSignals(): string[];
83
+ /**
84
+ * Setup application listeners
85
+ * @private
86
+ */
87
+ private _setupAppListeners;
88
+ /**
89
+ * Pull every active popup off `globalThis.Caper.popupList` (populated by
90
+ * the `caper-runtime` virtual module before the Application starts) and
91
+ * seed the registry. Entries stay as dynamic-import functions until the
92
+ * first `show()` call resolves them.
93
+ */
94
+ private _registerDiscoveredPopups;
95
+ /**
96
+ * Ensure the popup constructor for `id` is loaded and return it. Resolves
97
+ * dynamic-import functions on first access, caches the result back onto
98
+ * the registry so subsequent shows are synchronous.
99
+ */
100
+ private _resolvePopupCtor;
101
+ /**
102
+ * Handle escape key press
103
+ * if the current popup should close when escape is pressed (true by default), closes it
104
+ * @private
105
+ */
106
+ private _handleEscape;
107
+ }
108
+ //# sourceMappingURL=PopupManagerPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupManagerPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/PopupManagerPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,OAAO,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAErD,WAAW,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC;IACzD,WAAW,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC;IAE5D;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEnG,8EAA8E;IAC9E,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9F,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpF,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAE3E;;GAEG;AAEH,qBAAa,kBAAmB,SAAQ,MAAO,YAAW,mBAAmB;IAC3E,SAAgB,EAAE,EAAE,MAAM,CAAY;IACtC,SAAgB,IAAI,YAAmB;IAGhC,WAAW,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAqD;IAC7G,WAAW,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAqD;IAC7G,cAAc,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAE9D;IAGJ,OAAO,CAAC,OAAO,CAAgF;IAC/F,OAAO,CAAC,aAAa,CAA2C;IAEhE,OAAO,CAAC,eAAe,CAA0C;IAEjE,IAAI,cAAc,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhD;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAKhC;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;;;;;OAMG;IACG,SAAS,CAAC,CAAC,SAAS,OAAO,EAC/B,EAAE,EAAE,CAAC,EACL,MAAM,GAAE,UAAU,CAAC,CAAC,CAAuB,GAC1C,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IA4BxC,6BAA6B;IAC7B,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAI7F;;;;;OAKG;IACG,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAqBvF;;;OAGG;IACH,eAAe,CAAC,OAAO,GAAE,OAAe,GAAG,IAAI;IAW/C,SAAS,CAAC,gBAAgB;IAI1B,SAAS,CAAC,cAAc;IAIxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAWjC;;;;OAIG;YACW,iBAAiB;IAuB/B;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAKtB"}
@@ -0,0 +1,62 @@
1
+ import { Size } from '../utils';
2
+ import { IPlugin, Plugin } from './Plugin';
3
+ /**
4
+ * Interface for Resizer module.
5
+ */
6
+ export interface IResizerPlugin extends IPlugin {
7
+ readonly size: Size;
8
+ readonly scale: number;
9
+ resize(): Promise<Size>;
10
+ }
11
+ /**
12
+ * Configuration options for the Resizer plugin
13
+ */
14
+ export type ResizerPluginOptions = {
15
+ /** Whether to scroll the window to the top when resizing */
16
+ autoScroll: boolean;
17
+ /** The minimum width at which the renderer will resize. Also controls aspect ratio in letterbox mode */
18
+ minWidth: number;
19
+ /** The minimum height of the canvas. Also controls aspect ratio in letterbox mode */
20
+ minHeight: number;
21
+ /** Whether to letterbox the canvas to maintain aspect ratio */
22
+ letterbox: boolean;
23
+ /** Whether to center the canvas (particularly useful in letterbox mode) */
24
+ center: boolean;
25
+ /** Whether to draw debug information for visualizing canvas bounds */
26
+ debug: boolean;
27
+ };
28
+ export declare class ResizerPlugin extends Plugin<ResizerPluginOptions> implements IResizerPlugin {
29
+ readonly id = "resizer";
30
+ private _debugContainer;
31
+ private _gfx;
32
+ private _size;
33
+ private _scale;
34
+ private _resizeId;
35
+ get size(): Size;
36
+ get scale(): number;
37
+ /**
38
+ * Initializes the Resizer module.
39
+ */
40
+ initialize(options: Partial<ResizerPluginOptions>): Promise<void>;
41
+ /**
42
+ * Post-initialization of the Resizer module.
43
+ * when this is called, the renderer is already created, and the dom element has been appended
44
+ */
45
+ postInitialize(): Promise<void>;
46
+ resize(): Promise<Size>;
47
+ _cancelResize: () => void;
48
+ _resizeInternal(w: number, h: number, minWidth: number, minHeight: number, letterbox: boolean): {
49
+ width: number;
50
+ height: number;
51
+ aspectRatio: number;
52
+ };
53
+ /**
54
+ * Resizes the application based on window size and module options.
55
+ */
56
+ _resize(): void;
57
+ /**
58
+ * Draws debug information if debug option is enabled.
59
+ */
60
+ private _drawDebug;
61
+ }
62
+ //# sourceMappingURL=ResizerPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizerPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ResizerPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,wGAAwG;IACxG,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAcF,qBAAa,aAAc,SAAQ,MAAM,CAAC,oBAAoB,CAAE,YAAW,cAAc;IACvF,SAAgB,EAAE,aAAa;IAC/B,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAgB;IAEjC,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAIvD;;;OAGG;IACG,cAAc;IAId,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAU7B,aAAa,QAAO,IAAI,CAKtB;IAEF,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;;;;;IAqB7F;;OAEG;IAEH,OAAO;IAuFP;;OAEG;IACH,OAAO,CAAC,UAAU;CAUnB"}