@number10/jsx-phaser 5.0.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 +44 -0
- package/dist/_virtual/_commonjsHelpers.cjs +7 -0
- package/dist/_virtual/_commonjsHelpers.cjs.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +7 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/index.cjs +7 -0
- package/dist/_virtual/index.cjs.map +1 -0
- package/dist/_virtual/index.js +8 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/animation/index.d.ts +7 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/camera/index.d.ts +5 -0
- package/dist/camera/index.d.ts.map +1 -0
- package/dist/camera/use-camera-fx.cjs +49 -0
- package/dist/camera/use-camera-fx.cjs.map +1 -0
- package/dist/camera/use-camera-fx.d.ts +25 -0
- package/dist/camera/use-camera-fx.d.ts.map +1 -0
- package/dist/camera/use-camera-fx.js +49 -0
- package/dist/camera/use-camera-fx.js.map +1 -0
- package/dist/clip/index.cjs +8 -0
- package/dist/clip/index.cjs.map +1 -0
- package/dist/clip/index.d.ts +3 -0
- package/dist/clip/index.d.ts.map +1 -0
- package/dist/clip/index.js +9 -0
- package/dist/clip/index.js.map +1 -0
- package/dist/clip/stencil-clip-depth.cjs +24 -0
- package/dist/clip/stencil-clip-depth.cjs.map +1 -0
- package/dist/clip/stencil-clip-depth.d.ts +10 -0
- package/dist/clip/stencil-clip-depth.d.ts.map +1 -0
- package/dist/clip/stencil-clip-depth.js +24 -0
- package/dist/clip/stencil-clip-depth.js.map +1 -0
- package/dist/clip/stencil-clip-extension.cjs +113 -0
- package/dist/clip/stencil-clip-extension.cjs.map +1 -0
- package/dist/clip/stencil-clip-extension.d.ts +18 -0
- package/dist/clip/stencil-clip-extension.d.ts.map +1 -0
- package/dist/clip/stencil-clip-extension.js +96 -0
- package/dist/clip/stencil-clip-extension.js.map +1 -0
- package/dist/clip/stencil-clip-fbo-bridge.cjs +46 -0
- package/dist/clip/stencil-clip-fbo-bridge.cjs.map +1 -0
- package/dist/clip/stencil-clip-fbo-bridge.d.ts +7 -0
- package/dist/clip/stencil-clip-fbo-bridge.d.ts.map +1 -0
- package/dist/clip/stencil-clip-fbo-bridge.js +46 -0
- package/dist/clip/stencil-clip-fbo-bridge.js.map +1 -0
- package/dist/clip/stencil-clip-renderer.cjs +300 -0
- package/dist/clip/stencil-clip-renderer.cjs.map +1 -0
- package/dist/clip/stencil-clip-renderer.d.ts +7 -0
- package/dist/clip/stencil-clip-renderer.d.ts.map +1 -0
- package/dist/clip/stencil-clip-renderer.js +300 -0
- package/dist/clip/stencil-clip-renderer.js.map +1 -0
- package/dist/clip/stencil-clip-state.cjs +84 -0
- package/dist/clip/stencil-clip-state.cjs.map +1 -0
- package/dist/clip/stencil-clip-state.d.ts +28 -0
- package/dist/clip/stencil-clip-state.d.ts.map +1 -0
- package/dist/clip/stencil-clip-state.js +84 -0
- package/dist/clip/stencil-clip-state.js.map +1 -0
- package/dist/clip/stencil-clip-types.d.ts +67 -0
- package/dist/clip/stencil-clip-types.d.ts.map +1 -0
- package/dist/clip/stencil-clip.cjs +138 -0
- package/dist/clip/stencil-clip.cjs.map +1 -0
- package/dist/clip/stencil-clip.d.ts +53 -0
- package/dist/clip/stencil-clip.d.ts.map +1 -0
- package/dist/clip/stencil-clip.js +122 -0
- package/dist/clip/stencil-clip.js.map +1 -0
- package/dist/colors/use-color-mode.cjs +28 -0
- package/dist/colors/use-color-mode.cjs.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-color-mode.js +28 -0
- package/dist/colors/use-color-mode.js.map +1 -0
- package/dist/colors/use-colors.cjs +45 -0
- package/dist/colors/use-colors.cjs.map +1 -0
- package/dist/colors/use-colors.d.ts +36 -0
- package/dist/colors/use-colors.d.ts.map +1 -0
- package/dist/colors/use-colors.js +45 -0
- package/dist/colors/use-colors.js.map +1 -0
- package/dist/components/DebugPanel.cjs +88 -0
- package/dist/components/DebugPanel.cjs.map +1 -0
- package/dist/components/DebugPanel.d.ts +45 -0
- package/dist/components/DebugPanel.d.ts.map +1 -0
- package/dist/components/DebugPanel.js +71 -0
- package/dist/components/DebugPanel.js.map +1 -0
- package/dist/components/appliers/applyBackground.cjs +89 -0
- package/dist/components/appliers/applyBackground.cjs.map +1 -0
- package/dist/components/appliers/applyBackground.d.ts +18 -0
- package/dist/components/appliers/applyBackground.d.ts.map +1 -0
- package/dist/components/appliers/applyBackground.js +89 -0
- package/dist/components/appliers/applyBackground.js.map +1 -0
- package/dist/components/appliers/applyGestures.cjs +85 -0
- package/dist/components/appliers/applyGestures.cjs.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/applyGestures.js +68 -0
- package/dist/components/appliers/applyGestures.js.map +1 -0
- package/dist/components/appliers/applyGraphics.cjs +21 -0
- package/dist/components/appliers/applyGraphics.cjs.map +1 -0
- package/dist/components/appliers/applyGraphics.d.ts +13 -0
- package/dist/components/appliers/applyGraphics.d.ts.map +1 -0
- package/dist/components/appliers/applyGraphics.js +21 -0
- package/dist/components/appliers/applyGraphics.js.map +1 -0
- package/dist/components/appliers/applyGraphicsLayout.cjs +18 -0
- package/dist/components/appliers/applyGraphicsLayout.cjs.map +1 -0
- package/dist/components/appliers/applyGraphicsLayout.d.ts +13 -0
- package/dist/components/appliers/applyGraphicsLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyGraphicsLayout.js +18 -0
- package/dist/components/appliers/applyGraphicsLayout.js.map +1 -0
- package/dist/components/appliers/applyImage.cjs +92 -0
- package/dist/components/appliers/applyImage.cjs.map +1 -0
- package/dist/components/appliers/applyImage.d.ts +47 -0
- package/dist/components/appliers/applyImage.d.ts.map +1 -0
- package/dist/components/appliers/applyImage.js +92 -0
- package/dist/components/appliers/applyImage.js.map +1 -0
- package/dist/components/appliers/applyImageLayout.cjs +18 -0
- package/dist/components/appliers/applyImageLayout.cjs.map +1 -0
- package/dist/components/appliers/applyImageLayout.d.ts +18 -0
- package/dist/components/appliers/applyImageLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyImageLayout.js +18 -0
- package/dist/components/appliers/applyImageLayout.js.map +1 -0
- package/dist/components/appliers/applyLayout.cjs +108 -0
- package/dist/components/appliers/applyLayout.cjs.map +1 -0
- package/dist/components/appliers/applyLayout.d.ts +19 -0
- package/dist/components/appliers/applyLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyLayout.js +91 -0
- package/dist/components/appliers/applyLayout.js.map +1 -0
- package/dist/components/appliers/applyNineSlice.cjs +37 -0
- package/dist/components/appliers/applyNineSlice.cjs.map +1 -0
- package/dist/components/appliers/applyNineSlice.d.ts +14 -0
- package/dist/components/appliers/applyNineSlice.d.ts.map +1 -0
- package/dist/components/appliers/applyNineSlice.js +37 -0
- package/dist/components/appliers/applyNineSlice.js.map +1 -0
- package/dist/components/appliers/applyNineSliceLayout.cjs +18 -0
- package/dist/components/appliers/applyNineSliceLayout.cjs.map +1 -0
- package/dist/components/appliers/applyNineSliceLayout.d.ts +18 -0
- package/dist/components/appliers/applyNineSliceLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyNineSliceLayout.js +18 -0
- package/dist/components/appliers/applyNineSliceLayout.js.map +1 -0
- package/dist/components/appliers/applyParticles.cjs +46 -0
- package/dist/components/appliers/applyParticles.cjs.map +1 -0
- package/dist/components/appliers/applyParticles.d.ts +7 -0
- package/dist/components/appliers/applyParticles.d.ts.map +1 -0
- package/dist/components/appliers/applyParticles.js +46 -0
- package/dist/components/appliers/applyParticles.js.map +1 -0
- package/dist/components/appliers/applyParticlesLayout.cjs +7 -0
- package/dist/components/appliers/applyParticlesLayout.cjs.map +1 -0
- package/dist/components/appliers/applyParticlesLayout.d.ts +11 -0
- package/dist/components/appliers/applyParticlesLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyParticlesLayout.js +7 -0
- package/dist/components/appliers/applyParticlesLayout.js.map +1 -0
- package/dist/components/appliers/applyPhaser.cjs +40 -0
- package/dist/components/appliers/applyPhaser.cjs.map +1 -0
- package/dist/components/appliers/applyPhaser.d.ts +24 -0
- package/dist/components/appliers/applyPhaser.d.ts.map +1 -0
- package/dist/components/appliers/applyPhaser.js +40 -0
- package/dist/components/appliers/applyPhaser.js.map +1 -0
- package/dist/components/appliers/applySprite.cjs +124 -0
- package/dist/components/appliers/applySprite.cjs.map +1 -0
- package/dist/components/appliers/applySprite.d.ts +13 -0
- package/dist/components/appliers/applySprite.d.ts.map +1 -0
- package/dist/components/appliers/applySprite.js +124 -0
- package/dist/components/appliers/applySprite.js.map +1 -0
- package/dist/components/appliers/applySpriteLayout.cjs +7 -0
- package/dist/components/appliers/applySpriteLayout.cjs.map +1 -0
- package/dist/components/appliers/applySpriteLayout.d.ts +17 -0
- package/dist/components/appliers/applySpriteLayout.d.ts.map +1 -0
- package/dist/components/appliers/applySpriteLayout.js +7 -0
- package/dist/components/appliers/applySpriteLayout.js.map +1 -0
- package/dist/components/appliers/applyText.cjs +142 -0
- package/dist/components/appliers/applyText.cjs.map +1 -0
- package/dist/components/appliers/applyText.d.ts +32 -0
- package/dist/components/appliers/applyText.d.ts.map +1 -0
- package/dist/components/appliers/applyText.js +142 -0
- package/dist/components/appliers/applyText.js.map +1 -0
- package/dist/components/appliers/applyTextLayout.cjs +16 -0
- package/dist/components/appliers/applyTextLayout.cjs.map +1 -0
- package/dist/components/appliers/applyTextLayout.d.ts +18 -0
- package/dist/components/appliers/applyTextLayout.d.ts.map +1 -0
- package/dist/components/appliers/applyTextLayout.js +16 -0
- package/dist/components/appliers/applyTextLayout.js.map +1 -0
- package/dist/components/appliers/applyTooltip.cjs +247 -0
- package/dist/components/appliers/applyTooltip.cjs.map +1 -0
- package/dist/components/appliers/applyTooltip.d.ts +16 -0
- package/dist/components/appliers/applyTooltip.d.ts.map +1 -0
- package/dist/components/appliers/applyTooltip.js +247 -0
- package/dist/components/appliers/applyTooltip.js.map +1 -0
- package/dist/components/appliers/applyTransform.cjs +61 -0
- package/dist/components/appliers/applyTransform.cjs.map +1 -0
- package/dist/components/appliers/applyTransform.d.ts +24 -0
- package/dist/components/appliers/applyTransform.d.ts.map +1 -0
- package/dist/components/appliers/applyTransform.js +61 -0
- package/dist/components/appliers/applyTransform.js.map +1 -0
- package/dist/components/backgroundImage.cjs +411 -0
- package/dist/components/backgroundImage.cjs.map +1 -0
- package/dist/components/backgroundImage.d.ts +14 -0
- package/dist/components/backgroundImage.d.ts.map +1 -0
- package/dist/components/backgroundImage.js +411 -0
- package/dist/components/backgroundImage.js.map +1 -0
- package/dist/components/creators/createBackground.cjs +18 -0
- package/dist/components/creators/createBackground.cjs.map +1 -0
- package/dist/components/creators/createBackground.d.ts +20 -0
- package/dist/components/creators/createBackground.d.ts.map +1 -0
- package/dist/components/creators/createBackground.js +18 -0
- package/dist/components/creators/createBackground.js.map +1 -0
- package/dist/components/creators/createGestures.cjs +51 -0
- package/dist/components/creators/createGestures.cjs.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/createGestures.js +34 -0
- package/dist/components/creators/createGestures.js.map +1 -0
- package/dist/components/creators/createGraphicsLayout.cjs +24 -0
- package/dist/components/creators/createGraphicsLayout.cjs.map +1 -0
- package/dist/components/creators/createGraphicsLayout.d.ts +12 -0
- package/dist/components/creators/createGraphicsLayout.d.ts.map +1 -0
- package/dist/components/creators/createGraphicsLayout.js +24 -0
- package/dist/components/creators/createGraphicsLayout.js.map +1 -0
- package/dist/components/creators/createImageLayout.cjs +16 -0
- package/dist/components/creators/createImageLayout.cjs.map +1 -0
- package/dist/components/creators/createImageLayout.d.ts +17 -0
- package/dist/components/creators/createImageLayout.d.ts.map +1 -0
- package/dist/components/creators/createImageLayout.js +16 -0
- package/dist/components/creators/createImageLayout.js.map +1 -0
- package/dist/components/creators/createLayout.cjs +61 -0
- package/dist/components/creators/createLayout.cjs.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/createLayout.js +61 -0
- package/dist/components/creators/createLayout.js.map +1 -0
- package/dist/components/creators/createNineSliceLayout.cjs +16 -0
- package/dist/components/creators/createNineSliceLayout.cjs.map +1 -0
- package/dist/components/creators/createNineSliceLayout.d.ts +17 -0
- package/dist/components/creators/createNineSliceLayout.d.ts.map +1 -0
- package/dist/components/creators/createNineSliceLayout.js +16 -0
- package/dist/components/creators/createNineSliceLayout.js.map +1 -0
- package/dist/components/creators/createParticlesLayout.cjs +8 -0
- package/dist/components/creators/createParticlesLayout.cjs.map +1 -0
- package/dist/components/creators/createParticlesLayout.d.ts +14 -0
- package/dist/components/creators/createParticlesLayout.d.ts.map +1 -0
- package/dist/components/creators/createParticlesLayout.js +8 -0
- package/dist/components/creators/createParticlesLayout.js.map +1 -0
- package/dist/components/creators/createPhaser.cjs +36 -0
- package/dist/components/creators/createPhaser.cjs.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/createPhaser.js +36 -0
- package/dist/components/creators/createPhaser.js.map +1 -0
- package/dist/components/creators/createSpriteLayout.cjs +10 -0
- package/dist/components/creators/createSpriteLayout.cjs.map +1 -0
- package/dist/components/creators/createSpriteLayout.d.ts +18 -0
- package/dist/components/creators/createSpriteLayout.d.ts.map +1 -0
- package/dist/components/creators/createSpriteLayout.js +10 -0
- package/dist/components/creators/createSpriteLayout.js.map +1 -0
- package/dist/components/creators/createTextLayout.cjs +16 -0
- package/dist/components/creators/createTextLayout.cjs.map +1 -0
- package/dist/components/creators/createTextLayout.d.ts +17 -0
- package/dist/components/creators/createTextLayout.d.ts.map +1 -0
- package/dist/components/creators/createTextLayout.js +16 -0
- package/dist/components/creators/createTextLayout.js.map +1 -0
- package/dist/components/creators/createTransform.cjs +83 -0
- package/dist/components/creators/createTransform.cjs.map +1 -0
- package/dist/components/creators/createTransform.d.ts +26 -0
- package/dist/components/creators/createTransform.d.ts.map +1 -0
- package/dist/components/creators/createTransform.js +83 -0
- package/dist/components/creators/createTransform.js.map +1 -0
- package/dist/components/custom/Graphics.cjs +13 -0
- package/dist/components/custom/Graphics.cjs.map +1 -0
- package/dist/components/custom/Graphics.d.ts +50 -0
- package/dist/components/custom/Graphics.d.ts.map +1 -0
- package/dist/components/custom/Graphics.js +13 -0
- package/dist/components/custom/Graphics.js.map +1 -0
- package/dist/components/custom/NineSlice.cjs +13 -0
- package/dist/components/custom/NineSlice.cjs.map +1 -0
- package/dist/components/custom/NineSlice.d.ts +87 -0
- package/dist/components/custom/NineSlice.d.ts.map +1 -0
- package/dist/components/custom/NineSlice.js +13 -0
- package/dist/components/custom/NineSlice.js.map +1 -0
- package/dist/components/custom/Particles.cjs +8 -0
- package/dist/components/custom/Particles.cjs.map +1 -0
- package/dist/components/custom/Particles.d.ts +28 -0
- package/dist/components/custom/Particles.d.ts.map +1 -0
- package/dist/components/custom/Particles.js +8 -0
- package/dist/components/custom/Particles.js.map +1 -0
- package/dist/components/custom/RefOriginView.cjs +67 -0
- package/dist/components/custom/RefOriginView.cjs.map +1 -0
- package/dist/components/custom/RefOriginView.d.ts +49 -0
- package/dist/components/custom/RefOriginView.d.ts.map +1 -0
- package/dist/components/custom/RefOriginView.js +67 -0
- package/dist/components/custom/RefOriginView.js.map +1 -0
- package/dist/components/custom/Sprite.cjs +13 -0
- package/dist/components/custom/Sprite.cjs.map +1 -0
- package/dist/components/custom/Sprite.d.ts +79 -0
- package/dist/components/custom/Sprite.d.ts.map +1 -0
- package/dist/components/custom/Sprite.js +13 -0
- package/dist/components/custom/Sprite.js.map +1 -0
- package/dist/components/custom/TileSprite.cjs +13 -0
- package/dist/components/custom/TileSprite.cjs.map +1 -0
- package/dist/components/custom/TileSprite.d.ts +65 -0
- package/dist/components/custom/TileSprite.d.ts.map +1 -0
- package/dist/components/custom/TileSprite.js +13 -0
- package/dist/components/custom/TileSprite.js.map +1 -0
- package/dist/components/custom/index.d.ts +15 -0
- package/dist/components/custom/index.d.ts.map +1 -0
- package/dist/components/index.cjs +33 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.ts +11 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +33 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/internal/SceneWrapper.cjs +10 -0
- package/dist/components/internal/SceneWrapper.cjs.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/internal/SceneWrapper.js +10 -0
- package/dist/components/internal/SceneWrapper.js.map +1 -0
- package/dist/components/primitives/graphics.cjs +29 -0
- package/dist/components/primitives/graphics.cjs.map +1 -0
- package/dist/components/primitives/graphics.d.ts +146 -0
- package/dist/components/primitives/graphics.d.ts.map +1 -0
- package/dist/components/primitives/graphics.js +29 -0
- package/dist/components/primitives/graphics.js.map +1 -0
- package/dist/components/primitives/image.cjs +110 -0
- package/dist/components/primitives/image.cjs.map +1 -0
- package/dist/components/primitives/image.d.ts +170 -0
- package/dist/components/primitives/image.d.ts.map +1 -0
- package/dist/components/primitives/image.js +110 -0
- package/dist/components/primitives/image.js.map +1 -0
- package/dist/components/primitives/nineslice.cjs +42 -0
- package/dist/components/primitives/nineslice.cjs.map +1 -0
- package/dist/components/primitives/nineslice.d.ts +271 -0
- package/dist/components/primitives/nineslice.d.ts.map +1 -0
- package/dist/components/primitives/nineslice.js +42 -0
- package/dist/components/primitives/nineslice.js.map +1 -0
- package/dist/components/primitives/particles.cjs +77 -0
- package/dist/components/primitives/particles.cjs.map +1 -0
- package/dist/components/primitives/particles.d.ts +47 -0
- package/dist/components/primitives/particles.d.ts.map +1 -0
- package/dist/components/primitives/particles.js +77 -0
- package/dist/components/primitives/particles.js.map +1 -0
- package/dist/components/primitives/sprite.cjs +100 -0
- package/dist/components/primitives/sprite.cjs.map +1 -0
- package/dist/components/primitives/sprite.d.ts +147 -0
- package/dist/components/primitives/sprite.d.ts.map +1 -0
- package/dist/components/primitives/sprite.js +100 -0
- package/dist/components/primitives/sprite.js.map +1 -0
- package/dist/components/primitives/text.cjs +73 -0
- package/dist/components/primitives/text.cjs.map +1 -0
- package/dist/components/primitives/text.d.ts +155 -0
- package/dist/components/primitives/text.d.ts.map +1 -0
- package/dist/components/primitives/text.js +73 -0
- package/dist/components/primitives/text.js.map +1 -0
- package/dist/components/primitives/tilesprite.cjs +77 -0
- package/dist/components/primitives/tilesprite.cjs.map +1 -0
- package/dist/components/primitives/tilesprite.d.ts +157 -0
- package/dist/components/primitives/tilesprite.d.ts.map +1 -0
- package/dist/components/primitives/tilesprite.js +77 -0
- package/dist/components/primitives/tilesprite.js.map +1 -0
- package/dist/components/primitives/vectorDraw.cjs +73 -0
- package/dist/components/primitives/vectorDraw.cjs.map +1 -0
- package/dist/components/primitives/vectorDraw.d.ts +4 -0
- package/dist/components/primitives/vectorDraw.d.ts.map +1 -0
- package/dist/components/primitives/vectorDraw.js +73 -0
- package/dist/components/primitives/vectorDraw.js.map +1 -0
- package/dist/components/primitives/view.cjs +105 -0
- package/dist/components/primitives/view.cjs.map +1 -0
- package/dist/components/primitives/view.d.ts +23 -0
- package/dist/components/primitives/view.d.ts.map +1 -0
- package/dist/components/primitives/view.js +105 -0
- package/dist/components/primitives/view.js.map +1 -0
- package/dist/core-props.d.ts +105 -0
- package/dist/core-props.d.ts.map +1 -0
- package/dist/core-types.d.ts +71 -0
- package/dist/core-types.d.ts.map +1 -0
- package/dist/design-tokens/resolve-theme-tokens.cjs +27 -0
- package/dist/design-tokens/resolve-theme-tokens.cjs.map +1 -0
- package/dist/design-tokens/resolve-theme-tokens.d.ts +9 -0
- package/dist/design-tokens/resolve-theme-tokens.d.ts.map +1 -0
- package/dist/design-tokens/resolve-theme-tokens.js +27 -0
- package/dist/design-tokens/resolve-theme-tokens.js.map +1 -0
- package/dist/design-tokens/use-theme-tokens.cjs +26 -0
- package/dist/design-tokens/use-theme-tokens.cjs.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/design-tokens/use-theme-tokens.js +26 -0
- package/dist/design-tokens/use-theme-tokens.js.map +1 -0
- package/dist/effects/index.d.ts +2 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/phaser-effects-bridge.cjs +48 -0
- package/dist/effects/phaser-effects-bridge.cjs.map +1 -0
- package/dist/effects/phaser-effects-bridge.d.ts +2 -0
- package/dist/effects/phaser-effects-bridge.d.ts.map +1 -0
- package/dist/effects/phaser-effects-bridge.js +30 -0
- package/dist/effects/phaser-effects-bridge.js.map +1 -0
- package/dist/effects/use-effect.cjs +155 -0
- package/dist/effects/use-effect.cjs.map +1 -0
- package/dist/effects/use-effect.d.ts +30 -0
- package/dist/effects/use-effect.d.ts.map +1 -0
- package/dist/effects/use-effect.js +155 -0
- package/dist/effects/use-effect.js.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.cjs +18 -0
- package/dist/fx/convenience-hooks/use-blur.cjs.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-blur.js +18 -0
- package/dist/fx/convenience-hooks/use-blur.js.map +1 -0
- package/dist/fx/convenience-hooks/use-glow.cjs +18 -0
- package/dist/fx/convenience-hooks/use-glow.cjs.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-glow.js +18 -0
- package/dist/fx/convenience-hooks/use-glow.js.map +1 -0
- package/dist/fx/convenience-hooks/use-shadow.cjs +18 -0
- package/dist/fx/convenience-hooks/use-shadow.cjs.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/convenience-hooks/use-shadow.js +18 -0
- package/dist/fx/convenience-hooks/use-shadow.js.map +1 -0
- package/dist/fx/fx-creators/blur.cjs +20 -0
- package/dist/fx/fx-creators/blur.cjs.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/blur.js +20 -0
- package/dist/fx/fx-creators/blur.js.map +1 -0
- package/dist/fx/fx-creators/color-matrix.cjs +47 -0
- package/dist/fx/fx-creators/color-matrix.cjs.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/color-matrix.js +47 -0
- package/dist/fx/fx-creators/color-matrix.js.map +1 -0
- package/dist/fx/fx-creators/glow.cjs +27 -0
- package/dist/fx/fx-creators/glow.cjs.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/glow.js +27 -0
- package/dist/fx/fx-creators/glow.js.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.cjs +20 -0
- package/dist/fx/fx-creators/pixelate.cjs.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/pixelate.js +20 -0
- package/dist/fx/fx-creators/pixelate.js.map +1 -0
- package/dist/fx/fx-creators/shadow.cjs +28 -0
- package/dist/fx/fx-creators/shadow.cjs.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/shadow.js +28 -0
- package/dist/fx/fx-creators/shadow.js.map +1 -0
- package/dist/fx/fx-creators/vignette.cjs +20 -0
- package/dist/fx/fx-creators/vignette.cjs.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-creators/vignette.js +20 -0
- package/dist/fx/fx-creators/vignette.js.map +1 -0
- package/dist/fx/fx-registry.cjs +43 -0
- package/dist/fx/fx-registry.cjs.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/fx-registry.js +43 -0
- package/dist/fx/fx-registry.js.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.cjs +54 -0
- package/dist/fx/use-fx.cjs.map +1 -0
- package/dist/fx/use-fx.d.ts +53 -0
- package/dist/fx/use-fx.d.ts.map +1 -0
- package/dist/fx/use-fx.js +54 -0
- package/dist/fx/use-fx.js.map +1 -0
- package/dist/gestures/gesture-manager.cjs +773 -0
- package/dist/gestures/gesture-manager.cjs.map +1 -0
- package/dist/gestures/gesture-manager.d.ts +158 -0
- package/dist/gestures/gesture-manager.d.ts.map +1 -0
- package/dist/gestures/gesture-manager.js +773 -0
- package/dist/gestures/gesture-manager.js.map +1 -0
- package/dist/gestures/gesture-types.cjs +9 -0
- package/dist/gestures/gesture-types.cjs.map +1 -0
- package/dist/gestures/gesture-types.d.ts +232 -0
- package/dist/gestures/gesture-types.d.ts.map +1 -0
- package/dist/gestures/gesture-types.js +9 -0
- package/dist/gestures/gesture-types.js.map +1 -0
- package/dist/hooks.cjs +193 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.ts +151 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +146 -0
- package/dist/hooks.js.map +1 -0
- package/dist/host.cjs +85 -0
- package/dist/host.cjs.map +1 -0
- package/dist/host.d.ts +78 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +85 -0
- package/dist/host.js.map +1 -0
- package/dist/index.cjs +614 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +273 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx-dev-runtime.cjs +20 -0
- package/dist/jsx-dev-runtime.cjs.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +8 -0
- package/dist/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.js +8 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime.cjs +16 -0
- package/dist/jsx-runtime.cjs.map +1 -0
- package/dist/jsx-runtime.d.ts +9 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/jsx-types.d.ts +40 -0
- package/dist/jsx-types.d.ts.map +1 -0
- package/dist/layout/appliers/background-applier.cjs +40 -0
- package/dist/layout/appliers/background-applier.cjs.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/background-applier.js +40 -0
- package/dist/layout/appliers/background-applier.js.map +1 -0
- package/dist/layout/index.d.ts +5 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/layout-engine-test-utils.d.ts +24 -0
- package/dist/layout/layout-engine-test-utils.d.ts.map +1 -0
- package/dist/layout/phaser-layout-bridge.cjs +41 -0
- package/dist/layout/phaser-layout-bridge.cjs.map +1 -0
- package/dist/layout/phaser-layout-bridge.d.ts +9 -0
- package/dist/layout/phaser-layout-bridge.d.ts.map +1 -0
- package/dist/layout/phaser-layout-bridge.js +40 -0
- package/dist/layout/phaser-layout-bridge.js.map +1 -0
- package/dist/layout/types.d.ts +14 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.cjs +39 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +39 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/particles/emit-zone.cjs +205 -0
- package/dist/particles/emit-zone.cjs.map +1 -0
- package/dist/particles/emit-zone.d.ts +88 -0
- package/dist/particles/emit-zone.d.ts.map +1 -0
- package/dist/particles/emit-zone.js +205 -0
- package/dist/particles/emit-zone.js.map +1 -0
- package/dist/particles/index.d.ts +8 -0
- package/dist/particles/index.d.ts.map +1 -0
- package/dist/particles/particle-types.d.ts +25 -0
- package/dist/particles/particle-types.d.ts.map +1 -0
- package/dist/particles/preset-registry.cjs +57 -0
- package/dist/particles/preset-registry.cjs.map +1 -0
- package/dist/particles/preset-registry.d.ts +49 -0
- package/dist/particles/preset-registry.d.ts.map +1 -0
- package/dist/particles/preset-registry.js +57 -0
- package/dist/particles/preset-registry.js.map +1 -0
- package/dist/particles/use-particles.cjs +67 -0
- package/dist/particles/use-particles.cjs.map +1 -0
- package/dist/particles/use-particles.d.ts +19 -0
- package/dist/particles/use-particles.d.ts.map +1 -0
- package/dist/particles/use-particles.js +67 -0
- package/dist/particles/use-particles.js.map +1 -0
- package/dist/particles/utils.cjs +82 -0
- package/dist/particles/utils.cjs.map +1 -0
- package/dist/particles/utils.d.ts +10 -0
- package/dist/particles/utils.d.ts.map +1 -0
- package/dist/particles/utils.js +82 -0
- package/dist/particles/utils.js.map +1 -0
- package/dist/phaser-bridges.cjs +148 -0
- package/dist/phaser-bridges.cjs.map +1 -0
- package/dist/phaser-bridges.d.ts +78 -0
- package/dist/phaser-bridges.d.ts.map +1 -0
- package/dist/phaser-bridges.js +131 -0
- package/dist/phaser-bridges.js.map +1 -0
- package/dist/phaser-host-adapter.cjs +148 -0
- package/dist/phaser-host-adapter.cjs.map +1 -0
- package/dist/phaser-host-adapter.d.ts +30 -0
- package/dist/phaser-host-adapter.d.ts.map +1 -0
- package/dist/phaser-host-adapter.js +148 -0
- package/dist/phaser-host-adapter.js.map +1 -0
- package/dist/phaser-runtime-types.d.ts +89 -0
- package/dist/phaser-runtime-types.d.ts.map +1 -0
- package/dist/phaser-surface-adapter.cjs +488 -0
- package/dist/phaser-surface-adapter.cjs.map +1 -0
- package/dist/phaser-surface-adapter.d.ts +74 -0
- package/dist/phaser-surface-adapter.d.ts.map +1 -0
- package/dist/phaser-surface-adapter.js +471 -0
- package/dist/phaser-surface-adapter.js.map +1 -0
- package/dist/phaser-vdom-runtime.cjs +63 -0
- package/dist/phaser-vdom-runtime.cjs.map +1 -0
- package/dist/phaser-vdom-runtime.d.ts +2 -0
- package/dist/phaser-vdom-runtime.d.ts.map +1 -0
- package/dist/phaser-vdom-runtime.js +63 -0
- package/dist/phaser-vdom-runtime.js.map +1 -0
- package/dist/plugin.cjs +182 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.ts +161 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +165 -0
- package/dist/plugin.js.map +1 -0
- package/dist/render-context.cjs +106 -0
- package/dist/render-context.cjs.map +1 -0
- package/dist/render-context.d.ts +66 -0
- package/dist/render-context.d.ts.map +1 -0
- package/dist/render-context.js +106 -0
- package/dist/render-context.js.map +1 -0
- package/dist/scene-backgrounds.cjs +285 -0
- package/dist/scene-backgrounds.cjs.map +1 -0
- package/dist/scene-backgrounds.d.ts +69 -0
- package/dist/scene-backgrounds.d.ts.map +1 -0
- package/dist/scene-backgrounds.js +268 -0
- package/dist/scene-backgrounds.js.map +1 -0
- package/dist/theme-base.d.ts +133 -0
- package/dist/theme-base.d.ts.map +1 -0
- package/dist/theme-custom.d.ts +13 -0
- package/dist/theme-custom.d.ts.map +1 -0
- package/dist/theme-defaults.cjs +29 -0
- package/dist/theme-defaults.cjs.map +1 -0
- package/dist/theme-defaults.d.ts +1 -0
- package/dist/theme-defaults.d.ts.map +1 -0
- package/dist/theme-defaults.js +28 -0
- package/dist/theme-defaults.js.map +1 -0
- package/dist/theme.cjs +34 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.ts +36 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +32 -0
- package/dist/theme.js.map +1 -0
- package/dist/tooltip/tooltip-types.d.ts +6 -0
- package/dist/tooltip/tooltip-types.d.ts.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/KeyboardInputManager.cjs +112 -0
- package/dist/utils/KeyboardInputManager.cjs.map +1 -0
- package/dist/utils/KeyboardInputManager.d.ts +48 -0
- package/dist/utils/KeyboardInputManager.d.ts.map +1 -0
- package/dist/utils/KeyboardInputManager.js +112 -0
- package/dist/utils/KeyboardInputManager.js.map +1 -0
- package/dist/utils/dom-input-manager.cjs +253 -0
- package/dist/utils/dom-input-manager.cjs.map +1 -0
- package/dist/utils/dom-input-manager.d.ts +113 -0
- package/dist/utils/dom-input-manager.d.ts.map +1 -0
- package/dist/utils/dom-input-manager.js +253 -0
- package/dist/utils/dom-input-manager.js.map +1 -0
- package/dist/utils/fast-deep-equal.cjs +7 -0
- package/dist/utils/fast-deep-equal.cjs.map +1 -0
- package/dist/utils/fast-deep-equal.d.ts +4 -0
- package/dist/utils/fast-deep-equal.d.ts.map +1 -0
- package/dist/utils/fast-deep-equal.js +7 -0
- package/dist/utils/fast-deep-equal.js.map +1 -0
- package/dist/utils/image-subtexture-registry.cjs +98 -0
- package/dist/utils/image-subtexture-registry.cjs.map +1 -0
- package/dist/utils/image-subtexture-registry.d.ts +17 -0
- package/dist/utils/image-subtexture-registry.d.ts.map +1 -0
- package/dist/utils/image-subtexture-registry.js +98 -0
- package/dist/utils/image-subtexture-registry.js.map +1 -0
- package/dist/utils/phaser-guards.cjs +15 -0
- package/dist/utils/phaser-guards.cjs.map +1 -0
- package/dist/utils/phaser-guards.d.ts +7 -0
- package/dist/utils/phaser-guards.d.ts.map +1 -0
- package/dist/utils/phaser-guards.js +15 -0
- package/dist/utils/phaser-guards.js.map +1 -0
- package/dist/utils/svg-texture.cjs +48 -0
- package/dist/utils/svg-texture.cjs.map +1 -0
- package/dist/utils/svg-texture.d.ts +34 -0
- package/dist/utils/svg-texture.d.ts.map +1 -0
- package/dist/utils/svg-texture.js +48 -0
- package/dist/utils/svg-texture.js.map +1 -0
- package/dist/utils/texture-registry.cjs +117 -0
- package/dist/utils/texture-registry.cjs.map +1 -0
- package/dist/utils/texture-registry.d.ts +53 -0
- package/dist/utils/texture-registry.d.ts.map +1 -0
- package/dist/utils/texture-registry.js +117 -0
- package/dist/utils/texture-registry.js.map +1 -0
- package/dist/vdom-host-types.d.ts +12 -0
- package/dist/vdom-host-types.d.ts.map +1 -0
- package/dist/vdom-registry.d.ts +27 -0
- package/dist/vdom-registry.d.ts.map +1 -0
- package/dist/vdom-utils.d.ts +16 -0
- package/dist/vdom-utils.d.ts.map +1 -0
- package/dist/vdom.cjs +36 -0
- package/dist/vdom.cjs.map +1 -0
- package/dist/vdom.d.ts +23 -0
- package/dist/vdom.d.ts.map +1 -0
- package/dist/vdom.js +36 -0
- package/dist/vdom.js.map +1 -0
- package/dist/vector/PhaserVectorDrawContext.cjs +97 -0
- package/dist/vector/PhaserVectorDrawContext.cjs.map +1 -0
- package/dist/vector/PhaserVectorDrawContext.d.ts +27 -0
- package/dist/vector/PhaserVectorDrawContext.d.ts.map +1 -0
- package/dist/vector/PhaserVectorDrawContext.js +97 -0
- package/dist/vector/PhaserVectorDrawContext.js.map +1 -0
- package/dist/vector/index.d.ts +2 -0
- package/dist/vector/index.d.ts.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { LayoutProps, PhaserProps, TransformProps } from '../../core-props';
|
|
2
|
+
import { HostCreator, HostPatcher } from '../../host';
|
|
3
|
+
import { PropsDefaultExtension } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* TileSprite component - Phaser TileSprite GameObject (repeating texture pattern)
|
|
6
|
+
* Status: IMPLEMENTED ✅
|
|
7
|
+
*
|
|
8
|
+
* Design Decisions & Answers:
|
|
9
|
+
* ===========================
|
|
10
|
+
*
|
|
11
|
+
* 1. Headless Default: TRUE ✅
|
|
12
|
+
* Rationale: TileSprites are typically backgrounds/patterns (decorative).
|
|
13
|
+
* They fill available space and shouldn't affect parent dimensions.
|
|
14
|
+
* Use Cases:
|
|
15
|
+
* - ✅ Headless (default): Scrolling backgrounds, parallax layers, repeating patterns
|
|
16
|
+
* - ❌ Layout-aware: Rare - textured progress bars, pattern-filled UI blocks
|
|
17
|
+
*
|
|
18
|
+
* 2. Layout Size Provider: SIMPLE DIMENSIONS ✅
|
|
19
|
+
* Decision: Use width/height directly (not getBounds)
|
|
20
|
+
* Reasoning:
|
|
21
|
+
* - TileSprite requires explicit width/height (Phaser constructor param)
|
|
22
|
+
* - Dimensions are always known and stable
|
|
23
|
+
* - getBounds() adds unnecessary overhead
|
|
24
|
+
* - Rotation affects visual but not logical dimensions (pattern stays in rect)
|
|
25
|
+
* Implementation: __getLayoutSize = () => ({ width, height })
|
|
26
|
+
*
|
|
27
|
+
* 3. Tiling Props: DIRECT PHASER MAPPING ✅
|
|
28
|
+
* Decision: Expose Phaser's tilePosition/tileScale props directly
|
|
29
|
+
* Props:
|
|
30
|
+
* - tilePositionX/Y: Offset for scrolling effect (default: 0)
|
|
31
|
+
* - tileScaleX/Y: Tile size multiplier (default: 1)
|
|
32
|
+
* Example:
|
|
33
|
+
* <TileSprite
|
|
34
|
+
* texture="clouds"
|
|
35
|
+
* width={800} height={200}
|
|
36
|
+
* tilePositionX={scrollOffset}
|
|
37
|
+
* tileScaleX={2} // Tiles 2x larger
|
|
38
|
+
* />
|
|
39
|
+
* Note: tilePosition updates are cheap (WebGL texture wrapping, no redraw)
|
|
40
|
+
*
|
|
41
|
+
* 4. Sizing Strategy: HYBRID LAYOUT SUPPORT ✅
|
|
42
|
+
* Decision: Support both explicit and layout-aware sizing
|
|
43
|
+
* Behavior:
|
|
44
|
+
* - Explicit pixels: width={800} height={200} → Fixed size
|
|
45
|
+
* - Layout string: width="100%" height="50%" → Resolved from parent
|
|
46
|
+
* - Layout fill: width={undefined} → Auto-fill parent (if parent sized)
|
|
47
|
+
* Implementation:
|
|
48
|
+
* - Resolve layout size in creator using existing size-resolver
|
|
49
|
+
* - Create TileSprite with resolved pixel dimensions
|
|
50
|
+
* - Update dimensions in patcher if layout props change
|
|
51
|
+
* Phaser Limitation: TileSprite dimensions can't change after creation
|
|
52
|
+
* → Workaround: Recreate TileSprite if dimensions change (expensive!)
|
|
53
|
+
*
|
|
54
|
+
* 5. Performance Characteristics: OPTIMAL FOR PATTERNS ✅
|
|
55
|
+
* Advantages:
|
|
56
|
+
* - WebGL texture wrapping (hardware-accelerated, no CPU cost)
|
|
57
|
+
* - tilePosition updates are free (just shader uniform)
|
|
58
|
+
* - Good for large repeating areas (better than multiple sprites)
|
|
59
|
+
* - No geometry regeneration on scroll
|
|
60
|
+
* Limitations:
|
|
61
|
+
* - Texture must support wrapping (power-of-2 dimensions recommended)
|
|
62
|
+
* - Rotation/scale affects entire area (not individual tiles)
|
|
63
|
+
* - Can't change dimensions dynamically (requires recreation)
|
|
64
|
+
*
|
|
65
|
+
* 6. Animation Support: USER CODE ✅
|
|
66
|
+
* Decision: No built-in animation helpers
|
|
67
|
+
* Reasoning:
|
|
68
|
+
* - Scrolling patterns vary widely (linear, sine wave, parallax)
|
|
69
|
+
* - Simple to implement in user code:
|
|
70
|
+
* const [scroll, setScroll] = useState(0)
|
|
71
|
+
* useEffect(() => {
|
|
72
|
+
* const timer = setInterval(() => setScroll(s => s + 1), 16)
|
|
73
|
+
* return () => clearInterval(timer)
|
|
74
|
+
* }, [])
|
|
75
|
+
* <TileSprite tilePositionX={scroll} />
|
|
76
|
+
* - No need for framework abstraction
|
|
77
|
+
* Future: Consider useScrollingPattern hook if demand is high
|
|
78
|
+
*
|
|
79
|
+
* 7. Common Use Cases & Patterns: DOCUMENTED ✅
|
|
80
|
+
* Best For:
|
|
81
|
+
* - ✅ Scrolling backgrounds (clouds, stars, terrain)
|
|
82
|
+
* - ✅ Infinite repeating patterns (tiles, grids)
|
|
83
|
+
* - ✅ Parallax layers (different scroll speeds)
|
|
84
|
+
* - ✅ Textured fills (progress bars, health bars)
|
|
85
|
+
* Avoid For:
|
|
86
|
+
* - ❌ Static backgrounds → Use Image (simpler)
|
|
87
|
+
* - ❌ Complex patterns → Use Graphics or multiple Sprites
|
|
88
|
+
* - ❌ Animated tiles → Use Sprite with animation
|
|
89
|
+
*
|
|
90
|
+
* 8. Origin Behavior: UI-FRIENDLY DEFAULT 🆕
|
|
91
|
+
* Decision: Default origin (0, 0) like Image (differs from Sprite!)
|
|
92
|
+
* Reasoning:
|
|
93
|
+
* - TileSprites typically used as backgrounds/fills (top-left alignment)
|
|
94
|
+
* - Matches Image component behavior (UI semantics)
|
|
95
|
+
* - Easier layout calculations
|
|
96
|
+
* - Allow override via originX/originY for special cases
|
|
97
|
+
*
|
|
98
|
+
* 9. Rotation & Tiling: DOCUMENTED BEHAVIOR 🆕
|
|
99
|
+
* Behavior:
|
|
100
|
+
* - Rotation rotates entire TileSprite area (not individual tiles)
|
|
101
|
+
* - Tile pattern remains axis-aligned in texture space
|
|
102
|
+
* - Useful for rotated pattern fills, but limited flexibility
|
|
103
|
+
* - For rotated individual tiles, use multiple Sprite instances
|
|
104
|
+
*
|
|
105
|
+
* Implementation Checklist:
|
|
106
|
+
* ========================
|
|
107
|
+
* [✅] Create TileSprite with scene.add.tileSprite(x, y, width, height, texture, frame)
|
|
108
|
+
* [✅] Set origin to (0, 0) by default (UI-friendly)
|
|
109
|
+
* [✅] Apply transform props via applyTransformProps
|
|
110
|
+
* [✅] Setup tilePosition/tileScale props
|
|
111
|
+
* [✅] Setup layout size provider (width/height)
|
|
112
|
+
* [✅] Handle dimension changes via setSize
|
|
113
|
+
* [✅] Support tint, origin props
|
|
114
|
+
* [✅] Document power-of-2 texture recommendation
|
|
115
|
+
*/
|
|
116
|
+
import type * as Phaser from 'phaser';
|
|
117
|
+
/**
|
|
118
|
+
* Base props for TileSprite component
|
|
119
|
+
*/
|
|
120
|
+
export interface TileSpriteBaseProps extends TransformProps, PhaserProps, LayoutProps {
|
|
121
|
+
/** Texture key (loaded via Phaser's texture manager) */
|
|
122
|
+
texture: string;
|
|
123
|
+
/** Optional frame from texture atlas */
|
|
124
|
+
frame?: string | number;
|
|
125
|
+
/** Width of the tile sprite area */
|
|
126
|
+
width: number;
|
|
127
|
+
/** Height of the tile sprite area */
|
|
128
|
+
height: number;
|
|
129
|
+
/** Horizontal tile position offset (for scrolling effect) */
|
|
130
|
+
tilePositionX?: number;
|
|
131
|
+
/** Vertical tile position offset (for scrolling effect) */
|
|
132
|
+
tilePositionY?: number;
|
|
133
|
+
/** Horizontal tile scale factor */
|
|
134
|
+
tileScaleX?: number;
|
|
135
|
+
/** Vertical tile scale factor */
|
|
136
|
+
tileScaleY?: number;
|
|
137
|
+
/** Tint color applied to tiles (0xRRGGBB) */
|
|
138
|
+
tint?: number;
|
|
139
|
+
/** Origin X (0-1, default 0) */
|
|
140
|
+
originX?: number;
|
|
141
|
+
/** Origin Y (0-1, default 0) */
|
|
142
|
+
originY?: number;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Props for TileSprite component
|
|
146
|
+
*/
|
|
147
|
+
export interface TileSpriteProps extends TileSpriteBaseProps, PropsDefaultExtension<Phaser.GameObjects.TileSprite> {
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* TileSprite creator - creates a Phaser TileSprite object.
|
|
151
|
+
*/
|
|
152
|
+
export declare const tileSpriteCreator: HostCreator<'TileSprite'>;
|
|
153
|
+
/**
|
|
154
|
+
* TileSprite patcher - updates texture, size, tiling and shared display props.
|
|
155
|
+
*/
|
|
156
|
+
export declare const tileSpritePatcher: HostPatcher<'TileSprite'>;
|
|
157
|
+
//# sourceMappingURL=tilesprite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tilesprite.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/tilesprite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAMxD;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,EAAE,WAAW,EAAE,WAAW;IACnF,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAA;IAEf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IAEb,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;IAEd,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eACf,SAAQ,mBAAmB,EAAE,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;CAAG;AAyEtF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAoBvD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,YAAY,CASvD,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { applyPhaserProps } from "../appliers/applyPhaser.js";
|
|
2
|
+
import { applyTransformProps } from "../appliers/applyTransform.js";
|
|
3
|
+
import { createPhaser } from "../creators/createPhaser.js";
|
|
4
|
+
import { resolveAnimatableNumber, createTransform } from "../creators/createTransform.js";
|
|
5
|
+
function createTileSpriteLayout(tileSprite, props) {
|
|
6
|
+
tileSprite.__layoutProps = props;
|
|
7
|
+
tileSprite.__getLayoutSize = () => {
|
|
8
|
+
if (tileSprite.__layoutProps?.headless) {
|
|
9
|
+
return { width: 0.01, height: 0.01 };
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
width: tileSprite.width,
|
|
13
|
+
height: tileSprite.height
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function applyTileSpriteProps(tileSprite, prev, next) {
|
|
18
|
+
if ((prev.texture !== next.texture || prev.frame !== next.frame) && next.texture) {
|
|
19
|
+
tileSprite.setTexture(next.texture, next.frame);
|
|
20
|
+
}
|
|
21
|
+
if ((prev.width !== next.width || prev.height !== next.height) && typeof next.width === "number" && typeof next.height === "number") {
|
|
22
|
+
tileSprite.setSize(next.width, next.height);
|
|
23
|
+
}
|
|
24
|
+
if (prev.tilePositionX !== next.tilePositionX && typeof next.tilePositionX === "number") {
|
|
25
|
+
tileSprite.tilePositionX = next.tilePositionX;
|
|
26
|
+
}
|
|
27
|
+
if (prev.tilePositionY !== next.tilePositionY && typeof next.tilePositionY === "number") {
|
|
28
|
+
tileSprite.tilePositionY = next.tilePositionY;
|
|
29
|
+
}
|
|
30
|
+
if (prev.tileScaleX !== next.tileScaleX && typeof next.tileScaleX === "number") {
|
|
31
|
+
tileSprite.tileScaleX = next.tileScaleX;
|
|
32
|
+
}
|
|
33
|
+
if (prev.tileScaleY !== next.tileScaleY && typeof next.tileScaleY === "number") {
|
|
34
|
+
tileSprite.tileScaleY = next.tileScaleY;
|
|
35
|
+
}
|
|
36
|
+
if (prev.tint !== next.tint) {
|
|
37
|
+
if (typeof next.tint === "number") {
|
|
38
|
+
tileSprite.setTint(next.tint);
|
|
39
|
+
} else {
|
|
40
|
+
tileSprite.clearTint();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (prev.originX !== next.originX || prev.originY !== next.originY) {
|
|
44
|
+
tileSprite.setOrigin(next.originX ?? tileSprite.originX, next.originY ?? tileSprite.originY);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const tileSpriteCreator = (scene, props) => {
|
|
48
|
+
const tileSprite = scene.add.tileSprite(
|
|
49
|
+
resolveAnimatableNumber(props.x) ?? 0,
|
|
50
|
+
resolveAnimatableNumber(props.y) ?? 0,
|
|
51
|
+
props.width,
|
|
52
|
+
props.height,
|
|
53
|
+
props.texture,
|
|
54
|
+
props.frame
|
|
55
|
+
);
|
|
56
|
+
tileSprite.setOrigin(props.originX ?? 0, props.originY ?? 0);
|
|
57
|
+
createTransform(tileSprite, props);
|
|
58
|
+
createPhaser(tileSprite, props);
|
|
59
|
+
applyTileSpriteProps(tileSprite, {}, props);
|
|
60
|
+
createTileSpriteLayout(tileSprite, props);
|
|
61
|
+
props.onReady?.(tileSprite);
|
|
62
|
+
return tileSprite;
|
|
63
|
+
};
|
|
64
|
+
const tileSpritePatcher = (node, prev, next) => {
|
|
65
|
+
applyTransformProps(node, prev, next);
|
|
66
|
+
applyPhaserProps(node, prev, next);
|
|
67
|
+
applyTileSpriteProps(node, prev, next);
|
|
68
|
+
const tileSprite = node;
|
|
69
|
+
if (tileSprite.__layoutProps) {
|
|
70
|
+
tileSprite.__layoutProps = next;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
export {
|
|
74
|
+
tileSpriteCreator,
|
|
75
|
+
tileSpritePatcher
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=tilesprite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tilesprite.js","sources":["../../../src/components/primitives/tilesprite.ts"],"sourcesContent":["/**\n * TileSprite component - Phaser TileSprite GameObject (repeating texture pattern)\n * Status: IMPLEMENTED ✅\n *\n * Design Decisions & Answers:\n * ===========================\n *\n * 1. Headless Default: TRUE ✅\n * Rationale: TileSprites are typically backgrounds/patterns (decorative).\n * They fill available space and shouldn't affect parent dimensions.\n * Use Cases:\n * - ✅ Headless (default): Scrolling backgrounds, parallax layers, repeating patterns\n * - ❌ Layout-aware: Rare - textured progress bars, pattern-filled UI blocks\n *\n * 2. Layout Size Provider: SIMPLE DIMENSIONS ✅\n * Decision: Use width/height directly (not getBounds)\n * Reasoning:\n * - TileSprite requires explicit width/height (Phaser constructor param)\n * - Dimensions are always known and stable\n * - getBounds() adds unnecessary overhead\n * - Rotation affects visual but not logical dimensions (pattern stays in rect)\n * Implementation: __getLayoutSize = () => ({ width, height })\n *\n * 3. Tiling Props: DIRECT PHASER MAPPING ✅\n * Decision: Expose Phaser's tilePosition/tileScale props directly\n * Props:\n * - tilePositionX/Y: Offset for scrolling effect (default: 0)\n * - tileScaleX/Y: Tile size multiplier (default: 1)\n * Example:\n * <TileSprite\n * texture=\"clouds\"\n * width={800} height={200}\n * tilePositionX={scrollOffset}\n * tileScaleX={2} // Tiles 2x larger\n * />\n * Note: tilePosition updates are cheap (WebGL texture wrapping, no redraw)\n *\n * 4. Sizing Strategy: HYBRID LAYOUT SUPPORT ✅\n * Decision: Support both explicit and layout-aware sizing\n * Behavior:\n * - Explicit pixels: width={800} height={200} → Fixed size\n * - Layout string: width=\"100%\" height=\"50%\" → Resolved from parent\n * - Layout fill: width={undefined} → Auto-fill parent (if parent sized)\n * Implementation:\n * - Resolve layout size in creator using existing size-resolver\n * - Create TileSprite with resolved pixel dimensions\n * - Update dimensions in patcher if layout props change\n * Phaser Limitation: TileSprite dimensions can't change after creation\n * → Workaround: Recreate TileSprite if dimensions change (expensive!)\n *\n * 5. Performance Characteristics: OPTIMAL FOR PATTERNS ✅\n * Advantages:\n * - WebGL texture wrapping (hardware-accelerated, no CPU cost)\n * - tilePosition updates are free (just shader uniform)\n * - Good for large repeating areas (better than multiple sprites)\n * - No geometry regeneration on scroll\n * Limitations:\n * - Texture must support wrapping (power-of-2 dimensions recommended)\n * - Rotation/scale affects entire area (not individual tiles)\n * - Can't change dimensions dynamically (requires recreation)\n *\n * 6. Animation Support: USER CODE ✅\n * Decision: No built-in animation helpers\n * Reasoning:\n * - Scrolling patterns vary widely (linear, sine wave, parallax)\n * - Simple to implement in user code:\n * const [scroll, setScroll] = useState(0)\n * useEffect(() => {\n * const timer = setInterval(() => setScroll(s => s + 1), 16)\n * return () => clearInterval(timer)\n * }, [])\n * <TileSprite tilePositionX={scroll} />\n * - No need for framework abstraction\n * Future: Consider useScrollingPattern hook if demand is high\n *\n * 7. Common Use Cases & Patterns: DOCUMENTED ✅\n * Best For:\n * - ✅ Scrolling backgrounds (clouds, stars, terrain)\n * - ✅ Infinite repeating patterns (tiles, grids)\n * - ✅ Parallax layers (different scroll speeds)\n * - ✅ Textured fills (progress bars, health bars)\n * Avoid For:\n * - ❌ Static backgrounds → Use Image (simpler)\n * - ❌ Complex patterns → Use Graphics or multiple Sprites\n * - ❌ Animated tiles → Use Sprite with animation\n *\n * 8. Origin Behavior: UI-FRIENDLY DEFAULT 🆕\n * Decision: Default origin (0, 0) like Image (differs from Sprite!)\n * Reasoning:\n * - TileSprites typically used as backgrounds/fills (top-left alignment)\n * - Matches Image component behavior (UI semantics)\n * - Easier layout calculations\n * - Allow override via originX/originY for special cases\n *\n * 9. Rotation & Tiling: DOCUMENTED BEHAVIOR 🆕\n * Behavior:\n * - Rotation rotates entire TileSprite area (not individual tiles)\n * - Tile pattern remains axis-aligned in texture space\n * - Useful for rotated pattern fills, but limited flexibility\n * - For rotated individual tiles, use multiple Sprite instances\n *\n * Implementation Checklist:\n * ========================\n * [✅] Create TileSprite with scene.add.tileSprite(x, y, width, height, texture, frame)\n * [✅] Set origin to (0, 0) by default (UI-friendly)\n * [✅] Apply transform props via applyTransformProps\n * [✅] Setup tilePosition/tileScale props\n * [✅] Setup layout size provider (width/height)\n * [✅] Handle dimension changes via setSize\n * [✅] Support tint, origin props\n * [✅] Document power-of-2 texture recommendation\n */\nimport type * as Phaser from 'phaser'\nimport type { LayoutProps, PhaserProps, TransformProps } from '../../core-props'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { LayoutSize } from '../../layout'\nimport type { PropsDefaultExtension } from '../../types'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\n/**\n * Base props for TileSprite component\n */\nexport interface TileSpriteBaseProps extends TransformProps, PhaserProps, LayoutProps {\n /** Texture key (loaded via Phaser's texture manager) */\n texture: string\n\n /** Optional frame from texture atlas */\n frame?: string | number\n\n /** Width of the tile sprite area */\n width: number\n\n /** Height of the tile sprite area */\n height: number\n\n /** Horizontal tile position offset (for scrolling effect) */\n tilePositionX?: number\n\n /** Vertical tile position offset (for scrolling effect) */\n tilePositionY?: number\n\n /** Horizontal tile scale factor */\n tileScaleX?: number\n\n /** Vertical tile scale factor */\n tileScaleY?: number\n\n /** Tint color applied to tiles (0xRRGGBB) */\n tint?: number\n\n /** Origin X (0-1, default 0) */\n originX?: number\n\n /** Origin Y (0-1, default 0) */\n originY?: number\n}\n\n/**\n * Props for TileSprite component\n */\nexport interface TileSpriteProps\n extends TileSpriteBaseProps, PropsDefaultExtension<Phaser.GameObjects.TileSprite> {}\n\ntype TileSpriteNode = Phaser.GameObjects.TileSprite & {\n __layoutProps?: TileSpriteBaseProps\n __getLayoutSize?: () => LayoutSize\n}\n\n/**\n * Creates layout infrastructure for TileSprite.\n */\nfunction createTileSpriteLayout(\n tileSprite: TileSpriteNode,\n props: Partial<TileSpriteBaseProps>\n): void {\n tileSprite.__layoutProps = props as TileSpriteBaseProps\n tileSprite.__getLayoutSize = () => {\n if (tileSprite.__layoutProps?.headless) {\n return { width: 0.01, height: 0.01 }\n }\n\n return {\n width: tileSprite.width,\n height: tileSprite.height,\n }\n }\n}\n\nfunction applyTileSpriteProps(\n tileSprite: Phaser.GameObjects.TileSprite,\n prev: Partial<TileSpriteBaseProps>,\n next: Partial<TileSpriteBaseProps>\n): void {\n if ((prev.texture !== next.texture || prev.frame !== next.frame) && next.texture) {\n tileSprite.setTexture(next.texture, next.frame)\n }\n\n if (\n (prev.width !== next.width || prev.height !== next.height) &&\n typeof next.width === 'number' &&\n typeof next.height === 'number'\n ) {\n tileSprite.setSize(next.width, next.height)\n }\n\n if (prev.tilePositionX !== next.tilePositionX && typeof next.tilePositionX === 'number') {\n tileSprite.tilePositionX = next.tilePositionX\n }\n\n if (prev.tilePositionY !== next.tilePositionY && typeof next.tilePositionY === 'number') {\n tileSprite.tilePositionY = next.tilePositionY\n }\n\n if (prev.tileScaleX !== next.tileScaleX && typeof next.tileScaleX === 'number') {\n tileSprite.tileScaleX = next.tileScaleX\n }\n\n if (prev.tileScaleY !== next.tileScaleY && typeof next.tileScaleY === 'number') {\n tileSprite.tileScaleY = next.tileScaleY\n }\n\n if (prev.tint !== next.tint) {\n if (typeof next.tint === 'number') {\n tileSprite.setTint(next.tint)\n } else {\n tileSprite.clearTint()\n }\n }\n\n if (prev.originX !== next.originX || prev.originY !== next.originY) {\n tileSprite.setOrigin(next.originX ?? tileSprite.originX, next.originY ?? tileSprite.originY)\n }\n}\n\n/**\n * TileSprite creator - creates a Phaser TileSprite object.\n */\nexport const tileSpriteCreator: HostCreator<'TileSprite'> = (scene, props) => {\n const tileSprite = scene.add.tileSprite(\n resolveAnimatableNumber(props.x) ?? 0,\n resolveAnimatableNumber(props.y) ?? 0,\n props.width,\n props.height,\n props.texture,\n props.frame\n )\n\n tileSprite.setOrigin(props.originX ?? 0, props.originY ?? 0)\n\n createTransform(tileSprite, props)\n createPhaser(tileSprite, props)\n applyTileSpriteProps(tileSprite, {}, props)\n createTileSpriteLayout(tileSprite as TileSpriteNode, props)\n\n props.onReady?.(tileSprite)\n\n return tileSprite\n}\n\n/**\n * TileSprite patcher - updates texture, size, tiling and shared display props.\n */\nexport const tileSpritePatcher: HostPatcher<'TileSprite'> = (node, prev, next) => {\n applyTransformProps(node, prev, next)\n applyPhaserProps(node, prev, next)\n applyTileSpriteProps(node, prev, next)\n\n const tileSprite = node as TileSpriteNode\n if (tileSprite.__layoutProps) {\n tileSprite.__layoutProps = next as TileSpriteBaseProps\n }\n}\n"],"names":[],"mappings":";;;;AA8KA,SAAS,uBACP,YACA,OACM;AACN,aAAW,gBAAgB;AAC3B,aAAW,kBAAkB,MAAM;AACjC,QAAI,WAAW,eAAe,UAAU;AACtC,aAAO,EAAE,OAAO,MAAM,QAAQ,KAAA;AAAA,IAChC;AAEA,WAAO;AAAA,MACL,OAAO,WAAW;AAAA,MAClB,QAAQ,WAAW;AAAA,IAAA;AAAA,EAEvB;AACF;AAEA,SAAS,qBACP,YACA,MACA,MACM;AACN,OAAK,KAAK,YAAY,KAAK,WAAW,KAAK,UAAU,KAAK,UAAU,KAAK,SAAS;AAChF,eAAW,WAAW,KAAK,SAAS,KAAK,KAAK;AAAA,EAChD;AAEA,OACG,KAAK,UAAU,KAAK,SAAS,KAAK,WAAW,KAAK,WACnD,OAAO,KAAK,UAAU,YACtB,OAAO,KAAK,WAAW,UACvB;AACA,eAAW,QAAQ,KAAK,OAAO,KAAK,MAAM;AAAA,EAC5C;AAEA,MAAI,KAAK,kBAAkB,KAAK,iBAAiB,OAAO,KAAK,kBAAkB,UAAU;AACvF,eAAW,gBAAgB,KAAK;AAAA,EAClC;AAEA,MAAI,KAAK,kBAAkB,KAAK,iBAAiB,OAAO,KAAK,kBAAkB,UAAU;AACvF,eAAW,gBAAgB,KAAK;AAAA,EAClC;AAEA,MAAI,KAAK,eAAe,KAAK,cAAc,OAAO,KAAK,eAAe,UAAU;AAC9E,eAAW,aAAa,KAAK;AAAA,EAC/B;AAEA,MAAI,KAAK,eAAe,KAAK,cAAc,OAAO,KAAK,eAAe,UAAU;AAC9E,eAAW,aAAa,KAAK;AAAA,EAC/B;AAEA,MAAI,KAAK,SAAS,KAAK,MAAM;AAC3B,QAAI,OAAO,KAAK,SAAS,UAAU;AACjC,iBAAW,QAAQ,KAAK,IAAI;AAAA,IAC9B,OAAO;AACL,iBAAW,UAAA;AAAA,IACb;AAAA,EACF;AAEA,MAAI,KAAK,YAAY,KAAK,WAAW,KAAK,YAAY,KAAK,SAAS;AAClE,eAAW,UAAU,KAAK,WAAW,WAAW,SAAS,KAAK,WAAW,WAAW,OAAO;AAAA,EAC7F;AACF;AAKO,MAAM,oBAA+C,CAAC,OAAO,UAAU;AAC5E,QAAM,aAAa,MAAM,IAAI;AAAA,IAC3B,wBAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,wBAAwB,MAAM,CAAC,KAAK;AAAA,IACpC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAGR,aAAW,UAAU,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC;AAE3D,kBAAgB,YAAY,KAAK;AACjC,eAAa,YAAY,KAAK;AAC9B,uBAAqB,YAAY,CAAA,GAAI,KAAK;AAC1C,yBAAuB,YAA8B,KAAK;AAE1D,QAAM,UAAU,UAAU;AAE1B,SAAO;AACT;AAKO,MAAM,oBAA+C,CAAC,MAAM,MAAM,SAAS;AAChF,sBAAoB,MAAM,MAAM,IAAI;AACpC,mBAAiB,MAAM,MAAM,IAAI;AACjC,uBAAqB,MAAM,MAAM,IAAI;AAErC,QAAM,aAAa;AACnB,MAAI,WAAW,eAAe;AAC5B,eAAW,gBAAgB;AAAA,EAC7B;AACF;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const PhaserVectorDrawContext = require("../../vector/PhaserVectorDrawContext.cjs");
|
|
4
|
+
const applyPhaser = require("../appliers/applyPhaser.cjs");
|
|
5
|
+
const applyTransform = require("../appliers/applyTransform.cjs");
|
|
6
|
+
const createPhaser = require("../creators/createPhaser.cjs");
|
|
7
|
+
const createTransform = require("../creators/createTransform.cjs");
|
|
8
|
+
function shallowEqual(a, b) {
|
|
9
|
+
if (!a || !b) return a === b;
|
|
10
|
+
if (a.length !== b.length) return false;
|
|
11
|
+
return a.every((val, i) => val === b[i]);
|
|
12
|
+
}
|
|
13
|
+
function getVectorDrawContext(node) {
|
|
14
|
+
if (!node.__vectorDrawContext) {
|
|
15
|
+
node.__vectorDrawContext = new PhaserVectorDrawContext.PhaserVectorDrawContext(node);
|
|
16
|
+
}
|
|
17
|
+
return node.__vectorDrawContext;
|
|
18
|
+
}
|
|
19
|
+
function applyVectorDrawLayout(node, props) {
|
|
20
|
+
node.__layoutProps = props;
|
|
21
|
+
node.__getLayoutSize = () => {
|
|
22
|
+
if (props.headless ?? true) {
|
|
23
|
+
return { width: 0.01, height: 0.01 };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
width: typeof props.width === "number" ? props.width : 0,
|
|
27
|
+
height: typeof props.height === "number" ? props.height : 0
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function validateVectorDrawLayout(props) {
|
|
32
|
+
if (props.headless === false && (typeof props.width !== "number" || typeof props.height !== "number")) {
|
|
33
|
+
throw new Error(
|
|
34
|
+
"VectorDrawContent requires explicit width and height props when headless=false"
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function drawVectorContent(node, props) {
|
|
39
|
+
if (!props.onDraw) return;
|
|
40
|
+
if (props.autoClear !== false) {
|
|
41
|
+
node.clear();
|
|
42
|
+
}
|
|
43
|
+
props.onDraw(getVectorDrawContext(node), props);
|
|
44
|
+
node.__drawDependencies = props.dependencies;
|
|
45
|
+
}
|
|
46
|
+
const vectorDrawCreator = (scene, props) => {
|
|
47
|
+
validateVectorDrawLayout(props);
|
|
48
|
+
const graphics = scene.add.graphics();
|
|
49
|
+
graphics.setPosition(createTransform.resolveAnimatableNumber(props.x) ?? 0, createTransform.resolveAnimatableNumber(props.y) ?? 0);
|
|
50
|
+
createTransform.createTransform(graphics, props);
|
|
51
|
+
createPhaser.createPhaser(graphics, props);
|
|
52
|
+
applyVectorDrawLayout(graphics, props);
|
|
53
|
+
graphics.__drawDependencies = props.dependencies;
|
|
54
|
+
graphics.__vectorDrawContext = new PhaserVectorDrawContext.PhaserVectorDrawContext(graphics);
|
|
55
|
+
if (props.onDraw) {
|
|
56
|
+
props.onDraw(graphics.__vectorDrawContext, props);
|
|
57
|
+
}
|
|
58
|
+
return graphics;
|
|
59
|
+
};
|
|
60
|
+
const vectorDrawPatcher = (node, prev, next) => {
|
|
61
|
+
const vectorNode = node;
|
|
62
|
+
validateVectorDrawLayout(next);
|
|
63
|
+
applyTransform.applyTransformProps(vectorNode, prev, next);
|
|
64
|
+
applyPhaser.applyPhaserProps(vectorNode, prev, next);
|
|
65
|
+
applyVectorDrawLayout(vectorNode, next);
|
|
66
|
+
const depsChanged = !shallowEqual(vectorNode.__drawDependencies, next.dependencies);
|
|
67
|
+
if (depsChanged) {
|
|
68
|
+
drawVectorContent(vectorNode, next);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
exports.vectorDrawCreator = vectorDrawCreator;
|
|
72
|
+
exports.vectorDrawPatcher = vectorDrawPatcher;
|
|
73
|
+
//# sourceMappingURL=vectorDraw.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectorDraw.cjs","sources":["../../../src/components/primitives/vectorDraw.ts"],"sourcesContent":["import type { VectorDrawContentPrimitiveProps } from '@number10/jsx-core'\nimport type * as Phaser from 'phaser'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { GameObjectWithLayout } from '../../layout/types'\nimport { PhaserVectorDrawContext } from '../../vector'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\ntype VectorDrawNode = Phaser.GameObjects.Graphics &\n GameObjectWithLayout & {\n __drawDependencies?: unknown[] | undefined\n __vectorDrawContext?: PhaserVectorDrawContext | undefined\n }\n\nfunction shallowEqual(a?: unknown[], b?: unknown[]): boolean {\n if (!a || !b) return a === b\n if (a.length !== b.length) return false\n return a.every((val, i) => val === b[i])\n}\n\nfunction getVectorDrawContext(node: VectorDrawNode): PhaserVectorDrawContext {\n if (!node.__vectorDrawContext) {\n node.__vectorDrawContext = new PhaserVectorDrawContext(node)\n }\n return node.__vectorDrawContext\n}\n\nfunction applyVectorDrawLayout(\n node: VectorDrawNode,\n props: Partial<VectorDrawContentPrimitiveProps>\n): void {\n node.__layoutProps = props as VectorDrawContentPrimitiveProps\n node.__getLayoutSize = () => {\n if (props.headless ?? true) {\n return { width: 0.01, height: 0.01 }\n }\n return {\n width: typeof props.width === 'number' ? props.width : 0,\n height: typeof props.height === 'number' ? props.height : 0,\n }\n }\n}\n\nfunction validateVectorDrawLayout(props: Partial<VectorDrawContentPrimitiveProps>): void {\n if (\n props.headless === false &&\n (typeof props.width !== 'number' || typeof props.height !== 'number')\n ) {\n throw new Error(\n 'VectorDrawContent requires explicit width and height props when headless=false'\n )\n }\n}\n\nfunction drawVectorContent(\n node: VectorDrawNode,\n props: Partial<VectorDrawContentPrimitiveProps>\n): void {\n if (!props.onDraw) return\n\n if (props.autoClear !== false) {\n node.clear()\n }\n\n props.onDraw(getVectorDrawContext(node), props as VectorDrawContentPrimitiveProps)\n node.__drawDependencies = props.dependencies\n}\n\nexport const vectorDrawCreator: HostCreator<'vectorDraw'> = (scene, props) => {\n validateVectorDrawLayout(props)\n\n const graphics = scene.add.graphics() as VectorDrawNode\n graphics.setPosition(resolveAnimatableNumber(props.x) ?? 0, resolveAnimatableNumber(props.y) ?? 0)\n\n createTransform(graphics, props)\n createPhaser(graphics, props)\n applyVectorDrawLayout(graphics, props)\n graphics.__drawDependencies = props.dependencies\n graphics.__vectorDrawContext = new PhaserVectorDrawContext(graphics)\n\n if (props.onDraw) {\n props.onDraw(graphics.__vectorDrawContext, props)\n }\n\n return graphics\n}\n\nexport const vectorDrawPatcher: HostPatcher<'vectorDraw'> = (node, prev, next) => {\n const vectorNode = node as VectorDrawNode\n\n validateVectorDrawLayout(next)\n applyTransformProps(vectorNode, prev, next)\n applyPhaserProps(vectorNode, prev, next)\n applyVectorDrawLayout(vectorNode, next)\n\n const depsChanged = !shallowEqual(vectorNode.__drawDependencies, next.dependencies)\n if (depsChanged) {\n drawVectorContent(vectorNode, next)\n }\n}\n"],"names":["PhaserVectorDrawContext","resolveAnimatableNumber","createTransform","createPhaser","applyTransformProps","applyPhaserProps"],"mappings":";;;;;;;AAgBA,SAAS,aAAa,GAAe,GAAwB;AAC3D,MAAI,CAAC,KAAK,CAAC,UAAU,MAAM;AAC3B,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,SAAO,EAAE,MAAM,CAAC,KAAK,MAAM,QAAQ,EAAE,CAAC,CAAC;AACzC;AAEA,SAAS,qBAAqB,MAA+C;AAC3E,MAAI,CAAC,KAAK,qBAAqB;AAC7B,SAAK,sBAAsB,IAAIA,wBAAAA,wBAAwB,IAAI;AAAA,EAC7D;AACA,SAAO,KAAK;AACd;AAEA,SAAS,sBACP,MACA,OACM;AACN,OAAK,gBAAgB;AACrB,OAAK,kBAAkB,MAAM;AAC3B,QAAI,MAAM,YAAY,MAAM;AAC1B,aAAO,EAAE,OAAO,MAAM,QAAQ,KAAA;AAAA,IAChC;AACA,WAAO;AAAA,MACL,OAAO,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ;AAAA,MACvD,QAAQ,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAAA,IAAA;AAAA,EAE9D;AACF;AAEA,SAAS,yBAAyB,OAAuD;AACvF,MACE,MAAM,aAAa,UAClB,OAAO,MAAM,UAAU,YAAY,OAAO,MAAM,WAAW,WAC5D;AACA,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACF;AAEA,SAAS,kBACP,MACA,OACM;AACN,MAAI,CAAC,MAAM,OAAQ;AAEnB,MAAI,MAAM,cAAc,OAAO;AAC7B,SAAK,MAAA;AAAA,EACP;AAEA,QAAM,OAAO,qBAAqB,IAAI,GAAG,KAAwC;AACjF,OAAK,qBAAqB,MAAM;AAClC;AAEO,MAAM,oBAA+C,CAAC,OAAO,UAAU;AAC5E,2BAAyB,KAAK;AAE9B,QAAM,WAAW,MAAM,IAAI,SAAA;AAC3B,WAAS,YAAYC,wCAAwB,MAAM,CAAC,KAAK,GAAGA,wCAAwB,MAAM,CAAC,KAAK,CAAC;AAEjGC,kBAAAA,gBAAgB,UAAU,KAAK;AAC/BC,eAAAA,aAAa,UAAU,KAAK;AAC5B,wBAAsB,UAAU,KAAK;AACrC,WAAS,qBAAqB,MAAM;AACpC,WAAS,sBAAsB,IAAIH,wBAAAA,wBAAwB,QAAQ;AAEnE,MAAI,MAAM,QAAQ;AAChB,UAAM,OAAO,SAAS,qBAAqB,KAAK;AAAA,EAClD;AAEA,SAAO;AACT;AAEO,MAAM,oBAA+C,CAAC,MAAM,MAAM,SAAS;AAChF,QAAM,aAAa;AAEnB,2BAAyB,IAAI;AAC7BI,qCAAoB,YAAY,MAAM,IAAI;AAC1CC,+BAAiB,YAAY,MAAM,IAAI;AACvC,wBAAsB,YAAY,IAAI;AAEtC,QAAM,cAAc,CAAC,aAAa,WAAW,oBAAoB,KAAK,YAAY;AAClF,MAAI,aAAa;AACf,sBAAkB,YAAY,IAAI;AAAA,EACpC;AACF;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectorDraw.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/vectorDraw.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAoE1D,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAiBvD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAYvD,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { PhaserVectorDrawContext } from "../../vector/PhaserVectorDrawContext.js";
|
|
2
|
+
import { applyPhaserProps } from "../appliers/applyPhaser.js";
|
|
3
|
+
import { applyTransformProps } from "../appliers/applyTransform.js";
|
|
4
|
+
import { createPhaser } from "../creators/createPhaser.js";
|
|
5
|
+
import { resolveAnimatableNumber, createTransform } from "../creators/createTransform.js";
|
|
6
|
+
function shallowEqual(a, b) {
|
|
7
|
+
if (!a || !b) return a === b;
|
|
8
|
+
if (a.length !== b.length) return false;
|
|
9
|
+
return a.every((val, i) => val === b[i]);
|
|
10
|
+
}
|
|
11
|
+
function getVectorDrawContext(node) {
|
|
12
|
+
if (!node.__vectorDrawContext) {
|
|
13
|
+
node.__vectorDrawContext = new PhaserVectorDrawContext(node);
|
|
14
|
+
}
|
|
15
|
+
return node.__vectorDrawContext;
|
|
16
|
+
}
|
|
17
|
+
function applyVectorDrawLayout(node, props) {
|
|
18
|
+
node.__layoutProps = props;
|
|
19
|
+
node.__getLayoutSize = () => {
|
|
20
|
+
if (props.headless ?? true) {
|
|
21
|
+
return { width: 0.01, height: 0.01 };
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
width: typeof props.width === "number" ? props.width : 0,
|
|
25
|
+
height: typeof props.height === "number" ? props.height : 0
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function validateVectorDrawLayout(props) {
|
|
30
|
+
if (props.headless === false && (typeof props.width !== "number" || typeof props.height !== "number")) {
|
|
31
|
+
throw new Error(
|
|
32
|
+
"VectorDrawContent requires explicit width and height props when headless=false"
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function drawVectorContent(node, props) {
|
|
37
|
+
if (!props.onDraw) return;
|
|
38
|
+
if (props.autoClear !== false) {
|
|
39
|
+
node.clear();
|
|
40
|
+
}
|
|
41
|
+
props.onDraw(getVectorDrawContext(node), props);
|
|
42
|
+
node.__drawDependencies = props.dependencies;
|
|
43
|
+
}
|
|
44
|
+
const vectorDrawCreator = (scene, props) => {
|
|
45
|
+
validateVectorDrawLayout(props);
|
|
46
|
+
const graphics = scene.add.graphics();
|
|
47
|
+
graphics.setPosition(resolveAnimatableNumber(props.x) ?? 0, resolveAnimatableNumber(props.y) ?? 0);
|
|
48
|
+
createTransform(graphics, props);
|
|
49
|
+
createPhaser(graphics, props);
|
|
50
|
+
applyVectorDrawLayout(graphics, props);
|
|
51
|
+
graphics.__drawDependencies = props.dependencies;
|
|
52
|
+
graphics.__vectorDrawContext = new PhaserVectorDrawContext(graphics);
|
|
53
|
+
if (props.onDraw) {
|
|
54
|
+
props.onDraw(graphics.__vectorDrawContext, props);
|
|
55
|
+
}
|
|
56
|
+
return graphics;
|
|
57
|
+
};
|
|
58
|
+
const vectorDrawPatcher = (node, prev, next) => {
|
|
59
|
+
const vectorNode = node;
|
|
60
|
+
validateVectorDrawLayout(next);
|
|
61
|
+
applyTransformProps(vectorNode, prev, next);
|
|
62
|
+
applyPhaserProps(vectorNode, prev, next);
|
|
63
|
+
applyVectorDrawLayout(vectorNode, next);
|
|
64
|
+
const depsChanged = !shallowEqual(vectorNode.__drawDependencies, next.dependencies);
|
|
65
|
+
if (depsChanged) {
|
|
66
|
+
drawVectorContent(vectorNode, next);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
export {
|
|
70
|
+
vectorDrawCreator,
|
|
71
|
+
vectorDrawPatcher
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=vectorDraw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectorDraw.js","sources":["../../../src/components/primitives/vectorDraw.ts"],"sourcesContent":["import type { VectorDrawContentPrimitiveProps } from '@number10/jsx-core'\nimport type * as Phaser from 'phaser'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { GameObjectWithLayout } from '../../layout/types'\nimport { PhaserVectorDrawContext } from '../../vector'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\ntype VectorDrawNode = Phaser.GameObjects.Graphics &\n GameObjectWithLayout & {\n __drawDependencies?: unknown[] | undefined\n __vectorDrawContext?: PhaserVectorDrawContext | undefined\n }\n\nfunction shallowEqual(a?: unknown[], b?: unknown[]): boolean {\n if (!a || !b) return a === b\n if (a.length !== b.length) return false\n return a.every((val, i) => val === b[i])\n}\n\nfunction getVectorDrawContext(node: VectorDrawNode): PhaserVectorDrawContext {\n if (!node.__vectorDrawContext) {\n node.__vectorDrawContext = new PhaserVectorDrawContext(node)\n }\n return node.__vectorDrawContext\n}\n\nfunction applyVectorDrawLayout(\n node: VectorDrawNode,\n props: Partial<VectorDrawContentPrimitiveProps>\n): void {\n node.__layoutProps = props as VectorDrawContentPrimitiveProps\n node.__getLayoutSize = () => {\n if (props.headless ?? true) {\n return { width: 0.01, height: 0.01 }\n }\n return {\n width: typeof props.width === 'number' ? props.width : 0,\n height: typeof props.height === 'number' ? props.height : 0,\n }\n }\n}\n\nfunction validateVectorDrawLayout(props: Partial<VectorDrawContentPrimitiveProps>): void {\n if (\n props.headless === false &&\n (typeof props.width !== 'number' || typeof props.height !== 'number')\n ) {\n throw new Error(\n 'VectorDrawContent requires explicit width and height props when headless=false'\n )\n }\n}\n\nfunction drawVectorContent(\n node: VectorDrawNode,\n props: Partial<VectorDrawContentPrimitiveProps>\n): void {\n if (!props.onDraw) return\n\n if (props.autoClear !== false) {\n node.clear()\n }\n\n props.onDraw(getVectorDrawContext(node), props as VectorDrawContentPrimitiveProps)\n node.__drawDependencies = props.dependencies\n}\n\nexport const vectorDrawCreator: HostCreator<'vectorDraw'> = (scene, props) => {\n validateVectorDrawLayout(props)\n\n const graphics = scene.add.graphics() as VectorDrawNode\n graphics.setPosition(resolveAnimatableNumber(props.x) ?? 0, resolveAnimatableNumber(props.y) ?? 0)\n\n createTransform(graphics, props)\n createPhaser(graphics, props)\n applyVectorDrawLayout(graphics, props)\n graphics.__drawDependencies = props.dependencies\n graphics.__vectorDrawContext = new PhaserVectorDrawContext(graphics)\n\n if (props.onDraw) {\n props.onDraw(graphics.__vectorDrawContext, props)\n }\n\n return graphics\n}\n\nexport const vectorDrawPatcher: HostPatcher<'vectorDraw'> = (node, prev, next) => {\n const vectorNode = node as VectorDrawNode\n\n validateVectorDrawLayout(next)\n applyTransformProps(vectorNode, prev, next)\n applyPhaserProps(vectorNode, prev, next)\n applyVectorDrawLayout(vectorNode, next)\n\n const depsChanged = !shallowEqual(vectorNode.__drawDependencies, next.dependencies)\n if (depsChanged) {\n drawVectorContent(vectorNode, next)\n }\n}\n"],"names":[],"mappings":";;;;;AAgBA,SAAS,aAAa,GAAe,GAAwB;AAC3D,MAAI,CAAC,KAAK,CAAC,UAAU,MAAM;AAC3B,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,SAAO,EAAE,MAAM,CAAC,KAAK,MAAM,QAAQ,EAAE,CAAC,CAAC;AACzC;AAEA,SAAS,qBAAqB,MAA+C;AAC3E,MAAI,CAAC,KAAK,qBAAqB;AAC7B,SAAK,sBAAsB,IAAI,wBAAwB,IAAI;AAAA,EAC7D;AACA,SAAO,KAAK;AACd;AAEA,SAAS,sBACP,MACA,OACM;AACN,OAAK,gBAAgB;AACrB,OAAK,kBAAkB,MAAM;AAC3B,QAAI,MAAM,YAAY,MAAM;AAC1B,aAAO,EAAE,OAAO,MAAM,QAAQ,KAAA;AAAA,IAChC;AACA,WAAO;AAAA,MACL,OAAO,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ;AAAA,MACvD,QAAQ,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAAA,IAAA;AAAA,EAE9D;AACF;AAEA,SAAS,yBAAyB,OAAuD;AACvF,MACE,MAAM,aAAa,UAClB,OAAO,MAAM,UAAU,YAAY,OAAO,MAAM,WAAW,WAC5D;AACA,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACF;AAEA,SAAS,kBACP,MACA,OACM;AACN,MAAI,CAAC,MAAM,OAAQ;AAEnB,MAAI,MAAM,cAAc,OAAO;AAC7B,SAAK,MAAA;AAAA,EACP;AAEA,QAAM,OAAO,qBAAqB,IAAI,GAAG,KAAwC;AACjF,OAAK,qBAAqB,MAAM;AAClC;AAEO,MAAM,oBAA+C,CAAC,OAAO,UAAU;AAC5E,2BAAyB,KAAK;AAE9B,QAAM,WAAW,MAAM,IAAI,SAAA;AAC3B,WAAS,YAAY,wBAAwB,MAAM,CAAC,KAAK,GAAG,wBAAwB,MAAM,CAAC,KAAK,CAAC;AAEjG,kBAAgB,UAAU,KAAK;AAC/B,eAAa,UAAU,KAAK;AAC5B,wBAAsB,UAAU,KAAK;AACrC,WAAS,qBAAqB,MAAM;AACpC,WAAS,sBAAsB,IAAI,wBAAwB,QAAQ;AAEnE,MAAI,MAAM,QAAQ;AAChB,UAAM,OAAO,SAAS,qBAAqB,KAAK;AAAA,EAClD;AAEA,SAAO;AACT;AAEO,MAAM,oBAA+C,CAAC,MAAM,MAAM,SAAS;AAChF,QAAM,aAAa;AAEnB,2BAAyB,IAAI;AAC7B,sBAAoB,YAAY,MAAM,IAAI;AAC1C,mBAAiB,YAAY,MAAM,IAAI;AACvC,wBAAsB,YAAY,IAAI;AAEtC,QAAM,cAAc,CAAC,aAAa,WAAW,oBAAoB,KAAK,YAAY;AAClF,MAAI,aAAa;AACf,sBAAkB,YAAY,IAAI;AAAA,EACpC;AACF;"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxCore = require("@number10/jsx-core");
|
|
4
|
+
require("phaser");
|
|
5
|
+
const applyBackground = require("../appliers/applyBackground.cjs");
|
|
6
|
+
const applyGestures = require("../appliers/applyGestures.cjs");
|
|
7
|
+
const applyLayout = require("../appliers/applyLayout.cjs");
|
|
8
|
+
const applyPhaser = require("../appliers/applyPhaser.cjs");
|
|
9
|
+
const applyTooltip = require("../appliers/applyTooltip.cjs");
|
|
10
|
+
const applyTransform = require("../appliers/applyTransform.cjs");
|
|
11
|
+
const createBackground = require("../creators/createBackground.cjs");
|
|
12
|
+
const createGestures = require("../creators/createGestures.cjs");
|
|
13
|
+
const createLayout = require("../creators/createLayout.cjs");
|
|
14
|
+
const createPhaser = require("../creators/createPhaser.cjs");
|
|
15
|
+
const createTransform = require("../creators/createTransform.cjs");
|
|
16
|
+
function normalizeBackgroundProps(props) {
|
|
17
|
+
const bgProps = props;
|
|
18
|
+
const hasBackground = bgProps.backgroundColor !== void 0;
|
|
19
|
+
const hasBorder = bgProps.borderColor !== void 0;
|
|
20
|
+
if (!hasBackground && !hasBorder) {
|
|
21
|
+
return props;
|
|
22
|
+
}
|
|
23
|
+
const normalized = { ...props };
|
|
24
|
+
if (hasBackground && bgProps.backgroundAlpha === void 0) {
|
|
25
|
+
normalized.backgroundAlpha = 1;
|
|
26
|
+
}
|
|
27
|
+
if (hasBorder) {
|
|
28
|
+
if (bgProps.borderWidth === void 0 || bgProps.borderWidth === 0) {
|
|
29
|
+
normalized.borderWidth = 1;
|
|
30
|
+
}
|
|
31
|
+
if (bgProps.borderAlpha === void 0 || bgProps.borderAlpha === 0) {
|
|
32
|
+
normalized.borderAlpha = 1;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return normalized;
|
|
36
|
+
}
|
|
37
|
+
const viewCreator = (scene, props) => {
|
|
38
|
+
if (props.backgroundColor !== void 0 || props.cornerRadius !== void 0) {
|
|
39
|
+
jsxCore.DebugLogger.log("theme", "View Creator - Props received:", {
|
|
40
|
+
backgroundColor: props.backgroundColor,
|
|
41
|
+
cornerRadius: props.cornerRadius,
|
|
42
|
+
width: props.width,
|
|
43
|
+
height: props.height
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const normalizedProps = normalizeBackgroundProps(props);
|
|
47
|
+
const container = scene.add.container(
|
|
48
|
+
createTransform.resolveAnimatableNumber(normalizedProps.x) ?? 0,
|
|
49
|
+
createTransform.resolveAnimatableNumber(normalizedProps.y) ?? 0
|
|
50
|
+
);
|
|
51
|
+
createTransform.createTransform(container, normalizedProps);
|
|
52
|
+
createPhaser.createPhaser(container, normalizedProps);
|
|
53
|
+
createBackground.createBackground(
|
|
54
|
+
scene,
|
|
55
|
+
container,
|
|
56
|
+
normalizedProps
|
|
57
|
+
);
|
|
58
|
+
createLayout.createLayout(container, normalizedProps);
|
|
59
|
+
if (normalizedProps.onTooltip) {
|
|
60
|
+
const handlers = applyTooltip.applyTooltip(
|
|
61
|
+
scene,
|
|
62
|
+
container,
|
|
63
|
+
normalizedProps.onTooltip,
|
|
64
|
+
normalizedProps.onHoverStart,
|
|
65
|
+
normalizedProps.onHoverEnd
|
|
66
|
+
);
|
|
67
|
+
normalizedProps.onHoverStart = handlers.onHoverStart;
|
|
68
|
+
normalizedProps.onHoverEnd = handlers.onHoverEnd;
|
|
69
|
+
}
|
|
70
|
+
createGestures.createGestures(scene, container, normalizedProps);
|
|
71
|
+
jsxCore.DebugLogger.log(
|
|
72
|
+
"layout",
|
|
73
|
+
"View creator storing __layoutProps with padding:",
|
|
74
|
+
normalizedProps.padding
|
|
75
|
+
);
|
|
76
|
+
return container;
|
|
77
|
+
};
|
|
78
|
+
const viewPatcher = (node, prev, next) => {
|
|
79
|
+
const normalizedPrev = normalizeBackgroundProps(prev);
|
|
80
|
+
const normalizedNext = normalizeBackgroundProps(next);
|
|
81
|
+
applyTransform.applyTransformProps(node, normalizedPrev, normalizedNext);
|
|
82
|
+
applyPhaser.applyPhaserProps(node, normalizedPrev, normalizedNext);
|
|
83
|
+
const container = node;
|
|
84
|
+
applyBackground.applyBackgroundProps(container, normalizedPrev, normalizedNext);
|
|
85
|
+
if (container.scene && container.scene.data) {
|
|
86
|
+
if (normalizedNext.onTooltip) {
|
|
87
|
+
const handlers = applyTooltip.applyTooltip(
|
|
88
|
+
container.scene,
|
|
89
|
+
container,
|
|
90
|
+
normalizedNext.onTooltip,
|
|
91
|
+
normalizedNext.onHoverStart,
|
|
92
|
+
normalizedNext.onHoverEnd
|
|
93
|
+
);
|
|
94
|
+
normalizedNext.onHoverStart = handlers.onHoverStart;
|
|
95
|
+
normalizedNext.onHoverEnd = handlers.onHoverEnd;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (container.scene && container.scene.data) {
|
|
99
|
+
applyGestures.applyGesturesProps(container.scene, container, normalizedPrev, normalizedNext);
|
|
100
|
+
}
|
|
101
|
+
applyLayout.applyLayoutProps(container, normalizedPrev, normalizedNext);
|
|
102
|
+
};
|
|
103
|
+
exports.viewCreator = viewCreator;
|
|
104
|
+
exports.viewPatcher = viewPatcher;
|
|
105
|
+
//# sourceMappingURL=view.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.cjs","sources":["../../../src/components/primitives/view.ts"],"sourcesContent":["/**\n * View component - Phaser Container with background Graphics and layout system\n * Status: IMPLEMENTED ✅\n *\n * Design Overview:\n * ================\n *\n * 1. Component Role: LAYOUT CONTAINER\n * Purpose: Primary layout primitive for UI composition\n * Composition: Phaser.Container + Background Graphics (optional)\n * Responsibilities:\n * - Layout orchestration (flexbox-style positioning of children)\n * - Visual styling (background color, borders, corner radius)\n * - Gesture handling (touch/mouse interaction)\n * - Dimension management (defines its own size + provides context for children)\n *\n * 2. Headless Behavior: NEVER HEADLESS ⚠️\n * Decision: View cannot be headless (always participates in layout)\n * Reasoning:\n * - View IS the layout system - it defines layout context for children\n * - Background Graphics has special role (__isBackground flag)\n * - Graphics is internal to View, excluded from child layout calculations\n * - If you need non-layout container, use raw Phaser.Container directly\n *\n * 3. Layout System Architecture:\n * Two-part system:\n * A) Background Graphics (special role):\n * - Defines View dimensions (not a layout child!)\n * - Marked with __isBackground = true\n * - Filtered out in layout calculations (see isLayoutChild helper)\n * - Automatically resized to match container dimensions\n * B) Layout Engine:\n * - Processes children (Views, Text, Images, etc.)\n * - Applies flexbox-style layout (row/column/stack)\n * - Respects headless flag on children\n * - Updates child positions/sizes based on layout props\n *\n * 4. Background Graphics vs. Graphics Component:\n * Distinction:\n * - View Background: Internal, auto-managed, defines dimensions, __isBackground=true\n * - Graphics Component: User-facing, custom shapes, typically headless=true\n * - Both use Phaser.Graphics but completely different purposes\n *\n * 5. Layout Size Provider:\n * Implementation: __getLayoutSize returns explicit or calculated dimensions\n * Behavior:\n * - Explicit width/height: Use those values\n * - Auto-size (undefined): Calculate from children + padding\n * - Percentage/fill: Resolve from parent context\n * - Critical: Background Graphics updates to match final size\n *\n * 6. Gesture System Integration:\n * Features:\n * - enableGestures: true enables touch/mouse interaction\n * - Hit area automatically sized to container dimensions\n * - Updated after layout recalculation (deferred queue)\n * - Supports: onTouch, onTouchMove, onDoubleTap, onLongPress\n * - Cross-platform (transparent mouse/touch support)\n *\n * 7. Styling Props:\n * Background:\n * - backgroundColor/backgroundAlpha: Fill color\n * - cornerRadius: Rounded corners (number or per-corner object)\n * - borderColor/borderWidth/borderAlpha: Stroke\n * Auto-defaults:\n * - backgroundAlpha defaults to 1 if backgroundColor set\n * - borderWidth defaults to 1 if borderColor set\n *\n * 8. Common Patterns:\n * Layout Container:\n * <View direction=\"row\" gap={10} padding={20}>\n * <View flex={1}>Left</View>\n * <View flex={2}>Right</View>\n * </View>\n * Styled Box:\n * <View backgroundColor={0x3498db} cornerRadius={8} padding={16}>\n * <Text text=\"Card Content\" />\n * </View>\n * Interactive Area:\n * <View enableGestures={true} onTouch={() => console.log('clicked')}>\n * <Text text=\"Button\" />\n * </View>\n *\n * 9. Performance Considerations:\n * - Background Graphics redrawn only when visual props change\n * - Layout calculations batched (LayoutBatchQueue)\n * - Gesture hit areas updated in deferred queue (post-layout)\n * - Overflow masking (overflow=\"hidden\") adds Phaser mask overhead\n *\n * 10. Known Limitations:\n * - Background Graphics cannot be independently positioned/rotated\n * - Nested View layout recalculations can be expensive (use sparingly)\n * - Gesture system requires scene pointer plugin (auto-enabled)\n *\n * Implementation Status:\n * ======================\n * [✅] Phaser Container creation\n * [✅] Background Graphics with styling (color, border, radius)\n * [✅] Layout system integration (__layoutProps, __getLayoutSize)\n * [✅] Transform props (position, rotation, scale, alpha)\n * [✅] Gesture system (enableGestures, interaction callbacks)\n * [✅] Auto-defaults for background/border alpha\n * [✅] Overflow masking support\n * [✅] Theme system integration\n * [✅] Deferred layout queue for gesture updates\n */\nimport { DebugLogger } from '@number10/jsx-core'\nimport * as Phaser from 'phaser'\nimport type {\n BackgroundProps,\n GestureProps,\n LayoutProps,\n PhaserProps,\n TransformProps,\n} from '../../core-props'\nimport type { HostCreator, HostPatcher } from '../../host'\nimport type { PropsContainerExtension, PropsDefaultExtension } from '../../types'\nimport { applyBackgroundProps } from '../appliers/applyBackground'\nimport { applyGesturesProps } from '../appliers/applyGestures'\nimport { applyLayoutProps } from '../appliers/applyLayout'\nimport { applyPhaserProps } from '../appliers/applyPhaser'\nimport { applyTooltip } from '../appliers/applyTooltip'\nimport { applyTransformProps } from '../appliers/applyTransform'\nimport type { BackgroundImage } from '../backgroundImage'\nimport { createBackground } from '../creators/createBackground'\nimport { createGestures } from '../creators/createGestures'\nimport { createLayout } from '../creators/createLayout'\nimport { createPhaser } from '../creators/createPhaser'\nimport { createTransform, resolveAnimatableNumber } from '../creators/createTransform'\n\n/**\n * Normalize background props - apply auto-defaults for alpha and border width\n * @param props - Original props\n * @returns Normalized props with auto-defaults applied\n */\nfunction normalizeBackgroundProps<T>(props: T): T {\n // Only process if props contain background/border properties\n const bgProps = props as unknown as Partial<BackgroundProps>\n const hasBackground = bgProps.backgroundColor !== undefined\n const hasBorder = bgProps.borderColor !== undefined\n\n // If no background/border props, return as-is\n if (!hasBackground && !hasBorder) {\n return props\n }\n\n // Only apply defaults if the prop is explicitly undefined or 0 (theme default)\n // This allows users to override with explicit values\n const normalized = { ...props } as T & Partial<BackgroundProps>\n\n if (hasBackground && bgProps.backgroundAlpha === undefined) {\n normalized.backgroundAlpha = 1\n }\n\n if (hasBorder) {\n if (bgProps.borderWidth === undefined || bgProps.borderWidth === 0) {\n normalized.borderWidth = 1\n }\n if (bgProps.borderAlpha === undefined || bgProps.borderAlpha === 0) {\n normalized.borderAlpha = 1\n }\n }\n\n return normalized as T\n}\n\n/**\n * Base props for View - composing shared prop groups\n */\nexport interface ViewBaseProps\n extends TransformProps, PhaserProps, LayoutProps, BackgroundProps, GestureProps {}\n\n/**\n * Props for View (Container) component - extends base props with JSX-specific props\n */\nexport interface ViewProps\n extends\n ViewBaseProps,\n PropsDefaultExtension<Phaser.GameObjects.Container>,\n PropsContainerExtension {}\n\n/**\n * View creator - creates a Phaser Container with optional background and interaction\n */\nexport const viewCreator: HostCreator<'View'> = (scene, props) => {\n // Debug: Log props to verify theme values\n if (props.backgroundColor !== undefined || props.cornerRadius !== undefined) {\n DebugLogger.log('theme', 'View Creator - Props received:', {\n backgroundColor: props.backgroundColor,\n cornerRadius: props.cornerRadius,\n width: props.width,\n height: props.height,\n })\n }\n\n // Normalize props early - apply auto-defaults for background/border\n const normalizedProps = normalizeBackgroundProps(props)\n\n const container = scene.add.container(\n resolveAnimatableNumber(normalizedProps.x) ?? 0,\n resolveAnimatableNumber(normalizedProps.y) ?? 0\n )\n\n // Apply transform props (scale, rotation)\n createTransform(container, normalizedProps)\n\n // Apply Phaser display props (alpha, depth, visible)\n createPhaser(container, normalizedProps)\n\n // Add background if backgroundColor is provided\n createBackground(\n scene,\n container as typeof container & { __background?: BackgroundImage },\n normalizedProps\n )\n\n // Setup layout system (props and size provider)\n // Must be before createGestures so __getLayoutSize is available\n createLayout(container, normalizedProps)\n\n // Tooltip support - inject hover handlers if onTooltip is present\n if (normalizedProps.onTooltip) {\n const handlers = applyTooltip(\n scene,\n container,\n normalizedProps.onTooltip,\n normalizedProps.onHoverStart,\n normalizedProps.onHoverEnd\n )\n normalizedProps.onHoverStart = handlers.onHoverStart\n normalizedProps.onHoverEnd = handlers.onHoverEnd\n }\n\n // Setup gesture system (high-level touch/mouse gestures)\n createGestures(scene, container, normalizedProps)\n\n // Debug: Log layout props storage\n DebugLogger.log(\n 'layout',\n 'View creator storing __layoutProps with padding:',\n normalizedProps.padding\n )\n\n return container\n}\n\n/**\n * View patcher - updates View properties\n */\nexport const viewPatcher: HostPatcher<'View'> = (node, prev, next) => {\n // Normalize props early - apply auto-defaults for background/border\n const normalizedPrev = normalizeBackgroundProps(prev)\n const normalizedNext = normalizeBackgroundProps(next)\n\n // Apply transform props (position, rotation, scale)\n applyTransformProps(node, normalizedPrev, normalizedNext)\n\n // Apply Phaser display props (alpha, depth, visible)\n applyPhaserProps(node, normalizedPrev, normalizedNext)\n\n // Background updates\n const container = node as Phaser.GameObjects.Container & {\n __background?: BackgroundImage\n }\n\n applyBackgroundProps(container, normalizedPrev, normalizedNext)\n\n // Tooltip support (integrates with gesture system)\n // Apply before gestures so hover handlers can be injected\n if (container.scene && container.scene.data) {\n if (normalizedNext.onTooltip) {\n const handlers = applyTooltip(\n container.scene,\n container,\n normalizedNext.onTooltip,\n normalizedNext.onHoverStart,\n normalizedNext.onHoverEnd\n )\n // Inject hover handlers for tooltip\n normalizedNext.onHoverStart = handlers.onHoverStart\n normalizedNext.onHoverEnd = handlers.onHoverEnd\n }\n }\n\n // Gesture event handlers (high-level touch/mouse gestures)\n // Safety check: ensure container has valid scene before applying gestures\n if (container.scene && container.scene.data) {\n applyGesturesProps(container.scene, container, normalizedPrev, normalizedNext)\n }\n\n // Apply layout props and recalculate if needed\n applyLayoutProps(container, normalizedPrev, normalizedNext)\n}\n"],"names":["DebugLogger","resolveAnimatableNumber","createTransform","createPhaser","createBackground","createLayout","applyTooltip","createGestures","applyTransformProps","applyPhaserProps","applyBackgroundProps","applyGesturesProps","applyLayoutProps"],"mappings":";;;;;;;;;;;;;;;AAuIA,SAAS,yBAA4B,OAAa;AAEhD,QAAM,UAAU;AAChB,QAAM,gBAAgB,QAAQ,oBAAoB;AAClD,QAAM,YAAY,QAAQ,gBAAgB;AAG1C,MAAI,CAAC,iBAAiB,CAAC,WAAW;AAChC,WAAO;AAAA,EACT;AAIA,QAAM,aAAa,EAAE,GAAG,MAAA;AAExB,MAAI,iBAAiB,QAAQ,oBAAoB,QAAW;AAC1D,eAAW,kBAAkB;AAAA,EAC/B;AAEA,MAAI,WAAW;AACb,QAAI,QAAQ,gBAAgB,UAAa,QAAQ,gBAAgB,GAAG;AAClE,iBAAW,cAAc;AAAA,IAC3B;AACA,QAAI,QAAQ,gBAAgB,UAAa,QAAQ,gBAAgB,GAAG;AAClE,iBAAW,cAAc;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO;AACT;AAoBO,MAAM,cAAmC,CAAC,OAAO,UAAU;AAEhE,MAAI,MAAM,oBAAoB,UAAa,MAAM,iBAAiB,QAAW;AAC3EA,wBAAY,IAAI,SAAS,kCAAkC;AAAA,MACzD,iBAAiB,MAAM;AAAA,MACvB,cAAc,MAAM;AAAA,MACpB,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,IAAA,CACf;AAAA,EACH;AAGA,QAAM,kBAAkB,yBAAyB,KAAK;AAEtD,QAAM,YAAY,MAAM,IAAI;AAAA,IAC1BC,wCAAwB,gBAAgB,CAAC,KAAK;AAAA,IAC9CA,wCAAwB,gBAAgB,CAAC,KAAK;AAAA,EAAA;AAIhDC,kBAAAA,gBAAgB,WAAW,eAAe;AAG1CC,eAAAA,aAAa,WAAW,eAAe;AAGvCC,mBAAAA;AAAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAKFC,eAAAA,aAAa,WAAW,eAAe;AAGvC,MAAI,gBAAgB,WAAW;AAC7B,UAAM,WAAWC,aAAAA;AAAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,IAAA;AAElB,oBAAgB,eAAe,SAAS;AACxC,oBAAgB,aAAa,SAAS;AAAA,EACxC;AAGAC,gCAAe,OAAO,WAAW,eAAe;AAGhDP,UAAAA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,EAAA;AAGlB,SAAO;AACT;AAKO,MAAM,cAAmC,CAAC,MAAM,MAAM,SAAS;AAEpE,QAAM,iBAAiB,yBAAyB,IAAI;AACpD,QAAM,iBAAiB,yBAAyB,IAAI;AAGpDQ,qCAAoB,MAAM,gBAAgB,cAAc;AAGxDC,+BAAiB,MAAM,gBAAgB,cAAc;AAGrD,QAAM,YAAY;AAIlBC,uCAAqB,WAAW,gBAAgB,cAAc;AAI9D,MAAI,UAAU,SAAS,UAAU,MAAM,MAAM;AAC3C,QAAI,eAAe,WAAW;AAC5B,YAAM,WAAWJ,aAAAA;AAAAA,QACf,UAAU;AAAA,QACV;AAAA,QACA,eAAe;AAAA,QACf,eAAe;AAAA,QACf,eAAe;AAAA,MAAA;AAGjB,qBAAe,eAAe,SAAS;AACvC,qBAAe,aAAa,SAAS;AAAA,IACvC;AAAA,EACF;AAIA,MAAI,UAAU,SAAS,UAAU,MAAM,MAAM;AAC3CK,kBAAAA,mBAAmB,UAAU,OAAO,WAAW,gBAAgB,cAAc;AAAA,EAC/E;AAGAC,+BAAiB,WAAW,gBAAgB,cAAc;AAC5D;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BackgroundProps, GestureProps, LayoutProps, PhaserProps, TransformProps } from '../../core-props';
|
|
2
|
+
import { HostCreator, HostPatcher } from '../../host';
|
|
3
|
+
import { PropsContainerExtension, PropsDefaultExtension } from '../../types';
|
|
4
|
+
import * as Phaser from 'phaser';
|
|
5
|
+
/**
|
|
6
|
+
* Base props for View - composing shared prop groups
|
|
7
|
+
*/
|
|
8
|
+
export interface ViewBaseProps extends TransformProps, PhaserProps, LayoutProps, BackgroundProps, GestureProps {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Props for View (Container) component - extends base props with JSX-specific props
|
|
12
|
+
*/
|
|
13
|
+
export interface ViewProps extends ViewBaseProps, PropsDefaultExtension<Phaser.GameObjects.Container>, PropsContainerExtension {
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* View creator - creates a Phaser Container with optional background and interaction
|
|
17
|
+
*/
|
|
18
|
+
export declare const viewCreator: HostCreator<'View'>;
|
|
19
|
+
/**
|
|
20
|
+
* View patcher - updates View properties
|
|
21
|
+
*/
|
|
22
|
+
export declare const viewPatcher: HostPatcher<'View'>;
|
|
23
|
+
//# sourceMappingURL=view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/view.ts"],"names":[],"mappings":"AA2GA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAkDjF;;GAEG;AACH,MAAM,WAAW,aACf,SAAQ,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY;CAAG;AAEpF;;GAEG;AACH,MAAM,WAAW,SACf,SACE,aAAa,EACb,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EACnD,uBAAuB;CAAG;AAE9B;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CA4D3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CA2C3C,CAAA"}
|