@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.
- package/LICENSE +22 -0
- package/README.md +62 -0
- package/cli/add.mjs +197 -0
- package/cli/audio/cc.mjs +128 -0
- package/cli/audio/index.mjs +42 -0
- package/cli/audio/utils.mjs +56 -0
- package/cli/create-caper.mjs +8 -0
- package/cli/create.mjs +351 -0
- package/cli/install-peerdeps.mjs +57 -0
- package/cli/update.mjs +9 -0
- package/cli/utils.mjs +81 -0
- package/cli/vite.mjs +55 -0
- package/cli/voiceover/generateVoiceoverCSV.mjs +158 -0
- package/cli/voiceover/index.mjs +1 -0
- package/cli.mjs +157 -0
- package/client.d.ts +7 -0
- package/config/assetpack.mjs +212 -0
- package/config/tsconfig.base.json +28 -0
- package/config/vite.mjs +2464 -0
- package/extras/css/accessibility.css +9 -0
- package/extras/css/fullscreen.css +28 -0
- package/extras/css/loader.css +67 -0
- package/extras/llms.txt +1602 -0
- package/lib/CaptionsPlugin-Dc8fIrjy.js +277 -0
- package/lib/CaptionsPlugin-Dc8fIrjy.js.map +1 -0
- package/lib/DataAdapter-BY2114sp.js +84 -0
- package/lib/DataAdapter-BY2114sp.js.map +1 -0
- package/lib/DebugRenderer-BJMLILqI.js +1385 -0
- package/lib/DebugRenderer-BJMLILqI.js.map +1 -0
- package/lib/DevToolsPlugin-wQ5rOkn0.js +31 -0
- package/lib/DevToolsPlugin-wQ5rOkn0.js.map +1 -0
- package/lib/GSAPPlugin-DHhSZKv8.js +350 -0
- package/lib/GSAPPlugin-DHhSZKv8.js.map +1 -0
- package/lib/LayoutPlugin-B-DF9SYM.js +1271 -0
- package/lib/LayoutPlugin-B-DF9SYM.js.map +1 -0
- package/lib/SpinePlugin-Dz_3dljz.js +6077 -0
- package/lib/SpinePlugin-Dz_3dljz.js.map +1 -0
- package/lib/StatsPlugin-Cg82JMBD.js +70 -0
- package/lib/StatsPlugin-Cg82JMBD.js.map +1 -0
- package/lib/VoiceOverPlugin-BR3ImT8C.js +114 -0
- package/lib/VoiceOverPlugin-BR3ImT8C.js.map +1 -0
- package/lib/caper.mjs +1233 -0
- package/lib/caper.mjs.map +1 -0
- package/lib/core/Application.d.ts +268 -0
- package/lib/core/Application.d.ts.map +1 -0
- package/lib/core/config.d.ts +39 -0
- package/lib/core/config.d.ts.map +1 -0
- package/lib/core/create.d.ts +41 -0
- package/lib/core/create.d.ts.map +1 -0
- package/lib/core/globals.d.ts +51 -0
- package/lib/core/globals.d.ts.map +1 -0
- package/lib/core/index.d.ts +7 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/interfaces/IApplication.d.ts +566 -0
- package/lib/core/interfaces/IApplication.d.ts.map +1 -0
- package/lib/core/interfaces/IApplicationOptions.d.ts +65 -0
- package/lib/core/interfaces/IApplicationOptions.d.ts.map +1 -0
- package/lib/core/interfaces/ICoreFunctions.d.ts +49 -0
- package/lib/core/interfaces/ICoreFunctions.d.ts.map +1 -0
- package/lib/core/interfaces/ICoreSignals.d.ts +57 -0
- package/lib/core/interfaces/ICoreSignals.d.ts.map +1 -0
- package/lib/core/interfaces/IStorageCapability.d.ts +20 -0
- package/lib/core/interfaces/IStorageCapability.d.ts.map +1 -0
- package/lib/core/interfaces/IStorageCapability.test.d.ts +2 -0
- package/lib/core/interfaces/IStorageCapability.test.d.ts.map +1 -0
- package/lib/core/interfaces/index.d.ts +7 -0
- package/lib/core/interfaces/index.d.ts.map +1 -0
- package/lib/core/registries.d.ts +8 -0
- package/lib/core/registries.d.ts.map +1 -0
- package/lib/core/types.d.ts +12 -0
- package/lib/core/types.d.ts.map +1 -0
- package/lib/display/AnimatedSprite.d.ts +40 -0
- package/lib/display/AnimatedSprite.d.ts.map +1 -0
- package/lib/display/Camera.d.ts +102 -0
- package/lib/display/Camera.d.ts.map +1 -0
- package/lib/display/Container.d.ts +115 -0
- package/lib/display/Container.d.ts.map +1 -0
- package/lib/display/Entity.d.ts +46 -0
- package/lib/display/Entity.d.ts.map +1 -0
- package/lib/display/ParticleContainer.d.ts +58 -0
- package/lib/display/ParticleContainer.d.ts.map +1 -0
- package/lib/display/Scene.d.ts +250 -0
- package/lib/display/Scene.d.ts.map +1 -0
- package/lib/display/SceneTransition.d.ts +41 -0
- package/lib/display/SceneTransition.d.ts.map +1 -0
- package/lib/display/SpineAnimation.d.ts +76 -0
- package/lib/display/SpineAnimation.d.ts.map +1 -0
- package/lib/display/Svg.d.ts +5 -0
- package/lib/display/Svg.d.ts.map +1 -0
- package/lib/display/index.d.ts +10 -0
- package/lib/display/index.d.ts.map +1 -0
- package/lib/env.d.ts +6 -0
- package/lib/hello.d.ts +2 -0
- package/lib/hello.d.ts.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/mixins/animated.d.ts +53 -0
- package/lib/mixins/animated.d.ts.map +1 -0
- package/lib/mixins/factory/Factory.d.ts +8 -0
- package/lib/mixins/factory/Factory.d.ts.map +1 -0
- package/lib/mixins/factory/const.d.ts +67 -0
- package/lib/mixins/factory/const.d.ts.map +1 -0
- package/lib/mixins/factory/index.d.ts +8 -0
- package/lib/mixins/factory/index.d.ts.map +1 -0
- package/lib/mixins/factory/methods.d.ts +3 -0
- package/lib/mixins/factory/methods.d.ts.map +1 -0
- package/lib/mixins/factory/props.d.ts +160 -0
- package/lib/mixins/factory/props.d.ts.map +1 -0
- package/lib/mixins/factory/registry.d.ts +27 -0
- package/lib/mixins/factory/registry.d.ts.map +1 -0
- package/lib/mixins/factory/registry.test.d.ts +2 -0
- package/lib/mixins/factory/registry.test.d.ts.map +1 -0
- package/lib/mixins/factory/schema.d.ts +71 -0
- package/lib/mixins/factory/schema.d.ts.map +1 -0
- package/lib/mixins/factory/ui-registry.d.ts +20 -0
- package/lib/mixins/factory/ui-registry.d.ts.map +1 -0
- package/lib/mixins/factory/utils.d.ts +11 -0
- package/lib/mixins/factory/utils.d.ts.map +1 -0
- package/lib/mixins/focus.d.ts +15 -0
- package/lib/mixins/focus.d.ts.map +1 -0
- package/lib/mixins/index.d.ts +6 -0
- package/lib/mixins/index.d.ts.map +1 -0
- package/lib/mixins/interaction.d.ts +20 -0
- package/lib/mixins/interaction.d.ts.map +1 -0
- package/lib/mixins/signals.d.ts +15 -0
- package/lib/mixins/signals.d.ts.map +1 -0
- package/lib/plugins/AssetsPlugin.d.ts +79 -0
- package/lib/plugins/AssetsPlugin.d.ts.map +1 -0
- package/lib/plugins/DataAdapter.d.ts +95 -0
- package/lib/plugins/DataAdapter.d.ts.map +1 -0
- package/lib/plugins/DevToolsPlugin.d.ts +97 -0
- package/lib/plugins/DevToolsPlugin.d.ts.map +1 -0
- package/lib/plugins/FullScreenPlugin.d.ts +240 -0
- package/lib/plugins/FullScreenPlugin.d.ts.map +1 -0
- package/lib/plugins/GSAPPlugin.d.ts +634 -0
- package/lib/plugins/GSAPPlugin.d.ts.map +1 -0
- package/lib/plugins/KeyboardPlugin.d.ts +53 -0
- package/lib/plugins/KeyboardPlugin.d.ts.map +1 -0
- package/lib/plugins/LayoutPlugin.d.ts +100 -0
- package/lib/plugins/LayoutPlugin.d.ts.map +1 -0
- package/lib/plugins/LookupPlugin.d.ts +223 -0
- package/lib/plugins/LookupPlugin.d.ts.map +1 -0
- package/lib/plugins/Plugin.d.ts +132 -0
- package/lib/plugins/Plugin.d.ts.map +1 -0
- package/lib/plugins/Plugin.test.d.ts +2 -0
- package/lib/plugins/Plugin.test.d.ts.map +1 -0
- package/lib/plugins/PopupManagerPlugin.d.ts +108 -0
- package/lib/plugins/PopupManagerPlugin.d.ts.map +1 -0
- package/lib/plugins/ResizerPlugin.d.ts +62 -0
- package/lib/plugins/ResizerPlugin.d.ts.map +1 -0
- package/lib/plugins/SceneManagerPlugin.d.ts +122 -0
- package/lib/plugins/SceneManagerPlugin.d.ts.map +1 -0
- package/lib/plugins/StatsPlugin.d.ts +8 -0
- package/lib/plugins/StatsPlugin.d.ts.map +1 -0
- package/lib/plugins/TimerPlugin.d.ts +401 -0
- package/lib/plugins/TimerPlugin.d.ts.map +1 -0
- package/lib/plugins/WebEventsPlugin.d.ts +60 -0
- package/lib/plugins/WebEventsPlugin.d.ts.map +1 -0
- package/lib/plugins/actions/ActionsPlugin.d.ts +39 -0
- package/lib/plugins/actions/ActionsPlugin.d.ts.map +1 -0
- package/lib/plugins/actions/constants.d.ts +52 -0
- package/lib/plugins/actions/constants.d.ts.map +1 -0
- package/lib/plugins/actions/index.d.ts +5 -0
- package/lib/plugins/actions/index.d.ts.map +1 -0
- package/lib/plugins/actions/methods.d.ts +11 -0
- package/lib/plugins/actions/methods.d.ts.map +1 -0
- package/lib/plugins/actions/types.d.ts +25 -0
- package/lib/plugins/actions/types.d.ts.map +1 -0
- package/lib/plugins/audio/AudioChannel.d.ts +46 -0
- package/lib/plugins/audio/AudioChannel.d.ts.map +1 -0
- package/lib/plugins/audio/AudioChannel.test.d.ts +2 -0
- package/lib/plugins/audio/AudioChannel.test.d.ts.map +1 -0
- package/lib/plugins/audio/AudioInstance.d.ts +79 -0
- package/lib/plugins/audio/AudioInstance.d.ts.map +1 -0
- package/lib/plugins/audio/AudioManagerPlugin.d.ts +323 -0
- package/lib/plugins/audio/AudioManagerPlugin.d.ts.map +1 -0
- package/lib/plugins/audio/VoiceOverPlugin.d.ts +69 -0
- package/lib/plugins/audio/VoiceOverPlugin.d.ts.map +1 -0
- package/lib/plugins/audio/index.d.ts +4 -0
- package/lib/plugins/audio/index.d.ts.map +1 -0
- package/lib/plugins/breakpoints/BreakpointPlugin.d.ts +109 -0
- package/lib/plugins/breakpoints/BreakpointPlugin.d.ts.map +1 -0
- package/lib/plugins/breakpoints/BreakpointPlugin.test.d.ts +2 -0
- package/lib/plugins/breakpoints/BreakpointPlugin.test.d.ts.map +1 -0
- package/lib/plugins/breakpoints/evaluate.d.ts +53 -0
- package/lib/plugins/breakpoints/evaluate.d.ts.map +1 -0
- package/lib/plugins/breakpoints/evaluate.test.d.ts +2 -0
- package/lib/plugins/breakpoints/evaluate.test.d.ts.map +1 -0
- package/lib/plugins/breakpoints/index.d.ts +4 -0
- package/lib/plugins/breakpoints/index.d.ts.map +1 -0
- package/lib/plugins/breakpoints/methods.d.ts +23 -0
- package/lib/plugins/breakpoints/methods.d.ts.map +1 -0
- package/lib/plugins/breakpoints/types.d.ts +70 -0
- package/lib/plugins/breakpoints/types.d.ts.map +1 -0
- package/lib/plugins/captions/CaptionsPlugin.d.ts +150 -0
- package/lib/plugins/captions/CaptionsPlugin.d.ts.map +1 -0
- package/lib/plugins/captions/CaptionsRenderer.d.ts +37 -0
- package/lib/plugins/captions/CaptionsRenderer.d.ts.map +1 -0
- package/lib/plugins/captions/index.d.ts +3 -0
- package/lib/plugins/captions/index.d.ts.map +1 -0
- package/lib/plugins/defaults.d.ts +4 -0
- package/lib/plugins/defaults.d.ts.map +1 -0
- package/lib/plugins/focus/FocusManagerPlugin.d.ts +148 -0
- package/lib/plugins/focus/FocusManagerPlugin.d.ts.map +1 -0
- package/lib/plugins/focus/FocusOutliner.d.ts +32 -0
- package/lib/plugins/focus/FocusOutliner.d.ts.map +1 -0
- package/lib/plugins/focus/index.d.ts +3 -0
- package/lib/plugins/focus/index.d.ts.map +1 -0
- package/lib/plugins/i18nPlugin.d.ts +128 -0
- package/lib/plugins/i18nPlugin.d.ts.map +1 -0
- package/lib/plugins/index.d.ts +18 -0
- package/lib/plugins/index.d.ts.map +1 -0
- package/lib/plugins/input/AbstractControls.d.ts +8 -0
- package/lib/plugins/input/AbstractControls.d.ts.map +1 -0
- package/lib/plugins/input/Controls.d.ts +16 -0
- package/lib/plugins/input/Controls.d.ts.map +1 -0
- package/lib/plugins/input/InputPlugin.d.ts +52 -0
- package/lib/plugins/input/InputPlugin.d.ts.map +1 -0
- package/lib/plugins/input/constants.d.ts +8 -0
- package/lib/plugins/input/constants.d.ts.map +1 -0
- package/lib/plugins/input/index.d.ts +10 -0
- package/lib/plugins/input/index.d.ts.map +1 -0
- package/lib/plugins/input/interfaces.d.ts +30 -0
- package/lib/plugins/input/interfaces.d.ts.map +1 -0
- package/lib/plugins/input/keyboard/KeyboardContols.d.ts +28 -0
- package/lib/plugins/input/keyboard/KeyboardContols.d.ts.map +1 -0
- package/lib/plugins/input/keyboard/index.d.ts +3 -0
- package/lib/plugins/input/keyboard/index.d.ts.map +1 -0
- package/lib/plugins/input/keyboard/interfaces.d.ts +18 -0
- package/lib/plugins/input/keyboard/interfaces.d.ts.map +1 -0
- package/lib/plugins/input/methods.d.ts +4 -0
- package/lib/plugins/input/methods.d.ts.map +1 -0
- package/lib/plugins/input/touch/TouchControls.d.ts +35 -0
- package/lib/plugins/input/touch/TouchControls.d.ts.map +1 -0
- package/lib/plugins/input/touch/constants.d.ts +14 -0
- package/lib/plugins/input/touch/constants.d.ts.map +1 -0
- package/lib/plugins/input/touch/index.d.ts +4 -0
- package/lib/plugins/input/touch/index.d.ts.map +1 -0
- package/lib/plugins/input/touch/interfaces.d.ts +15 -0
- package/lib/plugins/input/touch/interfaces.d.ts.map +1 -0
- package/lib/plugins/input/types.d.ts +32 -0
- package/lib/plugins/input/types.d.ts.map +1 -0
- package/lib/plugins/input/utils.d.ts +23 -0
- package/lib/plugins/input/utils.d.ts.map +1 -0
- package/lib/plugins/spine/SpinePlugin.d.ts +6 -0
- package/lib/plugins/spine/SpinePlugin.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/BatchableSpineSlot.d.ts +31 -0
- package/lib/plugins/spine/pixi-spine/BatchableSpineSlot.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/Spine.d.ts +211 -0
- package/lib/plugins/spine/pixi-spine/Spine.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/SpineDebugRenderer.d.ts +81 -0
- package/lib/plugins/spine/pixi-spine/SpineDebugRenderer.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/SpinePipe.d.ts +21 -0
- package/lib/plugins/spine/pixi-spine/SpinePipe.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/SpineTexture.d.ts +16 -0
- package/lib/plugins/spine/pixi-spine/SpineTexture.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/assets/atlasLoader.d.ts +10 -0
- package/lib/plugins/spine/pixi-spine/assets/atlasLoader.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/assets/skeletonLoader.d.ts +6 -0
- package/lib/plugins/spine/pixi-spine/assets/skeletonLoader.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.d.ts +5 -0
- package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatcher.d.ts +22 -0
- package/lib/plugins/spine/pixi-spine/darktint/DarkTintBatcher.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/darktint/DarkTintShader.d.ts +5 -0
- package/lib/plugins/spine/pixi-spine/darktint/DarkTintShader.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/darktint/darkTintBit.d.ts +51 -0
- package/lib/plugins/spine/pixi-spine/darktint/darkTintBit.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/index.d.ts +9 -0
- package/lib/plugins/spine/pixi-spine/index.d.ts.map +1 -0
- package/lib/plugins/spine/pixi-spine/require-shim.d.ts +34 -0
- package/lib/plugins/spine/pixi-spine/require-shim.d.ts.map +1 -0
- package/lib/registries-CYCaYKZI.js +6885 -0
- package/lib/registries-CYCaYKZI.js.map +1 -0
- package/lib/signals/Signal.d.ts +16 -0
- package/lib/signals/Signal.d.ts.map +1 -0
- package/lib/signals/Signal.test.d.ts +2 -0
- package/lib/signals/Signal.test.d.ts.map +1 -0
- package/lib/signals/index.d.ts +3 -0
- package/lib/signals/index.d.ts.map +1 -0
- package/lib/store/Store.d.ts +56 -0
- package/lib/store/Store.d.ts.map +1 -0
- package/lib/store/Store.test.d.ts +2 -0
- package/lib/store/Store.test.d.ts.map +1 -0
- package/lib/store/index.d.ts +2 -0
- package/lib/store/index.d.ts.map +1 -0
- package/lib/types/framework.d.ts +46 -0
- package/lib/types/gsap.d.ts +23 -0
- package/lib/ui/Button.d.ts +162 -0
- package/lib/ui/Button.d.ts.map +1 -0
- package/lib/ui/FlexContainer.d.ts +109 -0
- package/lib/ui/FlexContainer.d.ts.map +1 -0
- package/lib/ui/Input.d.ts +384 -0
- package/lib/ui/Input.d.ts.map +1 -0
- package/lib/ui/Joystick.d.ts +61 -0
- package/lib/ui/Joystick.d.ts.map +1 -0
- package/lib/ui/Popup.d.ts +109 -0
- package/lib/ui/Popup.d.ts.map +1 -0
- package/lib/ui/Toast.d.ts +131 -0
- package/lib/ui/Toast.d.ts.map +1 -0
- package/lib/ui/Toaster.d.ts +188 -0
- package/lib/ui/Toaster.d.ts.map +1 -0
- package/lib/ui/UICanvas.d.ts +155 -0
- package/lib/ui/UICanvas.d.ts.map +1 -0
- package/lib/ui/index.d.ts +9 -0
- package/lib/ui/index.d.ts.map +1 -0
- package/lib/utils/array.d.ts +11 -0
- package/lib/utils/array.d.ts.map +1 -0
- package/lib/utils/bind.d.ts +21 -0
- package/lib/utils/bind.d.ts.map +1 -0
- package/lib/utils/canvas.d.ts +2 -0
- package/lib/utils/canvas.d.ts.map +1 -0
- package/lib/utils/color.d.ts +66 -0
- package/lib/utils/color.d.ts.map +1 -0
- package/lib/utils/console/Logger.d.ts +15 -0
- package/lib/utils/console/Logger.d.ts.map +1 -0
- package/lib/utils/console/index.d.ts +2 -0
- package/lib/utils/console/index.d.ts.map +1 -0
- package/lib/utils/debug.d.ts +34 -0
- package/lib/utils/debug.d.ts.map +1 -0
- package/lib/utils/define.d.ts +100 -0
- package/lib/utils/define.d.ts.map +1 -0
- package/lib/utils/env.d.ts +4 -0
- package/lib/utils/env.d.ts.map +1 -0
- package/lib/utils/events.d.ts +12 -0
- package/lib/utils/events.d.ts.map +1 -0
- package/lib/utils/framework.d.ts +12 -0
- package/lib/utils/framework.d.ts.map +1 -0
- package/lib/utils/index.d.ts +28 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/map.d.ts +31 -0
- package/lib/utils/map.d.ts.map +1 -0
- package/lib/utils/math.d.ts +15 -0
- package/lib/utils/math.d.ts.map +1 -0
- package/lib/utils/misc.d.ts +13 -0
- package/lib/utils/misc.d.ts.map +1 -0
- package/lib/utils/number.d.ts +2 -0
- package/lib/utils/number.d.ts.map +1 -0
- package/lib/utils/object.d.ts +21 -0
- package/lib/utils/object.d.ts.map +1 -0
- package/lib/utils/padding.d.ts +4 -0
- package/lib/utils/padding.d.ts.map +1 -0
- package/lib/utils/pixi.d.ts +42 -0
- package/lib/utils/pixi.d.ts.map +1 -0
- package/lib/utils/platform.d.ts +20 -0
- package/lib/utils/platform.d.ts.map +1 -0
- package/lib/utils/point.d.ts +66 -0
- package/lib/utils/point.d.ts.map +1 -0
- package/lib/utils/promise/Queue.d.ts +60 -0
- package/lib/utils/promise/Queue.d.ts.map +1 -0
- package/lib/utils/promise/functions.d.ts +14 -0
- package/lib/utils/promise/functions.d.ts.map +1 -0
- package/lib/utils/promise/index.d.ts +3 -0
- package/lib/utils/promise/index.d.ts.map +1 -0
- package/lib/utils/random.d.ts +42 -0
- package/lib/utils/random.d.ts.map +1 -0
- package/lib/utils/rect.d.ts +26 -0
- package/lib/utils/rect.d.ts.map +1 -0
- package/lib/utils/set.d.ts +15 -0
- package/lib/utils/set.d.ts.map +1 -0
- package/lib/utils/string.d.ts +3 -0
- package/lib/utils/string.d.ts.map +1 -0
- package/lib/utils/text.d.ts +3 -0
- package/lib/utils/text.d.ts.map +1 -0
- package/lib/utils/typefilters.d.ts +4 -0
- package/lib/utils/typefilters.d.ts.map +1 -0
- package/lib/utils/types.d.ts +209 -0
- package/lib/utils/types.d.ts.map +1 -0
- package/lib/utils/vite.d.ts +25 -0
- package/lib/utils/vite.d.ts.map +1 -0
- package/lib/utils/web.d.ts +3 -0
- package/lib/utils/web.d.ts.map +1 -0
- package/lib/version.d.ts +3 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/webgl-check.d.ts +2 -0
- package/lib/webgl-check.d.ts.map +1 -0
- package/package.json +138 -0
- package/src/core/Application.ts +1091 -0
- package/src/core/config.ts +168 -0
- package/src/core/create.ts +186 -0
- package/src/core/globals.ts +299 -0
- package/src/core/index.ts +6 -0
- package/src/core/interfaces/IApplication.ts +628 -0
- package/src/core/interfaces/IApplicationOptions.ts +81 -0
- package/src/core/interfaces/ICoreFunctions.ts +86 -0
- package/src/core/interfaces/ICoreSignals.ts +77 -0
- package/src/core/interfaces/IStorageCapability.test.ts +27 -0
- package/src/core/interfaces/IStorageCapability.ts +26 -0
- package/src/core/interfaces/index.ts +6 -0
- package/src/core/registries.ts +7 -0
- package/src/core/types.ts +13 -0
- package/src/display/AnimatedSprite.ts +227 -0
- package/src/display/Camera.ts +371 -0
- package/src/display/Container.ts +240 -0
- package/src/display/Entity.ts +50 -0
- package/src/display/ParticleContainer.ts +107 -0
- package/src/display/Scene.ts +305 -0
- package/src/display/SceneTransition.ts +108 -0
- package/src/display/SpineAnimation.ts +170 -0
- package/src/display/Svg.ts +9 -0
- package/src/display/index.ts +11 -0
- package/src/env.d.ts +6 -0
- package/src/hello.ts +20 -0
- package/src/index.ts +17 -0
- package/src/mixins/animated.ts +340 -0
- package/src/mixins/factory/Factory.ts +24 -0
- package/src/mixins/factory/const.ts +363 -0
- package/src/mixins/factory/index.ts +7 -0
- package/src/mixins/factory/methods.ts +21 -0
- package/src/mixins/factory/props.ts +207 -0
- package/src/mixins/factory/registry.test.ts +83 -0
- package/src/mixins/factory/registry.ts +61 -0
- package/src/mixins/factory/schema.ts +153 -0
- package/src/mixins/factory/ui-registry.ts +54 -0
- package/src/mixins/factory/utils.ts +130 -0
- package/src/mixins/focus.ts +124 -0
- package/src/mixins/index.ts +5 -0
- package/src/mixins/interaction.ts +74 -0
- package/src/mixins/signals.ts +49 -0
- package/src/plugins/AssetsPlugin.ts +407 -0
- package/src/plugins/DataAdapter.ts +259 -0
- package/src/plugins/DevToolsPlugin.ts +103 -0
- package/src/plugins/FullScreenPlugin.ts +359 -0
- package/src/plugins/GSAPPlugin.ts +811 -0
- package/src/plugins/KeyboardPlugin.ts +160 -0
- package/src/plugins/LayoutPlugin.ts +127 -0
- package/src/plugins/LookupPlugin.ts +308 -0
- package/src/plugins/Plugin.test.ts +73 -0
- package/src/plugins/Plugin.ts +200 -0
- package/src/plugins/PopupManagerPlugin.ts +263 -0
- package/src/plugins/ResizerPlugin.ts +220 -0
- package/src/plugins/SceneManagerPlugin.ts +669 -0
- package/src/plugins/StatsPlugin.ts +24 -0
- package/src/plugins/TimerPlugin.ts +841 -0
- package/src/plugins/WebEventsPlugin.ts +132 -0
- package/src/plugins/actions/ActionsPlugin.ts +113 -0
- package/src/plugins/actions/constants.ts +45 -0
- package/src/plugins/actions/index.ts +4 -0
- package/src/plugins/actions/methods.ts +28 -0
- package/src/plugins/actions/types.ts +47 -0
- package/src/plugins/audio/AudioChannel.test.ts +101 -0
- package/src/plugins/audio/AudioChannel.ts +164 -0
- package/src/plugins/audio/AudioInstance.ts +228 -0
- package/src/plugins/audio/AudioManagerPlugin.ts +903 -0
- package/src/plugins/audio/VoiceOverPlugin.ts +354 -0
- package/src/plugins/audio/index.ts +3 -0
- package/src/plugins/breakpoints/BreakpointPlugin.test.ts +228 -0
- package/src/plugins/breakpoints/BreakpointPlugin.ts +293 -0
- package/src/plugins/breakpoints/evaluate.test.ts +239 -0
- package/src/plugins/breakpoints/evaluate.ts +201 -0
- package/src/plugins/breakpoints/index.ts +3 -0
- package/src/plugins/breakpoints/methods.ts +22 -0
- package/src/plugins/breakpoints/types.ts +86 -0
- package/src/plugins/captions/CaptionsPlugin.ts +468 -0
- package/src/plugins/captions/CaptionsRenderer.ts +184 -0
- package/src/plugins/captions/font/Sans.fnt +116 -0
- package/src/plugins/captions/font/Sans.png +0 -0
- package/src/plugins/captions/index.ts +2 -0
- package/src/plugins/defaults.ts +95 -0
- package/src/plugins/focus/FocusManagerPlugin.ts +773 -0
- package/src/plugins/focus/FocusOutliner.ts +111 -0
- package/src/plugins/focus/index.ts +2 -0
- package/src/plugins/i18nPlugin.ts +284 -0
- package/src/plugins/index.ts +17 -0
- package/src/plugins/input/AbstractControls.ts +15 -0
- package/src/plugins/input/Controls.ts +55 -0
- package/src/plugins/input/InputPlugin.ts +168 -0
- package/src/plugins/input/constants.ts +12 -0
- package/src/plugins/input/index.ts +9 -0
- package/src/plugins/input/interfaces.ts +37 -0
- package/src/plugins/input/keyboard/KeyboardContols.ts +182 -0
- package/src/plugins/input/keyboard/index.ts +2 -0
- package/src/plugins/input/keyboard/interfaces.ts +21 -0
- package/src/plugins/input/methods.ts +9 -0
- package/src/plugins/input/touch/TouchControls.ts +237 -0
- package/src/plugins/input/touch/constants.ts +34 -0
- package/src/plugins/input/touch/index.ts +3 -0
- package/src/plugins/input/touch/interfaces.ts +15 -0
- package/src/plugins/input/types.ts +41 -0
- package/src/plugins/input/utils.ts +10 -0
- package/src/plugins/spine/SpinePlugin.ts +14 -0
- package/src/plugins/spine/pixi-spine/BatchableSpineSlot.ts +138 -0
- package/src/plugins/spine/pixi-spine/Spine.ts +897 -0
- package/src/plugins/spine/pixi-spine/SpineDebugRenderer.ts +615 -0
- package/src/plugins/spine/pixi-spine/SpinePipe.ts +197 -0
- package/src/plugins/spine/pixi-spine/SpineTexture.ts +143 -0
- package/src/plugins/spine/pixi-spine/assets/atlasLoader.ts +156 -0
- package/src/plugins/spine/pixi-spine/assets/skeletonLoader.ts +80 -0
- package/src/plugins/spine/pixi-spine/darktint/DarkTintBatchGeometry.ts +92 -0
- package/src/plugins/spine/pixi-spine/darktint/DarkTintBatcher.ts +186 -0
- package/src/plugins/spine/pixi-spine/darktint/DarkTintShader.ts +74 -0
- package/src/plugins/spine/pixi-spine/darktint/darkTintBit.ts +77 -0
- package/src/plugins/spine/pixi-spine/index.ts +43 -0
- package/src/plugins/spine/pixi-spine/require-shim.ts +43 -0
- package/src/signals/Signal.test.ts +54 -0
- package/src/signals/Signal.ts +68 -0
- package/src/signals/index.ts +10 -0
- package/src/store/Store.test.ts +146 -0
- package/src/store/Store.ts +192 -0
- package/src/store/index.ts +1 -0
- package/src/types/framework.d.ts +47 -0
- package/src/types/gsap.d.ts +26 -0
- package/src/ui/Button.ts +454 -0
- package/src/ui/FlexContainer.ts +526 -0
- package/src/ui/Input.ts +1274 -0
- package/src/ui/Joystick.ts +288 -0
- package/src/ui/Popup.ts +242 -0
- package/src/ui/Toast.ts +399 -0
- package/src/ui/Toaster.ts +409 -0
- package/src/ui/UICanvas.ts +812 -0
- package/src/ui/index.ts +8 -0
- package/src/utils/array.ts +24 -0
- package/src/utils/bind.ts +79 -0
- package/src/utils/canvas.ts +26 -0
- package/src/utils/color.ts +126 -0
- package/src/utils/console/Logger.ts +86 -0
- package/src/utils/console/index.ts +1 -0
- package/src/utils/debug.ts +69 -0
- package/src/utils/define.ts +120 -0
- package/src/utils/env.ts +3 -0
- package/src/utils/events.ts +10 -0
- package/src/utils/framework.ts +45 -0
- package/src/utils/index.ts +27 -0
- package/src/utils/map.ts +59 -0
- package/src/utils/math.ts +19 -0
- package/src/utils/misc.ts +45 -0
- package/src/utils/number.ts +3 -0
- package/src/utils/object.ts +43 -0
- package/src/utils/padding.ts +43 -0
- package/src/utils/pixi.ts +116 -0
- package/src/utils/platform.ts +33 -0
- package/src/utils/point.ts +123 -0
- package/src/utils/promise/Queue.ts +125 -0
- package/src/utils/promise/functions.ts +16 -0
- package/src/utils/promise/index.ts +2 -0
- package/src/utils/random.ts +69 -0
- package/src/utils/rect.ts +50 -0
- package/src/utils/set.ts +32 -0
- package/src/utils/string.ts +9 -0
- package/src/utils/text.ts +30 -0
- package/src/utils/typefilters.ts +29 -0
- package/src/utils/types.ts +426 -0
- package/src/utils/vite.ts +41 -0
- package/src/utils/web.ts +7 -0
- package/src/version.ts +3 -0
- package/src/webgl-check.ts +12 -0
- package/templates/app/default/.eslintrc.json +21 -0
- package/templates/app/default/.meta.json +4 -0
- package/templates/app/default/.nvmrc +1 -0
- package/templates/app/default/.prettierrc.json +7 -0
- package/templates/app/default/README.md +8 -0
- package/templates/app/default/assets/audio{m}/music/Cheerful Annoyance.ogg +0 -0
- package/templates/app/default/assets/audio{m}/music/Drumming Sticks.ogg +0 -0
- package/templates/app/default/assets/audio{m}/music/Game Over.ogg +0 -0
- package/templates/app/default/assets/audio{m}/music/Mishief Stroll.ogg +0 -0
- package/templates/app/default/assets/audio{m}/music/Night at the Beach.ogg +0 -0
- package/templates/app/default/assets/audio{m}/sfx/click.ogg +0 -0
- package/templates/app/default/assets/audio{m}/sfx/hover.ogg +0 -0
- package/templates/app/default/assets/required{m}/caper.png +0 -0
- package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Bold{family=Space Grotesk}{wf}.ttf +0 -0
- package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Medium{family=Space Grotesk}{wf}.ttf +0 -0
- package/templates/app/default/assets/required{m}/fonts{fix}/SpaceGrotesk-Regular{family=Space Grotesk}{wf}.ttf +0 -0
- package/templates/app/default/assets/required{m}/fonts{fix}/Syncopate-Bold{family=Syncopate}{wf}.ttf +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/blue.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/green.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/grey.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/orange.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/purple.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/red.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn/yellow.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn_a/down.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn_a/over.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn_a/up.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn_b/down.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn_b/over.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/btn_b/up.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/joystick/base.png +0 -0
- package/templates/app/default/assets/required{m}/ui{tps}/joystick/handle.png +0 -0
- package/templates/app/default/assets/required{m}/wordmark.svg +1 -0
- package/templates/app/default/assets/spine{m}/spineboy-pro.png +0 -0
- package/templates/app/default/assets/spine{m}/spineboy-pro.skel +0 -0
- package/templates/app/default/assets/spine{m}/spineboy-pro{fix}.atlas +94 -0
- package/templates/app/default/caper.config.ts +60 -0
- package/templates/app/default/index.html +23 -0
- package/templates/app/default/package.template.json +17 -0
- package/templates/app/default/public/favicon.ico +0 -0
- package/templates/app/default/src/__APPLICATION_NAME__.ts +3 -0
- package/templates/app/default/src/main.ts +9 -0
- package/templates/app/default/src/scenes/Base.ts +39 -0
- package/templates/app/default/src/scenes/Game.ts +34 -0
- package/templates/app/default/src/scenes/Splash.ts +70 -0
- package/templates/app/default/src/scenes/Start.ts +90 -0
- package/templates/app/default/src/utils/Constants.ts +3 -0
- package/templates/app/default/tsconfig.json +1 -0
- package/templates/plugin/package.template.json +33 -0
- package/templates/plugin/src/Plugin.template.ts +24 -0
- package/templates/plugin/src/index.template.ts +3 -0
- package/templates/plugin/tsconfig.template.json +43 -0
- package/templates/plugin/vite-env.template.d.ts +16 -0
- 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 @@
|
|
|
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"}
|