@number10/phaserjsx 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +667 -0
- package/README.md +238 -0
- package/dist/TransformOriginView-BYPbRH8N.cjs +17045 -0
- package/dist/TransformOriginView-BYPbRH8N.cjs.map +1 -0
- package/dist/TransformOriginView-CO-tJCmV.js +17046 -0
- package/dist/TransformOriginView-CO-tJCmV.js.map +1 -0
- package/dist/animation/animated-signal.d.ts +35 -0
- package/dist/animation/animated-signal.d.ts.map +1 -0
- package/dist/animation/index.d.ts +7 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/animation/spring-physics.d.ts +120 -0
- package/dist/animation/spring-physics.d.ts.map +1 -0
- package/dist/animation/useSpring.d.ts +54 -0
- package/dist/animation/useSpring.d.ts.map +1 -0
- package/dist/colors/color-presets.d.ts +89 -0
- package/dist/colors/color-presets.d.ts.map +1 -0
- package/dist/colors/color-theme-helpers.d.ts +65 -0
- package/dist/colors/color-theme-helpers.d.ts.map +1 -0
- package/dist/colors/color-types.d.ts +100 -0
- package/dist/colors/color-types.d.ts.map +1 -0
- package/dist/colors/color-utils.d.ts +171 -0
- package/dist/colors/color-utils.d.ts.map +1 -0
- package/dist/colors/index.d.ts +17 -0
- package/dist/colors/index.d.ts.map +1 -0
- package/dist/colors/preset-manager.d.ts +35 -0
- package/dist/colors/preset-manager.d.ts.map +1 -0
- package/dist/colors/use-color-mode.d.ts +22 -0
- package/dist/colors/use-color-mode.d.ts.map +1 -0
- package/dist/colors/use-colors.d.ts +40 -0
- package/dist/colors/use-colors.d.ts.map +1 -0
- package/dist/components/appliers/applyBackground.d.ts +13 -0
- package/dist/components/appliers/applyBackground.d.ts.map +1 -0
- package/dist/components/appliers/applyGestures.d.ts +12 -0
- package/dist/components/appliers/applyGestures.d.ts.map +1 -0
- package/dist/components/appliers/applyGraphics.d.ts +10 -0
- package/dist/components/appliers/applyGraphics.d.ts.map +1 -0
- package/dist/components/appliers/applyGraphicsLayout.d.ts +10 -0
- package/dist/components/appliers/applyGraphicsLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyImage.d.ts +10 -0
- package/dist/components/appliers/applyImage.d.ts.map +1 -0
- package/dist/components/appliers/applyImageLayout.d.ts +15 -0
- package/dist/components/appliers/applyImageLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyLayout.d.ts +15 -0
- package/dist/components/appliers/applyLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyNineSlice.d.ts +11 -0
- package/dist/components/appliers/applyNineSlice.d.ts.map +1 -0
- package/dist/components/appliers/applyNineSliceLayout.d.ts +15 -0
- package/dist/components/appliers/applyNineSliceLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyPhaser.d.ts +22 -0
- package/dist/components/appliers/applyPhaser.d.ts.map +1 -0
- package/dist/components/appliers/applySprite.d.ts +10 -0
- package/dist/components/appliers/applySprite.d.ts.map +1 -0
- package/dist/components/appliers/applySpriteLayout.d.ts +14 -0
- package/dist/components/appliers/applySpriteLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyText.d.ts +25 -0
- package/dist/components/appliers/applyText.d.ts.map +1 -0
- package/dist/components/appliers/applyTextLayout.d.ts +15 -0
- package/dist/components/appliers/applyTextLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyTooltip.d.ts +12 -0
- package/dist/components/appliers/applyTooltip.d.ts.map +1 -0
- package/dist/components/appliers/applyTransform.d.ts +21 -0
- package/dist/components/appliers/applyTransform.d.ts.map +1 -0
- package/dist/components/creators/createBackground.d.ts +15 -0
- package/dist/components/creators/createBackground.d.ts.map +1 -0
- package/dist/components/creators/createGestures.d.ts +11 -0
- package/dist/components/creators/createGestures.d.ts.map +1 -0
- package/dist/components/creators/createGraphicsLayout.d.ts +9 -0
- package/dist/components/creators/createGraphicsLayout.d.ts.map +1 -0
- package/dist/components/creators/createImageLayout.d.ts +14 -0
- package/dist/components/creators/createImageLayout.d.ts.map +1 -0
- package/dist/components/creators/createLayout.d.ts +15 -0
- package/dist/components/creators/createLayout.d.ts.map +1 -0
- package/dist/components/creators/createNineSliceLayout.d.ts +14 -0
- package/dist/components/creators/createNineSliceLayout.d.ts.map +1 -0
- package/dist/components/creators/createPhaser.d.ts +14 -0
- package/dist/components/creators/createPhaser.d.ts.map +1 -0
- package/dist/components/creators/createSpriteLayout.d.ts +15 -0
- package/dist/components/creators/createSpriteLayout.d.ts.map +1 -0
- package/dist/components/creators/createTextLayout.d.ts +14 -0
- package/dist/components/creators/createTextLayout.d.ts.map +1 -0
- package/dist/components/creators/createTransform.d.ts +11 -0
- package/dist/components/creators/createTransform.d.ts.map +1 -0
- package/dist/components/custom/Accordion.d.ts +34 -0
- package/dist/components/custom/Accordion.d.ts.map +1 -0
- package/dist/components/custom/AlertDialog.d.ts +63 -0
- package/dist/components/custom/AlertDialog.d.ts.map +1 -0
- package/dist/components/custom/Button.d.ts +44 -0
- package/dist/components/custom/Button.d.ts.map +1 -0
- package/dist/components/custom/CharText/CharText.d.ts +8 -0
- package/dist/components/custom/CharText/CharText.d.ts.map +1 -0
- package/dist/components/custom/CharText/index.d.ts +3 -0
- package/dist/components/custom/CharText/index.d.ts.map +1 -0
- package/dist/components/custom/CharText/types.d.ts +117 -0
- package/dist/components/custom/CharText/types.d.ts.map +1 -0
- package/dist/components/custom/CharText/utils.d.ts +34 -0
- package/dist/components/custom/CharText/utils.d.ts.map +1 -0
- package/dist/components/custom/CharTextInput.d.ts +62 -0
- package/dist/components/custom/CharTextInput.d.ts.map +1 -0
- package/dist/components/custom/Dialog.d.ts +60 -0
- package/dist/components/custom/Dialog.d.ts.map +1 -0
- package/dist/components/custom/Divider.d.ts +21 -0
- package/dist/components/custom/Divider.d.ts.map +1 -0
- package/dist/components/custom/Dropdown.d.ts +91 -0
- package/dist/components/custom/Dropdown.d.ts.map +1 -0
- package/dist/components/custom/Icon.d.ts +75 -0
- package/dist/components/custom/Icon.d.ts.map +1 -0
- package/dist/components/custom/Image.d.ts +50 -0
- package/dist/components/custom/Image.d.ts.map +1 -0
- package/dist/components/custom/Modal.d.ts +37 -0
- package/dist/components/custom/Modal.d.ts.map +1 -0
- package/dist/components/custom/NineSlice.d.ts +81 -0
- package/dist/components/custom/NineSlice.d.ts.map +1 -0
- package/dist/components/custom/NineSliceButton.d.ts +128 -0
- package/dist/components/custom/NineSliceButton.d.ts.map +1 -0
- package/dist/components/custom/Portal.d.ts +43 -0
- package/dist/components/custom/Portal.d.ts.map +1 -0
- package/dist/components/custom/Portal.test.d.ts +2 -0
- package/dist/components/custom/Portal.test.d.ts.map +1 -0
- package/dist/components/custom/RadioButton.d.ts +20 -0
- package/dist/components/custom/RadioButton.d.ts.map +1 -0
- package/dist/components/custom/RadioGroup.d.ts +33 -0
- package/dist/components/custom/RadioGroup.d.ts.map +1 -0
- package/dist/components/custom/RefOriginView.d.ts +45 -0
- package/dist/components/custom/RefOriginView.d.ts.map +1 -0
- package/dist/components/custom/ScrollSlider.d.ts +36 -0
- package/dist/components/custom/ScrollSlider.d.ts.map +1 -0
- package/dist/components/custom/ScrollView.d.ts +48 -0
- package/dist/components/custom/ScrollView.d.ts.map +1 -0
- package/dist/components/custom/Sidebar.d.ts +50 -0
- package/dist/components/custom/Sidebar.d.ts.map +1 -0
- package/dist/components/custom/Slider.d.ts +131 -0
- package/dist/components/custom/Slider.d.ts.map +1 -0
- package/dist/components/custom/Text.d.ts +26 -0
- package/dist/components/custom/Text.d.ts.map +1 -0
- package/dist/components/custom/Toggle.d.ts +51 -0
- package/dist/components/custom/Toggle.d.ts.map +1 -0
- package/dist/components/custom/TransformOriginView.d.ts +34 -0
- package/dist/components/custom/TransformOriginView.d.ts.map +1 -0
- package/dist/components/custom/View.d.ts +33 -0
- package/dist/components/custom/View.d.ts.map +1 -0
- package/dist/components/custom/WrapText.d.ts +60 -0
- package/dist/components/custom/WrapText.d.ts.map +1 -0
- package/dist/components/custom/index.cjs +32 -0
- package/dist/components/custom/index.cjs.map +1 -0
- package/dist/components/custom/index.d.ts +29 -0
- package/dist/components/custom/index.d.ts.map +1 -0
- package/dist/components/custom/index.js +32 -0
- package/dist/components/custom/index.js.map +1 -0
- package/dist/components/index.d.ts +28 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/internal/SceneWrapper.d.ts +20 -0
- package/dist/components/internal/SceneWrapper.d.ts.map +1 -0
- package/dist/components/primitives/graphics.d.ts +40 -0
- package/dist/components/primitives/graphics.d.ts.map +1 -0
- package/dist/components/primitives/image.d.ts +45 -0
- package/dist/components/primitives/image.d.ts.map +1 -0
- package/dist/components/primitives/nineslice.d.ts +111 -0
- package/dist/components/primitives/nineslice.d.ts.map +1 -0
- package/dist/components/primitives/sprite.d.ts +58 -0
- package/dist/components/primitives/sprite.d.ts.map +1 -0
- package/dist/components/primitives/text.d.ts +26 -0
- package/dist/components/primitives/text.d.ts.map +1 -0
- package/dist/components/primitives/tilesprite.d.ts +47 -0
- package/dist/components/primitives/tilesprite.d.ts.map +1 -0
- package/dist/components/primitives/view.d.ts +23 -0
- package/dist/components/primitives/view.d.ts.map +1 -0
- package/dist/core-props.d.ts +605 -0
- package/dist/core-props.d.ts.map +1 -0
- package/dist/core-types.d.ts +59 -0
- package/dist/core-types.d.ts.map +1 -0
- package/dist/design-tokens/design-token-presets.d.ts +26 -0
- package/dist/design-tokens/design-token-presets.d.ts.map +1 -0
- package/dist/design-tokens/design-token-types.d.ts +109 -0
- package/dist/design-tokens/design-token-types.d.ts.map +1 -0
- package/dist/design-tokens/index.d.ts +8 -0
- package/dist/design-tokens/index.d.ts.map +1 -0
- package/dist/design-tokens/use-theme-tokens.d.ts +28 -0
- package/dist/design-tokens/use-theme-tokens.d.ts.map +1 -0
- package/dist/dev-config.d.ts +238 -0
- package/dist/dev-config.d.ts.map +1 -0
- package/dist/effects/effect-registry.d.ts +54 -0
- package/dist/effects/effect-registry.d.ts.map +1 -0
- package/dist/effects/index.d.ts +56 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/use-effect.d.ts +172 -0
- package/dist/effects/use-effect.d.ts.map +1 -0
- package/dist/fx/convenience-hooks/index.d.ts +7 -0
- package/dist/fx/convenience-hooks/index.d.ts.map +1 -0
- package/dist/fx/convenience-hooks/use-blur.d.ts +21 -0
- package/dist/fx/convenience-hooks/use-blur.d.ts.map +1 -0
- package/dist/fx/convenience-hooks/use-glow.d.ts +21 -0
- package/dist/fx/convenience-hooks/use-glow.d.ts.map +1 -0
- package/dist/fx/convenience-hooks/use-shadow.d.ts +21 -0
- package/dist/fx/convenience-hooks/use-shadow.d.ts.map +1 -0
- package/dist/fx/fx-creators/blur.d.ts +37 -0
- package/dist/fx/fx-creators/blur.d.ts.map +1 -0
- package/dist/fx/fx-creators/color-matrix.d.ts +31 -0
- package/dist/fx/fx-creators/color-matrix.d.ts.map +1 -0
- package/dist/fx/fx-creators/glow.d.ts +36 -0
- package/dist/fx/fx-creators/glow.d.ts.map +1 -0
- package/dist/fx/fx-creators/index.d.ts +10 -0
- package/dist/fx/fx-creators/index.d.ts.map +1 -0
- package/dist/fx/fx-creators/pixelate.d.ts +24 -0
- package/dist/fx/fx-creators/pixelate.d.ts.map +1 -0
- package/dist/fx/fx-creators/shadow.d.ts +43 -0
- package/dist/fx/fx-creators/shadow.d.ts.map +1 -0
- package/dist/fx/fx-creators/vignette.d.ts +33 -0
- package/dist/fx/fx-creators/vignette.d.ts.map +1 -0
- package/dist/fx/fx-registry.d.ts +59 -0
- package/dist/fx/fx-registry.d.ts.map +1 -0
- package/dist/fx/index.d.ts +51 -0
- package/dist/fx/index.d.ts.map +1 -0
- package/dist/fx/use-fx.d.ts +53 -0
- package/dist/fx/use-fx.d.ts.map +1 -0
- package/dist/gestures/gesture-manager.d.ts +149 -0
- package/dist/gestures/gesture-manager.d.ts.map +1 -0
- package/dist/gestures/gesture-types.d.ts +229 -0
- package/dist/gestures/gesture-types.d.ts.map +1 -0
- package/dist/hooks-svg.d.ts +104 -0
- package/dist/hooks-svg.d.ts.map +1 -0
- package/dist/hooks.d.ts +135 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/host.d.ts +74 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/index.cjs +584 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +582 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx-dev-runtime.cjs +10 -0
- package/dist/jsx-dev-runtime.cjs.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +5 -0
- package/dist/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.js +11 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime.cjs +43 -0
- package/dist/jsx-runtime.cjs.map +1 -0
- package/dist/jsx-runtime.d.ts +25 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +43 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/jsx-types.d.ts +33 -0
- package/dist/jsx-types.d.ts.map +1 -0
- package/dist/layout/appliers/background-applier.d.ts +16 -0
- package/dist/layout/appliers/background-applier.d.ts.map +1 -0
- package/dist/layout/appliers/container-applier.d.ts +9 -0
- package/dist/layout/appliers/container-applier.d.ts.map +1 -0
- package/dist/layout/appliers/position-applier.d.ts +8 -0
- package/dist/layout/appliers/position-applier.d.ts.map +1 -0
- package/dist/layout/index.d.ts +22 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/layout-engine-test-utils.d.ts +19 -0
- package/dist/layout/layout-engine-test-utils.d.ts.map +1 -0
- package/dist/layout/layout-engine.d.ts +98 -0
- package/dist/layout/layout-engine.d.ts.map +1 -0
- package/dist/layout/strategies/base-strategy.d.ts +59 -0
- package/dist/layout/strategies/base-strategy.d.ts.map +1 -0
- package/dist/layout/strategies/column-layout.d.ts +38 -0
- package/dist/layout/strategies/column-layout.d.ts.map +1 -0
- package/dist/layout/strategies/row-layout.d.ts +38 -0
- package/dist/layout/strategies/row-layout.d.ts.map +1 -0
- package/dist/layout/strategies/stack-layout.d.ts +30 -0
- package/dist/layout/strategies/stack-layout.d.ts.map +1 -0
- package/dist/layout/types.d.ts +137 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/utils/child-utils.d.ts +74 -0
- package/dist/layout/utils/child-utils.d.ts.map +1 -0
- package/dist/layout/utils/dimension-calculator.d.ts +59 -0
- package/dist/layout/utils/dimension-calculator.d.ts.map +1 -0
- package/dist/layout/utils/flex-distributor.d.ts +18 -0
- package/dist/layout/utils/flex-distributor.d.ts.map +1 -0
- package/dist/layout/utils/size-resolver.d.ts +84 -0
- package/dist/layout/utils/size-resolver.d.ts.map +1 -0
- package/dist/layout/utils/spacing-calculator.d.ts +27 -0
- package/dist/layout/utils/spacing-calculator.d.ts.map +1 -0
- package/dist/memo.d.ts +29 -0
- package/dist/memo.d.ts.map +1 -0
- package/dist/portal/index.d.ts +6 -0
- package/dist/portal/index.d.ts.map +1 -0
- package/dist/portal/portal-registry.d.ts +97 -0
- package/dist/portal/portal-registry.d.ts.map +1 -0
- package/dist/portal/portal-types.d.ts +20 -0
- package/dist/portal/portal-types.d.ts.map +1 -0
- package/dist/render-context.d.ts +118 -0
- package/dist/render-context.d.ts.map +1 -0
- package/dist/scripts/generate-icon-loaders.d.ts +2 -0
- package/dist/scripts/generate-icon-loaders.d.ts.map +1 -0
- package/dist/scripts/generate-icon-loaders.js +195 -0
- package/dist/scripts/generate-icon-types.d.ts +2 -0
- package/dist/scripts/generate-icon-types.d.ts.map +1 -0
- package/dist/scripts/generate-icon-types.js +124 -0
- package/dist/scripts/generate-icons.d.ts +37 -0
- package/dist/scripts/generate-icons.d.ts.map +1 -0
- package/dist/scripts/generate-icons.js +494 -0
- package/dist/scripts/icon-generator-config.d.ts +87 -0
- package/dist/scripts/icon-generator-config.d.ts.map +1 -0
- package/dist/scripts/icon-generator-config.js +6 -0
- package/dist/theme-base.d.ts +116 -0
- package/dist/theme-base.d.ts.map +1 -0
- package/dist/theme-custom.d.ts +262 -0
- package/dist/theme-custom.d.ts.map +1 -0
- package/dist/theme-defaults.d.ts +6 -0
- package/dist/theme-defaults.d.ts.map +1 -0
- package/dist/theme.d.ts +132 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/tooltip/tooltip-types.d.ts +57 -0
- package/dist/tooltip/tooltip-types.d.ts.map +1 -0
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/KeyboardInputManager.d.ts +48 -0
- package/dist/utils/KeyboardInputManager.d.ts.map +1 -0
- package/dist/utils/dom-input-manager.d.ts +109 -0
- package/dist/utils/dom-input-manager.d.ts.map +1 -0
- package/dist/utils/svg-texture.d.ts +30 -0
- package/dist/utils/svg-texture.d.ts.map +1 -0
- package/dist/utils/texture-registry.d.ts +49 -0
- package/dist/utils/texture-registry.d.ts.map +1 -0
- package/dist/vdom.d.ts +60 -0
- package/dist/vdom.d.ts.map +1 -0
- package/dist/viewport-context.d.ts +39 -0
- package/dist/viewport-context.d.ts.map +1 -0
- package/dist/vite-plugin-icons.d.ts +29 -0
- package/dist/vite-plugin-icons.d.ts.map +1 -0
- package/dist/vite-plugin-icons.js +95 -0
- package/package.json +117 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ref object type
|
|
3
|
+
*/
|
|
4
|
+
type RefObject<T> = {
|
|
5
|
+
current: T | null;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* FX configuration base type
|
|
9
|
+
*/
|
|
10
|
+
export interface FXConfig {
|
|
11
|
+
intensity?: number;
|
|
12
|
+
quality?: number;
|
|
13
|
+
onComplete?: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* FX type discriminator (postFX vs preFX)
|
|
17
|
+
*/
|
|
18
|
+
export type FXType = 'post' | 'pre';
|
|
19
|
+
/**
|
|
20
|
+
* GameObject with FX pipeline support
|
|
21
|
+
*/
|
|
22
|
+
export type FXCapableGameObject = Phaser.GameObjects.Image | Phaser.GameObjects.Sprite | Phaser.GameObjects.Container | Phaser.GameObjects.Text | Phaser.GameObjects.TileSprite | Phaser.GameObjects.NineSlice | Phaser.GameObjects.RenderTexture | Phaser.GameObjects.Video;
|
|
23
|
+
/**
|
|
24
|
+
* FX creator function signature
|
|
25
|
+
* @param obj - GameObject with FX pipeline
|
|
26
|
+
* @param config - Effect-specific configuration
|
|
27
|
+
* @param type - 'post' or 'pre' FX pipeline
|
|
28
|
+
* @returns Cleanup function or FX controller (or any Phaser.FX effect)
|
|
29
|
+
*/
|
|
30
|
+
export type FXCreatorFn<TConfig extends FXConfig = FXConfig> = (obj: FXCapableGameObject, config: TConfig, type?: FXType) => (() => void) | Phaser.FX.Controller | any | null;
|
|
31
|
+
/**
|
|
32
|
+
* Hook for applying FX to GameObject
|
|
33
|
+
* @param ref - Ref to GameObject
|
|
34
|
+
* @returns Object with applyFX and clearFX methods
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* const ref = useRef(null)
|
|
39
|
+
* const { applyFX, clearFX } = useFX(ref)
|
|
40
|
+
*
|
|
41
|
+
* const handleClick = () => {
|
|
42
|
+
* applyFX(createShadowFX, { offsetX: 4, offsetY: 4, blur: 8 })
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* return <View ref={ref} onClick={handleClick}>Click me</View>
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function useFX<T extends FXCapableGameObject>(ref: RefObject<T>): {
|
|
49
|
+
applyFX: <TConfig extends FXConfig>(fxCreator: FXCreatorFn<TConfig>, config: TConfig, type?: FXType) => void;
|
|
50
|
+
clearFX: () => void;
|
|
51
|
+
};
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=use-fx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-fx.d.ts","sourceRoot":"","sources":["../../src/fx/use-fx.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,KAAK,SAAS,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,CAAA;AAEzC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAEnC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,CAAC,WAAW,CAAC,KAAK,GACxB,MAAM,CAAC,WAAW,CAAC,MAAM,GACzB,MAAM,CAAC,WAAW,CAAC,SAAS,GAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,GACvB,MAAM,CAAC,WAAW,CAAC,UAAU,GAC7B,MAAM,CAAC,WAAW,CAAC,SAAS,GAC5B,MAAM,CAAC,WAAW,CAAC,aAAa,GAChC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAC7D,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,KAEV,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAA;AAErD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;cAiBnD,OAAO,SAAS,QAAQ,aAC5B,WAAW,CAAC,OAAO,CAAC,UACvB,OAAO,SACT,MAAM;;EAmCf"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { default as Phaser } from 'phaser';
|
|
2
|
+
import { GestureCallbacks, GestureConfig } from './gesture-types';
|
|
3
|
+
/**
|
|
4
|
+
* Generate unique mount root ID for mountJSX isolation
|
|
5
|
+
* @returns Unique root ID
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateMountRootId(): number;
|
|
8
|
+
/**
|
|
9
|
+
* Manager for gesture detection across all containers in a scene
|
|
10
|
+
* Singleton per scene, stored in scene.data
|
|
11
|
+
*/
|
|
12
|
+
export declare class GestureManager {
|
|
13
|
+
private scene;
|
|
14
|
+
private containers;
|
|
15
|
+
private lastPointerPositions;
|
|
16
|
+
private activePointerDown;
|
|
17
|
+
private activeContainersForMove;
|
|
18
|
+
private hoveredContainers;
|
|
19
|
+
private pendingTimeouts;
|
|
20
|
+
private isInitialized;
|
|
21
|
+
private isDestroyed;
|
|
22
|
+
constructor(scene: Phaser.Scene);
|
|
23
|
+
/**
|
|
24
|
+
* Initialize global event listeners (called once per scene)
|
|
25
|
+
*/
|
|
26
|
+
private initialize;
|
|
27
|
+
/**
|
|
28
|
+
* Register a container for gesture tracking
|
|
29
|
+
* @param container - Container to track
|
|
30
|
+
* @param callbacks - Gesture event callbacks
|
|
31
|
+
* @param hitArea - Interactive hit area
|
|
32
|
+
* @param config - Gesture configuration
|
|
33
|
+
*/
|
|
34
|
+
registerContainer(container: Phaser.GameObjects.Container, callbacks: GestureCallbacks, hitArea: Phaser.Geom.Rectangle, config?: GestureConfig): void;
|
|
35
|
+
/**
|
|
36
|
+
* Unregister a container
|
|
37
|
+
* @param container - Container to remove
|
|
38
|
+
*/
|
|
39
|
+
unregisterContainer(container: Phaser.GameObjects.Container): void;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a container is registered
|
|
42
|
+
* @param container - Container to check
|
|
43
|
+
* @returns True if container is registered
|
|
44
|
+
*/
|
|
45
|
+
hasContainer(container: Phaser.GameObjects.Container): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Create a gesture event data object with propagation control
|
|
48
|
+
* @param pointer - Phaser pointer
|
|
49
|
+
* @param localX - Local X coordinate
|
|
50
|
+
* @param localY - Local Y coordinate
|
|
51
|
+
* @param width - Hit area width
|
|
52
|
+
* @param height - Hit area height
|
|
53
|
+
* @param options - Optional additional data (dx, dy, isInside, state)
|
|
54
|
+
* @returns Event data with stopPropagation support
|
|
55
|
+
*/
|
|
56
|
+
private createEventData;
|
|
57
|
+
/**
|
|
58
|
+
* Get effective depth considering entire parent hierarchy
|
|
59
|
+
* @param container - Container to calculate depth for
|
|
60
|
+
* @returns Accumulated depth from container and all parents
|
|
61
|
+
*/
|
|
62
|
+
private getEffectiveDepth;
|
|
63
|
+
/**
|
|
64
|
+
* Get mount root ID from container hierarchy
|
|
65
|
+
* Walks up to find the topmost container with __mountRootId
|
|
66
|
+
* @param container - Container to check
|
|
67
|
+
* @returns Mount root ID or 0 if none found
|
|
68
|
+
*/
|
|
69
|
+
private getRootId;
|
|
70
|
+
/**
|
|
71
|
+
* Bubble an event through overlapping containers
|
|
72
|
+
* Iterates all containers at pointer position and calls handler until stopPropagation
|
|
73
|
+
* Sorts containers by their actual display list order (z-index) to respect visual stacking
|
|
74
|
+
* @param pointer - The pointer that triggered the event
|
|
75
|
+
* @param eventType - Type of event for filtering callbacks
|
|
76
|
+
* @param handler - Function to call for each container, returns true if propagation stopped
|
|
77
|
+
* @param filterSet - Optional set of containers to limit bubbling to (for move events)
|
|
78
|
+
* @param skipContainerCheck - Skip the isPointerInContainer check (for final move events)
|
|
79
|
+
*/
|
|
80
|
+
private bubbleEvent;
|
|
81
|
+
/**
|
|
82
|
+
* Update hit area for a container
|
|
83
|
+
* @param container - Container to update
|
|
84
|
+
* @param hitArea - New hit area
|
|
85
|
+
*/
|
|
86
|
+
updateHitArea(container: Phaser.GameObjects.Container, hitArea: Phaser.Geom.Rectangle): void;
|
|
87
|
+
/**
|
|
88
|
+
* Update callbacks for a container
|
|
89
|
+
* @param container - Container to update
|
|
90
|
+
* @param callbacks - New callbacks
|
|
91
|
+
*/
|
|
92
|
+
updateCallbacks(container: Phaser.GameObjects.Container, callbacks: GestureCallbacks): void;
|
|
93
|
+
/**
|
|
94
|
+
* Handle global pointer down event
|
|
95
|
+
* Registers all containers that were hit for move event tracking
|
|
96
|
+
* Only the topmost gets touch/longpress callbacks
|
|
97
|
+
*/
|
|
98
|
+
private handlePointerDown;
|
|
99
|
+
/**
|
|
100
|
+
* Handle global pointer up event
|
|
101
|
+
*/
|
|
102
|
+
private handlePointerUp;
|
|
103
|
+
/**
|
|
104
|
+
* Handle pointer up outside canvas (global window events)
|
|
105
|
+
* Ensures touch move 'end' state is sent even when pointer released outside
|
|
106
|
+
* Also handles onTouchOutside for ALL containers
|
|
107
|
+
*/
|
|
108
|
+
private handleGlobalPointerUp;
|
|
109
|
+
/**
|
|
110
|
+
* Handle global pointer move event
|
|
111
|
+
* Detects hover state changes and notifies containers with onHoverStart/onHoverEnd
|
|
112
|
+
* Only notifies containers that were hit during pointer down for onTouchMove
|
|
113
|
+
* Bubbles through them until stopPropagation() is called
|
|
114
|
+
*/
|
|
115
|
+
private handlePointerMove;
|
|
116
|
+
/**
|
|
117
|
+
* Check if pointer is within a container's hit area
|
|
118
|
+
* Also checks parent visibility chain to handle collapsed accordions
|
|
119
|
+
*/
|
|
120
|
+
private isPointerInContainer;
|
|
121
|
+
/**
|
|
122
|
+
* Convert global pointer position to container local coordinates
|
|
123
|
+
*/
|
|
124
|
+
private getLocalPosition;
|
|
125
|
+
/**
|
|
126
|
+
* Detect hover state changes for all containers (desktop/mouse only)
|
|
127
|
+
* Called on every pointer move to update hover state
|
|
128
|
+
*/
|
|
129
|
+
private detectHoverChanges;
|
|
130
|
+
/**
|
|
131
|
+
* Create hover event data
|
|
132
|
+
*/
|
|
133
|
+
private createHoverEventData;
|
|
134
|
+
/**
|
|
135
|
+
* Handle mouse wheel event
|
|
136
|
+
* Bubbles to all containers under the pointer
|
|
137
|
+
*/
|
|
138
|
+
private handleWheel;
|
|
139
|
+
/**
|
|
140
|
+
* Cleanup all resources
|
|
141
|
+
*/
|
|
142
|
+
private destroy;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get or create GestureManager for a scene
|
|
146
|
+
* Stored in scene.data to ensure singleton per scene
|
|
147
|
+
*/
|
|
148
|
+
export declare function getGestureManager(scene: Phaser.Scene): GestureManager;
|
|
149
|
+
//# sourceMappingURL=gesture-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gesture-manager.d.ts","sourceRoot":"","sources":["../../src/gestures/gesture-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EAKd,MAAM,iBAAiB,CAAA;AAMxB;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAiE;IAGnF,OAAO,CAAC,oBAAoB,CAA8C;IAG1E,OAAO,CAAC,iBAAiB,CAKV;IAGf,OAAO,CAAC,uBAAuB,CAAuD;IAGtF,OAAO,CAAC,iBAAiB,CAAmD;IAG5E,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAQ;gBAEf,KAAK,EAAE,MAAM,CAAC,KAAK;IAI/B;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;;;;;OAMG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EACvC,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAC9B,MAAM,GAAE,aAAkB,GACzB,IAAI;IAkBP;;;OAGG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI;IAoBlE;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO;IAI9D;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAejB;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAkEnB;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI;IAO5F;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAO3F;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAwGzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsIvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA+G7B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAyFzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAyGnB;;OAEG;IACH,OAAO,CAAC,OAAO;CA2ChB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,cAAc,CAerE"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { default as Phaser } from 'phaser';
|
|
2
|
+
/**
|
|
3
|
+
* Touch move gesture state
|
|
4
|
+
*/
|
|
5
|
+
export type TouchMoveState = 'start' | 'move' | 'end';
|
|
6
|
+
/**
|
|
7
|
+
* Data passed to keyboard event handlers
|
|
8
|
+
*/
|
|
9
|
+
export interface KeyboardEventData {
|
|
10
|
+
/** The original DOM keyboard event */
|
|
11
|
+
event: KeyboardEvent;
|
|
12
|
+
/** The key value of the key represented by the event */
|
|
13
|
+
key: string;
|
|
14
|
+
/** The code value of the physical key */
|
|
15
|
+
code: string;
|
|
16
|
+
/** Whether the Alt key was pressed */
|
|
17
|
+
altKey: boolean;
|
|
18
|
+
/** Whether the Ctrl key was pressed */
|
|
19
|
+
ctrlKey: boolean;
|
|
20
|
+
/** Whether the Shift key was pressed */
|
|
21
|
+
shiftKey: boolean;
|
|
22
|
+
/** Whether the Meta key (Cmd/Win) was pressed */
|
|
23
|
+
metaKey: boolean;
|
|
24
|
+
/** Whether this is a repeat event (key held down) */
|
|
25
|
+
repeat: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Prevent default browser behavior
|
|
28
|
+
*/
|
|
29
|
+
preventDefault(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Stop event propagation
|
|
32
|
+
*/
|
|
33
|
+
stopPropagation(): void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Data passed to input event handlers
|
|
37
|
+
*/
|
|
38
|
+
export interface InputEventData {
|
|
39
|
+
/** The current value of the input */
|
|
40
|
+
value: string;
|
|
41
|
+
/** The original DOM input event */
|
|
42
|
+
event: Event;
|
|
43
|
+
/**
|
|
44
|
+
* Prevent default browser behavior
|
|
45
|
+
*/
|
|
46
|
+
preventDefault(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Stop event propagation
|
|
49
|
+
*/
|
|
50
|
+
stopPropagation(): void;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Data passed to focus/blur event handlers
|
|
54
|
+
*/
|
|
55
|
+
export interface FocusEventData {
|
|
56
|
+
/** The original DOM focus event */
|
|
57
|
+
event: FocusEvent;
|
|
58
|
+
/**
|
|
59
|
+
* Prevent default browser behavior
|
|
60
|
+
*/
|
|
61
|
+
preventDefault(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Stop event propagation
|
|
64
|
+
*/
|
|
65
|
+
stopPropagation(): void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Data passed to hover event handlers (desktop/mouse only)
|
|
69
|
+
*/
|
|
70
|
+
export interface HoverEventData {
|
|
71
|
+
/** The Phaser pointer that triggered the event */
|
|
72
|
+
pointer: Phaser.Input.Pointer;
|
|
73
|
+
/** Local X coordinate relative to container origin (0,0) */
|
|
74
|
+
localX: number;
|
|
75
|
+
/** Local Y coordinate relative to container origin (0,0) */
|
|
76
|
+
localY: number;
|
|
77
|
+
/** Width of the container's hit area */
|
|
78
|
+
width: number;
|
|
79
|
+
/** Height of the container's hit area */
|
|
80
|
+
height: number;
|
|
81
|
+
/**
|
|
82
|
+
* Stop event propagation to parent containers
|
|
83
|
+
*/
|
|
84
|
+
stopPropagation(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Check if propagation has been stopped
|
|
87
|
+
* @returns true if stopPropagation() was called
|
|
88
|
+
*/
|
|
89
|
+
isPropagationStopped(): boolean;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Data passed to wheel event handlers (desktop/mouse only)
|
|
93
|
+
*/
|
|
94
|
+
export interface WheelEventData {
|
|
95
|
+
/** The Phaser pointer at the time of the wheel event */
|
|
96
|
+
pointer: Phaser.Input.Pointer;
|
|
97
|
+
/** Local X coordinate relative to container origin (0,0) */
|
|
98
|
+
localX: number;
|
|
99
|
+
/** Local Y coordinate relative to container origin (0,0) */
|
|
100
|
+
localY: number;
|
|
101
|
+
/** Wheel scroll delta X (horizontal scrolling) */
|
|
102
|
+
deltaX: number;
|
|
103
|
+
/** Wheel scroll delta Y (vertical scrolling) */
|
|
104
|
+
deltaY: number;
|
|
105
|
+
/** Wheel scroll delta Z (some mice) */
|
|
106
|
+
deltaZ: number;
|
|
107
|
+
/** Delta mode: 0 = pixels, 1 = lines, 2 = pages */
|
|
108
|
+
deltaMode: number;
|
|
109
|
+
/** Width of the container's hit area */
|
|
110
|
+
width: number;
|
|
111
|
+
/** Height of the container's hit area */
|
|
112
|
+
height: number;
|
|
113
|
+
/** Original DOM wheel event */
|
|
114
|
+
originalEvent: WheelEvent;
|
|
115
|
+
/**
|
|
116
|
+
* Stop event propagation to parent containers
|
|
117
|
+
*/
|
|
118
|
+
stopPropagation(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Check if propagation has been stopped
|
|
121
|
+
* @returns true if stopPropagation() was called
|
|
122
|
+
*/
|
|
123
|
+
isPropagationStopped(): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Prevent default browser behavior (e.g., page scroll)
|
|
126
|
+
*/
|
|
127
|
+
preventDefault(): void;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Data passed to gesture event handlers
|
|
131
|
+
* Supports DOM-style event propagation control
|
|
132
|
+
*/
|
|
133
|
+
export interface GestureEventData {
|
|
134
|
+
/** The Phaser pointer that triggered the event */
|
|
135
|
+
pointer: Phaser.Input.Pointer;
|
|
136
|
+
/** Local X coordinate relative to container origin (0,0) */
|
|
137
|
+
localX: number;
|
|
138
|
+
/** Local Y coordinate relative to container origin (0,0) */
|
|
139
|
+
localY: number;
|
|
140
|
+
/** Delta X since last move event (only for onTouchMove) */
|
|
141
|
+
dx?: number;
|
|
142
|
+
/** Delta Y since last move event (only for onTouchMove) */
|
|
143
|
+
dy?: number;
|
|
144
|
+
/** Width of the container's hit area */
|
|
145
|
+
width: number;
|
|
146
|
+
/** Height of the container's hit area */
|
|
147
|
+
height: number;
|
|
148
|
+
/** Whether pointer is currently inside the container hit area */
|
|
149
|
+
isInside?: boolean;
|
|
150
|
+
/** Current state of touch move gesture: 'start' (first move), 'move' (during), 'end' (pointer up) (only for onTouchMove) */
|
|
151
|
+
state?: TouchMoveState;
|
|
152
|
+
/**
|
|
153
|
+
* Stop event propagation to parent containers
|
|
154
|
+
* Similar to DOM's event.stopPropagation()
|
|
155
|
+
* Default behavior: events bubble up to parent containers
|
|
156
|
+
*/
|
|
157
|
+
stopPropagation(): void;
|
|
158
|
+
/**
|
|
159
|
+
* Check if propagation has been stopped
|
|
160
|
+
* @returns true if stopPropagation() was called
|
|
161
|
+
*/
|
|
162
|
+
isPropagationStopped(): boolean;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Callback functions for gesture events
|
|
166
|
+
*/
|
|
167
|
+
export interface GestureCallbacks {
|
|
168
|
+
/** Called on pointer down + up on the same target (click/tap) */
|
|
169
|
+
onTouch?: (data: GestureEventData) => void;
|
|
170
|
+
/** Called when pointer up occurs outside the container (for click-outside detection) */
|
|
171
|
+
onTouchOutside?: (data: GestureEventData) => void;
|
|
172
|
+
/** Called during pointer movement - continues even when outside bounds */
|
|
173
|
+
onTouchMove?: (data: GestureEventData) => void;
|
|
174
|
+
/** Called when double tap/click is detected */
|
|
175
|
+
onDoubleTap?: (data: GestureEventData) => void;
|
|
176
|
+
/** Called when pointer is held down for configured duration */
|
|
177
|
+
onLongPress?: (data: GestureEventData) => void;
|
|
178
|
+
/** Called when a key is pressed down */
|
|
179
|
+
onKeyDown?: (data: KeyboardEventData) => void;
|
|
180
|
+
/** Called when a key is released */
|
|
181
|
+
onKeyUp?: (data: KeyboardEventData) => void;
|
|
182
|
+
/** Called when input value changes */
|
|
183
|
+
onInput?: (data: InputEventData) => void;
|
|
184
|
+
/** Called when element receives focus */
|
|
185
|
+
onFocus?: (data: FocusEventData) => void;
|
|
186
|
+
/** Called when element loses focus */
|
|
187
|
+
onBlur?: (data: FocusEventData) => void;
|
|
188
|
+
/** Called when pointer enters the container (desktop/mouse only) */
|
|
189
|
+
onHoverStart?: (data: HoverEventData) => void;
|
|
190
|
+
/** Called when pointer exits the container (desktop/mouse only) */
|
|
191
|
+
onHoverEnd?: (data: HoverEventData) => void;
|
|
192
|
+
/** Called when mouse wheel is scrolled over container (desktop/mouse only) */
|
|
193
|
+
onWheel?: (data: WheelEventData) => void;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Configuration for gesture detection
|
|
197
|
+
*/
|
|
198
|
+
export interface GestureConfig {
|
|
199
|
+
/** Duration in ms to trigger long press (default: 500) */
|
|
200
|
+
longPressDuration?: number;
|
|
201
|
+
/** Max time in ms between taps for double tap (default: 300) */
|
|
202
|
+
doubleTapDelay?: number;
|
|
203
|
+
/** Max time in ms for a valid touch/click (prevents delayed touch after long hold) (default: 500) */
|
|
204
|
+
maxTouchDuration?: number;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Default gesture configuration values
|
|
208
|
+
*/
|
|
209
|
+
export declare const DEFAULT_GESTURE_CONFIG: Required<GestureConfig>;
|
|
210
|
+
/**
|
|
211
|
+
* Internal state for tracking a registered container
|
|
212
|
+
*/
|
|
213
|
+
export interface GestureContainerState {
|
|
214
|
+
container: Phaser.GameObjects.Container;
|
|
215
|
+
callbacks: GestureCallbacks;
|
|
216
|
+
config: Required<GestureConfig>;
|
|
217
|
+
hitArea: Phaser.Geom.Rectangle;
|
|
218
|
+
mountRootId?: number | undefined;
|
|
219
|
+
lastTapTime?: number | undefined;
|
|
220
|
+
longPressTimer?: NodeJS.Timeout | undefined;
|
|
221
|
+
pointerDownPosition?: {
|
|
222
|
+
x: number;
|
|
223
|
+
y: number;
|
|
224
|
+
} | undefined;
|
|
225
|
+
pointerDownTime?: number | undefined;
|
|
226
|
+
longPressTriggered?: boolean | undefined;
|
|
227
|
+
isFirstMove?: boolean | undefined;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=gesture-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gesture-types.d.ts","sourceRoot":"","sources":["../../src/gestures/gesture-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { default as Phaser } from 'phaser';
|
|
2
|
+
/**
|
|
3
|
+
* SVG texture configuration for loading
|
|
4
|
+
*/
|
|
5
|
+
export interface SVGTextureConfig {
|
|
6
|
+
key: string;
|
|
7
|
+
svg: string;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Manually release a global SVG texture from memory
|
|
13
|
+
* Only call this if you're sure no component needs the texture anymore
|
|
14
|
+
*
|
|
15
|
+
* @param key - The texture key to release
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* // In a Phaser scene
|
|
19
|
+
* import { releaseSVGTexture } from '@number10/phaserjsx'
|
|
20
|
+
*
|
|
21
|
+
* // When changing levels or cleaning up
|
|
22
|
+
* releaseSVGTexture('icon-bell')
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function releaseSVGTexture(scene: Phaser.Scene, key: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Manually release multiple global SVG textures from memory
|
|
28
|
+
* Only call this if you're sure no component needs these textures anymore
|
|
29
|
+
*
|
|
30
|
+
* @param keys - Array of texture keys to release
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* // In a Phaser scene
|
|
34
|
+
* import { releaseSVGTextures } from '@number10/phaserjsx'
|
|
35
|
+
*
|
|
36
|
+
* // Clean up all icon textures when changing scenes
|
|
37
|
+
* releaseSVGTextures(['icon-bell', 'icon-settings', 'icon-user'])
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function releaseSVGTextures(scene: Phaser.Scene, keys: string[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* Manually release ALL global SVG textures from memory
|
|
43
|
+
* Use with caution - this clears all textures managed by the texture registry
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // In a Phaser scene shutdown or cleanup
|
|
48
|
+
* import { releaseAllSVGTextures } from '@number10/phaserjsx'
|
|
49
|
+
*
|
|
50
|
+
* // When changing to a different scene or restarting
|
|
51
|
+
* releaseAllSVGTextures()
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function releaseAllSVGTextures(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Hook to load a single SVG as a Phaser texture
|
|
57
|
+
*
|
|
58
|
+
* Automatically handles:
|
|
59
|
+
* - Scene detection from component context
|
|
60
|
+
* - Texture loading and registration
|
|
61
|
+
* - Cleanup on unmount (removes texture from Phaser)
|
|
62
|
+
*
|
|
63
|
+
* @param key - Unique texture key
|
|
64
|
+
* @param svg - SVG string or URL
|
|
65
|
+
* @param width - Texture width in pixels (default: 32)
|
|
66
|
+
* @param height - Texture height in pixels (default: 32)
|
|
67
|
+
* @returns true when texture is loaded and ready to use
|
|
68
|
+
* @example
|
|
69
|
+
* ```tsx
|
|
70
|
+
* function MyIcon() {
|
|
71
|
+
* const ready = useSVGTexture('icon-bell', bellIconSvg, 32, 32)
|
|
72
|
+
* return ready ? <Image texture="icon-bell" /> : null
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function useSVGTexture(key: string, svg: string, width?: number, height?: number): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Hook to load multiple SVG textures
|
|
79
|
+
*
|
|
80
|
+
* Automatically handles:
|
|
81
|
+
* - Scene detection from component context
|
|
82
|
+
* - Parallel texture loading
|
|
83
|
+
* - Cleanup on unmount (removes all textures from Phaser)
|
|
84
|
+
*
|
|
85
|
+
* @param configs - Array of SVG texture configurations
|
|
86
|
+
* @returns true when all textures are loaded and ready to use
|
|
87
|
+
* @example
|
|
88
|
+
* ```tsx
|
|
89
|
+
* function MyIcons() {
|
|
90
|
+
* const ready = useSVGTextures([
|
|
91
|
+
* { key: 'icon-bell', svg: bellSvg, width: 32, height: 32 },
|
|
92
|
+
* { key: 'icon-settings', svg: settingsSvg, width: 24 },
|
|
93
|
+
* ])
|
|
94
|
+
* return ready ? (
|
|
95
|
+
* <>
|
|
96
|
+
* <Image texture="icon-bell" />
|
|
97
|
+
* <Image texture="icon-settings" />
|
|
98
|
+
* </>
|
|
99
|
+
* ) : null
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare function useSVGTextures(configs: SVGTextureConfig[]): boolean;
|
|
104
|
+
//# sourceMappingURL=hooks-svg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-svg.d.ts","sourceRoot":"","sources":["../src/hooks-svg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAK3B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAI5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAAW,GAClB,OAAO,CAoCT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAwDnE"}
|