@tsparticles/template-ribbons 4.1.3 → 4.2.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 (64) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +3 -0
  3. package/package.json +4 -3
  4. package/template/angular/package.json +35 -0
  5. package/template/angular/src/app/app.component.css +40 -0
  6. package/template/angular/src/app/app.component.html +6 -0
  7. package/template/angular/src/app/app.component.ts +13 -0
  8. package/template/angular-confetti/package.json +36 -0
  9. package/template/angular-confetti/src/app/app.component.css +40 -0
  10. package/template/angular-confetti/src/app/app.component.html +6 -0
  11. package/template/angular-confetti/src/app/app.component.ts +13 -0
  12. package/template/angular-fireworks/package.json +36 -0
  13. package/template/angular-fireworks/src/app/app.component.css +40 -0
  14. package/template/angular-fireworks/src/app/app.component.html +6 -0
  15. package/template/angular-fireworks/src/app/app.component.ts +13 -0
  16. package/template/astro/package.json +18 -0
  17. package/template/astro/src/pages/index.astro +70 -0
  18. package/template/ember/app/templates/application.hbs +6 -0
  19. package/template/ember/package.json +20 -0
  20. package/template/inferno/package.json +22 -0
  21. package/template/inferno/src/App.css +40 -0
  22. package/template/inferno/src/App.tsx +13 -0
  23. package/template/jquery/package.json +21 -0
  24. package/template/jquery/src/main.ts +7 -0
  25. package/template/jquery/src/style.css +40 -0
  26. package/template/lit/package.json +21 -0
  27. package/template/lit/src/my-app.ts +23 -0
  28. package/template/nextjs/package.json +21 -0
  29. package/template/nextjs/src/app/page.tsx +14 -0
  30. package/template/nuxt2/package.json +19 -0
  31. package/template/nuxt2/pages/index.vue +63 -0
  32. package/template/nuxt3/app.vue +59 -0
  33. package/template/nuxt3/package.json +19 -0
  34. package/template/nuxt4/app.vue +59 -0
  35. package/template/nuxt4/package.json +22 -0
  36. package/template/preact/package.json +21 -0
  37. package/template/preact/src/App.css +40 -0
  38. package/template/preact/src/App.tsx +13 -0
  39. package/template/qwik/package.json +20 -0
  40. package/template/qwik/src/App.tsx +13 -0
  41. package/template/react/package.json +21 -0
  42. package/template/react/src/App.css +40 -0
  43. package/template/react/src/App.tsx +23 -0
  44. package/template/riot/package.json +22 -0
  45. package/template/riot/src/app.riot +61 -0
  46. package/template/solid/package.json +20 -0
  47. package/template/solid/src/App.tsx +12 -0
  48. package/template/solid/src/index.css +40 -0
  49. package/template/solid/src/main.tsx +9 -0
  50. package/template/stencil/package.json +18 -0
  51. package/template/stencil/src/components/app-home/app-home.tsx +22 -0
  52. package/template/svelte/package.json +22 -0
  53. package/template/svelte/src/App.svelte +55 -0
  54. package/template/svelte/src/main.ts +6 -0
  55. package/template/vanilla/LICENSE +21 -0
  56. package/template/vanilla/package.json +5 -1
  57. package/template/vue2/package.json +21 -0
  58. package/template/vue2/src/App.vue +64 -0
  59. package/template/vue3/package.json +21 -0
  60. package/template/vue3/src/App.vue +59 -0
  61. package/template/vue3/src/main.ts +9 -0
  62. package/template/webcomponents/package.json +15 -0
  63. package/template/webcomponents/src/main.ts +18 -0
  64. package/template/webcomponents/src/style.css +40 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## [4.2.1](https://github.com/tsparticles/tsparticles/compare/v4.2.0...v4.2.1) (2026-06-18)
7
+
8
+ ### Bug Fixes
9
+
10
+ - fixed some various issues ([8534979](https://github.com/tsparticles/tsparticles/commit/85349791a4978f80f98f141a94a403a7e15785c0))
11
+ - fixed some versions issues ([0948d06](https://github.com/tsparticles/tsparticles/commit/0948d06b0907aeacde33dd5a12b7438ae2b370a1))
12
+
13
+ # [4.2.0](https://github.com/tsparticles/tsparticles/compare/v4.1.3...v4.2.0) (2026-06-17)
14
+
15
+ ### Features
16
+
17
+ - adding templates to cli create ([bc118ef](https://github.com/tsparticles/tsparticles/commit/bc118efa3f40497f9fa84186ac6102411a19fda7))
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @tsparticles/template-ribbons
2
+
3
+ tsParticles ribbons template. Use with `create-tsparticles-app` to scaffold a new ribbons animation project.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/template-ribbons",
3
- "version": "4.1.3",
3
+ "version": "4.2.1",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -8,7 +8,8 @@
8
8
  "scripts": {
9
9
  "prebuild": "node scripts/prebuild.js",
10
10
  "build": "pnpm run prebuild",
11
- "build:ci": "pnpm run prebuild"
11
+ "build:ci": "pnpm run prebuild",
12
+ "version": "pnpm run build && git add template.json"
12
13
  },
13
- "gitHead": "0551736c55ae8eec3855a693af8a99b1b4420350"
14
+ "gitHead": "e2a7699c1f4212bbda4e6933970c062e6fc000dc"
14
15
  }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "scripts": {
6
+ "ng": "ng",
7
+ "start": "ng serve",
8
+ "dev": "ng serve",
9
+ "build": "ng build",
10
+ "preview": "ng serve",
11
+ "watch": "ng build --watch --configuration development"
12
+ },
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": "workspace:*",
23
+ "@tsparticles/ribbons": "workspace:*",
24
+
25
+ "rxjs": "~7.8.2",
26
+ "tslib": "^2.8.1",
27
+ "zone.js": "~0.16.2"
28
+ },
29
+ "devDependencies": {
30
+ "@angular-devkit/build-angular": "~22.0.0",
31
+ "@angular/cli": "~22.0.0",
32
+ "@angular/compiler-cli": "~22.0.0",
33
+ "typescript": "~6.0.3"
34
+ }
35
+ }
@@ -0,0 +1,40 @@
1
+ body {
2
+ margin: 0;
3
+ overflow: hidden;
4
+ background: #0a0a23;
5
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
6
+ }
7
+
8
+ #app {
9
+ position: absolute;
10
+ top: 50%;
11
+ left: 50%;
12
+ transform: translate(-50%, -50%);
13
+ z-index: 10;
14
+ text-align: center;
15
+ }
16
+
17
+ h1 {
18
+ font-size: 3.2em;
19
+ color: #fff;
20
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
21
+ }
22
+
23
+ .controls {
24
+ margin-top: 2rem;
25
+ }
26
+
27
+ button {
28
+ padding: 0.8em 2em;
29
+ font-size: 1.1em;
30
+ border: none;
31
+ border-radius: 8px;
32
+ background: #6c5ce7;
33
+ color: #fff;
34
+ cursor: pointer;
35
+ transition: background 0.2s;
36
+ }
37
+
38
+ button:hover {
39
+ background: #a29bfe;
40
+ }
@@ -0,0 +1,6 @@
1
+ <div id="app">
2
+ <h1>Ribbons</h1>
3
+ <div class="controls">
4
+ <button (click)="fireRibbons()">Fire Ribbons</button>
5
+ </div>
6
+ </div>
@@ -0,0 +1,13 @@
1
+ import { Component } from "@angular/core";
2
+ import { ribbons } from "@tsparticles/ribbons";
3
+
4
+ @Component({
5
+ selector: "app-root",
6
+ templateUrl: "./app.component.html",
7
+ styleUrls: ["./app.component.css"],
8
+ })
9
+ export class AppComponent {
10
+ fireRibbons(): void {
11
+ ribbons();
12
+ }
13
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "scripts": {
6
+ "ng": "ng",
7
+ "start": "ng serve",
8
+ "dev": "ng serve",
9
+ "build": "ng build",
10
+ "preview": "ng serve",
11
+ "watch": "ng build --watch --configuration development"
12
+ },
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": "workspace:*",
23
+ "@tsparticles/engine": "workspace:*",
24
+ "@tsparticles/ribbons": "workspace:*",
25
+
26
+ "rxjs": "~7.8.2",
27
+ "tslib": "^2.8.1",
28
+ "zone.js": "~0.16.2"
29
+ },
30
+ "devDependencies": {
31
+ "@angular-devkit/build-angular": "~22.0.0",
32
+ "@angular/cli": "~22.0.0",
33
+ "@angular/compiler-cli": "~22.0.0",
34
+ "typescript": "~6.0.3"
35
+ }
36
+ }
@@ -0,0 +1,40 @@
1
+ body {
2
+ margin: 0;
3
+ overflow: hidden;
4
+ background: #0a0a23;
5
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
6
+ }
7
+
8
+ #app {
9
+ position: absolute;
10
+ top: 50%;
11
+ left: 50%;
12
+ transform: translate(-50%, -50%);
13
+ z-index: 10;
14
+ text-align: center;
15
+ }
16
+
17
+ h1 {
18
+ font-size: 3.2em;
19
+ color: #fff;
20
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
21
+ }
22
+
23
+ .controls {
24
+ margin-top: 2rem;
25
+ }
26
+
27
+ button {
28
+ padding: 0.8em 2em;
29
+ font-size: 1.1em;
30
+ border: none;
31
+ border-radius: 8px;
32
+ background: #6c5ce7;
33
+ color: #fff;
34
+ cursor: pointer;
35
+ transition: background 0.2s;
36
+ }
37
+
38
+ button:hover {
39
+ background: #a29bfe;
40
+ }
@@ -0,0 +1,6 @@
1
+ <div id="app">
2
+ <h1>Ribbons</h1>
3
+ <div class="controls">
4
+ <button (click)="fireRibbons()">Fire Ribbons</button>
5
+ </div>
6
+ </div>
@@ -0,0 +1,13 @@
1
+ import { Component } from "@angular/core";
2
+ import { ribbons } from "@tsparticles/ribbons";
3
+
4
+ @Component({
5
+ selector: "app-root",
6
+ templateUrl: "./app.component.html",
7
+ styleUrls: ["./app.component.css"],
8
+ })
9
+ export class AppComponent {
10
+ fireRibbons(): void {
11
+ ribbons();
12
+ }
13
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "scripts": {
6
+ "ng": "ng",
7
+ "start": "ng serve",
8
+ "dev": "ng serve",
9
+ "build": "ng build",
10
+ "preview": "ng serve",
11
+ "watch": "ng build --watch --configuration development"
12
+ },
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": "workspace:*",
23
+ "@tsparticles/engine": "workspace:*",
24
+ "@tsparticles/ribbons": "workspace:*",
25
+
26
+ "rxjs": "~7.8.2",
27
+ "tslib": "^2.8.1",
28
+ "zone.js": "~0.16.2"
29
+ },
30
+ "devDependencies": {
31
+ "@angular-devkit/build-angular": "~22.0.0",
32
+ "@angular/cli": "~22.0.0",
33
+ "@angular/compiler-cli": "~22.0.0",
34
+ "typescript": "~6.0.3"
35
+ }
36
+ }
@@ -0,0 +1,40 @@
1
+ body {
2
+ margin: 0;
3
+ overflow: hidden;
4
+ background: #0a0a23;
5
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
6
+ }
7
+
8
+ #app {
9
+ position: absolute;
10
+ top: 50%;
11
+ left: 50%;
12
+ transform: translate(-50%, -50%);
13
+ z-index: 10;
14
+ text-align: center;
15
+ }
16
+
17
+ h1 {
18
+ font-size: 3.2em;
19
+ color: #fff;
20
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
21
+ }
22
+
23
+ .controls {
24
+ margin-top: 2rem;
25
+ }
26
+
27
+ button {
28
+ padding: 0.8em 2em;
29
+ font-size: 1.1em;
30
+ border: none;
31
+ border-radius: 8px;
32
+ background: #6c5ce7;
33
+ color: #fff;
34
+ cursor: pointer;
35
+ transition: background 0.2s;
36
+ }
37
+
38
+ button:hover {
39
+ background: #a29bfe;
40
+ }
@@ -0,0 +1,6 @@
1
+ <div id="app">
2
+ <h1>Ribbons</h1>
3
+ <div class="controls">
4
+ <button (click)="fireRibbons()">Fire Ribbons</button>
5
+ </div>
6
+ </div>
@@ -0,0 +1,13 @@
1
+ import { Component } from "@angular/core";
2
+ import { ribbons } from "@tsparticles/ribbons";
3
+
4
+ @Component({
5
+ selector: "app-root",
6
+ templateUrl: "./app.component.html",
7
+ styleUrls: ["./app.component.css"],
8
+ })
9
+ export class AppComponent {
10
+ fireRibbons(): void {
11
+ ribbons();
12
+ }
13
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "astro dev",
8
+ "build": "astro build",
9
+ "preview": "astro preview"
10
+ },
11
+ "dependencies": {
12
+ "@tsparticles/astro": "workspace:*",
13
+ "@tsparticles/engine": "workspace:*",
14
+ "@tsparticles/ribbons": "workspace:*",
15
+
16
+ "astro": "^5.0.0"
17
+ }
18
+ }
@@ -0,0 +1,70 @@
1
+ ---
2
+ import { ribbons } from "@tsparticles/ribbons";
3
+ ---
4
+ <!doctype html>
5
+ <html lang="en">
6
+ <head>
7
+ <meta charset="utf-8" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <title>Ribbons</title>
10
+ </head>
11
+ <body>
12
+ <div id="app">
13
+ <h1>Ribbons</h1>
14
+ <div class="controls">
15
+ <button id="fireBtn">Fire Ribbons</button>
16
+ </div>
17
+ </div>
18
+
19
+ <script>
20
+ import { ribbons } from "@tsparticles/ribbons";
21
+
22
+ document.getElementById("fireBtn")!.addEventListener("click", () => {
23
+ ribbons();
24
+ });
25
+ </script>
26
+
27
+ <style is:global>
28
+ body {
29
+ margin: 0;
30
+ overflow: hidden;
31
+ background: #0a0a23;
32
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
33
+ }
34
+
35
+ #app {
36
+ position: absolute;
37
+ top: 50%;
38
+ left: 50%;
39
+ transform: translate(-50%, -50%);
40
+ z-index: 10;
41
+ text-align: center;
42
+ }
43
+
44
+ h1 {
45
+ font-size: 3.2em;
46
+ color: #fff;
47
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
48
+ }
49
+
50
+ .controls {
51
+ margin-top: 2rem;
52
+ }
53
+
54
+ button {
55
+ padding: 0.8em 2em;
56
+ font-size: 1.1em;
57
+ border: none;
58
+ border-radius: 8px;
59
+ background: #6c5ce7;
60
+ color: #fff;
61
+ cursor: pointer;
62
+ transition: background 0.2s;
63
+ }
64
+
65
+ button:hover {
66
+ background: #a29bfe;
67
+ }
68
+ </style>
69
+ </body>
70
+ </html>
@@ -0,0 +1,6 @@
1
+ <div id="app">
2
+ <h1>Ribbons</h1>
3
+ <div class="controls">
4
+ <button type="button" {{on "click" this.fireRibbons}}>Fire Ribbons</button>
5
+ </div>
6
+ </div>
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "scripts": {
6
+ "build": "ember build",
7
+ "start": "ember serve",
8
+ "preview": "ember serve",
9
+ "dev": "ember serve"
10
+ },
11
+ "dependencies": {
12
+ "@tsparticles/ember": "workspace:*",
13
+ "@tsparticles/engine": "workspace:*",
14
+ "@tsparticles/ribbons": "workspace:*"
15
+ },
16
+ "devDependencies": {
17
+ "ember-cli": "~6.4.0",
18
+ "ember-source": "~6.4.0"
19
+ }
20
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "@tsparticles/engine": "workspace:*",
13
+ "@tsparticles/ribbons": "workspace:*",
14
+ "@tsparticles/inferno": "workspace:*",
15
+
16
+ "inferno": "^8.2.0"
17
+ },
18
+ "devDependencies": {
19
+ "babel-plugin-inferno": "^6.5.0",
20
+ "vite-plugin-inferno": "^1.0.0"
21
+ }
22
+ }
@@ -0,0 +1,40 @@
1
+ body {
2
+ margin: 0;
3
+ overflow: hidden;
4
+ background: #0a0a23;
5
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
6
+ }
7
+
8
+ #app {
9
+ position: absolute;
10
+ top: 50%;
11
+ left: 50%;
12
+ transform: translate(-50%, -50%);
13
+ z-index: 10;
14
+ text-align: center;
15
+ }
16
+
17
+ h1 {
18
+ font-size: 3.2em;
19
+ color: #fff;
20
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
21
+ }
22
+
23
+ .controls {
24
+ margin-top: 2rem;
25
+ }
26
+
27
+ button {
28
+ padding: 0.8em 2em;
29
+ font-size: 1.1em;
30
+ border: none;
31
+ border-radius: 8px;
32
+ background: #6c5ce7;
33
+ color: #fff;
34
+ cursor: pointer;
35
+ transition: background 0.2s;
36
+ }
37
+
38
+ button:hover {
39
+ background: #a29bfe;
40
+ }
@@ -0,0 +1,13 @@
1
+ import { ribbons } from "@tsparticles/ribbons";
2
+ import "./App.css";
3
+
4
+ export default function App() {
5
+ return (
6
+ <div id="app">
7
+ <h1>Ribbons</h1>
8
+ <div class="controls">
9
+ <button onClick={() => ribbons()}>Fire Ribbons</button>
10
+ </div>
11
+ </div>
12
+ );
13
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "@tsparticles/engine": "workspace:*",
13
+ "@tsparticles/ribbons": "workspace:*",
14
+ "@tsparticles/jquery": "workspace:*",
15
+
16
+ "jquery": "^3.7.1"
17
+ },
18
+ "devDependencies": {
19
+ "@types/jquery": "^3.5.32"
20
+ }
21
+ }
@@ -0,0 +1,7 @@
1
+ import "./style.css";
2
+ import $ from "jquery";
3
+ import { ribbons } from "@tsparticles/ribbons";
4
+
5
+ $(() => {
6
+ $("#fireBtn").on("click", () => ribbons());
7
+ });
@@ -0,0 +1,40 @@
1
+ body {
2
+ margin: 0;
3
+ overflow: hidden;
4
+ background: #0a0a23;
5
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
6
+ }
7
+
8
+ #app {
9
+ position: absolute;
10
+ top: 50%;
11
+ left: 50%;
12
+ transform: translate(-50%, -50%);
13
+ z-index: 10;
14
+ text-align: center;
15
+ }
16
+
17
+ h1 {
18
+ font-size: 3.2em;
19
+ color: #fff;
20
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
21
+ }
22
+
23
+ .controls {
24
+ margin-top: 2rem;
25
+ }
26
+
27
+ button {
28
+ padding: 0.8em 2em;
29
+ font-size: 1.1em;
30
+ border: none;
31
+ border-radius: 8px;
32
+ background: #6c5ce7;
33
+ color: #fff;
34
+ cursor: pointer;
35
+ transition: background 0.2s;
36
+ }
37
+
38
+ button:hover {
39
+ background: #a29bfe;
40
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "@tsparticles/engine": "workspace:*",
13
+ "@tsparticles/ribbons": "workspace:*",
14
+ "@tsparticles/lit": "workspace:*",
15
+
16
+ "lit": "^3.1.0"
17
+ },
18
+ "devDependencies": {
19
+ "typescript": "~5.8.2"
20
+ }
21
+ }
@@ -0,0 +1,23 @@
1
+ import { LitElement, html } from "lit";
2
+ import { customElement } from "lit/decorators.js";
3
+ import { initParticlesEngine } from "@tsparticles/lit";
4
+ import { ribbons } from "@tsparticles/ribbons";
5
+ import { confetti } from "@tsparticles/confetti";
6
+
7
+ @customElement("my-app")
8
+ export class MyApp extends LitElement {
9
+ private fireRibbons(): void {
10
+ ribbons();
11
+ }
12
+
13
+ render() {
14
+ return html`
15
+ <div id="app">
16
+ <h1>Ribbons</h1>
17
+ <div class="controls">
18
+ <button @click=${this.fireRibbons}>Fire Ribbons</button>
19
+ </div>
20
+ </div>
21
+ `;
22
+ }
23
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "{{packageName}}",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "next dev",
8
+ "build": "next build",
9
+ "start": "next start",
10
+ "preview": "next start"
11
+ },
12
+ "dependencies": {
13
+ "@tsparticles/engine": "workspace:*",
14
+ "@tsparticles/ribbons": "workspace:*",
15
+
16
+ "@tsparticles/react": "workspace:*",
17
+ "next": "^15.0.0",
18
+ "react": "^19.2.5",
19
+ "react-dom": "^19.2.5"
20
+ }
21
+ }