@tsparticles/template-scaffold 4.4.0 → 4.5.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +8 -2
  2. package/package.json +5 -5
  3. package/scripts/prebuild.js +1 -1
  4. package/template/angular/package.json +13 -13
  5. package/template/angular/src/app/app.component.ts +1 -0
  6. package/template/angular/src/app/app.module.ts +2 -1
  7. package/template/angular-confetti/package.json +14 -14
  8. package/template/angular-confetti/src/app/app.component.html +1 -1
  9. package/template/angular-confetti/src/app/app.component.ts +34 -19
  10. package/template/angular-confetti/src/app/app.module.ts +3 -2
  11. package/template/angular-fireworks/package.json +14 -14
  12. package/template/angular-fireworks/src/app/app.component.html +1 -1
  13. package/template/angular-fireworks/src/app/app.component.ts +34 -21
  14. package/template/angular-fireworks/src/app/app.module.ts +3 -2
  15. package/template/astro/package.json +5 -5
  16. package/template/ember/.ember-cli +3 -0
  17. package/template/ember/app/app.js +12 -0
  18. package/template/ember/app/controllers/application.js +5 -5
  19. package/template/ember/app/index.html +23 -0
  20. package/template/ember/app/router.js +9 -0
  21. package/template/ember/app/styles/app.css +7 -0
  22. package/template/ember/app/templates/application.hbs +1 -1
  23. package/template/ember/config/environment.js +24 -0
  24. package/template/ember/config/optional-features.json +6 -0
  25. package/template/ember/config/targets.js +7 -0
  26. package/template/ember/ember-cli-build.js +9 -0
  27. package/template/ember/package.json +3 -6
  28. package/template/inferno/package.json +5 -6
  29. package/template/inferno/src/App.tsx +1 -1
  30. package/template/inferno/src/vite-env.d.ts +1 -0
  31. package/template/inferno/vite.config.ts +7 -5
  32. package/template/jquery/package.json +3 -2
  33. package/template/jquery/src/vite-env.d.ts +1 -0
  34. package/template/lit/package.json +3 -3
  35. package/template/lit/src/vite-env.d.ts +1 -0
  36. package/template/nextjs/package.json +4 -4
  37. package/template/nextjs/tsconfig.json +20 -0
  38. package/template/nuxt2/nuxt.config.js +19 -1
  39. package/template/nuxt2/package.json +12 -3
  40. package/template/nuxt2/pages/index.vue +1 -1
  41. package/template/nuxt2/utils/particlesInit.js +5 -0
  42. package/template/nuxt3/package.json +3 -3
  43. package/template/nuxt3/utils/particlesInit.ts +6 -0
  44. package/template/nuxt4/package.json +3 -3
  45. package/template/nuxt4/utils/particlesInit.ts +6 -0
  46. package/template/preact/package.json +2 -2
  47. package/template/preact/src/vite-env.d.ts +1 -0
  48. package/template/qwik/package.json +2 -2
  49. package/template/qwik/vite.config.ts +2 -2
  50. package/template/react/package.json +4 -2
  51. package/template/riot/package.json +3 -3
  52. package/template/riot/src/main.ts +6 -2
  53. package/template/riot/src/riot.d.ts +6 -0
  54. package/template/riot/src/vite-env.d.ts +1 -0
  55. package/template/solid/package.json +2 -2
  56. package/template/solid/src/vite-env.d.ts +1 -0
  57. package/template/stencil/package.json +3 -3
  58. package/template/stencil/src/components/app-home/app-home.css +29 -0
  59. package/template/stencil/stencil.config.ts +11 -0
  60. package/template/stencil/tsconfig.json +18 -0
  61. package/template/svelte/package.json +1 -1
  62. package/template/vanilla/src/vite-env.d.ts +1 -0
  63. package/template/vue2/package.json +3 -3
  64. package/template/vue2/src/env.d.ts +6 -0
  65. package/template/vue3/package.json +1 -1
  66. package/template/webcomponents/package.json +4 -2
  67. package/template/webcomponents/src/main.ts +4 -1
  68. package/template/webcomponents/src/vite-env.d.ts +1 -0
  69. package/template.json +5 -5
package/CHANGELOG.md CHANGED
@@ -3,11 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.5.0](https://github.com/tsparticles/tsparticles/compare/v4.4.0...v4.5.0) (2026-10-25)
7
+
8
+ ### Bug Fixes
9
+
10
+ - fixed some issues in mcp server and some coderabbit reports ([4700d3e](https://github.com/tsparticles/tsparticles/commit/4700d3e953f3a3a1930db064a6b6b21d61233cdf))
11
+
6
12
  # [4.4.0](https://github.com/tsparticles/tsparticles/compare/v4.3.3...v4.4.0) (2026-08-30)
7
13
 
8
14
  ### Bug Fixes
9
15
 
10
- * various fixes for 4.4.0 ([475d06d](https://github.com/tsparticles/tsparticles/commit/475d06da27e1497bb097c0822fcfcb72d7142456))
16
+ - various fixes for 4.4.0 ([475d06d](https://github.com/tsparticles/tsparticles/commit/475d06da27e1497bb097c0822fcfcb72d7142456))
11
17
 
12
18
  ## [4.3.3](https://github.com/tsparticles/tsparticles/compare/v4.3.2...v4.3.3) (2026-07-23)
13
19
 
@@ -25,7 +31,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
25
31
 
26
32
  ### Bug Fixes
27
33
 
28
- * fixed angular confetti ([6f25a4a](https://github.com/tsparticles/tsparticles/commit/6f25a4a1eaa69c47f2668316e7b396fe55195f84))
34
+ - fixed angular confetti ([6f25a4a](https://github.com/tsparticles/tsparticles/commit/6f25a4a1eaa69c47f2668316e7b396fe55195f84))
29
35
 
30
36
  ## [4.2.1](https://github.com/tsparticles/tsparticles/compare/v4.2.0...v4.2.1) (2026-06-18)
31
37
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/template-scaffold",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -18,12 +18,12 @@
18
18
  "prepack": "pnpm run build"
19
19
  },
20
20
  "dependencies": {
21
- "@tsparticles/configs": "4.4.0",
22
- "@tsparticles/engine": "4.4.0",
23
- "@tsparticles/slim": "4.4.0"
21
+ "@tsparticles/configs": "4.5.0",
22
+ "@tsparticles/engine": "4.5.0",
23
+ "@tsparticles/slim": "4.5.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "fs-extra": "^11.3.4"
27
27
  },
28
- "gitHead": "b7e605098d6ea937d5068c06542671d4891070e4"
28
+ "gitHead": "a637373a03c008ab38edaaecf6524ec4b8e332c0"
29
29
  }
@@ -52,7 +52,7 @@ fs.readFile(libPackage, function (error, data) {
52
52
  }
53
53
  }
54
54
 
55
- fs.writeFile(libPackage, JSON.stringify(libObj, undefined, 2), "utf-8", function () {
55
+ fs.writeFile(libPackage, `${JSON.stringify(libObj, undefined, 2)}\n`, "utf-8", function () {
56
56
  console.log("template.json dependencies updated successfully");
57
57
  });
58
58
  });
@@ -11,23 +11,23 @@
11
11
  "watch": "ng build --watch --configuration development"
12
12
  },
13
13
  "dependencies": {
14
- "@angular/animations": "~22.0.0",
15
- "@angular/common": "~22.0.0",
16
- "@angular/compiler": "~22.0.0",
17
- "@angular/core": "~22.0.0",
18
- "@angular/forms": "~22.0.0",
19
- "@angular/platform-browser": "~22.0.0",
20
- "@angular/platform-browser-dynamic": "~22.0.0",
21
- "@angular/router": "~22.0.0",
22
- "@tsparticles/angular": "^4.1.3",
14
+ "@angular/animations": "~22.2.2",
15
+ "@angular/common": "~22.2.2",
16
+ "@angular/compiler": "~22.2.2",
17
+ "@angular/core": "~22.2.2",
18
+ "@angular/forms": "~22.2.2",
19
+ "@angular/platform-browser": "~22.2.2",
20
+ "@angular/platform-browser-dynamic": "~22.2.2",
21
+ "@angular/router": "~22.2.2",
22
+ "@tsparticles/angular": "^4.4.0",
23
23
  "rxjs": "~7.8.2",
24
24
  "tslib": "^2.8.1",
25
- "zone.js": "~0.16.2"
25
+ "zone.js": "~0.16.3"
26
26
  },
27
27
  "devDependencies": {
28
- "@angular-devkit/build-angular": "~22.0.0",
29
- "@angular/cli": "~22.0.0",
30
- "@angular/compiler-cli": "~22.0.0",
28
+ "@angular-devkit/build-angular": "~22.2.2",
29
+ "@angular/cli": "~22.2.2",
30
+ "@angular/compiler-cli": "~22.2.2",
31
31
  "typescript": "~6.0.3"
32
32
  }
33
33
  }
@@ -4,6 +4,7 @@ import { loadSlim } from "@tsparticles/slim";
4
4
  import type { ISourceOptions } from "@tsparticles/engine";
5
5
 
6
6
  @Component({
7
+ standalone: false,
7
8
  selector: "app-root",
8
9
  templateUrl: "./app.component.html",
9
10
  styleUrls: ["./app.component.css"],
@@ -1,11 +1,12 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { BrowserModule } from "@angular/platform-browser";
3
+ import { FormsModule } from "@angular/forms";
3
4
  import { NgxParticlesModule } from "@tsparticles/angular";
4
5
  import { AppComponent } from "./app.component";
5
6
 
6
7
  @NgModule({
7
8
  declarations: [AppComponent],
8
- imports: [BrowserModule, NgxParticlesModule],
9
+ imports: [BrowserModule, FormsModule, NgxParticlesModule],
9
10
  providers: [],
10
11
  bootstrap: [AppComponent],
11
12
  })
@@ -11,24 +11,24 @@
11
11
  "watch": "ng build --watch --configuration development"
12
12
  },
13
13
  "dependencies": {
14
- "@angular/animations": "~22.0.0",
15
- "@angular/common": "~22.0.0",
16
- "@angular/compiler": "~22.0.0",
17
- "@angular/core": "~22.0.0",
18
- "@angular/forms": "~22.0.0",
19
- "@angular/platform-browser": "~22.0.0",
20
- "@angular/platform-browser-dynamic": "~22.0.0",
21
- "@angular/router": "~22.0.0",
22
- "angular-confetti": "^4.1.3",
23
- "@tsparticles/engine": "^4.1.3",
14
+ "@angular/animations": "~22.2.2",
15
+ "@angular/common": "~22.2.2",
16
+ "@angular/compiler": "~22.2.2",
17
+ "@angular/core": "~22.2.2",
18
+ "@angular/forms": "~22.2.2",
19
+ "@angular/platform-browser": "~22.2.2",
20
+ "@angular/platform-browser-dynamic": "~22.2.2",
21
+ "@angular/router": "~22.2.2",
22
+ "@tsparticles/angular": "^4.4.0",
23
+ "@tsparticles/engine": "^4.4.0",
24
24
  "rxjs": "~7.8.2",
25
25
  "tslib": "^2.8.1",
26
- "zone.js": "~0.16.2"
26
+ "zone.js": "~0.16.3"
27
27
  },
28
28
  "devDependencies": {
29
- "@angular-devkit/build-angular": "~22.0.0",
30
- "@angular/cli": "~22.0.0",
31
- "@angular/compiler-cli": "~22.0.0",
29
+ "@angular-devkit/build-angular": "~22.2.2",
30
+ "@angular/cli": "~22.2.2",
31
+ "@angular/compiler-cli": "~22.2.2",
32
32
  "typescript": "~6.0.3"
33
33
  }
34
34
  }
@@ -1,4 +1,4 @@
1
1
  <div id="app-content">
2
2
  <h1>Hello, tsParticles!</h1>
3
3
  </div>
4
- <ngx-confetti id="tsparticles" [options]="options" [fire]="true" />
4
+ <ngx-particles id="tsparticles" [options]="options" />
@@ -1,27 +1,42 @@
1
- import { Component } from "@angular/core";
2
- import type { ConfettiOptions } from "@tsparticles/confetti";
1
+ import { Component, OnInit } from "@angular/core";
2
+ import { NgParticlesService } from "@tsparticles/angular";
3
+ import { loadSlim } from "@tsparticles/slim";
4
+ import type { ISourceOptions } from "@tsparticles/engine";
3
5
 
4
6
  @Component({
7
+ standalone: false,
5
8
  selector: "app-root",
6
9
  templateUrl: "./app.component.html",
7
10
  styleUrls: ["./app.component.css"],
8
11
  })
9
- export class AppComponent {
10
- options: ConfettiOptions = {
11
- angle: 90,
12
- count: 50,
13
- spread: 45,
14
- startVelocity: 45,
15
- decay: 0.9,
16
- gravity: 1,
17
- drift: 0,
18
- ticks: 200,
19
- position: { x: 50, y: 50 },
20
- colors: ["#26ccff", "#a25afd", "#ff5e7e", "#88ff5a", "#fcff42", "#ffa62d", "#ff36ff"],
21
- shapes: ["square", "circle"],
22
- scalar: 1,
23
- zIndex: 100,
24
- disableForReducedMotion: true,
25
- flat: false,
12
+ export class AppComponent implements OnInit {
13
+ constructor(private readonly ngParticlesService: NgParticlesService) {}
14
+
15
+ options: ISourceOptions = {
16
+ fullScreen: { enable: true, zIndex: -1 },
17
+ background: { color: { value: "#1a1a2e" } },
18
+ fpsLimit: 60,
19
+ particles: {
20
+ number: { value: 80, density: { enable: true } },
21
+ color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] },
22
+ shape: { type: "circle" },
23
+ opacity: { value: 0.5, random: true },
24
+ size: { value: { min: 1, max: 4 }, random: true },
25
+ move: {
26
+ enable: true,
27
+ speed: 2,
28
+ direction: "none",
29
+ random: false,
30
+ straight: false,
31
+ outModes: { default: "out" },
32
+ },
33
+ },
34
+ detectRetina: true,
26
35
  };
36
+
37
+ ngOnInit(): void {
38
+ void this.ngParticlesService.init(async (engine) => {
39
+ await loadSlim(engine);
40
+ });
41
+ }
27
42
  }
@@ -1,11 +1,12 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { BrowserModule } from "@angular/platform-browser";
3
- import { NgxConfettiModule } from "angular-confetti";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { NgxParticlesModule } from "@tsparticles/angular";
4
5
  import { AppComponent } from "./app.component";
5
6
 
6
7
  @NgModule({
7
8
  declarations: [AppComponent],
8
- imports: [BrowserModule, NgxConfettiModule],
9
+ imports: [BrowserModule, FormsModule, NgxParticlesModule],
9
10
  providers: [],
10
11
  bootstrap: [AppComponent],
11
12
  })
@@ -11,24 +11,24 @@
11
11
  "watch": "ng build --watch --configuration development"
12
12
  },
13
13
  "dependencies": {
14
- "@angular/animations": "~22.0.0",
15
- "@angular/common": "~22.0.0",
16
- "@angular/compiler": "~22.0.0",
17
- "@angular/core": "~22.0.0",
18
- "@angular/forms": "~22.0.0",
19
- "@angular/platform-browser": "~22.0.0",
20
- "@angular/platform-browser-dynamic": "~22.0.0",
21
- "@angular/router": "~22.0.0",
22
- "angular-fireworks": "^4.1.3",
23
- "@tsparticles/engine": "^4.1.3",
14
+ "@angular/animations": "~22.2.2",
15
+ "@angular/common": "~22.2.2",
16
+ "@angular/compiler": "~22.2.2",
17
+ "@angular/core": "~22.2.2",
18
+ "@angular/forms": "~22.2.2",
19
+ "@angular/platform-browser": "~22.2.2",
20
+ "@angular/platform-browser-dynamic": "~22.2.2",
21
+ "@angular/router": "~22.2.2",
22
+ "@tsparticles/angular": "^4.4.0",
23
+ "@tsparticles/engine": "^4.4.0",
24
24
  "rxjs": "~7.8.2",
25
25
  "tslib": "^2.8.1",
26
- "zone.js": "~0.16.2"
26
+ "zone.js": "~0.16.3"
27
27
  },
28
28
  "devDependencies": {
29
- "@angular-devkit/build-angular": "~22.0.0",
30
- "@angular/cli": "~22.0.0",
31
- "@angular/compiler-cli": "~22.0.0",
29
+ "@angular-devkit/build-angular": "~22.2.2",
30
+ "@angular/cli": "~22.2.2",
31
+ "@angular/compiler-cli": "~22.2.2",
32
32
  "typescript": "~6.0.3"
33
33
  }
34
34
  }
@@ -1,4 +1,4 @@
1
1
  <div id="app-content">
2
2
  <h1>Hello, tsParticles!</h1>
3
3
  </div>
4
- <ngx-fireworks id="tsparticles" [options]="options" />
4
+ <ngx-particles id="tsparticles" [options]="options" />
@@ -1,29 +1,42 @@
1
- import { Component } from "@angular/core";
2
- import type { FireworkOptions } from "@tsparticles/fireworks";
1
+ import { Component, OnInit } from "@angular/core";
2
+ import { NgParticlesService } from "@tsparticles/angular";
3
+ import { loadSlim } from "@tsparticles/slim";
4
+ import type { ISourceOptions } from "@tsparticles/engine";
3
5
 
4
6
  @Component({
7
+ standalone: false,
5
8
  selector: "app-root",
6
9
  templateUrl: "./app.component.html",
7
10
  styleUrls: ["./app.component.css"],
8
11
  })
9
- export class AppComponent {
10
- options: FireworkOptions = {
11
- background: "none",
12
- brightness: { min: -30, max: 30 },
13
- colors: [
14
- "#FF0000", "#FF2A00", "#FF5500", "#FF8000", "#FFAA00", "#FFD400",
15
- "#FFFF00", "#D4FF00", "#AAFF00", "#80FF00", "#55FF00", "#2AFF00",
16
- "#00FF00", "#00FF2A", "#00FF55", "#00FF80", "#00FFAA", "#00FFD4",
17
- "#00FFFF", "#00D4FF", "#00AAFF", "#0080FF", "#0055FF", "#002AFF",
18
- "#0000FF", "#2A00FF", "#5500FF", "#8000FF", "#AA00FF", "#D400FF",
19
- "#FF00FF", "#FF00D4", "#FF00AA", "#FF0080", "#FF0055", "#FF002A",
20
- ],
21
- gravity: 30,
22
- minHeight: { min: 10, max: 30 },
23
- rate: 10,
24
- saturation: { min: -30, max: 30 },
25
- sounds: true,
26
- speed: { min: 20, max: 40 },
27
- splitCount: 100,
12
+ export class AppComponent implements OnInit {
13
+ constructor(private readonly ngParticlesService: NgParticlesService) {}
14
+
15
+ options: ISourceOptions = {
16
+ fullScreen: { enable: true, zIndex: -1 },
17
+ background: { color: { value: "#1a1a2e" } },
18
+ fpsLimit: 60,
19
+ particles: {
20
+ number: { value: 80, density: { enable: true } },
21
+ color: { value: ["#6c5ce7", "#a29bfe", "#fd79a8"] },
22
+ shape: { type: "circle" },
23
+ opacity: { value: 0.5, random: true },
24
+ size: { value: { min: 1, max: 4 }, random: true },
25
+ move: {
26
+ enable: true,
27
+ speed: 2,
28
+ direction: "none",
29
+ random: false,
30
+ straight: false,
31
+ outModes: { default: "out" },
32
+ },
33
+ },
34
+ detectRetina: true,
28
35
  };
36
+
37
+ ngOnInit(): void {
38
+ void this.ngParticlesService.init(async (engine) => {
39
+ await loadSlim(engine);
40
+ });
41
+ }
29
42
  }
@@ -1,11 +1,12 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { BrowserModule } from "@angular/platform-browser";
3
- import { NgxFireworksModule } from "angular-fireworks";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { NgxParticlesModule } from "@tsparticles/angular";
4
5
  import { AppComponent } from "./app.component";
5
6
 
6
7
  @NgModule({
7
8
  declarations: [AppComponent],
8
- imports: [BrowserModule, NgxFireworksModule],
9
+ imports: [BrowserModule, FormsModule, NgxParticlesModule],
9
10
  providers: [],
10
11
  bootstrap: [AppComponent],
11
12
  })
@@ -9,11 +9,11 @@
9
9
  "preview": "astro preview"
10
10
  },
11
11
  "dependencies": {
12
- "@astrojs/check": "^0.9.4",
13
- "astro": "^5.7.10",
14
- "@tsparticles/astro": "^4.1.3",
15
- "@tsparticles/engine": "^4.1.3",
16
- "@tsparticles/slim": "^4.1.3"
12
+ "@astrojs/check": "^0.9.10",
13
+ "astro": "^7.3.2",
14
+ "@tsparticles/astro": "^4.4.0",
15
+ "@tsparticles/engine": "^4.4.0",
16
+ "@tsparticles/slim": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^6.0.3"
@@ -0,0 +1,3 @@
1
+ {
2
+ "disableAnalytics": false
3
+ }
@@ -0,0 +1,12 @@
1
+ import Application from "@ember/application";
2
+ import Resolver from "ember-resolver";
3
+ import loadInitializers from "ember-load-initializers";
4
+ import config from "{{packageName}}/config/environment";
5
+
6
+ export default class App extends Application {
7
+ modulePrefix = config.modulePrefix;
8
+ podModulePrefix = config.podModulePrefix;
9
+ Resolver = Resolver;
10
+ }
11
+
12
+ loadInitializers(App, config.modulePrefix);
@@ -1,6 +1,5 @@
1
1
  import Controller from "@ember/controller";
2
- import { action } from "@ember/object";
3
- import { initParticlesEngine } from "@tsparticles/ember";
2
+ import { initParticlesEngine } from "@tsparticles/ember/utils/init-particles-engine";
4
3
  import { loadSlim } from "@tsparticles/slim";
5
4
 
6
5
  export default class ApplicationController extends Controller {
@@ -26,9 +25,10 @@ export default class ApplicationController extends Controller {
26
25
  detectRetina: true,
27
26
  };
28
27
 
29
- @action
30
- async initParticles() {
31
- await initParticlesEngine(async (engine) => {
28
+ constructor() {
29
+ super();
30
+
31
+ void initParticlesEngine(async (engine) => {
32
32
  await loadSlim(engine);
33
33
  });
34
34
  }
@@ -0,0 +1,23 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>{{projectName}}</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+
8
+ {{content-for "head"}}
9
+
10
+ <link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css" />
11
+ <link integrity="" rel="stylesheet" href="{{rootURL}}assets/{{packageName}}.css" />
12
+
13
+ {{content-for "head-footer"}}
14
+ </head>
15
+ <body>
16
+ {{content-for "body"}}
17
+
18
+ <script src="{{rootURL}}assets/vendor.js"></script>
19
+ <script src="{{rootURL}}assets/{{packageName}}.js"></script>
20
+
21
+ {{content-for "body-footer"}}
22
+ </body>
23
+ </html>
@@ -0,0 +1,9 @@
1
+ import EmberRouter from "@ember/routing/router";
2
+ import config from "{{packageName}}/config/environment";
3
+
4
+ export default class Router extends EmberRouter {
5
+ location = config.locationType;
6
+ rootURL = config.rootURL;
7
+ }
8
+
9
+ Router.map(function () {});
@@ -0,0 +1,7 @@
1
+ /* global styles */
2
+
3
+ html,
4
+ body {
5
+ margin: 0;
6
+ padding: 0;
7
+ }
@@ -1,4 +1,4 @@
1
- <div id="particles-container" {{did-insert this.initParticles}} {{particles options=this.options}}>
1
+ <div id="particles-container" {{particles options=this.options}}>
2
2
  </div>
3
3
 
4
4
  <div id="app">
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ module.exports = function (environment) {
4
+ const ENV = {
5
+ modulePrefix: "{{packageName}}",
6
+ podModulePrefix: "",
7
+ environment,
8
+ rootURL: "/",
9
+ locationType: "history",
10
+ EmberENV: {
11
+ FEATURES: {},
12
+ EXTEND_PROTOTYPES: false,
13
+ },
14
+ APP: {},
15
+ };
16
+
17
+ if (environment === "test") {
18
+ ENV.locationType = "none";
19
+ ENV.APP.rootElement = "#ember-testing";
20
+ ENV.APP.autoboot = false;
21
+ }
22
+
23
+ return ENV;
24
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "application-template-wrapper": false,
3
+ "default-async-observers": true,
4
+ "jquery-integration": false,
5
+ "template-only-glimmer-components": true
6
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ const browsers = ["last 1 Chrome versions", "last 1 Firefox versions", "last 1 Safari versions"];
4
+
5
+ module.exports = {
6
+ browsers,
7
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ const EmberApp = require("ember-cli/lib/broccoli/ember-app");
4
+
5
+ module.exports = function (defaults) {
6
+ const app = new EmberApp(defaults, {});
7
+
8
+ return app.toTree();
9
+ };
@@ -28,14 +28,11 @@
28
28
  "webpack": "^5.106.1"
29
29
  },
30
30
  "dependencies": {
31
- "@tsparticles/ember": "^4.1.3",
32
- "@tsparticles/engine": "^4.1.3",
33
- "@tsparticles/slim": "^4.1.3"
31
+ "@tsparticles/ember": "^4.4.0",
32
+ "@tsparticles/engine": "^4.4.0",
33
+ "@tsparticles/slim": "^4.4.0"
34
34
  },
35
35
  "ember": {
36
36
  "edition": "octane"
37
- },
38
- "ember-addon": {
39
- "configPath": "tests/dummy/config"
40
37
  }
41
38
  }
@@ -10,14 +10,13 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "inferno": "^9.1.0",
13
- "@tsparticles/inferno": "^4.1.3",
14
- "@tsparticles/engine": "^4.1.3",
15
- "@tsparticles/slim": "^4.1.3"
13
+ "inferno-create-element": "^9.1.0",
14
+ "@tsparticles/inferno": "^4.4.0",
15
+ "@tsparticles/engine": "^4.4.0",
16
+ "@tsparticles/slim": "^4.4.0"
16
17
  },
17
18
  "devDependencies": {
18
19
  "typescript": "^6.0.3",
19
- "vite": "^8.1.0",
20
- "babel-plugin-inferno": "^6.8.5",
21
- "vite-plugin-inferno": "^2.0.1"
20
+ "vite": "^8.3.1"
22
21
  }
23
22
  }
@@ -1,4 +1,4 @@
1
- import Particles, { ParticlesProvider } from "@tsparticles/inferno";
1
+ import { Particles, ParticlesProvider } from "@tsparticles/inferno";
2
2
  import { loadSlim } from "@tsparticles/slim";
3
3
  import type { Engine } from "@tsparticles/engine";
4
4
 
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -1,11 +1,13 @@
1
1
  import { defineConfig } from "vite";
2
- import inferno from "vite-plugin-inferno";
3
2
 
4
3
  export default defineConfig({
5
- plugins: [inferno()],
6
4
  base: "./",
7
- esbuild: {
8
- jsxFactory: "createElement",
9
- jsxFragment: "Fragment",
5
+ oxc: {
6
+ jsx: {
7
+ runtime: "classic",
8
+ pragma: "createElement",
9
+ pragmaFrag: "Fragment",
10
+ },
11
+ jsxInject: "import { createElement } from 'inferno-create-element';\nimport { Fragment } from 'inferno';",
10
12
  },
11
13
  });
@@ -10,10 +10,11 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "jquery": "^3.7.1",
13
- "@tsparticles/jquery": "^4.1.3"
13
+ "@tsparticles/jquery": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "typescript": "^5.7.2",
17
- "vite": "^6.0.0"
17
+ "vite": "^8.3.1",
18
+ "@types/jquery": "^3.5.32"
18
19
  }
19
20
  }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -9,11 +9,11 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "lit": "^3.5.0",
13
- "@tsparticles/lit": "^4.1.3"
12
+ "lit": "^3.3.0",
13
+ "@tsparticles/lit": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "typescript": "^5.7.2",
17
- "vite": "^6.0.0"
17
+ "vite": "^8.3.1"
18
18
  }
19
19
  }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -11,13 +11,13 @@
11
11
  "next": "^15.3.2",
12
12
  "react": "^19.2.5",
13
13
  "react-dom": "^19.2.5",
14
- "@tsparticles/nextjs": "^4.1.3",
15
- "@tsparticles/engine": "^4.1.3",
16
- "@tsparticles/slim": "^4.1.3"
14
+ "@tsparticles/nextjs": "^4.4.0",
15
+ "@tsparticles/engine": "^4.4.0",
16
+ "@tsparticles/slim": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^6.0.3",
20
- "@types/node": "^22.15.3",
20
+ "@types/node": "^26.6.5",
21
21
  "@types/react": "^19.1.4",
22
22
  "@types/react-dom": "^19.1.3"
23
23
  }
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "lib": ["dom", "dom.iterable", "esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noEmit": true,
9
+ "incremental": true,
10
+ "module": "esnext",
11
+ "moduleResolution": "bundler",
12
+ "esModuleInterop": true,
13
+ "resolveJsonModule": true,
14
+ "isolatedModules": true,
15
+ "jsx": "preserve",
16
+ "plugins": [{ "name": "next" }]
17
+ },
18
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
19
+ "exclude": ["node_modules"]
20
+ }
@@ -1,3 +1,21 @@
1
1
  export default {
2
- buildModules: ["@tsparticles/nuxt2"],
2
+ // Nuxt 2 ships webpack 4, which predates the "exports" field of package.json.
3
+ // The tsParticles v4 packages expose their entry points through "exports",
4
+ // so deep imports such as "@tsparticles/plugin-emitters/plugin" need an
5
+ // explicit alias to the CommonJS file shipped by each package.
6
+ build: {
7
+ transpile: [/@tsparticles\//, "tsparticles"],
8
+ // Webpack 4 cannot parse the logical assignment operators shipped by the
9
+ // tsParticles v4 builds, so they are transpiled down to the configured
10
+ // browserslist targets.
11
+ babel: {
12
+ presets: [["@babel/preset-env", { targets: { chrome: "58", edge: "16", firefox: "57", safari: "11" } }]],
13
+ },
14
+ extend(config) {
15
+ config.resolve.alias["@tsparticles/engine/lazy"] = "@tsparticles/engine/cjs/index.lazy.js";
16
+ config.resolve.alias["@tsparticles/plugin-emitters/plugin"] = "@tsparticles/plugin-emitters/cjs/plugin.js";
17
+ config.resolve.alias["@tsparticles/shape-cards/suits"] = "@tsparticles/shape-cards/cjs/suits.js";
18
+ },
19
+ },
20
+ modules: ["@tsparticles/nuxt2"],
3
21
  };
@@ -9,8 +9,17 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "nuxt": "^2.18.1",
12
- "@tsparticles/nuxt2": "^4.1.3",
13
- "@tsparticles/engine": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3"
12
+ "@tsparticles/nuxt2": "^4.4.0",
13
+ "@tsparticles/engine": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0"
15
+ },
16
+ "browserslist": [
17
+ "chrome 58",
18
+ "edge 16",
19
+ "firefox 57",
20
+ "safari 11"
21
+ ],
22
+ "devDependencies": {
23
+ "@babel/preset-env": "^7.29.0"
15
24
  }
16
25
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div id="app">
3
3
  <h1>Hello, tsParticles!</h1>
4
- <Particles id="tsparticles" :options="options" />
4
+ <vue-particles id="tsparticles" :options="options" />
5
5
  </div>
6
6
  </template>
7
7
 
@@ -0,0 +1,5 @@
1
+ export async function registerParticles(engine) {
2
+ const { loadSlim } = await import("@tsparticles/slim");
3
+
4
+ await loadSlim(engine);
5
+ }
@@ -10,9 +10,9 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "nuxt": "^3.17.3",
13
- "@tsparticles/nuxt3": "^4.1.3",
14
- "@tsparticles/engine": "^4.1.3",
15
- "@tsparticles/slim": "^4.1.3"
13
+ "@tsparticles/nuxt3": "^4.4.0",
14
+ "@tsparticles/engine": "^4.4.0",
15
+ "@tsparticles/slim": "^4.4.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "typescript": "^6.0.3"
@@ -0,0 +1,6 @@
1
+ import type { Engine } from "@tsparticles/engine";
2
+ import { loadSlim } from "@tsparticles/slim";
3
+
4
+ export async function registerParticles(engine: Engine): Promise<void> {
5
+ await loadSlim(engine);
6
+ }
@@ -10,9 +10,9 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "nuxt": "^4.4.2",
13
- "@tsparticles/nuxt4": "^4.1.3",
14
- "@tsparticles/engine": "^4.1.3",
15
- "@tsparticles/slim": "^4.1.3"
13
+ "@tsparticles/nuxt4": "^4.4.0",
14
+ "@tsparticles/engine": "^4.4.0",
15
+ "@tsparticles/slim": "^4.4.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "typescript": "^6.0.3"
@@ -0,0 +1,6 @@
1
+ import type { Engine } from "@tsparticles/engine";
2
+ import { loadSlim } from "@tsparticles/slim";
3
+
4
+ export async function registerParticles(engine: Engine): Promise<void> {
5
+ await loadSlim(engine);
6
+ }
@@ -10,11 +10,11 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "preact": "^10.19.3",
13
- "@tsparticles/preact": "^4.1.3"
13
+ "@tsparticles/preact": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@preact/preset-vite": "^2.8.1",
17
17
  "typescript": "^5.7.2",
18
- "vite": "^6.0.0"
18
+ "vite": "^8.3.1"
19
19
  }
20
20
  }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -10,10 +10,10 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@builder.io/qwik": "^1.12.0",
13
- "@tsparticles/qwik": "^4.1.3"
13
+ "@tsparticles/qwik": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "typescript": "^5.7.2",
17
- "vite": "^6.0.0"
17
+ "vite": "^7.3.6"
18
18
  }
19
19
  }
@@ -1,7 +1,7 @@
1
- import { qwikVite } from "@builder.io/qwik/plugin.vite";
1
+ import { qwikVite } from "@builder.io/qwik/optimizer";
2
2
  import { defineConfig } from "vite";
3
3
 
4
4
  export default defineConfig({
5
- plugins: [qwikVite()],
5
+ plugins: [qwikVite({ csr: true })],
6
6
  base: "./",
7
7
  });
@@ -11,9 +11,11 @@
11
11
  "dependencies": {
12
12
  "react": "^19.2.5",
13
13
  "react-dom": "^19.2.5",
14
- "@tsparticles/react": "^4.1.3"
14
+ "@tsparticles/react": "^4.4.0"
15
15
  },
16
16
  "devDependencies": {
17
- "@vitejs/plugin-react": "^6.0.1"
17
+ "@vitejs/plugin-react": "^6.0.1",
18
+ "@types/react": "^19.2.14",
19
+ "@types/react-dom": "^19.2.3"
18
20
  }
19
21
  }
@@ -9,13 +9,13 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "riot": "^10.0.0",
13
- "@tsparticles/riot": "^4.1.3"
12
+ "riot": "^10.1.6",
13
+ "@tsparticles/riot": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@riotjs/compiler": "^10.0.0",
17
17
  "rollup-plugin-riot": "^10.0.0",
18
18
  "typescript": "^5.7.2",
19
- "vite": "^6.0.0"
19
+ "vite": "^8.3.1"
20
20
  }
21
21
  }
@@ -1,5 +1,9 @@
1
- import { mount } from "riot";
1
+ import { component } from "riot";
2
2
  import App from "./app.riot";
3
3
  import "./style.css";
4
4
 
5
- mount(App, "#app");
5
+ const appElement = document.getElementById("app");
6
+
7
+ if (appElement) {
8
+ component(App)(appElement);
9
+ }
@@ -0,0 +1,6 @@
1
+ declare module "*.riot" {
2
+ import type { RiotComponent, RiotComponentWrapper } from "riot";
3
+
4
+ const component: RiotComponentWrapper<RiotComponent>;
5
+ export default component;
6
+ }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -10,9 +10,9 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "solid-js": "^1.8.11",
13
- "@tsparticles/solid": "^4.1.3"
13
+ "@tsparticles/solid": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
- "vite-plugin-solid": "^2.8.2"
16
+ "vite-plugin-solid": "^2.11.14"
17
17
  }
18
18
  }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -9,9 +9,9 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@stencil/core": "^4.43.5",
12
- "@tsparticles/stencil": "^4.1.3",
13
- "@tsparticles/engine": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3"
12
+ "@tsparticles/stencil": "^4.4.0",
13
+ "@tsparticles/engine": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "typescript": "^6.0.3"
@@ -0,0 +1,29 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ body {
6
+ margin: 0;
7
+ min-height: 100vh;
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ background: #0a0a1a;
12
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
13
+ color: #fff;
14
+ }
15
+
16
+ #app {
17
+ text-align: center;
18
+ z-index: 10;
19
+ padding: 1rem;
20
+ }
21
+
22
+ h1 {
23
+ font-size: 2.5em;
24
+ margin-bottom: 1rem;
25
+ background: linear-gradient(135deg, #6c5ce7, #fd79a8);
26
+ -webkit-background-clip: text;
27
+ -webkit-text-fill-color: transparent;
28
+ background-clip: text;
29
+ }
@@ -0,0 +1,11 @@
1
+ import { Config } from "@stencil/core";
2
+
3
+ export const config: Config = {
4
+ namespace: "{{packageName}}",
5
+ srcDir: "src",
6
+ outputTargets: [
7
+ {
8
+ type: "dist",
9
+ },
10
+ ],
11
+ };
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "allowSyntheticDefaultImports": true,
4
+ "allowUnreachableCode": false,
5
+ "declaration": false,
6
+ "esModuleInterop": true,
7
+ "experimentalDecorators": true,
8
+ "lib": ["dom", "es2020"],
9
+ "module": "esnext",
10
+ "moduleResolution": "bundler",
11
+ "target": "es2020",
12
+ "noUnusedLocals": true,
13
+ "noUnusedParameters": true,
14
+ "jsx": "react",
15
+ "jsxFactory": "h"
16
+ },
17
+ "include": ["src"]
18
+ }
@@ -9,7 +9,7 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "@tsparticles/svelte": "^4.1.3"
12
+ "@tsparticles/svelte": "^4.4.0"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@sveltejs/vite-plugin-svelte": "^5.0.3",
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -10,12 +10,12 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "vue": "^2.7.16",
13
- "@tsparticles/vue2": "^4.1.3"
13
+ "@tsparticles/vue2": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@vitejs/plugin-vue2": "^2.0.1",
16
+ "@vitejs/plugin-vue2": "^2.3.4",
17
17
  "vue-template-compiler": "^2.7.16",
18
18
  "typescript": "^5.7.2",
19
- "vite": "^6.0.0"
19
+ "vite": "^7.3.6"
20
20
  }
21
21
  }
@@ -0,0 +1,6 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module "*.vue" {
4
+ import Vue from "vue";
5
+ export default Vue;
6
+ }
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "vue": "^3.5.32",
13
- "@tsparticles/vue3": "^4.1.3"
13
+ "@tsparticles/vue3": "^4.4.0"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@vitejs/plugin-vue": "^6.0.5",
@@ -9,10 +9,12 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "@tsparticles/webcomponents": "^4.1.3"
12
+ "@tsparticles/engine": "^4.4.0",
13
+ "@tsparticles/slim": "^4.4.0",
14
+ "@tsparticles/webcomponents": "^4.4.0"
13
15
  },
14
16
  "devDependencies": {
15
17
  "typescript": "^5.7.2",
16
- "vite": "^6.0.0"
18
+ "vite": "^8.3.1"
17
19
  }
18
20
  }
@@ -1,9 +1,12 @@
1
+ import { tsParticles } from "@tsparticles/engine";
1
2
  import { defineParticlesElement, initParticlesEngine } from "@tsparticles/webcomponents";
2
3
  import { loadSlim } from "@tsparticles/slim";
3
4
  import "./style.css";
4
5
 
6
+ globalThis.tsParticles = tsParticles;
7
+
5
8
  void initParticlesEngine(async (engine) => {
6
9
  await loadSlim(engine);
7
10
  });
8
11
 
9
- defineParticlesElement();
12
+ defineParticlesElement();
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
package/template.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "package": {
3
3
  "dependencies": {
4
- "@tsparticles/engine": "^4.4.0",
5
- "@tsparticles/slim": "^4.4.0",
6
- "@tsparticles/configs": "^4.4.0"
4
+ "@tsparticles/engine": "^4.5.0",
5
+ "@tsparticles/slim": "^4.5.0",
6
+ "@tsparticles/configs": "^4.5.0"
7
7
  },
8
8
  "devDependencies": {
9
9
  "typescript": "^6.0.3",
10
- "vite": "^8.1.0"
10
+ "vite": "^8.3.1"
11
11
  }
12
12
  }
13
- }
13
+ }