@tsparticles/template-login 4.4.0 → 4.5.1

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 (40) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/package.json +5 -5
  3. package/scripts/prebuild.js +1 -1
  4. package/template/angular/package.json +14 -14
  5. package/template/angular/src/app/app.component.ts +1 -0
  6. package/template/angular-confetti/package.json +16 -16
  7. package/template/angular-confetti/src/app/app.component.html +1 -1
  8. package/template/angular-confetti/src/app/app.component.ts +4 -3
  9. package/template/angular-confetti/src/app/app.module.ts +2 -2
  10. package/template/angular-fireworks/package.json +16 -16
  11. package/template/angular-fireworks/src/app/app.component.html +1 -1
  12. package/template/angular-fireworks/src/app/app.component.ts +4 -3
  13. package/template/angular-fireworks/src/app/app.module.ts +2 -2
  14. package/template/astro/package.json +6 -6
  15. package/template/ember/app/templates/application.hbs +1 -1
  16. package/template/ember/package.json +4 -7
  17. package/template/inferno/package.json +6 -7
  18. package/template/inferno/src/App.tsx +14 -17
  19. package/template/jquery/index.html +44 -0
  20. package/template/jquery/package.json +6 -5
  21. package/template/jquery/src/main.ts +1 -1
  22. package/template/lit/package.json +6 -6
  23. package/template/nextjs/package.json +7 -7
  24. package/template/nuxt2/package.json +13 -4
  25. package/template/nuxt3/package.json +4 -4
  26. package/template/nuxt4/package.json +4 -4
  27. package/template/preact/package.json +5 -5
  28. package/template/qwik/package.json +5 -5
  29. package/template/qwik/src/App.tsx +1 -1
  30. package/template/react/package.json +4 -2
  31. package/template/riot/package.json +6 -6
  32. package/template/solid/package.json +2 -2
  33. package/template/stencil/package.json +4 -4
  34. package/template/svelte/package.json +1 -1
  35. package/template/vue2/package.json +6 -6
  36. package/template/vue3/package.json +1 -1
  37. package/template/webcomponents/index.html +43 -0
  38. package/template/webcomponents/package.json +5 -5
  39. package/template/webcomponents/src/main.ts +8 -0
  40. package/template.json +5 -5
package/CHANGELOG.md CHANGED
@@ -3,11 +3,21 @@
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.1](https://github.com/tsparticles/tsparticles/compare/v4.5.0...v4.5.1) (2026-11-02)
7
+
8
+ **Note:** Version bump only for package @tsparticles/template-login
9
+
10
+ # [4.5.0](https://github.com/tsparticles/tsparticles/compare/v4.4.0...v4.5.0) (2026-10-25)
11
+
12
+ ### Bug Fixes
13
+
14
+ - fixed some issues in mcp server and some coderabbit reports ([4700d3e](https://github.com/tsparticles/tsparticles/commit/4700d3e953f3a3a1930db064a6b6b21d61233cdf))
15
+
6
16
  # [4.4.0](https://github.com/tsparticles/tsparticles/compare/v4.3.3...v4.4.0) (2026-08-30)
7
17
 
8
18
  ### Bug Fixes
9
19
 
10
- * various fixes for 4.4.0 ([475d06d](https://github.com/tsparticles/tsparticles/commit/475d06da27e1497bb097c0822fcfcb72d7142456))
20
+ - various fixes for 4.4.0 ([475d06d](https://github.com/tsparticles/tsparticles/commit/475d06da27e1497bb097c0822fcfcb72d7142456))
11
21
 
12
22
  ## [4.3.3](https://github.com/tsparticles/tsparticles/compare/v4.3.2...v4.3.3) (2026-07-23)
13
23
 
@@ -25,7 +35,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
25
35
 
26
36
  ### Bug Fixes
27
37
 
28
- * fixed angular confetti ([6f25a4a](https://github.com/tsparticles/tsparticles/commit/6f25a4a1eaa69c47f2668316e7b396fe55195f84))
38
+ - fixed angular confetti ([6f25a4a](https://github.com/tsparticles/tsparticles/commit/6f25a4a1eaa69c47f2668316e7b396fe55195f84))
29
39
 
30
40
  ## [4.2.1](https://github.com/tsparticles/tsparticles/compare/v4.2.0...v4.2.1) (2026-06-18)
31
41
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/template-login",
3
- "version": "4.4.0",
3
+ "version": "4.5.1",
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.1",
22
+ "@tsparticles/engine": "4.5.1",
23
+ "@tsparticles/slim": "4.5.1"
24
24
  },
25
25
  "devDependencies": {
26
26
  "fs-extra": "^11.3.4"
27
27
  },
28
- "gitHead": "b7e605098d6ea937d5068c06542671d4891070e4"
28
+ "gitHead": "433c560448e5020cb051e1b025e0f9914f23b147"
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,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
- "@tsparticles/angular": "^4.1.3",
23
- "@tsparticles/slim": "^4.0.0",
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/slim": "^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
  }
@@ -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"],
@@ -11,26 +11,26 @@
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/slim": "^4.1.3",
24
- "@tsparticles/configs": "^4.1.3",
25
- "@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/configs": "^4.4.0",
24
+ "@tsparticles/engine": "^4.4.0",
25
+ "@tsparticles/slim": "^4.4.0",
26
26
  "rxjs": "~7.8.2",
27
27
  "tslib": "^2.8.1",
28
- "zone.js": "~0.16.2"
28
+ "zone.js": "~0.16.3"
29
29
  },
30
30
  "devDependencies": {
31
- "@angular-devkit/build-angular": "~22.0.0",
32
- "@angular/cli": "~22.0.0",
33
- "@angular/compiler-cli": "~22.0.0",
31
+ "@angular-devkit/build-angular": "~22.2.2",
32
+ "@angular/cli": "~22.2.2",
33
+ "@angular/compiler-cli": "~22.2.2",
34
34
  "typescript": "~6.0.3"
35
35
  }
36
36
  }
@@ -1,4 +1,4 @@
1
- <ngx-confetti id="tsparticles" [options]="options" />
1
+ <ngx-particles id="tsparticles" [options]="options" />
2
2
 
3
3
  <div class="auth-container">
4
4
  <div class="auth-card">
@@ -1,9 +1,10 @@
1
1
  import { Component, OnInit } from "@angular/core";
2
- import { NgxConfettiService } from "angular-confetti";
2
+ import { NgParticlesService } from "@tsparticles/angular";
3
3
  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"],
@@ -18,7 +19,7 @@ export class AppComponent implements OnInit {
18
19
  passErr = "";
19
20
  confirmErr = "";
20
21
 
21
- constructor(private readonly confettiService: NgxConfettiService) {}
22
+ constructor(private readonly ngParticlesService: NgParticlesService) {}
22
23
 
23
24
  options: ISourceOptions = {
24
25
  background: { color: { value: "transparent" } },
@@ -40,7 +41,7 @@ export class AppComponent implements OnInit {
40
41
 
41
42
  ngOnInit(): void {
42
43
  document.documentElement.setAttribute("data-theme", this.theme);
43
- void this.confettiService.init(async (engine) => {
44
+ void this.ngParticlesService.init(async (engine) => {
44
45
  await loadSlim(engine);
45
46
  });
46
47
  }
@@ -1,12 +1,12 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { BrowserModule } from "@angular/platform-browser";
3
3
  import { FormsModule } from "@angular/forms";
4
- import { NgxConfettiModule } from "angular-confetti";
4
+ import { NgxParticlesModule } from "@tsparticles/angular";
5
5
  import { AppComponent } from "./app.component";
6
6
 
7
7
  @NgModule({
8
8
  declarations: [AppComponent],
9
- imports: [BrowserModule, FormsModule, NgxConfettiModule],
9
+ imports: [BrowserModule, FormsModule, NgxParticlesModule],
10
10
  providers: [],
11
11
  bootstrap: [AppComponent],
12
12
  })
@@ -11,26 +11,26 @@
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/slim": "^4.1.3",
24
- "@tsparticles/configs": "^4.1.3",
25
- "@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/configs": "^4.4.0",
24
+ "@tsparticles/engine": "^4.4.0",
25
+ "@tsparticles/slim": "^4.4.0",
26
26
  "rxjs": "~7.8.2",
27
27
  "tslib": "^2.8.1",
28
- "zone.js": "~0.16.2"
28
+ "zone.js": "~0.16.3"
29
29
  },
30
30
  "devDependencies": {
31
- "@angular-devkit/build-angular": "~22.0.0",
32
- "@angular/cli": "~22.0.0",
33
- "@angular/compiler-cli": "~22.0.0",
31
+ "@angular-devkit/build-angular": "~22.2.2",
32
+ "@angular/cli": "~22.2.2",
33
+ "@angular/compiler-cli": "~22.2.2",
34
34
  "typescript": "~6.0.3"
35
35
  }
36
36
  }
@@ -1,4 +1,4 @@
1
- <ngx-fireworks id="tsparticles" [options]="options" />
1
+ <ngx-particles id="tsparticles" [options]="options" />
2
2
 
3
3
  <div class="auth-container">
4
4
  <div class="auth-card">
@@ -1,9 +1,10 @@
1
1
  import { Component, OnInit } from "@angular/core";
2
- import { NgxFireworksService } from "angular-fireworks";
2
+ import { NgParticlesService } from "@tsparticles/angular";
3
3
  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"],
@@ -18,7 +19,7 @@ export class AppComponent implements OnInit {
18
19
  passErr = "";
19
20
  confirmErr = "";
20
21
 
21
- constructor(private readonly fireworksService: NgxFireworksService) {}
22
+ constructor(private readonly ngParticlesService: NgParticlesService) {}
22
23
 
23
24
  options: ISourceOptions = {
24
25
  background: { color: { value: "transparent" } },
@@ -40,7 +41,7 @@ export class AppComponent implements OnInit {
40
41
 
41
42
  ngOnInit(): void {
42
43
  document.documentElement.setAttribute("data-theme", this.theme);
43
- void this.fireworksService.init(async (engine) => {
44
+ void this.ngParticlesService.init(async (engine) => {
44
45
  await loadSlim(engine);
45
46
  });
46
47
  }
@@ -1,12 +1,12 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { BrowserModule } from "@angular/platform-browser";
3
3
  import { FormsModule } from "@angular/forms";
4
- import { NgxFireworksModule } from "angular-fireworks";
4
+ import { NgxParticlesModule } from "@tsparticles/angular";
5
5
  import { AppComponent } from "./app.component";
6
6
 
7
7
  @NgModule({
8
8
  declarations: [AppComponent],
9
- imports: [BrowserModule, FormsModule, NgxFireworksModule],
9
+ imports: [BrowserModule, FormsModule, NgxParticlesModule],
10
10
  providers: [],
11
11
  bootstrap: [AppComponent],
12
12
  })
@@ -9,12 +9,12 @@
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/slim": "^4.1.3",
16
- "@tsparticles/configs": "^4.1.3",
17
- "@tsparticles/engine": "^4.1.3"
12
+ "@astrojs/check": "^0.9.10",
13
+ "astro": "^7.3.2",
14
+ "@tsparticles/astro": "^4.4.0",
15
+ "@tsparticles/slim": "^4.4.0",
16
+ "@tsparticles/configs": "^4.4.0",
17
+ "@tsparticles/engine": "^4.4.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "typescript": "^6.0.3"
@@ -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 class="auth-container">
@@ -28,15 +28,12 @@
28
28
  "webpack": "^5.106.1"
29
29
  },
30
30
  "dependencies": {
31
- "@tsparticles/ember": "^4.1.3",
32
- "@tsparticles/slim": "^4.1.3",
33
- "@tsparticles/configs": "^4.1.3",
34
- "@tsparticles/engine": "^4.1.3"
31
+ "@tsparticles/configs": "^4.4.0",
32
+ "@tsparticles/ember": "^4.4.0",
33
+ "@tsparticles/engine": "^4.4.0",
34
+ "@tsparticles/slim": "^4.4.0"
35
35
  },
36
36
  "ember": {
37
37
  "edition": "octane"
38
- },
39
- "ember-addon": {
40
- "configPath": "tests/dummy/config"
41
38
  }
42
39
  }
@@ -10,15 +10,14 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "inferno": "^9.1.0",
13
- "@tsparticles/inferno": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "inferno-create-element": "^9.1.0",
14
+ "@tsparticles/inferno": "^4.4.0",
15
+ "@tsparticles/slim": "^4.4.0",
16
+ "@tsparticles/configs": "^4.4.0",
17
+ "@tsparticles/engine": "^4.4.0"
17
18
  },
18
19
  "devDependencies": {
19
20
  "typescript": "^6.0.3",
20
- "vite": "^8.1.0",
21
- "babel-plugin-inferno": "^6.8.5",
22
- "vite-plugin-inferno": "^2.0.1"
21
+ "vite": "^8.3.5"
23
22
  }
24
23
  }
@@ -1,5 +1,5 @@
1
- import { Component, type ComponentType } from "inferno";
2
- import Particles, { ParticlesProvider } from "@tsparticles/inferno";
1
+ import { Component } from "inferno";
2
+ import { Particles, ParticlesProvider } from "@tsparticles/inferno";
3
3
  import { loadSlim } from "@tsparticles/slim";
4
4
  import type { Engine, ISourceOptions } from "@tsparticles/engine";
5
5
  import "./App.css";
@@ -37,20 +37,17 @@ interface AppState {
37
37
  confirmErr: string;
38
38
  }
39
39
 
40
- const App: ComponentType<Record<string, unknown>> = class App extends Component<Record<string, unknown>, AppState> {
41
- constructor(props: Record<string, unknown>) {
42
- super(props);
43
- this.state = {
44
- isLogin: true,
45
- theme: localStorage.getItem("theme") || "dark",
46
- email: "",
47
- password: "",
48
- confirm: "",
49
- emailErr: "",
50
- passErr: "",
51
- confirmErr: "",
52
- };
53
- }
40
+ class App extends Component<Record<string, unknown>, AppState> {
41
+ state: AppState = {
42
+ isLogin: true,
43
+ theme: localStorage.getItem("theme") || "dark",
44
+ email: "",
45
+ password: "",
46
+ confirm: "",
47
+ emailErr: "",
48
+ passErr: "",
49
+ confirmErr: "",
50
+ };
54
51
 
55
52
  componentDidMount(): void {
56
53
  document.documentElement.setAttribute("data-theme", this.state.theme);
@@ -153,6 +150,6 @@ const App: ComponentType<Record<string, unknown>> = class App extends Component<
153
150
  </ParticlesProvider>
154
151
  );
155
152
  }
156
- };
153
+ }
157
154
 
158
155
  export default App;
@@ -0,0 +1,44 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>{{projectName}}</title>
7
+ </head>
8
+ <body>
9
+ <div id="app">
10
+ <div class="auth-container">
11
+ <div class="auth-card">
12
+ <div class="auth-header">
13
+ <h1 id="authTitle">Login</h1>
14
+ <button id="themeToggle" class="theme-btn" aria-label="Toggle theme">🌙</button>
15
+ </div>
16
+ <form id="authForm" novalidate>
17
+ <div class="form-group">
18
+ <label for="email">Email</label>
19
+ <input type="email" id="email" placeholder="you@example.com" required />
20
+ <span class="error" id="emailError"></span>
21
+ </div>
22
+ <div class="form-group">
23
+ <label for="password">Password</label>
24
+ <input type="password" id="password" placeholder="Enter password" required />
25
+ <span class="error" id="passwordError"></span>
26
+ </div>
27
+ <div class="form-group" id="confirmGroup" style="display: none">
28
+ <label for="confirmPassword">Confirm Password</label>
29
+ <input type="password" id="confirmPassword" placeholder="Confirm password" />
30
+ <span class="error" id="confirmError"></span>
31
+ </div>
32
+ <button type="submit" id="submitBtn">Sign In</button>
33
+ </form>
34
+ <p class="toggle-text">
35
+ <span id="toggleLabel">Don't have an account?</span>
36
+ <a href="#" id="toggleAuth">Register</a>
37
+ </p>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <div id="tsparticles"></div>
42
+ <script type="module" src="/src/main.ts"></script>
43
+ </body>
44
+ </html>
@@ -10,13 +10,14 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "jquery": "^3.7.1",
13
- "@tsparticles/jquery": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "@tsparticles/jquery": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^5.7.2",
20
- "vite": "^6.0.0"
20
+ "vite": "^8.3.5",
21
+ "@types/jquery": "^3.5.32"
21
22
  }
22
23
  }
@@ -84,7 +84,7 @@ $("#authForm").on("submit", (e) => {
84
84
  toggleMode();
85
85
  }
86
86
 
87
- $("#authForm")[0].reset();
87
+ ($("#authForm")[0] as HTMLFormElement).reset();
88
88
  });
89
89
 
90
90
  (async () => {
@@ -9,14 +9,14 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "lit": "^3.5.0",
13
- "@tsparticles/lit": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
12
+ "lit": "^3.3.0",
13
+ "@tsparticles/lit": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^5.7.2",
20
- "vite": "^6.0.0"
20
+ "vite": "^8.3.5"
21
21
  }
22
22
  }
@@ -11,15 +11,15 @@
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/slim": "^4.1.3",
16
- "@tsparticles/configs": "^4.1.3",
17
- "@tsparticles/engine": "^4.1.3"
14
+ "@tsparticles/nextjs": "^4.4.0",
15
+ "@tsparticles/slim": "^4.4.0",
16
+ "@tsparticles/configs": "^4.4.0",
17
+ "@tsparticles/engine": "^4.4.0"
18
18
  },
19
19
  "devDependencies": {
20
- "typescript": "^6.0.3",
21
- "@types/node": "^22.15.3",
20
+ "@types/node": "^26.6.6",
22
21
  "@types/react": "^19.1.4",
23
- "@types/react-dom": "^19.1.3"
22
+ "@types/react-dom": "^19.1.3",
23
+ "typescript": "^6.0.3"
24
24
  }
25
25
  }
@@ -9,9 +9,18 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "nuxt": "^2.18.1",
12
- "@tsparticles/nuxt2": "^4.1.3",
13
- "@tsparticles/slim": "^4.1.3",
14
- "@tsparticles/configs": "^4.1.3",
15
- "@tsparticles/engine": "^4.1.3"
12
+ "@tsparticles/nuxt2": "^4.4.0",
13
+ "@tsparticles/slim": "^4.4.0",
14
+ "@tsparticles/configs": "^4.4.0",
15
+ "@tsparticles/engine": "^4.4.0"
16
+ },
17
+ "browserslist": [
18
+ "chrome 58",
19
+ "edge 16",
20
+ "firefox 57",
21
+ "safari 11"
22
+ ],
23
+ "devDependencies": {
24
+ "@babel/preset-env": "^7.29.0"
16
25
  }
17
26
  }
@@ -10,10 +10,10 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "nuxt": "^3.17.3",
13
- "@tsparticles/nuxt3": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "@tsparticles/nuxt3": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^6.0.3"
@@ -10,10 +10,10 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "nuxt": "^4.4.2",
13
- "@tsparticles/nuxt4": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "@tsparticles/nuxt4": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^6.0.3"
@@ -10,14 +10,14 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "preact": "^10.19.3",
13
- "@tsparticles/preact": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "@tsparticles/preact": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@preact/preset-vite": "^2.8.1",
20
20
  "typescript": "^5.7.2",
21
- "vite": "^6.0.0"
21
+ "vite": "^8.3.5"
22
22
  }
23
23
  }
@@ -10,13 +10,13 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@builder.io/qwik": "^1.12.0",
13
- "@tsparticles/qwik": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "@tsparticles/qwik": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^5.7.2",
20
- "vite": "^6.0.0"
20
+ "vite": "^7.3.6"
21
21
  }
22
22
  }
@@ -107,7 +107,7 @@ export default component$(() => {
107
107
  <h1>{isLogin.value ? "Login" : "Register"}</h1>
108
108
  <button class="theme-btn" onClick$={toggleTheme} aria-label="Toggle theme">{theme.value === "dark" ? "🌙" : "☀️"}</button>
109
109
  </div>
110
- <form onSubmit$={handleSubmit} novalidate>
110
+ <form onSubmit$={handleSubmit} preventdefault:submit noValidate>
111
111
  <div class="form-group">
112
112
  <label for="email">Email</label>
113
113
  <input id="email" type="email" placeholder="you@example.com" value={email.value} onInput$={(e: InputEvent) => { email.value = (e.target as HTMLInputElement).value; }} required />
@@ -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,16 +9,16 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "riot": "^10.0.0",
13
- "@tsparticles/riot": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
12
+ "riot": "^10.1.6",
13
+ "@tsparticles/riot": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@riotjs/compiler": "^10.0.0",
20
20
  "rollup-plugin-riot": "^10.0.0",
21
21
  "typescript": "^5.7.2",
22
- "vite": "^6.0.0"
22
+ "vite": "^8.3.5"
23
23
  }
24
24
  }
@@ -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
  }
@@ -9,10 +9,10 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@stencil/core": "^4.43.5",
12
- "@tsparticles/stencil": "^4.1.3",
13
- "@tsparticles/slim": "^4.1.3",
14
- "@tsparticles/configs": "^4.1.3",
15
- "@tsparticles/engine": "^4.1.3"
12
+ "@tsparticles/stencil": "^4.4.0",
13
+ "@tsparticles/slim": "^4.4.0",
14
+ "@tsparticles/configs": "^4.4.0",
15
+ "@tsparticles/engine": "^4.4.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "typescript": "^6.0.3"
@@ -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",
@@ -10,15 +10,15 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "vue": "^2.7.16",
13
- "@tsparticles/vue2": "^4.1.3",
14
- "@tsparticles/slim": "^4.1.3",
15
- "@tsparticles/configs": "^4.1.3",
16
- "@tsparticles/engine": "^4.1.3"
13
+ "@tsparticles/vue2": "^4.4.0",
14
+ "@tsparticles/slim": "^4.4.0",
15
+ "@tsparticles/configs": "^4.4.0",
16
+ "@tsparticles/engine": "^4.4.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@vitejs/plugin-vue2": "^2.0.1",
19
+ "@vitejs/plugin-vue2": "^2.3.4",
20
20
  "vue-template-compiler": "^2.7.16",
21
21
  "typescript": "^5.7.2",
22
- "vite": "^6.0.0"
22
+ "vite": "^7.3.6"
23
23
  }
24
24
  }
@@ -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",
@@ -0,0 +1,43 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>{{projectName}}</title>
7
+ </head>
8
+ <body>
9
+ <div id="app">
10
+ <div class="auth-container">
11
+ <div class="auth-card">
12
+ <div class="auth-header">
13
+ <h1 id="authTitle">Login</h1>
14
+ <button id="themeToggle" class="theme-btn" aria-label="Toggle theme">🌙</button>
15
+ </div>
16
+ <form id="authForm" novalidate>
17
+ <div class="form-group">
18
+ <label for="email">Email</label>
19
+ <input type="email" id="email" placeholder="you@example.com" required />
20
+ <span class="error" id="emailError"></span>
21
+ </div>
22
+ <div class="form-group">
23
+ <label for="password">Password</label>
24
+ <input type="password" id="password" placeholder="Enter password" required />
25
+ <span class="error" id="passwordError"></span>
26
+ </div>
27
+ <div class="form-group" id="confirmGroup" style="display: none">
28
+ <label for="confirmPassword">Confirm Password</label>
29
+ <input type="password" id="confirmPassword" placeholder="Confirm password" />
30
+ <span class="error" id="confirmError"></span>
31
+ </div>
32
+ <button type="submit" id="submitBtn">Sign In</button>
33
+ </form>
34
+ <p class="toggle-text">
35
+ <span id="toggleLabel">Don't have an account?</span>
36
+ <a href="#" id="toggleAuth">Register</a>
37
+ </p>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <script type="module" src="/src/main.ts"></script>
42
+ </body>
43
+ </html>
@@ -9,13 +9,13 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "@tsparticles/webcomponents": "^4.1.3",
13
- "@tsparticles/slim": "^4.1.3",
14
- "@tsparticles/configs": "^4.1.3",
15
- "@tsparticles/engine": "^4.1.3"
12
+ "@tsparticles/webcomponents": "^4.4.0",
13
+ "@tsparticles/slim": "^4.4.0",
14
+ "@tsparticles/configs": "^4.4.0",
15
+ "@tsparticles/engine": "^4.4.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "typescript": "^5.7.2",
19
- "vite": "^6.0.0"
19
+ "vite": "^8.3.5"
20
20
  }
21
21
  }
@@ -1,8 +1,11 @@
1
+ import { tsParticles } from "@tsparticles/engine";
1
2
  import { defineParticlesElement, initParticlesEngine } from "@tsparticles/webcomponents";
2
3
  import { loadSlim } from "@tsparticles/slim";
3
4
  import type { ISourceOptions } from "@tsparticles/engine";
4
5
  import "./style.css";
5
6
 
7
+ globalThis.tsParticles = tsParticles;
8
+
6
9
  void initParticlesEngine(async (engine) => {
7
10
  await loadSlim(engine);
8
11
  });
@@ -27,6 +30,11 @@ const options: ISourceOptions = {
27
30
  detectRetina: true,
28
31
  };
29
32
 
33
+ const particlesEl = document.createElement("web-particles");
34
+ particlesEl.id = "tsparticles";
35
+ (particlesEl as unknown as Record<string, unknown>).options = options;
36
+ document.body.appendChild(particlesEl);
37
+
30
38
  let isLogin = true;
31
39
 
32
40
  const authTitle = document.getElementById("authTitle") as HTMLHeadingElement;
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.1",
5
+ "@tsparticles/slim": "^4.5.1",
6
+ "@tsparticles/configs": "^4.5.1"
7
7
  },
8
8
  "devDependencies": {
9
9
  "typescript": "^6.0.3",
10
- "vite": "^8.1.0"
10
+ "vite": "^8.3.5"
11
11
  }
12
12
  }
13
- }
13
+ }