@tsparticles/template-login 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.
- package/CHANGELOG.md +8 -2
- package/package.json +5 -5
- package/scripts/prebuild.js +1 -1
- package/template/angular/package.json +14 -14
- package/template/angular/src/app/app.component.ts +1 -0
- package/template/angular-confetti/package.json +16 -16
- package/template/angular-confetti/src/app/app.component.html +1 -1
- package/template/angular-confetti/src/app/app.component.ts +4 -3
- package/template/angular-confetti/src/app/app.module.ts +2 -2
- package/template/angular-fireworks/package.json +16 -16
- package/template/angular-fireworks/src/app/app.component.html +1 -1
- package/template/angular-fireworks/src/app/app.component.ts +4 -3
- package/template/angular-fireworks/src/app/app.module.ts +2 -2
- package/template/astro/package.json +6 -6
- package/template/ember/app/templates/application.hbs +1 -1
- package/template/ember/package.json +4 -7
- package/template/inferno/package.json +6 -7
- package/template/inferno/src/App.tsx +14 -17
- package/template/jquery/index.html +44 -0
- package/template/jquery/package.json +6 -5
- package/template/jquery/src/main.ts +1 -1
- package/template/lit/package.json +6 -6
- package/template/nextjs/package.json +7 -7
- package/template/nuxt2/package.json +13 -4
- package/template/nuxt3/package.json +4 -4
- package/template/nuxt4/package.json +4 -4
- package/template/preact/package.json +5 -5
- package/template/qwik/package.json +5 -5
- package/template/qwik/src/App.tsx +1 -1
- package/template/react/package.json +4 -2
- package/template/riot/package.json +6 -6
- package/template/solid/package.json +2 -2
- package/template/stencil/package.json +4 -4
- package/template/svelte/package.json +1 -1
- package/template/vue2/package.json +6 -6
- package/template/vue3/package.json +1 -1
- package/template/webcomponents/index.html +43 -0
- package/template/webcomponents/package.json +5 -5
- package/template/webcomponents/src/main.ts +8 -0
- 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
|
-
|
|
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
|
-
|
|
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-login",
|
|
3
|
-
"version": "4.
|
|
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.
|
|
22
|
-
"@tsparticles/engine": "4.
|
|
23
|
-
"@tsparticles/slim": "4.
|
|
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": "
|
|
28
|
+
"gitHead": "a637373a03c008ab38edaaecf6524ec4b8e332c0"
|
|
29
29
|
}
|
package/scripts/prebuild.js
CHANGED
|
@@ -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)
|
|
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.
|
|
15
|
-
"@angular/common": "~22.
|
|
16
|
-
"@angular/compiler": "~22.
|
|
17
|
-
"@angular/core": "~22.
|
|
18
|
-
"@angular/forms": "~22.
|
|
19
|
-
"@angular/platform-browser": "~22.
|
|
20
|
-
"@angular/platform-browser-dynamic": "~22.
|
|
21
|
-
"@angular/router": "~22.
|
|
22
|
-
"@tsparticles/angular": "^4.
|
|
23
|
-
"@tsparticles/slim": "^4.
|
|
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.
|
|
26
|
+
"zone.js": "~0.16.3"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@angular-devkit/build-angular": "~22.
|
|
30
|
-
"@angular/cli": "~22.
|
|
31
|
-
"@angular/compiler-cli": "~22.
|
|
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
|
}
|
|
@@ -11,26 +11,26 @@
|
|
|
11
11
|
"watch": "ng build --watch --configuration development"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@angular/animations": "~22.
|
|
15
|
-
"@angular/common": "~22.
|
|
16
|
-
"@angular/compiler": "~22.
|
|
17
|
-
"@angular/core": "~22.
|
|
18
|
-
"@angular/forms": "~22.
|
|
19
|
-
"@angular/platform-browser": "~22.
|
|
20
|
-
"@angular/platform-browser-dynamic": "~22.
|
|
21
|
-
"@angular/router": "~22.
|
|
22
|
-
"angular
|
|
23
|
-
"@tsparticles/
|
|
24
|
-
"@tsparticles/
|
|
25
|
-
"@tsparticles/
|
|
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.
|
|
28
|
+
"zone.js": "~0.16.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@angular-devkit/build-angular": "~22.
|
|
32
|
-
"@angular/cli": "~22.
|
|
33
|
-
"@angular/compiler-cli": "~22.
|
|
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,9 +1,10 @@
|
|
|
1
1
|
import { Component, OnInit } from "@angular/core";
|
|
2
|
-
import {
|
|
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
|
|
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.
|
|
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 {
|
|
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,
|
|
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.
|
|
15
|
-
"@angular/common": "~22.
|
|
16
|
-
"@angular/compiler": "~22.
|
|
17
|
-
"@angular/core": "~22.
|
|
18
|
-
"@angular/forms": "~22.
|
|
19
|
-
"@angular/platform-browser": "~22.
|
|
20
|
-
"@angular/platform-browser-dynamic": "~22.
|
|
21
|
-
"@angular/router": "~22.
|
|
22
|
-
"angular
|
|
23
|
-
"@tsparticles/
|
|
24
|
-
"@tsparticles/
|
|
25
|
-
"@tsparticles/
|
|
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.
|
|
28
|
+
"zone.js": "~0.16.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@angular-devkit/build-angular": "~22.
|
|
32
|
-
"@angular/cli": "~22.
|
|
33
|
-
"@angular/compiler-cli": "~22.
|
|
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,9 +1,10 @@
|
|
|
1
1
|
import { Component, OnInit } from "@angular/core";
|
|
2
|
-
import {
|
|
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
|
|
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.
|
|
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 {
|
|
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,
|
|
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.
|
|
13
|
-
"astro": "^
|
|
14
|
-
"@tsparticles/astro": "^4.
|
|
15
|
-
"@tsparticles/slim": "^4.
|
|
16
|
-
"@tsparticles/configs": "^4.
|
|
17
|
-
"@tsparticles/engine": "^4.
|
|
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"
|
|
@@ -28,15 +28,12 @@
|
|
|
28
28
|
"webpack": "^5.106.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tsparticles/
|
|
32
|
-
"@tsparticles/
|
|
33
|
-
"@tsparticles/
|
|
34
|
-
"@tsparticles/
|
|
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
|
-
"
|
|
14
|
-
"@tsparticles/
|
|
15
|
-
"@tsparticles/
|
|
16
|
-
"@tsparticles/
|
|
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
|
|
21
|
-
"babel-plugin-inferno": "^6.8.5",
|
|
22
|
-
"vite-plugin-inferno": "^2.0.1"
|
|
21
|
+
"vite": "^8.3.1"
|
|
23
22
|
}
|
|
24
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Component
|
|
2
|
-
import Particles,
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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": "^
|
|
20
|
+
"vite": "^8.3.1",
|
|
21
|
+
"@types/jquery": "^3.5.32"
|
|
21
22
|
}
|
|
22
23
|
}
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
"preview": "vite preview"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"lit": "^3.
|
|
13
|
-
"@tsparticles/lit": "^4.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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": "^
|
|
20
|
+
"vite": "^8.3.1"
|
|
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.
|
|
15
|
-
"@tsparticles/slim": "^4.
|
|
16
|
-
"@tsparticles/configs": "^4.
|
|
17
|
-
"@tsparticles/engine": "^4.
|
|
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
|
-
"
|
|
21
|
-
"@types/node": "^22.15.3",
|
|
20
|
+
"@types/node": "^26.6.5",
|
|
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.
|
|
13
|
-
"@tsparticles/slim": "^4.
|
|
14
|
-
"@tsparticles/configs": "^4.
|
|
15
|
-
"@tsparticles/engine": "^4.
|
|
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.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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": "^
|
|
21
|
+
"vite": "^8.3.1"
|
|
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.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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": "^
|
|
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}
|
|
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.
|
|
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.
|
|
13
|
-
"@tsparticles/riot": "^4.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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": "^
|
|
22
|
+
"vite": "^8.3.1"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@stencil/core": "^4.43.5",
|
|
12
|
-
"@tsparticles/stencil": "^4.
|
|
13
|
-
"@tsparticles/slim": "^4.
|
|
14
|
-
"@tsparticles/configs": "^4.
|
|
15
|
-
"@tsparticles/engine": "^4.
|
|
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"
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"vue": "^2.7.16",
|
|
13
|
-
"@tsparticles/vue2": "^4.
|
|
14
|
-
"@tsparticles/slim": "^4.
|
|
15
|
-
"@tsparticles/configs": "^4.
|
|
16
|
-
"@tsparticles/engine": "^4.
|
|
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.
|
|
19
|
+
"@vitejs/plugin-vue2": "^2.3.4",
|
|
20
20
|
"vue-template-compiler": "^2.7.16",
|
|
21
21
|
"typescript": "^5.7.2",
|
|
22
|
-
"vite": "^
|
|
22
|
+
"vite": "^7.3.6"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -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.
|
|
13
|
-
"@tsparticles/slim": "^4.
|
|
14
|
-
"@tsparticles/configs": "^4.
|
|
15
|
-
"@tsparticles/engine": "^4.
|
|
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": "^
|
|
19
|
+
"vite": "^8.3.1"
|
|
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.
|
|
5
|
-
"@tsparticles/slim": "^4.
|
|
6
|
-
"@tsparticles/configs": "^4.
|
|
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
|
|
10
|
+
"vite": "^8.3.1"
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
}
|
|
13
|
+
}
|