diff --git a/site/docs/02-fundamentals/03-actors.mdx b/site/docs/02-fundamentals/03-actors.mdx
index 651715ac..1162680b 100644
--- a/site/docs/02-fundamentals/03-actors.mdx
+++ b/site/docs/02-fundamentals/03-actors.mdx
@@ -36,7 +36,7 @@ and manipulate it directly.
Actors (and other entities) must be added to a [Scene](/docs/scenes) to be drawn
and updated on-screen.
-
@@ -462,9 +462,7 @@ By default Actors do not participate in collisions. If you wish to make
an actor participate, you need to switch from the default [[CollisionType.PreventCollision|prevent collision]]
to an [[CollisionType.Active|active]], [[CollisionType.Fixed|fixed]], or [[CollisionType.Passive|passive]] collision type.
-
-{ActorCollisionExample}
-
+
:::note
diff --git a/site/docs/02-fundamentals/05-transitions.mdx b/site/docs/02-fundamentals/05-transitions.mdx
index 33e3ec4e..eb22597c 100644
--- a/site/docs/02-fundamentals/05-transitions.mdx
+++ b/site/docs/02-fundamentals/05-transitions.mdx
@@ -70,7 +70,7 @@ game.add('scene1', {
Click canvas to transition!
-
@@ -159,7 +159,7 @@ You can specific a duration in milliseconds and it will fade in the specified `d
Click canvas to transition!
-
diff --git a/site/docs/02-fundamentals/examples/basic-actors.ts b/site/docs/02-fundamentals/examples/basic-actors.ts
index 9a02c09e..0614207a 100644
--- a/site/docs/02-fundamentals/examples/basic-actors.ts
+++ b/site/docs/02-fundamentals/examples/basic-actors.ts
@@ -1,3 +1,10 @@
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
const basicPlayer = new ex.Actor({
name: 'player', // optionally assign a name
width: 50,
diff --git a/site/docs/02-fundamentals/examples/collision.ts b/site/docs/02-fundamentals/examples/collision.ts
index 95e5cce5..b47de19b 100644
--- a/site/docs/02-fundamentals/examples/collision.ts
+++ b/site/docs/02-fundamentals/examples/collision.ts
@@ -1,5 +1,13 @@
-ex.Physics.useRealisticPhysics();
-ex.Physics.acc = ex.vec(0, 300);
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+ physics: {
+ solver: ex.SolverStrategy.Realistic,
+ gravity: ex.vec(0, 300),
+ }
+});
const box = new ex.Actor({
pos: ex.vec(game.halfDrawWidth, -100),
diff --git a/site/docs/02-fundamentals/examples/scene-crossfade.ts b/site/docs/02-fundamentals/examples/scene-crossfade.ts
index d3e32732..c267fcef 100644
--- a/site/docs/02-fundamentals/examples/scene-crossfade.ts
+++ b/site/docs/02-fundamentals/examples/scene-crossfade.ts
@@ -1,4 +1,9 @@
+import * as ex from 'excalibur';
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
class MyScene extends ex.Scene {
public onInitialize(): void {
diff --git a/site/docs/02-fundamentals/examples/scene-transitions.ts b/site/docs/02-fundamentals/examples/scene-transitions.ts
index 276df019..3c9d0f7f 100644
--- a/site/docs/02-fundamentals/examples/scene-transitions.ts
+++ b/site/docs/02-fundamentals/examples/scene-transitions.ts
@@ -1,4 +1,9 @@
+import * as ex from 'excalibur';
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
class MyScene extends ex.Scene {
public onInitialize(): void {
@@ -42,7 +47,7 @@ game.add('scene2', {
});
game.input.pointers.primary.on('down', () => {
- game.currentSceneName === 'scene2' ? game.goto('scene1') : game.goto('scene2');
+ game.currentSceneName === 'scene2' ? game.goToScene('scene1') : game.goToScene('scene2');
});
game.start('scene2');
\ No newline at end of file
diff --git a/site/docs/04-graphics/04.2-animation.mdx b/site/docs/04-graphics/04.2-animation.mdx
index 09dc0f52..e5170a09 100644
--- a/site/docs/04-graphics/04.2-animation.mdx
+++ b/site/docs/04-graphics/04.2-animation.mdx
@@ -94,19 +94,11 @@ Animation frames can be created by hand in the following example by specifying t

-
+
Additionally you can specify the (x, y) positions of sprites in the SpriteSheet of each frame, for example (0, 0) is the the top left sprite, (0, 1) is the sprite directly below that, and so on.
-
+
## Events
diff --git a/site/docs/04-graphics/04.2-material.mdx b/site/docs/04-graphics/04.2-material.mdx
index 5a4d0783..f6ac347e 100644
--- a/site/docs/04-graphics/04.2-material.mdx
+++ b/site/docs/04-graphics/04.2-material.mdx
@@ -152,7 +152,7 @@ game.input.pointers.primary.on('move', evt => {
```
-
@@ -257,7 +257,7 @@ void main() {
Here is the code in action!
-
@@ -377,7 +377,7 @@ void main() {
}
```
-
diff --git a/site/docs/04-graphics/examples/animation-coords.ts b/site/docs/04-graphics/examples/animation-coords.ts
index 1a29279b..cfd28c9c 100644
--- a/site/docs/04-graphics/examples/animation-coords.ts
+++ b/site/docs/04-graphics/examples/animation-coords.ts
@@ -1,9 +1,19 @@
-import playerRun from './player-run.png';
+import * as ex from 'excalibur';
-const runImage = new ex.ImageSource(playerRun);
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
+const resources = {
+ spritesheet: new ex.ImageSource('./player-run.png'),
+} as const;
+
+const loader = new ex.DefaultLoader();
+loader.addResource(resources.spritesheet);
const runSheet = ex.SpriteSheet.fromImageSource({
- image: runImage,
+ image: resources.spritesheet,
grid: {
rows: 1,
columns: 21,
@@ -29,7 +39,7 @@ const actor = new ex.Actor({
});
actor.graphics.use(runAnim);
-const loader = new ex.Loader([runImage]);
game.start(loader).then(() => {
- game.currentScene.add(actor);
+ game.currentScene.add(actor);
});
+
diff --git a/site/docs/04-graphics/examples/animation.ts b/site/docs/04-graphics/examples/animation.ts
index a32cd2a3..b6759fc2 100644
--- a/site/docs/04-graphics/examples/animation.ts
+++ b/site/docs/04-graphics/examples/animation.ts
@@ -1,9 +1,19 @@
-import playerRun from './player-run.png';
+import * as ex from 'excalibur';
-const runImage = new ex.ImageSource(playerRun);
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
+const resources = {
+ spritesheet: new ex.ImageSource('./player-run.png'),
+} as const;
+
+const loader = new ex.DefaultLoader();
+loader.addResource(resources.spritesheet);
const runSheet = ex.SpriteSheet.fromImageSource({
- image: runImage,
+ image: resources.spritesheet,
grid: {
rows: 1,
columns: 21,
@@ -19,7 +29,6 @@ const actor = new ex.Actor({
});
actor.graphics.use(runAnim);
-const loader = new ex.Loader([runImage]);
game.start(loader).then(() => {
game.currentScene.add(actor);
});
diff --git a/site/docs/04-graphics/examples/outline-material.ts b/site/docs/04-graphics/examples/outline-material.ts
index ba79dbd7..0f208ea7 100644
--- a/site/docs/04-graphics/examples/outline-material.ts
+++ b/site/docs/04-graphics/examples/outline-material.ts
@@ -1,5 +1,13 @@
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
const sword = new ex.ImageSource('https://cdn.rawgit.com/excaliburjs/Excalibur/7dd48128/assets/sword.png', false, ex.ImageFiltering.Pixel);
-const loader = new ex.Loader([sword]);
+const loader = new ex.DefaultLoader();
+loader.addResource(sword);
const outline = `#version 300 es
precision mediump float;
diff --git a/site/docs/04-graphics/examples/screen-material.ts b/site/docs/04-graphics/examples/screen-material.ts
index b7c876c5..bbac7aea 100644
--- a/site/docs/04-graphics/examples/screen-material.ts
+++ b/site/docs/04-graphics/examples/screen-material.ts
@@ -1,5 +1,8 @@
+import * as ex from 'excalibur';
+
const sword = new ex.ImageSource('https://cdn.rawgit.com/excaliburjs/Excalibur/7dd48128/assets/sword.png', false, ex.ImageFiltering.Pixel);
-const loader = new ex.Loader([sword]);
+const loader = new ex.DefaultLoader();
+loader.addResource(sword);
const waterFrag = `#version 300 es
precision mediump float;
@@ -106,6 +109,11 @@ void main() {
fragColor.rgb = mix(screen_color.rgb, mixColor, u_color.a)*fragColor.a + (wave_crest_color.rgb * wave_crest);
}`;
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
const waterMaterial = game.graphicsContext.createMaterial({
name: 'water',
fragmentSource: waterFrag,
diff --git a/site/docs/04-graphics/examples/simple-material.ts b/site/docs/04-graphics/examples/simple-material.ts
index e4015483..206de637 100644
--- a/site/docs/04-graphics/examples/simple-material.ts
+++ b/site/docs/04-graphics/examples/simple-material.ts
@@ -1,3 +1,10 @@
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
const actor = new ex.Actor({
pos: ex.vec(200, 200),
width: 100,
diff --git a/site/docs/10-physics/08-a-physics.mdx b/site/docs/10-physics/08-a-physics.mdx
index d3f435a2..2c5eae50 100644
--- a/site/docs/10-physics/08-a-physics.mdx
+++ b/site/docs/10-physics/08-a-physics.mdx
@@ -45,13 +45,11 @@ const game = new Engine({
### Example
-
-
-
## Other Physics Settings
See [[PhysicsConfig]] documentation for more
diff --git a/site/docs/10-physics/examples/physics.ts b/site/docs/10-physics/examples/physics.ts
index 31d54c3e..79613890 100644
--- a/site/docs/10-physics/examples/physics.ts
+++ b/site/docs/10-physics/examples/physics.ts
@@ -1,3 +1,10 @@
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+});
+
const box = new ex.Actor({
pos: ex.vec(game.halfDrawWidth, -100),
width: 50,
diff --git a/site/docs/12-other/13-particles.mdx b/site/docs/12-other/13-particles.mdx
index da05b3c1..2fa97d73 100644
--- a/site/docs/12-other/13-particles.mdx
+++ b/site/docs/12-other/13-particles.mdx
@@ -4,6 +4,9 @@ slug: /particles
section: Other
---
+import sample1 from '!!raw-loader!./examples/13-particles-1.ts';
+import sample2 from '!!raw-loader!./examples/13-particles-2.ts';
+
Particles can be used to generate dust, smoke, or fire effects in your games.
## Particles
@@ -42,7 +45,7 @@ const emitter = new ex.ParticleEmitter({
});
```
-
+
### Rectangle emitter
@@ -76,7 +79,7 @@ const emitter = new ex.ParticleEmitter({
});
```
-
+
## Adding an emitter
@@ -94,4 +97,3 @@ actor.add(emitter);
```typescript
engine.add(emitter);
```
-
diff --git a/site/docs/12-other/examples/13-particles-1.ts b/site/docs/12-other/examples/13-particles-1.ts
new file mode 100644
index 00000000..82d5f49c
--- /dev/null
+++ b/site/docs/12-other/examples/13-particles-1.ts
@@ -0,0 +1,35 @@
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+ width: 600,
+ height: 400,
+ backgroundColor: ex.Color.Black,
+});
+
+const emitter = new ex.ParticleEmitter({
+ x: game.halfDrawWidth,
+ y: game.halfDrawHeight,
+ emitterType: ex.EmitterType.Circle,
+ radius: 10,
+ isEmitting: true,
+ emitRate: 300,
+ particle: {
+ minSpeed: 200,
+ maxSpeed: 300,
+ minAngle: Math.PI/180 * 0,
+ maxAngle: Math.PI/180 * 90,
+ life: 1000,
+ minSize: 1,
+ maxSize: 10,
+ startSize: 10,
+ endSize: 1,
+ acc: ex.vec(0, 10),
+ beginColor: ex.Color.Red,
+ endColor: ex.Color.Blue,
+ }
+});
+
+game.add(emitter);
+game.start();
\ No newline at end of file
diff --git a/site/docs/12-other/examples/13-particles-2.ts b/site/docs/12-other/examples/13-particles-2.ts
new file mode 100644
index 00000000..c5e1291c
--- /dev/null
+++ b/site/docs/12-other/examples/13-particles-2.ts
@@ -0,0 +1,36 @@
+import * as ex from 'excalibur';
+
+const game = new ex.Engine({
+ canvasElementId: 'preview-canvas',
+ displayMode: ex.DisplayMode.FillContainer,
+ width: 600,
+ height: 400,
+ backgroundColor: ex.Color.Black,
+});
+
+const emitter = new ex.ParticleEmitter({
+ x: game.halfDrawWidth,
+ y: game.halfDrawHeight,
+ emitterType: ex.EmitterType.Rectangle,
+ width: 50,
+ height: 10,
+ isEmitting: true,
+ emitRate: 300,
+ particle: {
+ minAngle: Math.PI/180 * 45,
+ maxAngle: Math.PI/180 * 90,
+ opacity: 1,
+ fade: true,
+ life: 1000,
+ minSize: 1,
+ maxSize: 10,
+ startSize: 10,
+ endSize: 1,
+ acc: new ex.Vector(0, -100),
+ beginColor: ex.Color.Red,
+ endColor: ex.Color.Yellow,
+ }
+});
+
+game.add(emitter);
+game.start();
\ No newline at end of file
diff --git a/site/package-lock.json b/site/package-lock.json
index 29350b69..eb57dc18 100644
--- a/site/package-lock.json
+++ b/site/package-lock.json
@@ -18,8 +18,10 @@
"clsx": "^2.1.1",
"docusaurus-plugin-typedoc-api": "4.4.0",
"docusaurus-preset-shiki-twoslash": "^1.1.41",
+ "lz-string": "^1.5.0",
"mermaid": "11.12.1",
"prism-react-renderer": "^2.4.0",
+ "raw-loader": "^4.0.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-live": "4.1.8",
@@ -38,7 +40,7 @@
"micromark-extension-mdxjs": "^3.0.0",
"patch-package": "^8.0.0",
"ts-loader": "9.5.4",
- "typescript": "~5.2.2",
+ "typescript": "5.6.3",
"url-loader": "4.1.1"
},
"engines": {
@@ -4189,6 +4191,20 @@
"url": "https://opencollective.com/svgo"
}
},
+ "node_modules/@gerrit0/mini-shiki": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.15.0.tgz",
+ "integrity": "sha512-L5IHdZIDa4bG4yJaOzfasOH/o22MCesY0mx+n6VATbaiCtMeR59pdRqYk4bEiQkIHfxsHPNgdi7VJlZb2FhdMQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@shikijs/engine-oniguruma": "^3.15.0",
+ "@shikijs/langs": "^3.15.0",
+ "@shikijs/themes": "^3.15.0",
+ "@shikijs/types": "^3.15.0",
+ "@shikijs/vscode-textmate": "^10.0.2"
+ }
+ },
"node_modules/@hapi/hoek": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
@@ -4507,6 +4523,55 @@
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz",
"integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg=="
},
+ "node_modules/@shikijs/engine-oniguruma": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.15.0.tgz",
+ "integrity": "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@shikijs/types": "3.15.0",
+ "@shikijs/vscode-textmate": "^10.0.2"
+ }
+ },
+ "node_modules/@shikijs/langs": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.15.0.tgz",
+ "integrity": "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@shikijs/types": "3.15.0"
+ }
+ },
+ "node_modules/@shikijs/themes": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.15.0.tgz",
+ "integrity": "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@shikijs/types": "3.15.0"
+ }
+ },
+ "node_modules/@shikijs/types": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.15.0.tgz",
+ "integrity": "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4"
+ }
+ },
+ "node_modules/@shikijs/vscode-textmate": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
+ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@@ -4923,9 +4988,10 @@
"integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg=="
},
"node_modules/@types/hast": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.2.tgz",
- "integrity": "sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "*"
}
@@ -5601,9 +5667,10 @@
}
},
"node_modules/ansi-sequence-parser": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz",
- "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg=="
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.3.tgz",
+ "integrity": "sha512-+fksAx9eG3Ab6LDnLs3ZqZa8KVJ/jYnX+D4Qe1azX+LFGFAXqynCQLOdLpNYN/l9e7l6hMWwZbrnctqr6eSQSw==",
+ "license": "MIT"
},
"node_modules/ansi-styles": {
"version": "4.3.0",
@@ -7752,6 +7819,15 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/docusaurus-plugin-typedoc-api/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"node_modules/docusaurus-plugin-typedoc-api/node_modules/marked": {
"version": "9.1.6",
"resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz",
@@ -7763,6 +7839,54 @@
"node": ">= 16"
}
},
+ "node_modules/docusaurus-plugin-typedoc-api/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/docusaurus-plugin-typedoc-api/node_modules/typedoc": {
+ "version": "0.25.13",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz",
+ "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "lunr": "^2.3.9",
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.3",
+ "shiki": "^0.14.7"
+ },
+ "bin": {
+ "typedoc": "bin/typedoc"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "peerDependencies": {
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x"
+ }
+ },
+ "node_modules/docusaurus-plugin-typedoc-api/node_modules/typedoc/node_modules/marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/docusaurus-preset-shiki-twoslash": {
"version": "1.1.41",
"resolved": "https://registry.npmjs.org/docusaurus-preset-shiki-twoslash/-/docusaurus-preset-shiki-twoslash-1.1.41.tgz",
@@ -10296,6 +10420,16 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
+ "node_modules/linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "uc.micro": "^2.0.0"
+ }
+ },
"node_modules/loader-runner": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
@@ -10448,12 +10582,14 @@
"node_modules/lunr": {
"version": "2.3.9",
"resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
- "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
+ "license": "MIT"
},
"node_modules/lz-string": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
"integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
+ "license": "MIT",
"bin": {
"lz-string": "bin/bin.js"
}
@@ -10469,6 +10605,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/markdown-it": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.mjs"
+ }
+ },
"node_modules/markdown-table": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
@@ -10482,6 +10636,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
"integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+ "peer": true,
"bin": {
"marked": "bin/marked.js"
},
@@ -11025,6 +11180,13 @@
"@types/unist": "*"
}
},
+ "node_modules/mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -14592,6 +14754,16 @@
"node": ">= 0.10"
}
},
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/pupa": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
@@ -14711,6 +14883,44 @@
"node": ">= 0.8"
}
},
+ "node_modules/raw-loader": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
+ "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/raw-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -16046,6 +16256,7 @@
"version": "0.14.7",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz",
"integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==",
+ "license": "MIT",
"dependencies": {
"ansi-sequence-parser": "^1.1.0",
"jsonc-parser": "^3.2.0",
@@ -16875,37 +17086,45 @@
}
},
"node_modules/typedoc": {
- "version": "0.25.7",
- "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.7.tgz",
- "integrity": "sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==",
+ "version": "0.28.14",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.14.tgz",
+ "integrity": "sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA==",
+ "license": "Apache-2.0",
+ "peer": true,
"dependencies": {
+ "@gerrit0/mini-shiki": "^3.12.0",
"lunr": "^2.3.9",
- "marked": "^4.3.0",
- "minimatch": "^9.0.3",
- "shiki": "^0.14.7"
+ "markdown-it": "^14.1.0",
+ "minimatch": "^9.0.5",
+ "yaml": "^2.8.1"
},
"bin": {
"typedoc": "bin/typedoc"
},
"engines": {
- "node": ">= 16"
+ "node": ">= 18",
+ "pnpm": ">= 10"
},
"peerDependencies": {
- "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x"
+ "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x"
}
},
"node_modules/typedoc/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/typedoc/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "license": "ISC",
+ "peer": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -16916,10 +17135,24 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/typedoc/node_modules/yaml": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "license": "ISC",
+ "peer": true,
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ }
+ },
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -16928,6 +17161,13 @@
"node": ">=14.17"
}
},
+ "node_modules/uc.micro": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/ufo": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
@@ -17528,7 +17768,8 @@
"node_modules/vscode-textmate": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
- "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
+ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==",
+ "license": "MIT"
},
"node_modules/vscode-uri": {
"version": "3.0.8",
@@ -21002,6 +21243,19 @@
"tslib": "^2.6.0"
}
},
+ "@gerrit0/mini-shiki": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.15.0.tgz",
+ "integrity": "sha512-L5IHdZIDa4bG4yJaOzfasOH/o22MCesY0mx+n6VATbaiCtMeR59pdRqYk4bEiQkIHfxsHPNgdi7VJlZb2FhdMQ==",
+ "peer": true,
+ "requires": {
+ "@shikijs/engine-oniguruma": "^3.15.0",
+ "@shikijs/langs": "^3.15.0",
+ "@shikijs/themes": "^3.15.0",
+ "@shikijs/types": "^3.15.0",
+ "@shikijs/vscode-textmate": "^10.0.2"
+ }
+ },
"@hapi/hoek": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
@@ -21256,6 +21510,50 @@
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz",
"integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg=="
},
+ "@shikijs/engine-oniguruma": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.15.0.tgz",
+ "integrity": "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==",
+ "peer": true,
+ "requires": {
+ "@shikijs/types": "3.15.0",
+ "@shikijs/vscode-textmate": "^10.0.2"
+ }
+ },
+ "@shikijs/langs": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.15.0.tgz",
+ "integrity": "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==",
+ "peer": true,
+ "requires": {
+ "@shikijs/types": "3.15.0"
+ }
+ },
+ "@shikijs/themes": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.15.0.tgz",
+ "integrity": "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==",
+ "peer": true,
+ "requires": {
+ "@shikijs/types": "3.15.0"
+ }
+ },
+ "@shikijs/types": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.15.0.tgz",
+ "integrity": "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==",
+ "peer": true,
+ "requires": {
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4"
+ }
+ },
+ "@shikijs/vscode-textmate": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
+ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
+ "peer": true
+ },
"@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@@ -21642,9 +21940,9 @@
"integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg=="
},
"@types/hast": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.2.tgz",
- "integrity": "sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
"requires": {
"@types/unist": "*"
}
@@ -22268,9 +22566,9 @@
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-sequence-parser": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz",
- "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg=="
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.3.tgz",
+ "integrity": "sha512-+fksAx9eG3Ab6LDnLs3ZqZa8KVJ/jYnX+D4Qe1azX+LFGFAXqynCQLOdLpNYN/l9e7l6hMWwZbrnctqr6eSQSw=="
},
"ansi-styles": {
"version": "4.3.0",
@@ -23760,10 +24058,44 @@
"webpack-merge": "^5.9.0"
}
},
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"marked": {
"version": "9.1.6",
"resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz",
"integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q=="
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "typedoc": {
+ "version": "0.25.13",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz",
+ "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==",
+ "requires": {
+ "lunr": "^2.3.9",
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.3",
+ "shiki": "^0.14.7"
+ },
+ "dependencies": {
+ "marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A=="
+ }
+ }
}
}
},
@@ -25594,6 +25926,15 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
+ "linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
+ "peer": true,
+ "requires": {
+ "uc.micro": "^2.0.0"
+ }
+ },
"loader-runner": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
@@ -25726,6 +26067,20 @@
"resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
"integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="
},
+ "markdown-it": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "peer": true,
+ "requires": {
+ "argparse": "^2.0.1",
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ }
+ },
"markdown-table": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
@@ -25734,7 +26089,8 @@
"marked": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
- "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A=="
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+ "peer": true
},
"marked-smartypants": {
"version": "1.1.5",
@@ -26187,6 +26543,12 @@
}
}
},
+ "mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "peer": true
+ },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -28347,6 +28709,12 @@
}
}
},
+ "punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "peer": true
+ },
"pupa": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
@@ -28417,6 +28785,27 @@
}
}
},
+ "raw-loader": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
+ "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==",
+ "requires": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -30072,38 +30461,54 @@
}
},
"typedoc": {
- "version": "0.25.7",
- "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.7.tgz",
- "integrity": "sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==",
+ "version": "0.28.14",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.14.tgz",
+ "integrity": "sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA==",
+ "peer": true,
"requires": {
+ "@gerrit0/mini-shiki": "^3.12.0",
"lunr": "^2.3.9",
- "marked": "^4.3.0",
- "minimatch": "^9.0.3",
- "shiki": "^0.14.7"
+ "markdown-it": "^14.1.0",
+ "minimatch": "^9.0.5",
+ "yaml": "^2.8.1"
},
"dependencies": {
"brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "peer": true,
"requires": {
"balanced-match": "^1.0.0"
}
},
"minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "peer": true,
"requires": {
"brace-expansion": "^2.0.1"
}
+ },
+ "yaml": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "peer": true
}
}
},
"typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w=="
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="
+ },
+ "uc.micro": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "peer": true
},
"ufo": {
"version": "1.6.1",
diff --git a/site/package.json b/site/package.json
index 4898e713..db562f0d 100644
--- a/site/package.json
+++ b/site/package.json
@@ -13,6 +13,7 @@
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc",
+ "typecheck:samples": "tsc --project ./tsconfig.samples.json",
"postinstall": "patch-package"
},
"dependencies": {
@@ -25,8 +26,10 @@
"clsx": "^2.1.1",
"docusaurus-plugin-typedoc-api": "4.4.0",
"docusaurus-preset-shiki-twoslash": "^1.1.41",
+ "lz-string": "^1.5.0",
"mermaid": "11.12.1",
"prism-react-renderer": "^2.4.0",
+ "raw-loader": "^4.0.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-live": "4.1.8",
@@ -40,13 +43,13 @@
"@docusaurus/module-type-aliases": "3.4.0",
"@docusaurus/tsconfig": "^3.4.0",
"@types/react": "^18.3.3",
+ "babel-loader": "10.0.0",
"css-loader": "6.11.0",
"micromark-extension-mdxjs": "^3.0.0",
"patch-package": "^8.0.0",
"ts-loader": "9.5.4",
- "typescript": "~5.2.2",
- "url-loader": "4.1.1",
- "babel-loader": "10.0.0"
+ "typescript": "5.6.3",
+ "url-loader": "4.1.1"
},
"browserslist": {
"production": [
diff --git a/site/src/components/docs/IFrameEmbed.tsx b/site/src/components/docs/IFrameEmbed.tsx
index 15a0f3dd..e897fa4e 100644
--- a/site/src/components/docs/IFrameEmbed.tsx
+++ b/site/src/components/docs/IFrameEmbed.tsx
@@ -1,30 +1,20 @@
import React, { IframeHTMLAttributes } from 'react'
-const DEFAULT_FRAME_STYLES = {
- regular: {
- width: '100%',
- height: '420px',
- border: 0,
- overflow: 'hidden',
- },
- playground: {
- width: '100%',
- maxWidth: '640px',
- borderRadius: '12px',
- outline: '1px solid var(--ifm-color-emphasis-300)',
- outlineOffset: '4px',
- margin: '60px auto',
- display: 'block',
- height: '900px',
- border: 0,
- overflow: 'hidden',
- },
+const style = {
+ width: '100%',
+ maxWidth: '640px',
+ borderRadius: '12px',
+ outline: '1px solid var(--ifm-color-emphasis-300)',
+ outlineOffset: '4px',
+ margin: '60px auto',
+ display: 'block',
+ height: '900px',
+ border: 0,
+ overflow: 'hidden',
} as const
-type Props = IframeHTMLAttributes & {
- variant: 'regular' | 'playground'
-}
+type Props = IframeHTMLAttributes
-export default ({ src, variant, ...props }: Props) => (
-
+export default ({ src, ...props }: Props) => (
+
)
diff --git a/site/src/components/docs/PlaygroundEmbed.tsx b/site/src/components/docs/PlaygroundEmbed.tsx
new file mode 100644
index 00000000..aa7c4f34
--- /dev/null
+++ b/site/src/components/docs/PlaygroundEmbed.tsx
@@ -0,0 +1,37 @@
+import * as lz from "lz-string";
+
+type Props = {
+ autoplay?: boolean;
+ code: string;
+ title?: string;
+}
+
+const style = {
+ width: '100%',
+ maxWidth: '640px',
+ borderRadius: '12px',
+ outline: '1px solid var(--ifm-color-emphasis-300)',
+ outlineOffset: '4px',
+ margin: '60px auto',
+ display: 'block',
+ height: '900px',
+ border: 0,
+ overflow: 'hidden',
+}
+
+const PLAYGROUND_URL = 'https://excaliburjs.com/excalibur-playground';
+
+export default ({ autoplay = true, code, title }: Props) => {
+ const params = new URLSearchParams({
+ embed: 'true',
+ code: lz.compressToEncodedURIComponent(code)
+ });
+
+ if (autoplay) {
+ params.set('autoplay', 'true');
+ }
+
+ const src = `${PLAYGROUND_URL}/?${params.toString()}`;
+
+ return
+}
\ No newline at end of file
diff --git a/site/src/components/docs/index.tsx b/site/src/components/docs/index.tsx
index 09bf1186..647c847a 100644
--- a/site/src/components/docs/index.tsx
+++ b/site/src/components/docs/index.tsx
@@ -1,4 +1,5 @@
export { default as Example } from "./Example";
export { default as CodeSandboxEmbed } from './CodeSandboxEmbed';
export { default as IFrameEmbed } from "./IFrameEmbed";
-export { default as GameCodeBlock } from './GameCodeBlock';
\ No newline at end of file
+export { default as GameCodeBlock } from './GameCodeBlock';
+export { default as PlaygroundEmbed } from './PlaygroundEmbed';
\ No newline at end of file
diff --git a/site/tsconfig.samples.json b/site/tsconfig.samples.json
new file mode 100644
index 00000000..7d46c297
--- /dev/null
+++ b/site/tsconfig.samples.json
@@ -0,0 +1,15 @@
+{
+ "extends": ["../src/engine/tsconfig.json"],
+ "include": [
+ "./docs/**/*.ts",
+ "../src/engine/env.d.ts",
+ "../src/engine/globals.d.ts",
+ "../src/engine/files.d.ts"
+ ],
+ "compilerOptions": {
+ "paths": {
+ "@site/*": ["./*"],
+ "excalibur": ["../src/engine"]
+ }
+ }
+}