fraxel 0.1.0-alpha.1
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/dist/animation/easing.d.ts +29 -0
- package/dist/animation/easing.d.ts.map +1 -0
- package/dist/animation/easing.js +50 -0
- package/dist/animation/easing.js.map +1 -0
- package/dist/animation/index.d.ts +7 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/animation/index.js +7 -0
- package/dist/animation/index.js.map +1 -0
- package/dist/animation/multiple.d.ts +26 -0
- package/dist/animation/multiple.d.ts.map +1 -0
- package/dist/animation/multiple.js +27 -0
- package/dist/animation/multiple.js.map +1 -0
- package/dist/animation/properties.d.ts +30 -0
- package/dist/animation/properties.d.ts.map +1 -0
- package/dist/animation/properties.js +32 -0
- package/dist/animation/properties.js.map +1 -0
- package/dist/animation/sequences.d.ts +30 -0
- package/dist/animation/sequences.d.ts.map +1 -0
- package/dist/animation/sequences.js +50 -0
- package/dist/animation/sequences.js.map +1 -0
- package/dist/animation/sprite-sheet.d.ts +81 -0
- package/dist/animation/sprite-sheet.d.ts.map +1 -0
- package/dist/animation/sprite-sheet.js +103 -0
- package/dist/animation/sprite-sheet.js.map +1 -0
- package/dist/animation/tween.d.ts +78 -0
- package/dist/animation/tween.d.ts.map +1 -0
- package/dist/animation/tween.js +103 -0
- package/dist/animation/tween.js.map +1 -0
- package/dist/assets/index.d.ts +6 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +5 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/load-sound.d.ts +17 -0
- package/dist/assets/load-sound.d.ts.map +1 -0
- package/dist/assets/load-sound.js +35 -0
- package/dist/assets/load-sound.js.map +1 -0
- package/dist/assets/load-texture.d.ts +12 -0
- package/dist/assets/load-texture.d.ts.map +1 -0
- package/dist/assets/load-texture.js +40 -0
- package/dist/assets/load-texture.js.map +1 -0
- package/dist/assets/loader.d.ts +59 -0
- package/dist/assets/loader.d.ts.map +1 -0
- package/dist/assets/loader.js +65 -0
- package/dist/assets/loader.js.map +1 -0
- package/dist/assets/texture.d.ts +36 -0
- package/dist/assets/texture.d.ts.map +1 -0
- package/dist/assets/texture.js +49 -0
- package/dist/assets/texture.js.map +1 -0
- package/dist/audio/audio-context.d.ts +14 -0
- package/dist/audio/audio-context.d.ts.map +1 -0
- package/dist/audio/audio-context.js +20 -0
- package/dist/audio/audio-context.js.map +1 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/audio/index.js +2 -0
- package/dist/audio/index.js.map +1 -0
- package/dist/collision/broadphase/spatial-hash.d.ts +32 -0
- package/dist/collision/broadphase/spatial-hash.d.ts.map +1 -0
- package/dist/collision/broadphase/spatial-hash.js +87 -0
- package/dist/collision/broadphase/spatial-hash.js.map +1 -0
- package/dist/collision/collision-system.d.ts +52 -0
- package/dist/collision/collision-system.d.ts.map +1 -0
- package/dist/collision/collision-system.js +278 -0
- package/dist/collision/collision-system.js.map +1 -0
- package/dist/collision/events/collision-emitter.d.ts +38 -0
- package/dist/collision/events/collision-emitter.d.ts.map +1 -0
- package/dist/collision/events/collision-emitter.js +47 -0
- package/dist/collision/events/collision-emitter.js.map +1 -0
- package/dist/collision/index.d.ts +13 -0
- package/dist/collision/index.d.ts.map +1 -0
- package/dist/collision/index.js +11 -0
- package/dist/collision/index.js.map +1 -0
- package/dist/collision/narrowphase/detector.d.ts +26 -0
- package/dist/collision/narrowphase/detector.d.ts.map +1 -0
- package/dist/collision/narrowphase/detector.js +70 -0
- package/dist/collision/narrowphase/detector.js.map +1 -0
- package/dist/collision/narrowphase/shapes.d.ts +91 -0
- package/dist/collision/narrowphase/shapes.d.ts.map +1 -0
- package/dist/collision/narrowphase/shapes.js +52 -0
- package/dist/collision/narrowphase/shapes.js.map +1 -0
- package/dist/collision/physics/physics-body.d.ts +38 -0
- package/dist/collision/physics/physics-body.d.ts.map +1 -0
- package/dist/collision/physics/physics-body.js +53 -0
- package/dist/collision/physics/physics-body.js.map +1 -0
- package/dist/collision/physics/physics-system.d.ts +23 -0
- package/dist/collision/physics/physics-system.d.ts.map +1 -0
- package/dist/collision/physics/physics-system.js +86 -0
- package/dist/collision/physics/physics-system.js.map +1 -0
- package/dist/collision/physics/resolver.d.ts +16 -0
- package/dist/collision/physics/resolver.d.ts.map +1 -0
- package/dist/collision/physics/resolver.js +91 -0
- package/dist/collision/physics/resolver.js.map +1 -0
- package/dist/collision/types.d.ts +22 -0
- package/dist/collision/types.d.ts.map +1 -0
- package/dist/collision/types.js +2 -0
- package/dist/collision/types.js.map +1 -0
- package/dist/core/game-config.d.ts +34 -0
- package/dist/core/game-config.d.ts.map +1 -0
- package/dist/core/game-config.js +31 -0
- package/dist/core/game-config.js.map +1 -0
- package/dist/core/game.d.ts +86 -0
- package/dist/core/game.d.ts.map +1 -0
- package/dist/core/game.js +166 -0
- package/dist/core/game.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/scene-manager.d.ts +28 -0
- package/dist/core/scene-manager.d.ts.map +1 -0
- package/dist/core/scene-manager.js +65 -0
- package/dist/core/scene-manager.js.map +1 -0
- package/dist/core/scene.d.ts +43 -0
- package/dist/core/scene.d.ts.map +1 -0
- package/dist/core/scene.js +48 -0
- package/dist/core/scene.js.map +1 -0
- package/dist/core/theme.d.ts +63 -0
- package/dist/core/theme.d.ts.map +1 -0
- package/dist/core/theme.js +59 -0
- package/dist/core/theme.js.map +1 -0
- package/dist/errors/animation.d.ts +24 -0
- package/dist/errors/animation.d.ts.map +1 -0
- package/dist/errors/animation.js +29 -0
- package/dist/errors/animation.js.map +1 -0
- package/dist/errors/assets.d.ts +34 -0
- package/dist/errors/assets.d.ts.map +1 -0
- package/dist/errors/assets.js +41 -0
- package/dist/errors/assets.js.map +1 -0
- package/dist/errors/base.d.ts +12 -0
- package/dist/errors/base.d.ts.map +1 -0
- package/dist/errors/base.js +15 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/env.d.ts +24 -0
- package/dist/errors/env.d.ts.map +1 -0
- package/dist/errors/env.js +29 -0
- package/dist/errors/env.js.map +1 -0
- package/dist/errors/hook.d.ts +46 -0
- package/dist/errors/hook.d.ts.map +1 -0
- package/dist/errors/hook.js +55 -0
- package/dist/errors/hook.js.map +1 -0
- package/dist/errors/index.d.ts +11 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +11 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/jsx.d.ts +26 -0
- package/dist/errors/jsx.d.ts.map +1 -0
- package/dist/errors/jsx.js +45 -0
- package/dist/errors/jsx.js.map +1 -0
- package/dist/errors/lifecycle.d.ts +35 -0
- package/dist/errors/lifecycle.d.ts.map +1 -0
- package/dist/errors/lifecycle.js +42 -0
- package/dist/errors/lifecycle.js.map +1 -0
- package/dist/errors/math.d.ts +24 -0
- package/dist/errors/math.d.ts.map +1 -0
- package/dist/errors/math.js +34 -0
- package/dist/errors/math.js.map +1 -0
- package/dist/errors/node.d.ts +68 -0
- package/dist/errors/node.d.ts.map +1 -0
- package/dist/errors/node.js +87 -0
- package/dist/errors/node.js.map +1 -0
- package/dist/errors/scene.d.ts +35 -0
- package/dist/errors/scene.d.ts.map +1 -0
- package/dist/errors/scene.js +42 -0
- package/dist/errors/scene.js.map +1 -0
- package/dist/events/event.d.ts +106 -0
- package/dist/events/event.d.ts.map +1 -0
- package/dist/events/event.js +125 -0
- package/dist/events/event.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +20 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +2 -0
- package/dist/events/types.js.map +1 -0
- package/dist/hooks/context.d.ts +15 -0
- package/dist/hooks/context.d.ts.map +1 -0
- package/dist/hooks/context.js +26 -0
- package/dist/hooks/context.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/index.d.ts +7 -0
- package/dist/hooks/deriveds/by-nodes/index.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/index.js +7 -0
- package/dist/hooks/deriveds/by-nodes/index.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-animation.d.ts +44 -0
- package/dist/hooks/deriveds/by-nodes/use-animation.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-animation.js +61 -0
- package/dist/hooks/deriveds/by-nodes/use-animation.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-audio.d.ts +33 -0
- package/dist/hooks/deriveds/by-nodes/use-audio.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-audio.js +43 -0
- package/dist/hooks/deriveds/by-nodes/use-audio.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-clickable.d.ts +32 -0
- package/dist/hooks/deriveds/by-nodes/use-clickable.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-clickable.js +43 -0
- package/dist/hooks/deriveds/by-nodes/use-clickable.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-collider.d.ts +35 -0
- package/dist/hooks/deriveds/by-nodes/use-collider.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-collider.js +55 -0
- package/dist/hooks/deriveds/by-nodes/use-collider.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-ray-cast.d.ts +35 -0
- package/dist/hooks/deriveds/by-nodes/use-ray-cast.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-ray-cast.js +47 -0
- package/dist/hooks/deriveds/by-nodes/use-ray-cast.js.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-timer.d.ts +34 -0
- package/dist/hooks/deriveds/by-nodes/use-timer.d.ts.map +1 -0
- package/dist/hooks/deriveds/by-nodes/use-timer.js +48 -0
- package/dist/hooks/deriveds/by-nodes/use-timer.js.map +1 -0
- package/dist/hooks/deriveds/index.d.ts +5 -0
- package/dist/hooks/deriveds/index.d.ts.map +1 -0
- package/dist/hooks/deriveds/index.js +5 -0
- package/dist/hooks/deriveds/index.js.map +1 -0
- package/dist/hooks/deriveds/use-condition.d.ts +37 -0
- package/dist/hooks/deriveds/use-condition.d.ts.map +1 -0
- package/dist/hooks/deriveds/use-condition.js +47 -0
- package/dist/hooks/deriveds/use-condition.js.map +1 -0
- package/dist/hooks/deriveds/use-match.d.ts +26 -0
- package/dist/hooks/deriveds/use-match.d.ts.map +1 -0
- package/dist/hooks/deriveds/use-match.js +38 -0
- package/dist/hooks/deriveds/use-match.js.map +1 -0
- package/dist/hooks/deriveds/use-partial-node.d.ts +22 -0
- package/dist/hooks/deriveds/use-partial-node.d.ts.map +1 -0
- package/dist/hooks/deriveds/use-partial-node.js +25 -0
- package/dist/hooks/deriveds/use-partial-node.js.map +1 -0
- package/dist/hooks/deriveds/use-when.d.ts +28 -0
- package/dist/hooks/deriveds/use-when.d.ts.map +1 -0
- package/dist/hooks/deriveds/use-when.js +35 -0
- package/dist/hooks/deriveds/use-when.js.map +1 -0
- package/dist/hooks/index.d.ts +16 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +16 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-child.d.ts +24 -0
- package/dist/hooks/use-child.d.ts.map +1 -0
- package/dist/hooks/use-child.js +37 -0
- package/dist/hooks/use-child.js.map +1 -0
- package/dist/hooks/use-computed.d.ts +28 -0
- package/dist/hooks/use-computed.d.ts.map +1 -0
- package/dist/hooks/use-computed.js +41 -0
- package/dist/hooks/use-computed.js.map +1 -0
- package/dist/hooks/use-context.d.ts +58 -0
- package/dist/hooks/use-context.d.ts.map +1 -0
- package/dist/hooks/use-context.js +77 -0
- package/dist/hooks/use-context.js.map +1 -0
- package/dist/hooks/use-effect.d.ts +24 -0
- package/dist/hooks/use-effect.d.ts.map +1 -0
- package/dist/hooks/use-effect.js +63 -0
- package/dist/hooks/use-effect.js.map +1 -0
- package/dist/hooks/use-event.d.ts +29 -0
- package/dist/hooks/use-event.d.ts.map +1 -0
- package/dist/hooks/use-event.js +30 -0
- package/dist/hooks/use-event.js.map +1 -0
- package/dist/hooks/use-game.d.ts +17 -0
- package/dist/hooks/use-game.d.ts.map +1 -0
- package/dist/hooks/use-game.js +35 -0
- package/dist/hooks/use-game.js.map +1 -0
- package/dist/hooks/use-mount.d.ts +21 -0
- package/dist/hooks/use-mount.d.ts.map +1 -0
- package/dist/hooks/use-mount.js +33 -0
- package/dist/hooks/use-mount.js.map +1 -0
- package/dist/hooks/use-node.d.ts +42 -0
- package/dist/hooks/use-node.d.ts.map +1 -0
- package/dist/hooks/use-node.js +63 -0
- package/dist/hooks/use-node.js.map +1 -0
- package/dist/hooks/use-ref.d.ts +27 -0
- package/dist/hooks/use-ref.d.ts.map +1 -0
- package/dist/hooks/use-ref.js +33 -0
- package/dist/hooks/use-ref.js.map +1 -0
- package/dist/hooks/use-script.d.ts +33 -0
- package/dist/hooks/use-script.d.ts.map +1 -0
- package/dist/hooks/use-script.js +40 -0
- package/dist/hooks/use-script.js.map +1 -0
- package/dist/hooks/use-signal.d.ts +25 -0
- package/dist/hooks/use-signal.d.ts.map +1 -0
- package/dist/hooks/use-signal.js +36 -0
- package/dist/hooks/use-signal.js.map +1 -0
- package/dist/hooks/use-spawn.d.ts +27 -0
- package/dist/hooks/use-spawn.d.ts.map +1 -0
- package/dist/hooks/use-spawn.js +39 -0
- package/dist/hooks/use-spawn.js.map +1 -0
- package/dist/hooks/use-trigger.d.ts +51 -0
- package/dist/hooks/use-trigger.d.ts.map +1 -0
- package/dist/hooks/use-trigger.js +68 -0
- package/dist/hooks/use-trigger.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/input/input.d.ts +46 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +159 -0
- package/dist/input/input.js.map +1 -0
- package/dist/jsx/components/fragment.d.ts +3 -0
- package/dist/jsx/components/fragment.d.ts.map +1 -0
- package/dist/jsx/components/fragment.js +7 -0
- package/dist/jsx/components/fragment.js.map +1 -0
- package/dist/jsx/components/game.d.ts +21 -0
- package/dist/jsx/components/game.d.ts.map +1 -0
- package/dist/jsx/components/game.js +17 -0
- package/dist/jsx/components/game.js.map +1 -0
- package/dist/jsx/components/index.d.ts +5 -0
- package/dist/jsx/components/index.d.ts.map +1 -0
- package/dist/jsx/components/index.js +5 -0
- package/dist/jsx/components/index.js.map +1 -0
- package/dist/jsx/components/list.d.ts +88 -0
- package/dist/jsx/components/list.d.ts.map +1 -0
- package/dist/jsx/components/list.js +93 -0
- package/dist/jsx/components/list.js.map +1 -0
- package/dist/jsx/components/scene.d.ts +40 -0
- package/dist/jsx/components/scene.d.ts.map +1 -0
- package/dist/jsx/components/scene.js +20 -0
- package/dist/jsx/components/scene.js.map +1 -0
- package/dist/jsx/index.d.ts +5 -0
- package/dist/jsx/index.d.ts.map +1 -0
- package/dist/jsx/index.js +5 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/jsx.d.ts +3 -0
- package/dist/jsx/jsx.d.ts.map +1 -0
- package/dist/jsx/jsx.js +4 -0
- package/dist/jsx/jsx.js.map +1 -0
- package/dist/jsx/render/game.d.ts +41 -0
- package/dist/jsx/render/game.d.ts.map +1 -0
- package/dist/jsx/render/game.js +86 -0
- package/dist/jsx/render/game.js.map +1 -0
- package/dist/jsx/render/index.d.ts +3 -0
- package/dist/jsx/render/index.d.ts.map +1 -0
- package/dist/jsx/render/index.js +3 -0
- package/dist/jsx/render/index.js.map +1 -0
- package/dist/jsx/render/to-nodes.d.ts +10 -0
- package/dist/jsx/render/to-nodes.d.ts.map +1 -0
- package/dist/jsx/render/to-nodes.js +52 -0
- package/dist/jsx/render/to-nodes.js.map +1 -0
- package/dist/jsx/render/types/class-component.d.ts +4 -0
- package/dist/jsx/render/types/class-component.d.ts.map +1 -0
- package/dist/jsx/render/types/class-component.js +8 -0
- package/dist/jsx/render/types/class-component.js.map +1 -0
- package/dist/jsx/render/types/func-components.d.ts +4 -0
- package/dist/jsx/render/types/func-components.d.ts.map +1 -0
- package/dist/jsx/render/types/func-components.js +8 -0
- package/dist/jsx/render/types/func-components.js.map +1 -0
- package/dist/jsx/render/types/instrinsic-elements.d.ts +6 -0
- package/dist/jsx/render/types/instrinsic-elements.d.ts.map +1 -0
- package/dist/jsx/render/types/instrinsic-elements.js +41 -0
- package/dist/jsx/render/types/instrinsic-elements.js.map +1 -0
- package/dist/jsx/types.d.ts +41 -0
- package/dist/jsx/types.d.ts.map +1 -0
- package/dist/jsx/types.js +2 -0
- package/dist/jsx/types.js.map +1 -0
- package/dist/jsx/utils.d.ts +4 -0
- package/dist/jsx/utils.d.ts.map +1 -0
- package/dist/jsx/utils.js +15 -0
- package/dist/jsx/utils.js.map +1 -0
- package/dist/jsx-runtime.d.ts +6 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +6 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/math/index.d.ts +3 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/math/index.js +2 -0
- package/dist/math/index.js.map +1 -0
- package/dist/math/types.d.ts +13 -0
- package/dist/math/types.d.ts.map +1 -0
- package/dist/math/types.js +2 -0
- package/dist/math/types.js.map +1 -0
- package/dist/math/vector2.d.ts +145 -0
- package/dist/math/vector2.d.ts.map +1 -0
- package/dist/math/vector2.js +164 -0
- package/dist/math/vector2.js.map +1 -0
- package/dist/nodes/_node.d.ts +283 -0
- package/dist/nodes/_node.d.ts.map +1 -0
- package/dist/nodes/_node.js +371 -0
- package/dist/nodes/_node.js.map +1 -0
- package/dist/nodes/animation-player.d.ts +208 -0
- package/dist/nodes/animation-player.d.ts.map +1 -0
- package/dist/nodes/animation-player.js +249 -0
- package/dist/nodes/animation-player.js.map +1 -0
- package/dist/nodes/audio-player.d.ts +128 -0
- package/dist/nodes/audio-player.d.ts.map +1 -0
- package/dist/nodes/audio-player.js +173 -0
- package/dist/nodes/audio-player.js.map +1 -0
- package/dist/nodes/group.d.ts +55 -0
- package/dist/nodes/group.d.ts.map +1 -0
- package/dist/nodes/group.js +54 -0
- package/dist/nodes/group.js.map +1 -0
- package/dist/nodes/index.d.ts +8 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/index.js +7 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/lib/enum.d.ts +42 -0
- package/dist/nodes/lib/enum.d.ts.map +1 -0
- package/dist/nodes/lib/enum.js +43 -0
- package/dist/nodes/lib/enum.js.map +1 -0
- package/dist/nodes/lib/index.d.ts +5 -0
- package/dist/nodes/lib/index.d.ts.map +1 -0
- package/dist/nodes/lib/index.js +5 -0
- package/dist/nodes/lib/index.js.map +1 -0
- package/dist/nodes/lib/registry.d.ts +43 -0
- package/dist/nodes/lib/registry.d.ts.map +1 -0
- package/dist/nodes/lib/registry.js +46 -0
- package/dist/nodes/lib/registry.js.map +1 -0
- package/dist/nodes/lib/types.d.ts +89 -0
- package/dist/nodes/lib/types.d.ts.map +1 -0
- package/dist/nodes/lib/types.js +2 -0
- package/dist/nodes/lib/types.js.map +1 -0
- package/dist/nodes/lib/utils.d.ts +35 -0
- package/dist/nodes/lib/utils.d.ts.map +1 -0
- package/dist/nodes/lib/utils.js +58 -0
- package/dist/nodes/lib/utils.js.map +1 -0
- package/dist/nodes/node2d/_node2d.d.ts +59 -0
- package/dist/nodes/node2d/_node2d.d.ts.map +1 -0
- package/dist/nodes/node2d/_node2d.js +57 -0
- package/dist/nodes/node2d/_node2d.js.map +1 -0
- package/dist/nodes/node2d/camera.d.ts +64 -0
- package/dist/nodes/node2d/camera.d.ts.map +1 -0
- package/dist/nodes/node2d/camera.js +72 -0
- package/dist/nodes/node2d/camera.js.map +1 -0
- package/dist/nodes/node2d/clickable.d.ts +96 -0
- package/dist/nodes/node2d/clickable.d.ts.map +1 -0
- package/dist/nodes/node2d/clickable.js +117 -0
- package/dist/nodes/node2d/clickable.js.map +1 -0
- package/dist/nodes/node2d/collider.d.ts +96 -0
- package/dist/nodes/node2d/collider.d.ts.map +1 -0
- package/dist/nodes/node2d/collider.js +116 -0
- package/dist/nodes/node2d/collider.js.map +1 -0
- package/dist/nodes/node2d/index.d.ts +12 -0
- package/dist/nodes/node2d/index.d.ts.map +1 -0
- package/dist/nodes/node2d/index.js +11 -0
- package/dist/nodes/node2d/index.js.map +1 -0
- package/dist/nodes/node2d/lib/index.d.ts +2 -0
- package/dist/nodes/node2d/lib/index.d.ts.map +1 -0
- package/dist/nodes/node2d/lib/index.js +2 -0
- package/dist/nodes/node2d/lib/index.js.map +1 -0
- package/dist/nodes/node2d/lib/utils.d.ts +4 -0
- package/dist/nodes/node2d/lib/utils.d.ts.map +1 -0
- package/dist/nodes/node2d/lib/utils.js +14 -0
- package/dist/nodes/node2d/lib/utils.js.map +1 -0
- package/dist/nodes/node2d/ray-cast.d.ts +115 -0
- package/dist/nodes/node2d/ray-cast.d.ts.map +1 -0
- package/dist/nodes/node2d/ray-cast.js +129 -0
- package/dist/nodes/node2d/ray-cast.js.map +1 -0
- package/dist/nodes/node2d/rectangle.d.ts +87 -0
- package/dist/nodes/node2d/rectangle.d.ts.map +1 -0
- package/dist/nodes/node2d/rectangle.js +60 -0
- package/dist/nodes/node2d/rectangle.js.map +1 -0
- package/dist/nodes/node2d/rigid-body.d.ts +65 -0
- package/dist/nodes/node2d/rigid-body.d.ts.map +1 -0
- package/dist/nodes/node2d/rigid-body.js +56 -0
- package/dist/nodes/node2d/rigid-body.js.map +1 -0
- package/dist/nodes/node2d/sprite.d.ts +285 -0
- package/dist/nodes/node2d/sprite.d.ts.map +1 -0
- package/dist/nodes/node2d/sprite.js +226 -0
- package/dist/nodes/node2d/sprite.js.map +1 -0
- package/dist/nodes/node2d/text.d.ts +62 -0
- package/dist/nodes/node2d/text.d.ts.map +1 -0
- package/dist/nodes/node2d/text.js +52 -0
- package/dist/nodes/node2d/text.js.map +1 -0
- package/dist/nodes/node2d/transform.d.ts +32 -0
- package/dist/nodes/node2d/transform.d.ts.map +1 -0
- package/dist/nodes/node2d/transform.js +30 -0
- package/dist/nodes/node2d/transform.js.map +1 -0
- package/dist/nodes/timer.d.ts +107 -0
- package/dist/nodes/timer.d.ts.map +1 -0
- package/dist/nodes/timer.js +108 -0
- package/dist/nodes/timer.js.map +1 -0
- package/dist/reactivity/index.d.ts +5 -0
- package/dist/reactivity/index.d.ts.map +1 -0
- package/dist/reactivity/index.js +5 -0
- package/dist/reactivity/index.js.map +1 -0
- package/dist/reactivity/reactive.d.ts +4 -0
- package/dist/reactivity/reactive.d.ts.map +1 -0
- package/dist/reactivity/reactive.js +50 -0
- package/dist/reactivity/reactive.js.map +1 -0
- package/dist/reactivity/register.d.ts +7 -0
- package/dist/reactivity/register.d.ts.map +1 -0
- package/dist/reactivity/register.js +18 -0
- package/dist/reactivity/register.js.map +1 -0
- package/dist/reactivity/signal.d.ts +126 -0
- package/dist/reactivity/signal.d.ts.map +1 -0
- package/dist/reactivity/signal.js +152 -0
- package/dist/reactivity/signal.js.map +1 -0
- package/dist/reactivity/types.d.ts +31 -0
- package/dist/reactivity/types.d.ts.map +1 -0
- package/dist/reactivity/types.js +2 -0
- package/dist/reactivity/types.js.map +1 -0
- package/dist/scripts/index.d.ts +2 -0
- package/dist/scripts/index.d.ts.map +1 -0
- package/dist/scripts/index.js +2 -0
- package/dist/scripts/index.js.map +1 -0
- package/dist/scripts/script.d.ts +80 -0
- package/dist/scripts/script.d.ts.map +1 -0
- package/dist/scripts/script.js +75 -0
- package/dist/scripts/script.js.map +1 -0
- package/dist/utils/dpr.d.ts +2 -0
- package/dist/utils/dpr.d.ts.map +1 -0
- package/dist/utils/dpr.js +14 -0
- package/dist/utils/dpr.js.map +1 -0
- package/dist/utils/ternaries.d.ts +6 -0
- package/dist/utils/ternaries.d.ts.map +1 -0
- package/dist/utils/ternaries.js +17 -0
- package/dist/utils/ternaries.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Reactive, type SignalGetterLike } from '../../reactivity/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The **`useMatch`** derived hook creates a computed value based on a signal's current value,
|
|
4
|
+
* similar to a `switch` or `match` expression. Maps a signal value to a corresponding value
|
|
5
|
+
* from a record.
|
|
6
|
+
*
|
|
7
|
+
* @param signal A `SignalGetterLike` that returns the key to match against
|
|
8
|
+
* @param record A record mapping signal values to computed values
|
|
9
|
+
* @param defaultValue The value to return if the signal value is not found in the record
|
|
10
|
+
* @returns A `SignalGetter<K>` that reflects the matched value
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const [state, setState] = useSignal<'idle' | 'walking' | 'jumping'>('idle')
|
|
15
|
+
*
|
|
16
|
+
* const animation = useMatch(state, {
|
|
17
|
+
* idle: 'idle-anim',
|
|
18
|
+
* walking: 'walk-anim',
|
|
19
|
+
* jumping: 'jump-anim',
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* return <animation-player currentAnim={animation} />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function useMatch<T extends number | string | symbol, K>(signal: SignalGetterLike<T>, record: Reactive<Record<T, K>>, defaultValue?: Reactive<K>): import("../../index.js").SignalGetter<K | undefined>;
|
|
26
|
+
//# sourceMappingURL=use-match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-match.d.ts","sourceRoot":"","sources":["../../../src/hooks/deriveds/use-match.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAI1F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAC5D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC9B,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,wDAY3B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { reactive } from '../../reactivity/index.js';
|
|
2
|
+
import { declareDerivedHook } from '../context';
|
|
3
|
+
import { useComputed } from '../use-computed.js';
|
|
4
|
+
/**
|
|
5
|
+
* The **`useMatch`** derived hook creates a computed value based on a signal's current value,
|
|
6
|
+
* similar to a `switch` or `match` expression. Maps a signal value to a corresponding value
|
|
7
|
+
* from a record.
|
|
8
|
+
*
|
|
9
|
+
* @param signal A `SignalGetterLike` that returns the key to match against
|
|
10
|
+
* @param record A record mapping signal values to computed values
|
|
11
|
+
* @param defaultValue The value to return if the signal value is not found in the record
|
|
12
|
+
* @returns A `SignalGetter<K>` that reflects the matched value
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const [state, setState] = useSignal<'idle' | 'walking' | 'jumping'>('idle')
|
|
17
|
+
*
|
|
18
|
+
* const animation = useMatch(state, {
|
|
19
|
+
* idle: 'idle-anim',
|
|
20
|
+
* walking: 'walk-anim',
|
|
21
|
+
* jumping: 'jump-anim',
|
|
22
|
+
* })
|
|
23
|
+
*
|
|
24
|
+
* return <animation-player currentAnim={animation} />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export function useMatch(signal, record, defaultValue) {
|
|
28
|
+
declareDerivedHook('useMatch');
|
|
29
|
+
const recordValue = reactive(record);
|
|
30
|
+
const defaultVal = reactive(defaultValue);
|
|
31
|
+
return useComputed(() => {
|
|
32
|
+
const key = signal();
|
|
33
|
+
if (key in recordValue())
|
|
34
|
+
return recordValue()[key];
|
|
35
|
+
return defaultVal();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=use-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-match.js","sourceRoot":"","sources":["../../../src/hooks/deriveds/use-match.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,2BAA2B,CAAA;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA2B,EAC3B,MAA8B,EAC9B,YAA0B;IAE1B,kBAAkB,CAAC,UAAU,CAAC,CAAA;IAE9B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;IAEzC,OAAO,WAAW,CAAC,GAAG,EAAE;QACtB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;QACpB,IAAI,GAAG,IAAI,WAAW,EAAE;YAAE,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,CAAA;QACnD,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PrimaryNode } from '../../nodes/index.js';
|
|
2
|
+
import { NodeReference } from '../use-node.js';
|
|
3
|
+
/**
|
|
4
|
+
* The **`usePartialNode`** helper accepts an optional `NodeReference`. If provided, returns it;
|
|
5
|
+
* otherwise creates a new one via `useNode`. Useful for derived hooks that can optionally
|
|
6
|
+
* accept an existing node reference.
|
|
7
|
+
*
|
|
8
|
+
* @param type The type of node to reference
|
|
9
|
+
* @param node An optional existing `NodeReference` to reuse
|
|
10
|
+
* @returns The provided `NodeReference` or a new one
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // With existing ref
|
|
15
|
+
* const ref = usePartialNode(PrimaryNode.Clickable, existingRef)
|
|
16
|
+
*
|
|
17
|
+
* // Without existing ref (creates new)
|
|
18
|
+
* const ref = usePartialNode(PrimaryNode.Clickable)
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function usePartialNode<T extends PrimaryNode>(type: T, node?: NodeReference<T>): NodeReference<T>;
|
|
22
|
+
//# sourceMappingURL=use-partial-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-partial-node.d.ts","sourceRoot":"","sources":["../../../src/hooks/deriveds/use-partial-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAW,MAAM,gBAAgB,CAAA;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAClD,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GACtB,aAAa,CAAC,CAAC,CAAC,CAGlB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NodeReference, useNode } from '../use-node.js';
|
|
2
|
+
/**
|
|
3
|
+
* The **`usePartialNode`** helper accepts an optional `NodeReference`. If provided, returns it;
|
|
4
|
+
* otherwise creates a new one via `useNode`. Useful for derived hooks that can optionally
|
|
5
|
+
* accept an existing node reference.
|
|
6
|
+
*
|
|
7
|
+
* @param type The type of node to reference
|
|
8
|
+
* @param node An optional existing `NodeReference` to reuse
|
|
9
|
+
* @returns The provided `NodeReference` or a new one
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* // With existing ref
|
|
14
|
+
* const ref = usePartialNode(PrimaryNode.Clickable, existingRef)
|
|
15
|
+
*
|
|
16
|
+
* // Without existing ref (creates new)
|
|
17
|
+
* const ref = usePartialNode(PrimaryNode.Clickable)
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function usePartialNode(type, node) {
|
|
21
|
+
if (node instanceof NodeReference)
|
|
22
|
+
return node;
|
|
23
|
+
return useNode(type);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=use-partial-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-partial-node.js","sourceRoot":"","sources":["../../../src/hooks/deriveds/use-partial-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAO,EACP,IAAuB;IAEvB,IAAI,IAAI,YAAY,aAAa;QAAE,OAAO,IAAI,CAAA;IAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Reactive, type SignalGetter, type SignalGetterLike } from '../../reactivity/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The **`useWhen`** derived hook creates a computed value that toggles between two values
|
|
4
|
+
* based on a boolean signal. Similar to a ternary expression but reactive.
|
|
5
|
+
*
|
|
6
|
+
* @param signal A `SignalGetterLike` that determines which value to return
|
|
7
|
+
* @param whenTrue The value to return when the signal is `true`
|
|
8
|
+
* @param whenFalse The value to return when the signal is `false`
|
|
9
|
+
* @returns A `SignalGetter<T>` that reflects the current value
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const isHovered = useCondition(clickable, 'mouseEntered', 'mouseExited')
|
|
14
|
+
* const brightness = useWhen(isHovered, 1.2, 1.0)
|
|
15
|
+
*
|
|
16
|
+
* return <sprite brightness={brightness} />
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* const isZombieDetected = useCondition(raycast, 'colliderEntered', 'colliderExited')
|
|
22
|
+
* const animName = useWhen(isZombieDetected, 'shoot', 'idle')
|
|
23
|
+
*
|
|
24
|
+
* return <animation-player currentAnim={animName} />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function useWhen<T>(signal: SignalGetterLike<boolean>, whenTrue: Reactive<T>, whenFalse: Reactive<T>): SignalGetter<T>;
|
|
28
|
+
//# sourceMappingURL=use-when.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-when.d.ts","sourceRoot":"","sources":["../../../src/hooks/deriveds/use-when.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAA;AAIlC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,EACjC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GACrB,YAAY,CAAC,CAAC,CAAC,CAOjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { reactive, } from '../../reactivity/index.js';
|
|
2
|
+
import { declareDerivedHook } from '../context';
|
|
3
|
+
import { useComputed } from '../use-computed.js';
|
|
4
|
+
/**
|
|
5
|
+
* The **`useWhen`** derived hook creates a computed value that toggles between two values
|
|
6
|
+
* based on a boolean signal. Similar to a ternary expression but reactive.
|
|
7
|
+
*
|
|
8
|
+
* @param signal A `SignalGetterLike` that determines which value to return
|
|
9
|
+
* @param whenTrue The value to return when the signal is `true`
|
|
10
|
+
* @param whenFalse The value to return when the signal is `false`
|
|
11
|
+
* @returns A `SignalGetter<T>` that reflects the current value
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const isHovered = useCondition(clickable, 'mouseEntered', 'mouseExited')
|
|
16
|
+
* const brightness = useWhen(isHovered, 1.2, 1.0)
|
|
17
|
+
*
|
|
18
|
+
* return <sprite brightness={brightness} />
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const isZombieDetected = useCondition(raycast, 'colliderEntered', 'colliderExited')
|
|
24
|
+
* const animName = useWhen(isZombieDetected, 'shoot', 'idle')
|
|
25
|
+
*
|
|
26
|
+
* return <animation-player currentAnim={animName} />
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function useWhen(signal, whenTrue, whenFalse) {
|
|
30
|
+
declareDerivedHook('useWhen');
|
|
31
|
+
const trueValue = reactive(whenTrue);
|
|
32
|
+
const falseValue = reactive(whenFalse);
|
|
33
|
+
return useComputed(() => (signal() ? trueValue() : falseValue()));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=use-when.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-when.js","sourceRoot":"","sources":["../../../src/hooks/deriveds/use-when.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAIT,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,OAAO,CACrB,MAAiC,EACjC,QAAqB,EACrB,SAAsB;IAEtB,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAE7B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAEtC,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import '../nodes/index.js';
|
|
2
|
+
export { useChild } from './use-child.js';
|
|
3
|
+
export { useEffect } from './use-effect.js';
|
|
4
|
+
export { useEvent } from './use-event.js';
|
|
5
|
+
export { useGame } from './use-game.js';
|
|
6
|
+
export { useMount } from './use-mount.js';
|
|
7
|
+
export { useNode, NodeReference } from './use-node.js';
|
|
8
|
+
export { useRef } from './use-ref.js';
|
|
9
|
+
export { useScript } from './use-script.js';
|
|
10
|
+
export { useSignal } from './use-signal.js';
|
|
11
|
+
export { useComputed } from './use-computed.js';
|
|
12
|
+
export { useSpawn } from './use-spawn.js';
|
|
13
|
+
export { createTrigger, useTrigger, type Trigger } from './use-trigger.js';
|
|
14
|
+
export { createContext, useContext } from './use-context.js';
|
|
15
|
+
export * from './deriveds/index.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE5D,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import '../nodes/index.js';
|
|
2
|
+
export { useChild } from './use-child.js';
|
|
3
|
+
export { useEffect } from './use-effect.js';
|
|
4
|
+
export { useEvent } from './use-event.js';
|
|
5
|
+
export { useGame } from './use-game.js';
|
|
6
|
+
export { useMount } from './use-mount.js';
|
|
7
|
+
export { useNode, NodeReference } from './use-node.js';
|
|
8
|
+
export { useRef } from './use-ref.js';
|
|
9
|
+
export { useScript } from './use-script.js';
|
|
10
|
+
export { useSignal } from './use-signal.js';
|
|
11
|
+
export { useComputed } from './use-computed.js';
|
|
12
|
+
export { useSpawn } from './use-spawn.js';
|
|
13
|
+
export { createTrigger, useTrigger } from './use-trigger.js';
|
|
14
|
+
export { createContext, useContext } from './use-context.js';
|
|
15
|
+
export * from './deriveds/index.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAgB,MAAM,kBAAkB,CAAA;AAE1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE5D,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PrimaryNode } from '../nodes/lib/enum.js';
|
|
2
|
+
import { NodeReference } from './use-node.js';
|
|
3
|
+
/**
|
|
4
|
+
* The **`useChild`** hook gets a reference to a child node by path and type.
|
|
5
|
+
*
|
|
6
|
+
* @param path The path to the child node (array of strings or symbols)
|
|
7
|
+
* @param type The type of the child node to retrieve
|
|
8
|
+
* @returns A `NodeReference` to the child node
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const sprite = useChild(['child1', 'child2'], PrimaryNode.Sprite)
|
|
13
|
+
*
|
|
14
|
+
* return (
|
|
15
|
+
* <transform>
|
|
16
|
+
* <transform id='child1'>
|
|
17
|
+
* <sprite id='child2' />
|
|
18
|
+
* </transform>
|
|
19
|
+
* </transform>
|
|
20
|
+
* )
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function useChild<T extends PrimaryNode>(path: (string | symbol)[], type: T): NodeReference<T>;
|
|
24
|
+
//# sourceMappingURL=use-child.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-child.d.ts","sourceRoot":"","sources":["../../src/hooks/use-child.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC5C,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACzB,IAAI,EAAE,CAAC,GACN,aAAa,CAAC,CAAC,CAAC,CAgBlB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { HookRequiresNodeRootError } from '../errors/hook.js';
|
|
2
|
+
import { pushEffect } from './context.js';
|
|
3
|
+
import { NodeReference } from './use-node.js';
|
|
4
|
+
/**
|
|
5
|
+
* The **`useChild`** hook gets a reference to a child node by path and type.
|
|
6
|
+
*
|
|
7
|
+
* @param path The path to the child node (array of strings or symbols)
|
|
8
|
+
* @param type The type of the child node to retrieve
|
|
9
|
+
* @returns A `NodeReference` to the child node
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const sprite = useChild(['child1', 'child2'], PrimaryNode.Sprite)
|
|
14
|
+
*
|
|
15
|
+
* return (
|
|
16
|
+
* <transform>
|
|
17
|
+
* <transform id='child1'>
|
|
18
|
+
* <sprite id='child2' />
|
|
19
|
+
* </transform>
|
|
20
|
+
* </transform>
|
|
21
|
+
* )
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function useChild(path, type) {
|
|
25
|
+
const nodeRef = new NodeReference(type);
|
|
26
|
+
pushEffect('useChild', (nodes) => {
|
|
27
|
+
if (nodes.length > 1 || nodes.length === 0) {
|
|
28
|
+
throw new HookRequiresNodeRootError('useChild');
|
|
29
|
+
}
|
|
30
|
+
const node = nodes[0];
|
|
31
|
+
node.started.onFirst(() => {
|
|
32
|
+
nodeRef.node = node.child({ path, type });
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return nodeRef;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=use-child.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-child.js","sourceRoot":"","sources":["../../src/hooks/use-child.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAyB,EACzB,IAAO;IAEP,MAAM,OAAO,GAAG,IAAI,aAAa,CAAI,IAAI,CAAC,CAAA;IAE1C,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,yBAAyB,CAAC,UAAU,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QAEtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACxB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type SignalGetter } from '../reactivity/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The **`useComputed`** hook creates a derived signal that automatically updates
|
|
4
|
+
* when any of the dependent signals change. The callback function is re-evaluated
|
|
5
|
+
* whenever a dependency signal's value changes.
|
|
6
|
+
*
|
|
7
|
+
* @param fn The computation function that derives a value from the signal values
|
|
8
|
+
* @returns A getter of the current value of the Signal
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const [x, setX] = useSignal(10)
|
|
13
|
+
* const [y, setY] = useSignal(20)
|
|
14
|
+
*
|
|
15
|
+
* // Automatically recomputes when x or y changes
|
|
16
|
+
* const sum = useComputed(() => x() + y())
|
|
17
|
+
*
|
|
18
|
+
* useEffect(() => {
|
|
19
|
+
* console.log('Sum:', sum()) // 30
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* // Updating a dependency automatically updates the derived signal
|
|
23
|
+
* setX(15)
|
|
24
|
+
* // sum() is now 35
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function useComputed<T>(fn: () => T): SignalGetter<T>;
|
|
28
|
+
//# sourceMappingURL=use-computed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-computed.d.ts","sourceRoot":"","sources":["../../src/hooks/use-computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG/E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAoB3D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Signal, subReactive } from '../reactivity/index.js';
|
|
2
|
+
import { pushEffect } from './context.js';
|
|
3
|
+
/**
|
|
4
|
+
* The **`useComputed`** hook creates a derived signal that automatically updates
|
|
5
|
+
* when any of the dependent signals change. The callback function is re-evaluated
|
|
6
|
+
* whenever a dependency signal's value changes.
|
|
7
|
+
*
|
|
8
|
+
* @param fn The computation function that derives a value from the signal values
|
|
9
|
+
* @returns A getter of the current value of the Signal
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const [x, setX] = useSignal(10)
|
|
14
|
+
* const [y, setY] = useSignal(20)
|
|
15
|
+
*
|
|
16
|
+
* // Automatically recomputes when x or y changes
|
|
17
|
+
* const sum = useComputed(() => x() + y())
|
|
18
|
+
*
|
|
19
|
+
* useEffect(() => {
|
|
20
|
+
* console.log('Sum:', sum()) // 30
|
|
21
|
+
* })
|
|
22
|
+
*
|
|
23
|
+
* // Updating a dependency automatically updates the derived signal
|
|
24
|
+
* setX(15)
|
|
25
|
+
* // sum() is now 35
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useComputed(fn) {
|
|
29
|
+
let unsub;
|
|
30
|
+
pushEffect('useComputed', ([nd]) => {
|
|
31
|
+
if (nd == null)
|
|
32
|
+
return;
|
|
33
|
+
nd.destroyed.on(() => {
|
|
34
|
+
signalComputed.clearSubs();
|
|
35
|
+
unsub();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
const signalComputed = new Signal(subReactive(fn, (val) => (signalComputed.value = val), (fn) => (unsub = fn)));
|
|
39
|
+
return signalComputed.getter;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=use-computed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-computed.js","sourceRoot":"","sources":["../../src/hooks/use-computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,WAAW,CAAI,EAAW;IACxC,IAAI,KAAiB,CAAA;IAErB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,EAAE,IAAI,IAAI;YAAE,OAAM;QACtB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE;YACnB,cAAc,CAAC,SAAS,EAAE,CAAA;YAC1B,KAAK,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,IAAI,MAAM,CAC/B,WAAW,CACT,EAAE,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,GAAG,GAAG,CAAC,EACrC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CACrB,CACF,CAAA;IAED,OAAO,cAAc,CAAC,MAAM,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Dinix } from '../jsx/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The **`createContext`** hook creates a context with a default value.
|
|
4
|
+
* Use the returned context's `Provider` to provide values to descendant nodes.
|
|
5
|
+
*
|
|
6
|
+
* @param defaultValue The default value for the context
|
|
7
|
+
* @returns A `ContextCreated` object with a `Provider` component
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const ThemeCtx = createContext('light')
|
|
12
|
+
*
|
|
13
|
+
* function App() {
|
|
14
|
+
* return (
|
|
15
|
+
* <ThemeCtx.Provider value='dark'>
|
|
16
|
+
* <Child />
|
|
17
|
+
* </ThemeCtx.Provider>
|
|
18
|
+
* )
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* function Child() {
|
|
22
|
+
* const theme = useContext(ThemeCtx)
|
|
23
|
+
* return <text text={theme} />
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function createContext<T>(defaultValue: T): ContextCreated<T>;
|
|
28
|
+
/**
|
|
29
|
+
* The **`useContext`** hook retrieves the value of a context.
|
|
30
|
+
*
|
|
31
|
+
* @param contextCreated The context created with `createContext`
|
|
32
|
+
* @returns The current value of the context, or the default value if no Provider is found
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const ThemeCtx = createContext('light')
|
|
37
|
+
*
|
|
38
|
+
* function Child() {
|
|
39
|
+
* const theme = useContext(ThemeCtx)
|
|
40
|
+
* return <text text={theme} />
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function useContext<T>(contextCreated: ContextCreated<T>): T;
|
|
45
|
+
declare class ContextCreated<T> {
|
|
46
|
+
__id: number;
|
|
47
|
+
defaultValue: T;
|
|
48
|
+
constructor(defaultValue: T);
|
|
49
|
+
Provider: (props: Dinix.WithChildren<{
|
|
50
|
+
value: T;
|
|
51
|
+
}>) => Dinix.Element<any>;
|
|
52
|
+
}
|
|
53
|
+
export interface Context<T> {
|
|
54
|
+
id: number;
|
|
55
|
+
value: T;
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=use-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-context.d.ts","sourceRoot":"","sources":["../../src/hooks/use-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,qBAE/C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAalE;AAED,cAAM,cAAc,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,CAAC,CAAA;gBAEH,YAAY,EAAE,CAAC;IAK3B,QAAQ,GAAI,OAAO,KAAK,CAAC,YAAY,CAAC;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,wBAMlD;CACF;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,CAAC,CAAA;CACT"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Fragment } from '../jsx/components/fragment.js';
|
|
2
|
+
import { currentContext, pushEffect } from './context.js';
|
|
3
|
+
/**
|
|
4
|
+
* The **`createContext`** hook creates a context with a default value.
|
|
5
|
+
* Use the returned context's `Provider` to provide values to descendant nodes.
|
|
6
|
+
*
|
|
7
|
+
* @param defaultValue The default value for the context
|
|
8
|
+
* @returns A `ContextCreated` object with a `Provider` component
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const ThemeCtx = createContext('light')
|
|
13
|
+
*
|
|
14
|
+
* function App() {
|
|
15
|
+
* return (
|
|
16
|
+
* <ThemeCtx.Provider value='dark'>
|
|
17
|
+
* <Child />
|
|
18
|
+
* </ThemeCtx.Provider>
|
|
19
|
+
* )
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* function Child() {
|
|
23
|
+
* const theme = useContext(ThemeCtx)
|
|
24
|
+
* return <text text={theme} />
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function createContext(defaultValue) {
|
|
29
|
+
return new ContextCreated(defaultValue);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The **`useContext`** hook retrieves the value of a context.
|
|
33
|
+
*
|
|
34
|
+
* @param contextCreated The context created with `createContext`
|
|
35
|
+
* @returns The current value of the context, or the default value if no Provider is found
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* const ThemeCtx = createContext('light')
|
|
40
|
+
*
|
|
41
|
+
* function Child() {
|
|
42
|
+
* const theme = useContext(ThemeCtx)
|
|
43
|
+
* return <text text={theme} />
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export function useContext(contextCreated) {
|
|
48
|
+
pushEffect('useContext', () => { });
|
|
49
|
+
let context;
|
|
50
|
+
for (let i = currentContext.length - 1; i >= 0; i--) {
|
|
51
|
+
const ctx = currentContext[i];
|
|
52
|
+
if (ctx.context?.id !== contextCreated.__id)
|
|
53
|
+
continue;
|
|
54
|
+
context = ctx.context.value;
|
|
55
|
+
}
|
|
56
|
+
return context ?? contextCreated.defaultValue;
|
|
57
|
+
}
|
|
58
|
+
class ContextCreated {
|
|
59
|
+
__id;
|
|
60
|
+
defaultValue;
|
|
61
|
+
constructor(defaultValue) {
|
|
62
|
+
this.defaultValue = defaultValue;
|
|
63
|
+
this.__id = genContextId();
|
|
64
|
+
}
|
|
65
|
+
Provider = (props) => {
|
|
66
|
+
const ctx = currentContext.at(-1);
|
|
67
|
+
if (ctx) {
|
|
68
|
+
ctx.context = { id: this.__id, value: props.value };
|
|
69
|
+
}
|
|
70
|
+
return Fragment(props);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
let counter = 0;
|
|
74
|
+
function genContextId() {
|
|
75
|
+
return ++counter;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=use-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-context.js","sourceRoot":"","sources":["../../src/hooks/use-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,aAAa,CAAI,YAAe;IAC9C,OAAO,IAAI,cAAc,CAAI,YAAY,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAI,cAAiC;IAC7D,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAElC,IAAI,OAAsB,CAAA;IAE1B,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAE,CAAA;QAE9B,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,cAAc,CAAC,IAAI;YAAE,SAAQ;QACrD,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;IAC7B,CAAC;IAED,OAAO,OAAO,IAAI,cAAc,CAAC,YAAY,CAAA;AAC/C,CAAC;AAED,MAAM,cAAc;IAClB,IAAI,CAAQ;IACZ,YAAY,CAAG;IAEf,YAAY,YAAe;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,YAAY,EAAE,CAAA;IAC5B,CAAC;IAED,QAAQ,GAAG,CAAC,KAAuC,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAA;QACrD,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,CAAA;CACF;AAOD,IAAI,OAAO,GAAG,CAAC,CAAA;AACf,SAAS,YAAY;IACnB,OAAO,EAAE,OAAO,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The **`useEffect`** hook runs an effect function when the node starts and whenever any of the specified signals change.
|
|
3
|
+
* Effect re-executions are batched — if multiple signals change synchronously,
|
|
4
|
+
* the effect only runs once before the next frame.
|
|
5
|
+
* It also runs cleanup when the node is destroyed.
|
|
6
|
+
*
|
|
7
|
+
* @param fn The effect function. Can return a cleanup function.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const [count, setCount] = useSignal(0)
|
|
12
|
+
*
|
|
13
|
+
* useEffect(() => {
|
|
14
|
+
* console.log('Count changed:', count())
|
|
15
|
+
* return () => {
|
|
16
|
+
* console.log('Cleanup')
|
|
17
|
+
* }
|
|
18
|
+
* })
|
|
19
|
+
*
|
|
20
|
+
* return <transform />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function useEffect(fn: () => void | (() => void)): void;
|
|
24
|
+
//# sourceMappingURL=use-effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-effect.d.ts","sourceRoot":"","sources":["../../src/hooks/use-effect.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CA2C7D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { SignalRegister } from '../reactivity/register.js';
|
|
2
|
+
import { pushEffect } from './context.js';
|
|
3
|
+
/**
|
|
4
|
+
* The **`useEffect`** hook runs an effect function when the node starts and whenever any of the specified signals change.
|
|
5
|
+
* Effect re-executions are batched — if multiple signals change synchronously,
|
|
6
|
+
* the effect only runs once before the next frame.
|
|
7
|
+
* It also runs cleanup when the node is destroyed.
|
|
8
|
+
*
|
|
9
|
+
* @param fn The effect function. Can return a cleanup function.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const [count, setCount] = useSignal(0)
|
|
14
|
+
*
|
|
15
|
+
* useEffect(() => {
|
|
16
|
+
* console.log('Count changed:', count())
|
|
17
|
+
* return () => {
|
|
18
|
+
* console.log('Cleanup')
|
|
19
|
+
* }
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* return <transform />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function useEffect(fn) {
|
|
26
|
+
pushEffect('useEffect', (nodes) => {
|
|
27
|
+
if (nodes.length < 0)
|
|
28
|
+
return;
|
|
29
|
+
const node = nodes[0];
|
|
30
|
+
node.started.on(() => {
|
|
31
|
+
let unmountCurrentEffect = () => { };
|
|
32
|
+
let scheduled = false;
|
|
33
|
+
let cancelled = false;
|
|
34
|
+
const refresh = () => {
|
|
35
|
+
scheduled = false;
|
|
36
|
+
if (cancelled)
|
|
37
|
+
return;
|
|
38
|
+
unmountCurrentEffect();
|
|
39
|
+
let currentSignals = [];
|
|
40
|
+
const unmountWatch = SignalRegister.watch(fn, (signals) => {
|
|
41
|
+
currentSignals = signals;
|
|
42
|
+
currentSignals.forEach((signal) => signal.sub(scheduleRefresh));
|
|
43
|
+
});
|
|
44
|
+
unmountCurrentEffect = () => {
|
|
45
|
+
unmountWatch?.();
|
|
46
|
+
currentSignals.forEach((signal) => signal.unsub(scheduleRefresh));
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
const scheduleRefresh = () => {
|
|
50
|
+
if (scheduled)
|
|
51
|
+
return;
|
|
52
|
+
scheduled = true;
|
|
53
|
+
queueMicrotask(refresh);
|
|
54
|
+
};
|
|
55
|
+
node.destroyed.on(() => {
|
|
56
|
+
cancelled = true;
|
|
57
|
+
unmountCurrentEffect();
|
|
58
|
+
});
|
|
59
|
+
refresh();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=use-effect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-effect.js","sourceRoot":"","sources":["../../src/hooks/use-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,SAAS,CAAC,EAA6B;IACrD,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAM;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QAEtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;YACnB,IAAI,oBAAoB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;YACnC,IAAI,SAAS,GAAG,KAAK,CAAA;YACrB,IAAI,SAAS,GAAG,KAAK,CAAA;YAErB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,SAAS,GAAG,KAAK,CAAA;gBACjB,IAAI,SAAS;oBAAE,OAAM;gBAErB,oBAAoB,EAAE,CAAA;gBAEtB,IAAI,cAAc,GAAkB,EAAE,CAAA;gBAEtC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;oBACxD,cAAc,GAAG,OAAO,CAAA;oBACxB,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;gBACjE,CAAC,CAAC,CAAA;gBAEF,oBAAoB,GAAG,GAAG,EAAE;oBAC1B,YAAY,EAAE,EAAE,CAAA;oBAChB,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;gBACnE,CAAC,CAAA;YACH,CAAC,CAAA;YAED,MAAM,eAAe,GAAG,GAAG,EAAE;gBAC3B,IAAI,SAAS;oBAAE,OAAM;gBACrB,SAAS,GAAG,IAAI,CAAA;gBAChB,cAAc,CAAC,OAAO,CAAC,CAAA;YACzB,CAAC,CAAA;YAED,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE;gBACrB,SAAS,GAAG,IAAI,CAAA;gBAChB,oBAAoB,EAAE,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|