gitextract_dj33z3ap/ ├── .agents/ │ └── skills/ │ ├── canvasengine/ │ │ ├── SKILL.md │ │ └── agents/ │ │ └── openai.yaml │ └── pixijs/ │ ├── SKILL.md │ └── references/ │ └── index.md ├── .changeset/ │ └── config.json ├── .codex ├── .github/ │ └── workflows/ │ └── ci.yml ├── .gitignore ├── .npmignore ├── README.md ├── __mocks__/ │ └── pixi-viewport.ts ├── docs/ │ ├── .vitepress/ │ │ ├── config.ts │ │ └── theme/ │ │ ├── Layout.vue │ │ ├── components/ │ │ │ ├── CustomHome.vue │ │ │ ├── Playground.vue │ │ │ ├── config.ts │ │ │ └── example.ts │ │ ├── index.ts │ │ └── style.css │ ├── advanced/ │ │ ├── conditional-rendering.md │ │ ├── performance.md │ │ └── without-compiler.md │ ├── api/ │ │ ├── context.md │ │ ├── element.md │ │ └── testing.md │ ├── components/ │ │ ├── _display-object.md │ │ ├── button.md │ │ ├── canvas.md │ │ ├── container.md │ │ ├── dom-container.md │ │ ├── examples/ │ │ │ ├── focus-navigation-dom.js │ │ │ └── polygon-example.js │ │ ├── graphic.md │ │ ├── joystick.md │ │ ├── mesh.md │ │ ├── navigation.md │ │ ├── nine-slice-sprite.md │ │ ├── sprite.md │ │ ├── svg.md │ │ ├── text.md │ │ ├── tiling-sprite.md │ │ ├── video.md │ │ └── viewport.md │ ├── concepts/ │ │ ├── animation.md │ │ ├── child-component.md │ │ ├── context.md │ │ ├── dependencies.md │ │ ├── dynamic-components.md │ │ ├── examples/ │ │ │ └── conditional-rendering.js │ │ ├── lifecycle.md │ │ ├── reactive.md │ │ ├── ref.md │ │ ├── slot.md │ │ ├── styling.md │ │ ├── template-syntax.md │ │ └── trigger.md │ ├── directives/ │ │ ├── controls.md │ │ ├── drag.md │ │ ├── flash.md │ │ ├── shake.md │ │ └── sound.md │ ├── get_started/ │ │ ├── installation.md │ │ ├── readme.md │ │ └── start.md │ ├── index.md │ ├── package.json │ ├── presets/ │ │ ├── _before.md │ │ ├── bar.md │ │ ├── fog-of-war.md │ │ ├── footprints.md │ │ ├── fx.md │ │ ├── loading.md │ │ ├── night-ambiant.md │ │ ├── sprite-shadows.md │ │ ├── tilemap.md │ │ └── weather.md │ └── public/ │ ├── [A]Dirt_pipo.tsx │ ├── [A]Flower_pipo.tsx │ ├── [A]Grass_pipo.tsx │ ├── [A]Wall-Up_pipo.tsx │ ├── [A]WaterFall_pipo.tsx │ ├── [A]Water_pipo.tsx │ ├── [Base]BaseChip_pipo.tsx │ ├── grammar.pegjs │ ├── map.tmx │ ├── simplemap.tmx │ ├── simplemap2.tmx │ └── tileset.tsx ├── package.json ├── packages/ │ ├── compiler/ │ │ ├── grammar.pegjs │ │ ├── grammar2.pegjs │ │ ├── index.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ ├── compiler.spec.ts │ │ │ └── compiler2.spec.ts │ │ ├── tsconfig.json │ │ └── tsup.config.ts │ ├── core/ │ │ ├── index.d.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── Button.ts │ │ │ │ ├── Canvas.ts │ │ │ │ ├── Container.ts │ │ │ │ ├── DOMContainer.ts │ │ │ │ ├── DOMElement.ts │ │ │ │ ├── DOMSprite.ts │ │ │ │ ├── DisplayObject.ts │ │ │ │ ├── FocusContainer.ts │ │ │ │ ├── Graphic.ts │ │ │ │ ├── Joystick.ts │ │ │ │ ├── Mesh.ts │ │ │ │ ├── NineSliceSprite.ts │ │ │ │ ├── ParticleEmitter.ts │ │ │ │ ├── Scene.ts │ │ │ │ ├── Sprite.ts │ │ │ │ ├── Text.ts │ │ │ │ ├── TilingSprite.ts │ │ │ │ ├── Video.ts │ │ │ │ ├── Viewport.ts │ │ │ │ ├── index.ts │ │ │ │ └── types/ │ │ │ │ ├── DisplayObject.ts │ │ │ │ ├── MouseEvent.ts │ │ │ │ ├── Spritesheet.ts │ │ │ │ └── index.ts │ │ │ ├── directives/ │ │ │ │ ├── Controls.ts │ │ │ │ ├── ControlsBase.ts │ │ │ │ ├── Drag.ts │ │ │ │ ├── Flash.ts │ │ │ │ ├── FocusNavigation.ts │ │ │ │ ├── FogVisibility.ts │ │ │ │ ├── GamepadControls.ts │ │ │ │ ├── JoystickControls.ts │ │ │ │ ├── KeyboardControls.ts │ │ │ │ ├── Scheduler.ts │ │ │ │ ├── Shake.ts │ │ │ │ ├── Sound.ts │ │ │ │ ├── Transition.ts │ │ │ │ ├── ViewportCull.ts │ │ │ │ ├── ViewportFollow.ts │ │ │ │ └── index.ts │ │ │ ├── engine/ │ │ │ │ ├── FocusManager.ts │ │ │ │ ├── animation.ts │ │ │ │ ├── bootstrap.ts │ │ │ │ ├── directive.ts │ │ │ │ ├── reactive.ts │ │ │ │ ├── signal.ts │ │ │ │ ├── trigger.ts │ │ │ │ └── utils.ts │ │ │ ├── hooks/ │ │ │ │ ├── addContext.ts │ │ │ │ ├── useFocus.ts │ │ │ │ ├── useProps.ts │ │ │ │ └── useRef.ts │ │ │ ├── index.ts │ │ │ ├── types/ │ │ │ │ └── pixi-cull.d.ts │ │ │ └── utils/ │ │ │ ├── Ease.ts │ │ │ ├── GlobalAssetLoader.ts │ │ │ ├── RadialGradient.ts │ │ │ ├── functions.ts │ │ │ └── tabindex.ts │ │ ├── testing/ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── presets/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Bar.ts │ │ │ ├── Button.ts │ │ │ ├── FogOfWar.ts │ │ │ ├── Footprints.ts │ │ │ ├── Loading.ts │ │ │ ├── NightAmbiant.ts │ │ │ ├── Particle.ts │ │ │ ├── SpriteShadows.ts │ │ │ ├── Tilemap/ │ │ │ │ ├── Tile.ts │ │ │ │ ├── TileGroup.ts │ │ │ │ ├── TileLayer.ts │ │ │ │ ├── TileSet.ts │ │ │ │ └── index.ts │ │ │ ├── Weathers/ │ │ │ │ ├── fog.ts │ │ │ │ ├── index.ts │ │ │ │ ├── rain.ts │ │ │ │ └── snow.ts │ │ │ ├── fx/ │ │ │ │ ├── Fx.ts │ │ │ │ ├── index.ts │ │ │ │ ├── presets.ts │ │ │ │ ├── runtime.ts │ │ │ │ ├── textures.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ └── shaders/ │ │ │ ├── defaultFilter.vert.glsl │ │ │ ├── nightSpot.frag.glsl │ │ │ └── shadowGradient.frag.glsl │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── testing/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── helpers/ │ │ │ │ ├── createMockComponentInstance.ts │ │ │ │ ├── createMockElement.ts │ │ │ │ └── spyOnElement.ts │ │ │ ├── index.ts │ │ │ └── mocks/ │ │ │ └── pixi-base.ts │ │ ├── tsconfig.json │ │ └── tsup.config.ts │ └── tiled/ │ ├── package.json │ ├── readme.md │ ├── src/ │ │ ├── classes/ │ │ │ ├── Gid.ts │ │ │ ├── Layer.ts │ │ │ ├── Map.ts │ │ │ ├── Object.ts │ │ │ ├── Properties.ts │ │ │ ├── Tile.ts │ │ │ └── Tileset.ts │ │ ├── generate/ │ │ │ ├── tileset.ts │ │ │ └── wangtile.ts │ │ ├── index.ts │ │ ├── parser/ │ │ │ ├── open-file.ts │ │ │ └── parser.ts │ │ ├── types/ │ │ │ ├── Layer.ts │ │ │ ├── Map.ts │ │ │ ├── Objects.ts │ │ │ ├── Text.ts │ │ │ ├── Tile.ts │ │ │ ├── Tileset.ts │ │ │ ├── Types.ts │ │ │ └── WorldMaps.ts │ │ └── utils.ts │ ├── tests/ │ │ ├── class.spec.ts │ │ ├── data.ts │ │ ├── parser.spec.ts │ │ ├── tile-properties.spec.ts │ │ ├── tiledmap-multi-layers.spec.ts │ │ └── tiledmap.spec.ts │ ├── tsconfig.json │ └── vite.config.ts ├── pnpm-workspace.yaml ├── sample/ │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── app.ce │ │ ├── benchmark.ce │ │ ├── box.ce │ │ ├── child.ce │ │ ├── control.ce │ │ ├── controls-buttons.ce │ │ ├── controls-rect.ce │ │ ├── dependencies.ce │ │ ├── flash.ce │ │ ├── flex.ce │ │ ├── focus-navigation-dom.ce │ │ ├── focus-navigation.ce │ │ ├── fogofwar.ce │ │ ├── footprints.ce │ │ ├── freeze.ce │ │ ├── fx.ce │ │ ├── light.ce │ │ ├── loader-spritesheet.ce │ │ ├── main.ts │ │ ├── preset.ce │ │ ├── shake.ce │ │ ├── sprite-shadows.ce │ │ ├── spritesheet.ce │ │ ├── spritesheet2.ce │ │ ├── test.ce │ │ ├── tiled.ce │ │ ├── viewport.ce │ │ └── weather.ce │ ├── tests/ │ │ ├── README.md │ │ └── example.spec.ts │ ├── tsconfig.json │ ├── vite.config.ts │ └── vitest.config.ts ├── skills-lock.json ├── starter/ │ ├── .gitignore │ ├── components/ │ │ ├── app.ce │ │ └── hello.ce │ ├── index.html │ ├── main.ts │ ├── package.json │ ├── tsconfig.json │ └── vite.config.ts ├── tests/ │ ├── components/ │ │ ├── canvas.spec.ts │ │ ├── component.spec.ts │ │ ├── container.spec.ts │ │ ├── displayobject.spec.ts │ │ ├── domcontainer.spec.ts │ │ ├── domsprite.spec.ts │ │ ├── flex.spec.ts │ │ ├── focus-container-tabindex.spec.ts │ │ ├── focus-container.spec.ts │ │ ├── graphics.spec.ts │ │ ├── mesh.spec.ts │ │ ├── nineslicesprite.spec.ts │ │ ├── particleemitter.spec.ts │ │ ├── scene.spec.ts │ │ ├── sprite.spec.ts │ │ ├── text.spec.ts │ │ ├── tilingsprite.spec.ts │ │ ├── video.spec.ts │ │ └── viewport.spec.ts │ ├── directives/ │ │ ├── drag.spec.ts │ │ ├── flash.spec.ts │ │ └── shake.spec.ts │ ├── engine/ │ │ ├── animation.spec.ts │ │ ├── cond-loop.spec.ts │ │ ├── cond.spec.ts │ │ ├── define-props.spec.ts │ │ ├── dependencies.spec.ts │ │ ├── focus-loop-sharing.spec.ts │ │ ├── freeze.spec.ts │ │ ├── lifecycle.spec.ts │ │ ├── loop-sharing.spec.ts │ │ ├── loop-spread-props.spec.ts │ │ ├── loop.spec.ts │ │ ├── nested-loop.spec.ts │ │ ├── reactive-routing.spec.ts │ │ └── trigger.spec.ts │ ├── presets/ │ │ └── fx.spec.ts │ ├── setup/ │ │ └── canvas.ts │ └── utils/ │ ├── GlobalAssetLoader.spec.ts │ └── tabindex.spec.ts ├── tsconfig.json ├── tsconfig.node.json ├── tsup.config.ts └── vitest.config.ts