@codexo/exojs 0.13.0 → 0.15.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/CHANGELOG.md +265 -6
- package/README.md +82 -67
- package/dist/esm/animation/Tween.d.ts.map +1 -1
- package/dist/esm/animation/Tween.js +1 -2
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +50 -7
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +68 -10
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/TweenSequencer.d.ts +139 -0
- package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
- package/dist/esm/animation/TweenSequencer.js +305 -0
- package/dist/esm/animation/TweenSequencer.js.map +1 -0
- package/dist/esm/animation/index.d.ts +7 -4
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +12 -12
- package/dist/esm/audio/AudioBus.js +29 -29
- package/dist/esm/audio/AudioEffect.d.ts +18 -0
- package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
- package/dist/esm/audio/AudioEffect.js +16 -0
- package/dist/esm/audio/AudioEffect.js.map +1 -0
- package/dist/esm/audio/AudioGenerator.d.ts +91 -0
- package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
- package/dist/esm/audio/AudioGenerator.js +165 -0
- package/dist/esm/audio/AudioGenerator.js.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
- package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
- package/dist/esm/audio/AudioInput.d.ts +39 -0
- package/dist/esm/audio/AudioInput.d.ts.map +1 -0
- package/dist/esm/audio/AudioInput.js +53 -0
- package/dist/esm/audio/AudioInput.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +72 -34
- package/dist/esm/audio/AudioManager.d.ts.map +1 -1
- package/dist/esm/audio/AudioManager.js +97 -51
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/AudioStream.d.ts +49 -0
- package/dist/esm/audio/AudioStream.d.ts.map +1 -0
- package/dist/esm/audio/AudioStream.js +109 -0
- package/dist/esm/audio/AudioStream.js.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.js +137 -0
- package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
- package/dist/esm/audio/BaseVoice.d.ts +111 -0
- package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
- package/dist/esm/audio/BaseVoice.js +298 -0
- package/dist/esm/audio/BaseVoice.js.map +1 -0
- package/dist/esm/audio/BiquadEffect.d.ts +53 -0
- package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
- package/dist/esm/audio/BiquadEffect.js +110 -0
- package/dist/esm/audio/BiquadEffect.js.map +1 -0
- package/dist/esm/audio/InputVoice.d.ts +41 -0
- package/dist/esm/audio/InputVoice.d.ts.map +1 -0
- package/dist/esm/audio/InputVoice.js +85 -0
- package/dist/esm/audio/InputVoice.js.map +1 -0
- package/dist/esm/audio/NoopVoice.d.ts +29 -0
- package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
- package/dist/esm/audio/NoopVoice.js +52 -0
- package/dist/esm/audio/NoopVoice.js.map +1 -0
- package/dist/esm/audio/Playable.d.ts +135 -0
- package/dist/esm/audio/Playable.d.ts.map +1 -0
- package/dist/esm/audio/Sound.d.ts +64 -69
- package/dist/esm/audio/Sound.d.ts.map +1 -1
- package/dist/esm/audio/Sound.js +176 -377
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/SoundVoice.d.ts +63 -0
- package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
- package/dist/esm/audio/SoundVoice.js +168 -0
- package/dist/esm/audio/SoundVoice.js.map +1 -0
- package/dist/esm/audio/WorkletEffect.d.ts +68 -0
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
- package/dist/esm/audio/WorkletEffect.js +177 -0
- package/dist/esm/audio/WorkletEffect.js.map +1 -0
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +22 -13
- package/dist/esm/audio/crossFade.d.ts.map +1 -1
- package/dist/esm/audio/crossFade.js +21 -13
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/HighpassFilter.js +2 -2
- package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/LowpassFilter.js +2 -2
- package/dist/esm/audio/filters/index.d.ts +0 -10
- package/dist/esm/audio/filters/index.d.ts.map +1 -1
- package/dist/esm/audio/index.d.ts +13 -15
- package/dist/esm/audio/index.d.ts.map +1 -1
- package/dist/esm/core/Application.d.ts +169 -14
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +306 -31
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Codec.d.ts +41 -0
- package/dist/esm/core/Codec.d.ts.map +1 -0
- package/dist/esm/core/Codec.js +79 -0
- package/dist/esm/core/Codec.js.map +1 -0
- package/dist/esm/core/Color.d.ts +6 -4
- package/dist/esm/core/Color.d.ts.map +1 -1
- package/dist/esm/core/Color.js +19 -15
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/DisposalScope.d.ts +50 -0
- package/dist/esm/core/DisposalScope.d.ts.map +1 -0
- package/dist/esm/core/DisposalScope.js +86 -0
- package/dist/esm/core/DisposalScope.js.map +1 -0
- package/dist/esm/core/FixedTimestep.d.ts +28 -0
- package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
- package/dist/esm/core/FixedTimestep.js +62 -0
- package/dist/esm/core/FixedTimestep.js.map +1 -0
- package/dist/esm/core/Perf.d.ts +10 -22
- package/dist/esm/core/Perf.d.ts.map +1 -1
- package/dist/esm/core/Perf.js +15 -8
- package/dist/esm/core/Perf.js.map +1 -1
- package/dist/esm/core/Registry.d.ts +64 -0
- package/dist/esm/core/Registry.d.ts.map +1 -0
- package/dist/esm/core/Registry.js +79 -0
- package/dist/esm/core/Registry.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +83 -21
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +127 -16
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +28 -59
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +86 -155
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +78 -7
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +162 -21
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +49 -0
- package/dist/esm/core/Stage.d.ts.map +1 -0
- package/dist/esm/core/System.d.ts +22 -0
- package/dist/esm/core/System.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.d.ts +40 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.js +114 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -0
- package/dist/esm/core/Time.d.ts +15 -0
- package/dist/esm/core/Time.d.ts.map +1 -1
- package/dist/esm/core/Time.js +25 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/dev.d.ts +9 -4
- package/dist/esm/core/dev.d.ts.map +1 -1
- package/dist/esm/core/dev.js +5 -0
- package/dist/esm/core/dev.js.map +1 -1
- package/dist/esm/core/index.d.ts +30 -15
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/letterbox.d.ts +25 -0
- package/dist/esm/core/letterbox.d.ts.map +1 -0
- package/dist/esm/core/letterbox.js +26 -0
- package/dist/esm/core/letterbox.js.map +1 -0
- package/dist/esm/core/logging.d.ts +34 -0
- package/dist/esm/core/logging.d.ts.map +1 -0
- package/dist/esm/core/logging.js +59 -0
- package/dist/esm/core/logging.js.map +1 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.d.ts +49 -0
- package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.js +61 -0
- package/dist/esm/core/serialization/Prefab.js.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
- package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts +20 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
- package/dist/esm/core/serialization/commonFields.js +155 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.js +101 -0
- package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
- package/dist/esm/core/serialization/index.d.ts +6 -0
- package/dist/esm/core/serialization/index.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.d.ts +65 -0
- package/dist/esm/core/serialization/read.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.js +48 -0
- package/dist/esm/core/serialization/read.js.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.js +320 -0
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
- package/dist/esm/core/serialization/serialize.d.ts +56 -0
- package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
- package/dist/esm/core/serialization/serialize.js +144 -0
- package/dist/esm/core/serialization/serialize.js.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.js +161 -0
- package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
- package/dist/esm/core/serialization/types.d.ts +49 -0
- package/dist/esm/core/serialization/types.d.ts.map +1 -0
- package/dist/esm/core/serialization/types.js +9 -0
- package/dist/esm/core/serialization/types.js.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.js +206 -0
- package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/types.d.ts.map +1 -1
- package/dist/esm/core/utils.d.ts +1 -16
- package/dist/esm/core/utils.d.ts.map +1 -1
- package/dist/esm/core/utils.js +2 -100
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.js +8 -9
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +9 -6
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/extensions/Extension.d.ts +39 -4
- package/dist/esm/extensions/Extension.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.d.ts +9 -1
- package/dist/esm/extensions/materialize.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.js +17 -2
- package/dist/esm/extensions/materialize.js.map +1 -1
- package/dist/esm/extensions/snapshot.d.ts +2 -1
- package/dist/esm/extensions/snapshot.d.ts.map +1 -1
- package/dist/esm/extensions/snapshot.js +8 -0
- package/dist/esm/extensions/snapshot.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +41 -61
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/FocusManager.d.ts +59 -0
- package/dist/esm/input/FocusManager.d.ts.map +1 -0
- package/dist/esm/input/FocusManager.js +175 -0
- package/dist/esm/input/FocusManager.js.map +1 -0
- package/dist/esm/input/Gamepad.d.ts +10 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +20 -4
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +2 -2
- package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
- package/dist/esm/input/GamepadDefinitions.js +6 -2
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -2
- package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
- package/dist/esm/input/GestureRecognizer.js +1 -3
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.js +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +7 -2
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +40 -21
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +67 -2
- package/dist/esm/input/InteractionManager.d.ts.map +1 -1
- package/dist/esm/input/InteractionManager.js +165 -41
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/KeyEvent.d.ts +25 -0
- package/dist/esm/input/KeyEvent.d.ts.map +1 -0
- package/dist/esm/input/KeyEvent.js +32 -0
- package/dist/esm/input/KeyEvent.js.map +1 -0
- package/dist/esm/input/Pointer.d.ts +21 -4
- package/dist/esm/input/Pointer.d.ts.map +1 -1
- package/dist/esm/input/Pointer.js +54 -15
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/index.d.ts +3 -1
- package/dist/esm/input/index.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.js +7 -2
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts.map +1 -1
- package/dist/esm/math/Circle.js +5 -1
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Line.d.ts +1 -1
- package/dist/esm/math/Line.d.ts.map +1 -1
- package/dist/esm/math/Line.js +1 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.d.ts.map +1 -1
- package/dist/esm/math/Matrix.js +6 -1
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +26 -8
- package/dist/esm/math/ObservableVector.d.ts.map +1 -1
- package/dist/esm/math/ObservableVector.js +24 -16
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +5 -0
- package/dist/esm/math/Polygon.d.ts.map +1 -1
- package/dist/esm/math/Polygon.js +27 -3
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Random.d.ts +9 -9
- package/dist/esm/math/Random.d.ts.map +1 -1
- package/dist/esm/math/Random.js +46 -46
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +11 -4
- package/dist/esm/math/Rectangle.d.ts.map +1 -1
- package/dist/esm/math/Rectangle.js +12 -6
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +1 -1
- package/dist/esm/math/Vector.d.ts.map +1 -1
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +42 -0
- package/dist/esm/math/collision-detection.d.ts.map +1 -1
- package/dist/esm/math/collision-detection.js +54 -4
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts.map +1 -1
- package/dist/esm/math/collision-primitives.js +4 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +26 -0
- package/dist/esm/math/geometry.d.ts.map +1 -1
- package/dist/esm/math/geometry.js +89 -2
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +7 -5
- package/dist/esm/math/index.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.d.ts +13 -0
- package/dist/esm/math/swept-collision.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.js +15 -1
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.d.ts.map +1 -1
- package/dist/esm/math/triangulate.js +9 -1
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +20 -0
- package/dist/esm/math/utils.d.ts.map +1 -1
- package/dist/esm/math/utils.js +18 -15
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/renderer-sdk.d.ts +2 -0
- package/dist/esm/renderer-sdk.d.ts.map +1 -1
- package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
- package/dist/esm/renderer-sdk.js.map +1 -0
- package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
- package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
- package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js +17 -12
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +3 -0
- package/dist/esm/rendering/Container.d.ts.map +1 -1
- package/dist/esm/rendering/Container.js +28 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/DrawContext.d.ts +48 -0
- package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
- package/dist/esm/rendering/Drawable.d.ts +24 -0
- package/dist/esm/rendering/Drawable.d.ts.map +1 -1
- package/dist/esm/rendering/Drawable.js +54 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
- package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
- package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
- package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
- package/dist/esm/rendering/PassContext.d.ts +42 -0
- package/dist/esm/rendering/PassContext.d.ts.map +1 -0
- package/dist/esm/rendering/PassContext.js +48 -0
- package/dist/esm/rendering/PassContext.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +29 -1
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderBatch.d.ts +55 -0
- package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
- package/dist/esm/rendering/RenderBatch.js +107 -0
- package/dist/esm/rendering/RenderBatch.js.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +50 -10
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +115 -22
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNodePass.js +2 -2
- package/dist/esm/rendering/RenderNodePass.js.map +1 -1
- package/dist/esm/rendering/RenderStats.d.ts +39 -0
- package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
- package/dist/esm/rendering/RenderStats.js +14 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
- package/dist/esm/rendering/RendererRegistry.js +20 -23
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +132 -17
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +228 -28
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +60 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +85 -15
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +81 -27
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +10 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.js +4 -2
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.js +7 -2
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.js +2 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
- package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
- package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
- package/dist/esm/rendering/material/MeshMaterial.js +17 -0
- package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
- package/dist/esm/rendering/material/ShaderSource.js +6 -0
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
- package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
- package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
- package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
- package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.js +40 -13
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
- package/dist/esm/rendering/pixelSnap.js +1 -0
- package/dist/esm/rendering/pixelSnap.js.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
- package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.js +23 -21
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +8 -2
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +12 -39
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +154 -50
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +23 -10
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +16 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +46 -9
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/{index.d.ts → public.d.ts} +9 -39
- package/dist/esm/rendering/public.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +60 -12
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +142 -30
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
- package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
- package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.js +30 -3
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.js +12 -18
- package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +6 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
- package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
- package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.js +5 -1
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +3 -2
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +17 -6
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +9 -12
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
- package/dist/esm/rendering/text/TextLayout.js +4 -18
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/texture/DataTexture.js +2 -2
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +6 -0
- package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
- package/dist/esm/rendering/texture/Texture.js +8 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
- package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
- package/dist/esm/rendering/texture/repeat.js +2 -2
- package/dist/esm/rendering/texture/repeat.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +37 -2
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +37 -2
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +7 -3
- package/dist/esm/rendering/video/Video.d.ts.map +1 -1
- package/dist/esm/rendering/video/Video.js +7 -3
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +55 -3
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +209 -61
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +60 -15
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +45 -2
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +247 -69
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -26
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +17 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +105 -25
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +8 -2
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +23 -10
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +10 -5
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +3 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +22 -9
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -3
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +50 -6
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
- package/dist/esm/resources/Asset.d.ts +1 -1
- package/dist/esm/resources/Asset.d.ts.map +1 -1
- package/dist/esm/resources/Asset.js +0 -2
- package/dist/esm/resources/Asset.js.map +1 -1
- package/dist/esm/resources/AssetContainer.d.ts +75 -0
- package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
- package/dist/esm/resources/AssetContainer.js +100 -0
- package/dist/esm/resources/AssetContainer.js.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
- package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
- package/dist/esm/resources/Assets.d.ts.map +1 -1
- package/dist/esm/resources/Assets.js +0 -1
- package/dist/esm/resources/Assets.js.map +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
- package/dist/esm/resources/FactoryRegistry.js +14 -23
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +8 -1
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
- package/dist/esm/resources/KeyValueStore.d.ts +31 -0
- package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/Loader.d.ts +55 -2
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +159 -14
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/MemoryStore.d.ts +17 -0
- package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
- package/dist/esm/resources/MemoryStore.js +30 -0
- package/dist/esm/resources/MemoryStore.js.map +1 -0
- package/dist/esm/resources/WebStorageStore.d.ts +40 -0
- package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
- package/dist/esm/resources/WebStorageStore.js +84 -0
- package/dist/esm/resources/WebStorageStore.js.map +1 -0
- package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
- package/dist/esm/resources/coreAssetBindings.js +16 -5
- package/dist/esm/resources/coreAssetBindings.js.map +1 -1
- package/dist/esm/resources/factories/BmFontFactory.js +4 -4
- package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
- package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +7 -7
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +2 -2
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
- package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +51 -34
- package/dist/esm/resources/index.d.ts.map +1 -1
- package/dist/esm/resources/utils.js +4 -4
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/esm/ui/Button.d.ts +54 -0
- package/dist/esm/ui/Button.d.ts.map +1 -0
- package/dist/esm/ui/Button.js +139 -0
- package/dist/esm/ui/Button.js.map +1 -0
- package/dist/esm/ui/Label.d.ts +17 -0
- package/dist/esm/ui/Label.d.ts.map +1 -0
- package/dist/esm/ui/Label.js +37 -0
- package/dist/esm/ui/Label.js.map +1 -0
- package/dist/esm/ui/Panel.d.ts +38 -0
- package/dist/esm/ui/Panel.d.ts.map +1 -0
- package/dist/esm/ui/Panel.js +61 -0
- package/dist/esm/ui/Panel.js.map +1 -0
- package/dist/esm/ui/ProgressBar.d.ts +37 -0
- package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
- package/dist/esm/ui/ProgressBar.js +76 -0
- package/dist/esm/ui/ProgressBar.js.map +1 -0
- package/dist/esm/ui/ScrollContainer.d.ts +63 -0
- package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
- package/dist/esm/ui/ScrollContainer.js +99 -0
- package/dist/esm/ui/ScrollContainer.js.map +1 -0
- package/dist/esm/ui/Stack.d.ts +34 -0
- package/dist/esm/ui/Stack.d.ts.map +1 -0
- package/dist/esm/ui/Stack.js +69 -0
- package/dist/esm/ui/Stack.js.map +1 -0
- package/dist/esm/ui/Tooltip.d.ts +67 -0
- package/dist/esm/ui/Tooltip.d.ts.map +1 -0
- package/dist/esm/ui/Tooltip.js +133 -0
- package/dist/esm/ui/Tooltip.js.map +1 -0
- package/dist/esm/ui/UIRoot.d.ts +31 -0
- package/dist/esm/ui/UIRoot.d.ts.map +1 -0
- package/dist/esm/ui/UIRoot.js +49 -0
- package/dist/esm/ui/UIRoot.js.map +1 -0
- package/dist/esm/ui/Widget.d.ts +45 -0
- package/dist/esm/ui/Widget.d.ts.map +1 -0
- package/dist/esm/ui/Widget.js +113 -0
- package/dist/esm/ui/Widget.js.map +1 -0
- package/dist/esm/ui/index.d.ts +17 -0
- package/dist/esm/ui/index.d.ts.map +1 -0
- package/dist/exo.debug.esm.js +1 -948
- package/dist/exo.debug.esm.js.map +1 -1
- package/dist/exo.esm.js +1 -40945
- package/dist/exo.esm.js.map +1 -1
- package/dist/exo.iife.js +45202 -0
- package/dist/exo.iife.js.map +1 -0
- package/dist/exo.iife.min.js +2 -0
- package/dist/exo.iife.min.js.map +1 -0
- package/package.json +37 -14
- package/dist/esm/audio/AbstractMedia.d.ts +0 -75
- package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
- package/dist/esm/audio/AbstractMedia.js +0 -179
- package/dist/esm/audio/AbstractMedia.js.map +0 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
- package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -473
- package/dist/esm/audio/AudioAnalyser.js.map +0 -1
- package/dist/esm/audio/AudioFilter.d.ts +0 -17
- package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
- package/dist/esm/audio/AudioFilter.js +0 -15
- package/dist/esm/audio/AudioFilter.js.map +0 -1
- package/dist/esm/audio/BeatDetector.d.ts +0 -207
- package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
- package/dist/esm/audio/BeatDetector.js +0 -424
- package/dist/esm/audio/BeatDetector.js.map +0 -1
- package/dist/esm/audio/Media.d.ts +0 -37
- package/dist/esm/audio/Media.d.ts.map +0 -1
- package/dist/esm/audio/Music.d.ts +0 -42
- package/dist/esm/audio/Music.d.ts.map +0 -1
- package/dist/esm/audio/Music.js +0 -164
- package/dist/esm/audio/Music.js.map +0 -1
- package/dist/esm/audio/OscillatorSound.d.ts +0 -100
- package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
- package/dist/esm/audio/OscillatorSound.js +0 -346
- package/dist/esm/audio/OscillatorSound.js.map +0 -1
- package/dist/esm/audio/dsp/fft.d.ts +0 -23
- package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.d.ts +0 -44
- package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.js +0 -70
- package/dist/esm/audio/dsp/mel.js.map +0 -1
- package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
- package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
- package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.js +0 -155
- package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
- package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.js +0 -123
- package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
- package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.js +0 -114
- package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
- package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.js +0 -172
- package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
- package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
- package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
- package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.js +0 -107
- package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
- package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.js +0 -122
- package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
- package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.js +0 -94
- package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts +0 -54
- package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.js +0 -110
- package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
- package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.js +0 -89
- package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
- package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
- package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
- package/dist/esm/rendering/Camera.d.ts +0 -34
- package/dist/esm/rendering/Camera.d.ts.map +0 -1
- package/dist/esm/rendering/Camera.js +0 -38
- package/dist/esm/rendering/Camera.js.map +0 -1
- package/dist/esm/rendering/index.d.ts.map +0 -1
- package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
- package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
- package/dist/esm/rendering.d.ts +0 -29
- package/dist/esm/rendering.d.ts.map +0 -1
- package/dist/esm/rendering.js.map +0 -1
- package/dist/esm/resources/JsonStore.d.ts +0 -19
- package/dist/esm/resources/JsonStore.d.ts.map +0 -1
- package/dist/esm/resources/JsonStore.js +0 -62
- package/dist/esm/resources/JsonStore.js.map +0 -1
|
@@ -89,17 +89,17 @@ const matchesAvifImage = (arrayBuffer) => {
|
|
|
89
89
|
return false;
|
|
90
90
|
}
|
|
91
91
|
const header = new Uint8Array(arrayBuffer);
|
|
92
|
-
if (String.fromCharCode(header[4], header[5], header[6], header[7]) !== 'ftyp') {
|
|
92
|
+
if (String.fromCharCode(header[4] ?? 0, header[5] ?? 0, header[6] ?? 0, header[7] ?? 0) !== 'ftyp') {
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
95
|
-
const brand = String.fromCharCode(header[8], header[9], header[10], header[11]);
|
|
95
|
+
const brand = String.fromCharCode(header[8] ?? 0, header[9] ?? 0, header[10] ?? 0, header[11] ?? 0);
|
|
96
96
|
return brand === 'avif' || brand === 'avis';
|
|
97
97
|
};
|
|
98
98
|
const matchesWebmVideo = (arrayBuffer) => {
|
|
99
99
|
const header = new Uint8Array(arrayBuffer);
|
|
100
100
|
const matching = [0x1a, 0x45, 0xdf, 0xa3].every((byte, i) => byte === header[i]);
|
|
101
101
|
const sliced = header.subarray(4, 4 + 4096);
|
|
102
|
-
const index = sliced.findIndex((
|
|
102
|
+
const index = sliced.findIndex((_el, i, arr) => arr[i] === 0x42 && arr[i + 1] === 0x82);
|
|
103
103
|
if (!matching || index === -1) {
|
|
104
104
|
return false;
|
|
105
105
|
}
|
|
@@ -124,7 +124,7 @@ const determineMimeType = (arrayBuffer) => {
|
|
|
124
124
|
if (header.length < type.pattern.length) {
|
|
125
125
|
continue;
|
|
126
126
|
}
|
|
127
|
-
if (type.pattern.every((p, i) => (header[i] & type.mask[i]) === p)) {
|
|
127
|
+
if (type.pattern.every((p, i) => ((header[i] ?? 0) & (type.mask[i] ?? 0)) === p)) {
|
|
128
128
|
return type.mimeType;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/resources/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/resources/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Color } from '#core/Color';
|
|
2
|
+
import { Signal } from '#core/Signal';
|
|
3
|
+
import { Widget } from './Widget';
|
|
4
|
+
export interface ButtonOptions {
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
label?: string;
|
|
8
|
+
cornerRadius?: number;
|
|
9
|
+
/** Fill color in the normal state. */
|
|
10
|
+
color?: Color;
|
|
11
|
+
hoverColor?: Color;
|
|
12
|
+
pressedColor?: Color;
|
|
13
|
+
disabledColor?: Color;
|
|
14
|
+
textColor?: Color;
|
|
15
|
+
fontSize?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Clickable button with a rounded background, a centered label, hover/pressed
|
|
19
|
+
* visual states, and keyboard activation (Enter / Space while focused).
|
|
20
|
+
* Listen to {@link Button.onClick} for activation.
|
|
21
|
+
*/
|
|
22
|
+
export declare class Button extends Widget {
|
|
23
|
+
/** Fires when the button is activated by click, tap, or Enter/Space. */
|
|
24
|
+
readonly onClick: Signal<[Button]>;
|
|
25
|
+
private readonly _background;
|
|
26
|
+
private readonly _label;
|
|
27
|
+
private readonly _colors;
|
|
28
|
+
private readonly _cornerRadius;
|
|
29
|
+
private _state;
|
|
30
|
+
private _pointerInside;
|
|
31
|
+
constructor(options?: ButtonOptions);
|
|
32
|
+
get label(): string;
|
|
33
|
+
set label(value: string);
|
|
34
|
+
/** The per-state fill colours (`normal` / `hover` / `pressed` / `disabled`). */
|
|
35
|
+
get colors(): Readonly<Record<'normal' | 'hover' | 'pressed' | 'disabled', Color>>;
|
|
36
|
+
/** Corner radius in pixels. */
|
|
37
|
+
get cornerRadius(): number;
|
|
38
|
+
/** Label fill colour. */
|
|
39
|
+
get textColor(): Color;
|
|
40
|
+
/** Label font size in pixels. */
|
|
41
|
+
get fontSize(): number;
|
|
42
|
+
private readonly _onPointerOver;
|
|
43
|
+
private readonly _onPointerOut;
|
|
44
|
+
private readonly _onPointerDown;
|
|
45
|
+
private readonly _onPointerUp;
|
|
46
|
+
private readonly _activate;
|
|
47
|
+
private readonly _onKey;
|
|
48
|
+
private _refreshState;
|
|
49
|
+
protected _onEnabledChanged(enabled: boolean): void;
|
|
50
|
+
protected _relayout(): void;
|
|
51
|
+
private _draw;
|
|
52
|
+
private _positionLabel;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,MAAM;IAChC,wEAAwE;IACxE,SAAgB,OAAO,mBAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,cAAc,CAAS;gBAEZ,OAAO,GAAE,aAAkB;IAiC9C,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAG7B;IAED,gFAAgF;IAChF,IAAW,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAExF;IAED,+BAA+B;IAC/B,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,yBAAyB;IACzB,IAAW,SAAS,IAAI,KAAK,CAE5B;IAED,iCAAiC;IACjC,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG7B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAUrB;IAEF,OAAO,CAAC,aAAa;cAaF,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;cAKzC,SAAS,IAAI,IAAI;IAKpC,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,cAAc;CAKvB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { Signal } from '../core/Signal.js';
|
|
3
|
+
import { Keyboard } from '../input/types.js';
|
|
4
|
+
import { Graphics } from '../rendering/primitives/Graphics.js';
|
|
5
|
+
import { Text } from '../rendering/text/Text.js';
|
|
6
|
+
import { Widget } from './Widget.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Clickable button with a rounded background, a centered label, hover/pressed
|
|
10
|
+
* visual states, and keyboard activation (Enter / Space while focused).
|
|
11
|
+
* Listen to {@link Button.onClick} for activation.
|
|
12
|
+
*/
|
|
13
|
+
class Button extends Widget {
|
|
14
|
+
/** Fires when the button is activated by click, tap, or Enter/Space. */
|
|
15
|
+
onClick = new Signal();
|
|
16
|
+
_background = new Graphics();
|
|
17
|
+
_label;
|
|
18
|
+
_colors;
|
|
19
|
+
_cornerRadius;
|
|
20
|
+
_state = 'normal';
|
|
21
|
+
_pointerInside = false;
|
|
22
|
+
constructor(options = {}) {
|
|
23
|
+
super();
|
|
24
|
+
this._colors = {
|
|
25
|
+
normal: (options.color ?? new Color(54, 120, 220, 1)).clone(),
|
|
26
|
+
hover: (options.hoverColor ?? new Color(74, 140, 240, 1)).clone(),
|
|
27
|
+
pressed: (options.pressedColor ?? new Color(40, 96, 180, 1)).clone(),
|
|
28
|
+
disabled: (options.disabledColor ?? new Color(70, 76, 90, 1)).clone(),
|
|
29
|
+
};
|
|
30
|
+
this._cornerRadius = options.cornerRadius ?? 8;
|
|
31
|
+
this._label = new Text(options.label ?? '', {
|
|
32
|
+
fillColor: options.textColor ?? Color.white,
|
|
33
|
+
fontSize: options.fontSize ?? 16,
|
|
34
|
+
align: 'center',
|
|
35
|
+
});
|
|
36
|
+
this.addChild(this._background);
|
|
37
|
+
this.addChild(this._label);
|
|
38
|
+
this.interactive = true;
|
|
39
|
+
this.focusable = true;
|
|
40
|
+
this.cursor = 'pointer';
|
|
41
|
+
this.onPointerOver.add(this._onPointerOver);
|
|
42
|
+
this.onPointerOut.add(this._onPointerOut);
|
|
43
|
+
this.onPointerDown.add(this._onPointerDown);
|
|
44
|
+
this.onPointerUp.add(this._onPointerUp);
|
|
45
|
+
this.onPointerTap.add(this._activate);
|
|
46
|
+
this.onKeyDown.add(this._onKey);
|
|
47
|
+
this.setSize(options.width ?? 120, options.height ?? 40);
|
|
48
|
+
}
|
|
49
|
+
get label() {
|
|
50
|
+
return this._label.text;
|
|
51
|
+
}
|
|
52
|
+
set label(value) {
|
|
53
|
+
this._label.text = value;
|
|
54
|
+
this._positionLabel();
|
|
55
|
+
}
|
|
56
|
+
/** The per-state fill colours (`normal` / `hover` / `pressed` / `disabled`). */
|
|
57
|
+
get colors() {
|
|
58
|
+
return this._colors;
|
|
59
|
+
}
|
|
60
|
+
/** Corner radius in pixels. */
|
|
61
|
+
get cornerRadius() {
|
|
62
|
+
return this._cornerRadius;
|
|
63
|
+
}
|
|
64
|
+
/** Label fill colour. */
|
|
65
|
+
get textColor() {
|
|
66
|
+
return this._label.style.fillColor;
|
|
67
|
+
}
|
|
68
|
+
/** Label font size in pixels. */
|
|
69
|
+
get fontSize() {
|
|
70
|
+
return this._label.style.fontSize;
|
|
71
|
+
}
|
|
72
|
+
_onPointerOver = () => {
|
|
73
|
+
this._pointerInside = true;
|
|
74
|
+
this._refreshState();
|
|
75
|
+
};
|
|
76
|
+
_onPointerOut = () => {
|
|
77
|
+
this._pointerInside = false;
|
|
78
|
+
this._refreshState();
|
|
79
|
+
};
|
|
80
|
+
_onPointerDown = () => {
|
|
81
|
+
if (this.enabled) {
|
|
82
|
+
this._state = 'pressed';
|
|
83
|
+
this._draw();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
_onPointerUp = () => {
|
|
87
|
+
this._refreshState();
|
|
88
|
+
};
|
|
89
|
+
_activate = () => {
|
|
90
|
+
if (this.enabled) {
|
|
91
|
+
this.onClick.dispatch(this);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
_onKey = (event) => {
|
|
95
|
+
const channel = event.channel;
|
|
96
|
+
// `channel` is a generic numeric input channel (KeyEvent.channel is `number`),
|
|
97
|
+
// intentionally compared against the Keyboard enum constants — see KeyEvent docs.
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
99
|
+
if (this.enabled && (channel === Keyboard.Enter || channel === Keyboard.Space)) {
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
this.onClick.dispatch(this);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
_refreshState() {
|
|
105
|
+
let state = 'normal';
|
|
106
|
+
if (!this.enabled) {
|
|
107
|
+
state = 'disabled';
|
|
108
|
+
}
|
|
109
|
+
else if (this._pointerInside) {
|
|
110
|
+
state = 'hover';
|
|
111
|
+
}
|
|
112
|
+
this._state = state;
|
|
113
|
+
this._draw();
|
|
114
|
+
}
|
|
115
|
+
_onEnabledChanged(enabled) {
|
|
116
|
+
this.interactive = enabled;
|
|
117
|
+
this._refreshState();
|
|
118
|
+
}
|
|
119
|
+
_relayout() {
|
|
120
|
+
this._draw();
|
|
121
|
+
this._positionLabel();
|
|
122
|
+
}
|
|
123
|
+
_draw() {
|
|
124
|
+
const g = this._background;
|
|
125
|
+
g.clear();
|
|
126
|
+
if (this._uiWidth <= 0 || this._uiHeight <= 0) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
g.fillColor = this._colors[this._state];
|
|
130
|
+
g.drawRoundedRectangle(0, 0, this._uiWidth, this._uiHeight, this._cornerRadius);
|
|
131
|
+
}
|
|
132
|
+
_positionLabel() {
|
|
133
|
+
const bounds = this._label.getLocalBounds();
|
|
134
|
+
this._label.setPosition((this._uiWidth - bounds.width) / 2, (this._uiHeight - bounds.height) / 2);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export { Button };
|
|
139
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../src/ui/Button.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Text } from '#rendering/text/Text';
|
|
2
|
+
import type { TextStyleOptions } from '#rendering/text/TextStyle';
|
|
3
|
+
import { Widget } from './Widget';
|
|
4
|
+
/**
|
|
5
|
+
* Text label widget. Wraps a {@link Text} node and keeps the widget's layout
|
|
6
|
+
* size in sync with the measured text, so it anchors and stacks correctly.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Label extends Widget {
|
|
9
|
+
private readonly _text;
|
|
10
|
+
constructor(text?: string, style?: TextStyleOptions);
|
|
11
|
+
get text(): string;
|
|
12
|
+
set text(value: string);
|
|
13
|
+
/** The underlying {@link Text} node, for advanced styling. */
|
|
14
|
+
get textNode(): Text;
|
|
15
|
+
private _syncSize;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../src/ui/Label.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAEV,IAAI,SAAK,EAAE,KAAK,GAAE,gBAAqB;IAQ1D,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED,8DAA8D;IAC9D,IAAW,QAAQ,IAAI,IAAI,CAE1B;IAED,OAAO,CAAC,SAAS;CAKlB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { Text } from '../rendering/text/Text.js';
|
|
3
|
+
import { Widget } from './Widget.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Text label widget. Wraps a {@link Text} node and keeps the widget's layout
|
|
7
|
+
* size in sync with the measured text, so it anchors and stacks correctly.
|
|
8
|
+
*/
|
|
9
|
+
class Label extends Widget {
|
|
10
|
+
_text;
|
|
11
|
+
constructor(text = '', style = {}) {
|
|
12
|
+
super();
|
|
13
|
+
this._text = new Text(text, { fillColor: Color.white, fontSize: 16, ...style });
|
|
14
|
+
this.addChild(this._text);
|
|
15
|
+
this._syncSize();
|
|
16
|
+
}
|
|
17
|
+
get text() {
|
|
18
|
+
return this._text.text;
|
|
19
|
+
}
|
|
20
|
+
set text(value) {
|
|
21
|
+
if (this._text.text !== value) {
|
|
22
|
+
this._text.text = value;
|
|
23
|
+
this._syncSize();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** The underlying {@link Text} node, for advanced styling. */
|
|
27
|
+
get textNode() {
|
|
28
|
+
return this._text;
|
|
29
|
+
}
|
|
30
|
+
_syncSize() {
|
|
31
|
+
const bounds = this._text.getLocalBounds();
|
|
32
|
+
this.setSize(bounds.width, bounds.height);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { Label };
|
|
37
|
+
//# sourceMappingURL=Label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.js","sources":["../../../../src/ui/Label.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;AAGG;AACG,MAAO,KAAM,SAAQ,MAAM,CAAA;AACd,IAAA,KAAK;AAEtB,IAAA,WAAA,CAAmB,IAAI,GAAG,EAAE,EAAE,QAA0B,EAAE,EAAA;AACxD,QAAA,KAAK,EAAE;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;AAC/E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IACxB;IAEA,IAAW,IAAI,CAAC,KAAa,EAAA;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;YACvB,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;;AAGA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,KAAK;IACnB;IAEQ,SAAS,GAAA;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;QAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;IAC3C;AACD;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Color } from '#core/Color';
|
|
2
|
+
import { Graphics } from '#rendering/primitives/Graphics';
|
|
3
|
+
import { Widget } from './Widget';
|
|
4
|
+
export interface PanelOptions {
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
/** Fill color. Default: a translucent dark slate. */
|
|
8
|
+
color?: Color;
|
|
9
|
+
/** Border color (only drawn when `borderWidth > 0`). */
|
|
10
|
+
borderColor?: Color;
|
|
11
|
+
borderWidth?: number;
|
|
12
|
+
cornerRadius?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Rectangular background container with rounded corners and an optional border.
|
|
16
|
+
* The base building block for HUD boxes, dialogs, and menus — add content with
|
|
17
|
+
* `panel.addChild(...)`.
|
|
18
|
+
*/
|
|
19
|
+
export declare class Panel extends Widget {
|
|
20
|
+
private readonly _background;
|
|
21
|
+
private readonly _color;
|
|
22
|
+
private readonly _borderColor;
|
|
23
|
+
private readonly _borderWidth;
|
|
24
|
+
private readonly _cornerRadius;
|
|
25
|
+
constructor(options?: PanelOptions);
|
|
26
|
+
/** The background {@link Graphics}, for advanced customization. */
|
|
27
|
+
get background(): Graphics;
|
|
28
|
+
/** Fill colour. */
|
|
29
|
+
get color(): Color;
|
|
30
|
+
/** Border colour (drawn only when {@link borderWidth} is greater than 0). */
|
|
31
|
+
get borderColor(): Color;
|
|
32
|
+
/** Border thickness in pixels. */
|
|
33
|
+
get borderWidth(): number;
|
|
34
|
+
/** Corner radius in pixels. */
|
|
35
|
+
get cornerRadius(): number;
|
|
36
|
+
protected _relayout(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=Panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../src/ui/Panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAEpB,OAAO,GAAE,YAAiB;IAY7C,mEAAmE;IACnE,IAAW,UAAU,IAAI,QAAQ,CAEhC;IAED,mBAAmB;IACnB,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,6EAA6E;IAC7E,IAAW,WAAW,IAAI,KAAK,CAE9B;IAED,kCAAkC;IAClC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,+BAA+B;IAC/B,IAAW,YAAY,IAAI,MAAM,CAEhC;cAEkB,SAAS,IAAI,IAAI;CAiBrC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { Graphics } from '../rendering/primitives/Graphics.js';
|
|
3
|
+
import { Widget } from './Widget.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Rectangular background container with rounded corners and an optional border.
|
|
7
|
+
* The base building block for HUD boxes, dialogs, and menus — add content with
|
|
8
|
+
* `panel.addChild(...)`.
|
|
9
|
+
*/
|
|
10
|
+
class Panel extends Widget {
|
|
11
|
+
_background = new Graphics();
|
|
12
|
+
_color;
|
|
13
|
+
_borderColor;
|
|
14
|
+
_borderWidth;
|
|
15
|
+
_cornerRadius;
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
super();
|
|
18
|
+
this._color = (options.color ?? new Color(30, 34, 45, 0.92)).clone();
|
|
19
|
+
this._borderColor = (options.borderColor ?? new Color(255, 255, 255, 0.12)).clone();
|
|
20
|
+
this._borderWidth = options.borderWidth ?? 0;
|
|
21
|
+
this._cornerRadius = options.cornerRadius ?? 8;
|
|
22
|
+
this.addChild(this._background);
|
|
23
|
+
this.setSize(options.width ?? 0, options.height ?? 0);
|
|
24
|
+
}
|
|
25
|
+
/** The background {@link Graphics}, for advanced customization. */
|
|
26
|
+
get background() {
|
|
27
|
+
return this._background;
|
|
28
|
+
}
|
|
29
|
+
/** Fill colour. */
|
|
30
|
+
get color() {
|
|
31
|
+
return this._color;
|
|
32
|
+
}
|
|
33
|
+
/** Border colour (drawn only when {@link borderWidth} is greater than 0). */
|
|
34
|
+
get borderColor() {
|
|
35
|
+
return this._borderColor;
|
|
36
|
+
}
|
|
37
|
+
/** Border thickness in pixels. */
|
|
38
|
+
get borderWidth() {
|
|
39
|
+
return this._borderWidth;
|
|
40
|
+
}
|
|
41
|
+
/** Corner radius in pixels. */
|
|
42
|
+
get cornerRadius() {
|
|
43
|
+
return this._cornerRadius;
|
|
44
|
+
}
|
|
45
|
+
_relayout() {
|
|
46
|
+
const g = this._background;
|
|
47
|
+
g.clear();
|
|
48
|
+
if (this._uiWidth <= 0 || this._uiHeight <= 0) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (this._borderWidth > 0) {
|
|
52
|
+
g.lineWidth = this._borderWidth;
|
|
53
|
+
g.lineColor = this._borderColor;
|
|
54
|
+
}
|
|
55
|
+
g.fillColor = this._color;
|
|
56
|
+
g.drawRoundedRectangle(0, 0, this._uiWidth, this._uiHeight, this._cornerRadius);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { Panel };
|
|
61
|
+
//# sourceMappingURL=Panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.js","sources":["../../../../src/ui/Panel.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAgBA;;;;AAIG;AACG,MAAO,KAAM,SAAQ,MAAM,CAAA;AACd,IAAA,WAAW,GAAG,IAAI,QAAQ,EAAE;AAC5B,IAAA,MAAM;AACN,IAAA,YAAY;AACZ,IAAA,YAAY;AACZ,IAAA,aAAa;AAE9B,IAAA,WAAA,CAAmB,UAAwB,EAAE,EAAA;AAC3C,QAAA,KAAK,EAAE;QAEP,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE;QACpE,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE;QACnF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC;AAE9C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACvD;;AAGA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;;AAGA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;;AAGA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;IAC1B;;AAGA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;IAC1B;;AAGA,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa;IAC3B;IAEmB,SAAS,GAAA;AAC1B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW;QAE1B,CAAC,CAAC,KAAK,EAAE;AAET,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;YAC7C;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;AACzB,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;AAC/B,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;QACjC;AAEA,QAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;IACjF;AACD;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Color } from '#core/Color';
|
|
2
|
+
import { Widget } from './Widget';
|
|
3
|
+
export interface ProgressBarOptions {
|
|
4
|
+
width?: number;
|
|
5
|
+
height?: number;
|
|
6
|
+
/** Initial fill fraction in `[0, 1]`. */
|
|
7
|
+
value?: number;
|
|
8
|
+
trackColor?: Color;
|
|
9
|
+
fillColor?: Color;
|
|
10
|
+
cornerRadius?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Horizontal progress / health bar. {@link ProgressBar.value} is the fill
|
|
14
|
+
* fraction in `[0, 1]`; setting it redraws only the fill.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ProgressBar extends Widget {
|
|
17
|
+
private readonly _track;
|
|
18
|
+
private readonly _fill;
|
|
19
|
+
private readonly _trackColor;
|
|
20
|
+
private readonly _fillColor;
|
|
21
|
+
private readonly _cornerRadius;
|
|
22
|
+
private _value;
|
|
23
|
+
constructor(options?: ProgressBarOptions);
|
|
24
|
+
/** Fill fraction in `[0, 1]`. */
|
|
25
|
+
get value(): number;
|
|
26
|
+
set value(value: number);
|
|
27
|
+
/** Track (background) colour. */
|
|
28
|
+
get trackColor(): Color;
|
|
29
|
+
/** Fill (foreground) colour. */
|
|
30
|
+
get fillColor(): Color;
|
|
31
|
+
/** Corner radius in pixels. */
|
|
32
|
+
get cornerRadius(): number;
|
|
33
|
+
protected _relayout(): void;
|
|
34
|
+
private _drawTrack;
|
|
35
|
+
private _drawFill;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=ProgressBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/ui/ProgressBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEJ,OAAO,GAAE,kBAAuB;IAanD,iCAAiC;IACjC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAO7B;IAED,iCAAiC;IACjC,IAAW,UAAU,IAAI,KAAK,CAE7B;IAED,gCAAgC;IAChC,IAAW,SAAS,IAAI,KAAK,CAE5B;IAED,+BAA+B;IAC/B,IAAW,YAAY,IAAI,MAAM,CAEhC;cAEkB,SAAS,IAAI,IAAI;IAKpC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,SAAS;CAclB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { clamp } from '../math/utils.js';
|
|
3
|
+
import { Graphics } from '../rendering/primitives/Graphics.js';
|
|
4
|
+
import { Widget } from './Widget.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Horizontal progress / health bar. {@link ProgressBar.value} is the fill
|
|
8
|
+
* fraction in `[0, 1]`; setting it redraws only the fill.
|
|
9
|
+
*/
|
|
10
|
+
class ProgressBar extends Widget {
|
|
11
|
+
_track = new Graphics();
|
|
12
|
+
_fill = new Graphics();
|
|
13
|
+
_trackColor;
|
|
14
|
+
_fillColor;
|
|
15
|
+
_cornerRadius;
|
|
16
|
+
_value;
|
|
17
|
+
constructor(options = {}) {
|
|
18
|
+
super();
|
|
19
|
+
this._value = clamp(options.value ?? 0, 0, 1);
|
|
20
|
+
this._trackColor = (options.trackColor ?? new Color(255, 255, 255, 0.16)).clone();
|
|
21
|
+
this._fillColor = (options.fillColor ?? new Color(80, 220, 120, 1)).clone();
|
|
22
|
+
this._cornerRadius = options.cornerRadius ?? 4;
|
|
23
|
+
this.addChild(this._track);
|
|
24
|
+
this.addChild(this._fill);
|
|
25
|
+
this.setSize(options.width ?? 200, options.height ?? 12);
|
|
26
|
+
}
|
|
27
|
+
/** Fill fraction in `[0, 1]`. */
|
|
28
|
+
get value() {
|
|
29
|
+
return this._value;
|
|
30
|
+
}
|
|
31
|
+
set value(value) {
|
|
32
|
+
const next = clamp(value, 0, 1);
|
|
33
|
+
if (this._value !== next) {
|
|
34
|
+
this._value = next;
|
|
35
|
+
this._drawFill();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Track (background) colour. */
|
|
39
|
+
get trackColor() {
|
|
40
|
+
return this._trackColor;
|
|
41
|
+
}
|
|
42
|
+
/** Fill (foreground) colour. */
|
|
43
|
+
get fillColor() {
|
|
44
|
+
return this._fillColor;
|
|
45
|
+
}
|
|
46
|
+
/** Corner radius in pixels. */
|
|
47
|
+
get cornerRadius() {
|
|
48
|
+
return this._cornerRadius;
|
|
49
|
+
}
|
|
50
|
+
_relayout() {
|
|
51
|
+
this._drawTrack();
|
|
52
|
+
this._drawFill();
|
|
53
|
+
}
|
|
54
|
+
_drawTrack() {
|
|
55
|
+
const g = this._track;
|
|
56
|
+
g.clear();
|
|
57
|
+
if (this._uiWidth <= 0 || this._uiHeight <= 0) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
g.fillColor = this._trackColor;
|
|
61
|
+
g.drawRoundedRectangle(0, 0, this._uiWidth, this._uiHeight, this._cornerRadius);
|
|
62
|
+
}
|
|
63
|
+
_drawFill() {
|
|
64
|
+
const g = this._fill;
|
|
65
|
+
g.clear();
|
|
66
|
+
const width = this._uiWidth * this._value;
|
|
67
|
+
if (width <= 0 || this._uiHeight <= 0) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
g.fillColor = this._fillColor;
|
|
71
|
+
g.drawRoundedRectangle(0, 0, width, this._uiHeight, Math.min(this._cornerRadius, width / 2));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { ProgressBar };
|
|
76
|
+
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sources":["../../../../src/ui/ProgressBar.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Stage } from '#core/Stage';
|
|
2
|
+
import { Container } from '#rendering/Container';
|
|
3
|
+
import { Widget } from './Widget';
|
|
4
|
+
/** Direction(s) in which a {@link ScrollContainer} can scroll. */
|
|
5
|
+
export type ScrollDirection = 'vertical' | 'horizontal' | 'both';
|
|
6
|
+
/** Options for {@link ScrollContainer}. */
|
|
7
|
+
export interface ScrollContainerOptions {
|
|
8
|
+
/** Visible width in pixels. */
|
|
9
|
+
width: number;
|
|
10
|
+
/** Visible height in pixels. */
|
|
11
|
+
height: number;
|
|
12
|
+
/** Scroll axis. Default `'vertical'`. */
|
|
13
|
+
direction?: ScrollDirection;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Clipped container that scrolls its content via the mouse wheel.
|
|
17
|
+
*
|
|
18
|
+
* Add child nodes to {@link ScrollContainer.content} rather than to the
|
|
19
|
+
* `ScrollContainer` itself. The content container is offset as the user scrolls,
|
|
20
|
+
* while the outer widget is clipped to its declared `width` × `height`.
|
|
21
|
+
*
|
|
22
|
+
* Mouse-wheel events from the global {@link InputManager} are consumed only
|
|
23
|
+
* when the pointer is within the widget's bounds. The container subscribes to
|
|
24
|
+
* the app's `onMouseWheel` signal when it enters the scene tree, and
|
|
25
|
+
* unsubscribes on detach.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* const scroll = new ScrollContainer({ width: 300, height: 400 });
|
|
30
|
+
* for (let i = 0; i < 20; i++) {
|
|
31
|
+
* scroll.content.addChild(new Label(`Item ${i}`).setPosition(0, i * 30));
|
|
32
|
+
* }
|
|
33
|
+
* scene.ui.addChild(scroll);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class ScrollContainer extends Widget {
|
|
37
|
+
/** Add children here — not to the `ScrollContainer` itself. */
|
|
38
|
+
readonly content: Container;
|
|
39
|
+
private readonly _direction;
|
|
40
|
+
private _scrollX;
|
|
41
|
+
private _scrollY;
|
|
42
|
+
private readonly _onWheel;
|
|
43
|
+
constructor(options: ScrollContainerOptions);
|
|
44
|
+
/** Current horizontal scroll position in pixels. */
|
|
45
|
+
get scrollX(): number;
|
|
46
|
+
/** Current vertical scroll position in pixels. */
|
|
47
|
+
get scrollY(): number;
|
|
48
|
+
/**
|
|
49
|
+
* Scroll by `(dx, dy)` pixels, clamped to the scrollable content range.
|
|
50
|
+
* Positive values scroll right / down; negative values scroll left / up.
|
|
51
|
+
*/
|
|
52
|
+
scrollBy(dx: number, dy: number): void;
|
|
53
|
+
/**
|
|
54
|
+
* Scroll to an absolute `(x, y)` position in pixels, clamped to the
|
|
55
|
+
* content range so the content never scrolls past its edges.
|
|
56
|
+
*/
|
|
57
|
+
scrollTo(x: number, y: number): void;
|
|
58
|
+
protected _relayout(): void;
|
|
59
|
+
/** @internal — subscribe to the app's wheel signal when entering the scene tree. */
|
|
60
|
+
_setStage(stage: Stage | null): void;
|
|
61
|
+
destroy(): void;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ScrollContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollContainer.d.ts","sourceRoot":"","sources":["../../../src/ui/ScrollContainer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAEjE,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,eAAgB,SAAQ,MAAM;IACzC,+DAA+D;IAC/D,SAAgB,OAAO,EAAE,SAAS,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAcvB;gBAEiB,OAAO,EAAE,sBAAsB;IAYlD,oDAAoD;IACpD,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,kDAAkD;IAClD,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED;;;OAGG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7C;;;OAGG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;cAYxB,SAAS,IAAI,IAAI;IAKpC,oFAAoF;IACpE,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAYpC,OAAO,IAAI,IAAI;CAIhC"}
|