Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .github/workflows/deploy-websites.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,19 @@ jobs:
repositories: |
website

- name: Deploy to tsparticles/confetti main
uses: peaceiris/actions-gh-pages@v4
with:
personal_token: ${{ steps.token-confetti.outputs.token }}
external_repository: tsparticles/confetti
publish_branch: main
publish_dir: websites/confetti/dist
cname: confetti.js.org
user_name: 'github-actions-bot'
user_email: 'support+actions@github.com'
commit_message: 'build: confetti website updated'
force_orphan: true

- name: Deploy to tsparticles/ribbons main
uses: peaceiris/actions-gh-pages@v4
with:
Expand Down
18 changes: 18 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,24 @@ PRs

If you are an automated agent making changes: run the full test suite locally (`pnpm exec vitest`) and ensure lint + format pass before proposing a commit. When in doubt, open a short PR with a clear testing checklist.

## Cross-package impact awareness

When editing the engine (`engine/src/`), changes can break downstream packages (updaters, plugins, interactions, bundles) that re-export or extend engine types. Always verify:

1. **Exported types**: If you rename or restructure an API, update `engine/src/exports.ts` and `engine/src/export-types.ts` so symbols remain reachable from `@tsparticles/engine`.
2. **Plugin option classes**: Many plugins implement `IOptionLoader` from the engine with their own `load()` method. Changing that interface breaks them all.
3. **Inheritance chains**: Classes like `RangedAnimationValueWithRandom` and `AnimationOptions` are extended by multiple plugins. Their public API must remain stable.
4. **Build impacted packages**: After engine changes, run `pnpm nx show projects --json | jq -r '.[]' | grep -vE "cli|website|palette" | xargs pnpm nx run-many -t build --projects` to rebuild all non-CLI/non-website packages from scratch.

## sort-imports rule specifics

This repo enforces ESLint's built-in `sort-imports` rule, which follows these sorting rules:

- **Sort by member syntax**: The rule uses `memberSyntaxSortOrder: ["none", "all", "multiple", "single"]`. Imports with multiple named specifiers (`import { a, b }`) must come before single-specifier imports (`import { a }`).
- **Sort by first local member name**: Within the same syntax group, imports are sorted alphabetically by the **first imported name** (case-sensitive). Uppercase letters (65-90) come before lowercase (97-122). The `from` path is NOT used for sorting.
- **Member ordering**: Within each `import { ... }` statement, named specifiers must also be sorted alphabetically.
- **No auto-fix**: ESLint cannot auto-fix declaration ordering; you must reorder manually or with a script.

<!-- nx configuration start-->
<!-- Leave the start & end comments to automatically receive updates. -->

Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03)

### Bug Fixes

- fixed issue with react component after previous fix, not loading correctly in strict mode ([7eee06a](https://github.com/tsparticles/tsparticles/commit/7eee06a02bb352fac4739ec66d718415521e5167))
- various fixes after deeper review ([255111c](https://github.com/tsparticles/tsparticles/commit/255111c93e4ed602d744386125faddbc2564a585))
- various fixes after deeper review ([f1733a5](https://github.com/tsparticles/tsparticles/commit/f1733a5e56f4e021c416874fe9b3d7cde393d4a1))
- various fixes after deeper review ([37ecd22](https://github.com/tsparticles/tsparticles/commit/37ecd2203c2574cc30055cdc3ef5c0f86a57bcd9))
- various fixes after deeper review ([d1a1e59](https://github.com/tsparticles/tsparticles/commit/d1a1e59980d949e5f592631844d17f1a9ba5a145))

## [4.1.2](https://github.com/tsparticles/tsparticles/compare/v4.1.1...v4.1.2) (2026-06-01)

### Bug Fixes
Expand Down
4 changes: 4 additions & 0 deletions bundles/all/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03)

**Note:** Version bump only for package @tsparticles/all

## [4.1.2](https://github.com/tsparticles/tsparticles/compare/v4.1.1...v4.1.2) (2026-06-01)

### Bug Fixes
Expand Down
158 changes: 79 additions & 79 deletions bundles/all/package.dist.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tsparticles/all",
"version": "4.1.2",
"version": "4.1.3",
"description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
"homepage": "https://particles.js.org",
"repository": {
Expand Down Expand Up @@ -105,84 +105,84 @@
"./package.json": "./package.json"
},
"dependencies": {
"@tsparticles/effect-bubble": "4.1.2",
"@tsparticles/effect-filter": "4.1.2",
"@tsparticles/effect-particles": "4.1.2",
"@tsparticles/effect-shadow": "4.1.2",
"@tsparticles/effect-trail": "4.1.2",
"@tsparticles/engine": "4.1.2",
"@tsparticles/interaction-external-cannon": "4.1.2",
"@tsparticles/interaction-external-particle": "4.1.2",
"@tsparticles/interaction-external-pop": "4.1.2",
"@tsparticles/interaction-light": "4.1.2",
"@tsparticles/interaction-particles-repulse": "4.1.2",
"@tsparticles/path-branches": "4.1.2",
"@tsparticles/path-brownian": "4.1.2",
"@tsparticles/path-curl-noise": "4.1.2",
"@tsparticles/path-curves": "4.1.2",
"@tsparticles/path-fractal-noise": "4.1.2",
"@tsparticles/path-grid": "4.1.2",
"@tsparticles/path-levy": "4.1.2",
"@tsparticles/path-perlin-noise": "4.1.2",
"@tsparticles/path-polygon": "4.1.2",
"@tsparticles/path-random": "4.1.2",
"@tsparticles/path-simplex-noise": "4.1.2",
"@tsparticles/path-spiral": "4.1.2",
"@tsparticles/path-svg": "4.1.2",
"@tsparticles/path-zig-zag": "4.1.2",
"@tsparticles/plugin-background-mask": "4.1.2",
"@tsparticles/plugin-canvas-mask": "4.1.2",
"@tsparticles/plugin-easing-back": "4.1.2",
"@tsparticles/plugin-easing-bounce": "4.1.2",
"@tsparticles/plugin-easing-circ": "4.1.2",
"@tsparticles/plugin-easing-cubic": "4.1.2",
"@tsparticles/plugin-easing-elastic": "4.1.2",
"@tsparticles/plugin-easing-expo": "4.1.2",
"@tsparticles/plugin-easing-gaussian": "4.1.2",
"@tsparticles/plugin-easing-linear": "4.1.2",
"@tsparticles/plugin-easing-quart": "4.1.2",
"@tsparticles/plugin-easing-quint": "4.1.2",
"@tsparticles/plugin-easing-sigmoid": "4.1.2",
"@tsparticles/plugin-easing-sine": "4.1.2",
"@tsparticles/plugin-easing-smoothstep": "4.1.2",
"@tsparticles/plugin-emitters-shape-canvas": "4.1.2",
"@tsparticles/plugin-emitters-shape-path": "4.1.2",
"@tsparticles/plugin-emitters-shape-polygon": "4.1.2",
"@tsparticles/plugin-export-image": "4.1.2",
"@tsparticles/plugin-export-json": "4.1.2",
"@tsparticles/plugin-export-video": "4.1.2",
"@tsparticles/plugin-hsv-color": "4.1.2",
"@tsparticles/plugin-hwb-color": "4.1.2",
"@tsparticles/plugin-infection": "4.1.2",
"@tsparticles/plugin-lab-color": "4.1.2",
"@tsparticles/plugin-lch-color": "4.1.2",
"@tsparticles/plugin-manual-particles": "4.1.2",
"@tsparticles/plugin-motion": "4.1.2",
"@tsparticles/plugin-named-color": "4.1.2",
"@tsparticles/plugin-oklab-color": "4.1.2",
"@tsparticles/plugin-oklch-color": "4.1.2",
"@tsparticles/plugin-poisson-disc": "4.1.2",
"@tsparticles/plugin-polygon-mask": "4.1.2",
"@tsparticles/plugin-responsive": "4.1.2",
"@tsparticles/plugin-sounds": "4.1.2",
"@tsparticles/plugin-themes": "4.1.2",
"@tsparticles/plugin-trail": "4.1.2",
"@tsparticles/plugin-zoom": "4.1.2",
"@tsparticles/shape-arrow": "4.1.2",
"@tsparticles/shape-cards": "4.1.2",
"@tsparticles/shape-cog": "4.1.2",
"@tsparticles/shape-heart": "4.1.2",
"@tsparticles/shape-infinity": "4.1.2",
"@tsparticles/shape-matrix": "4.1.2",
"@tsparticles/shape-path": "4.1.2",
"@tsparticles/shape-ribbon": "4.1.2",
"@tsparticles/shape-rounded-polygon": "4.1.2",
"@tsparticles/shape-rounded-rect": "4.1.2",
"@tsparticles/shape-spiral": "4.1.2",
"@tsparticles/shape-squircle": "4.1.2",
"@tsparticles/updater-gradient": "4.1.2",
"@tsparticles/updater-orbit": "4.1.2",
"tsparticles": "4.1.2"
"@tsparticles/effect-bubble": "4.1.3",
"@tsparticles/effect-filter": "4.1.3",
"@tsparticles/effect-particles": "4.1.3",
"@tsparticles/effect-shadow": "4.1.3",
"@tsparticles/effect-trail": "4.1.3",
"@tsparticles/engine": "4.1.3",
"@tsparticles/interaction-external-cannon": "4.1.3",
"@tsparticles/interaction-external-particle": "4.1.3",
"@tsparticles/interaction-external-pop": "4.1.3",
"@tsparticles/interaction-light": "4.1.3",
"@tsparticles/interaction-particles-repulse": "4.1.3",
"@tsparticles/path-branches": "4.1.3",
"@tsparticles/path-brownian": "4.1.3",
"@tsparticles/path-curl-noise": "4.1.3",
"@tsparticles/path-curves": "4.1.3",
"@tsparticles/path-fractal-noise": "4.1.3",
"@tsparticles/path-grid": "4.1.3",
"@tsparticles/path-levy": "4.1.3",
"@tsparticles/path-perlin-noise": "4.1.3",
"@tsparticles/path-polygon": "4.1.3",
"@tsparticles/path-random": "4.1.3",
"@tsparticles/path-simplex-noise": "4.1.3",
"@tsparticles/path-spiral": "4.1.3",
"@tsparticles/path-svg": "4.1.3",
"@tsparticles/path-zig-zag": "4.1.3",
"@tsparticles/plugin-background-mask": "4.1.3",
"@tsparticles/plugin-canvas-mask": "4.1.3",
"@tsparticles/plugin-easing-back": "4.1.3",
"@tsparticles/plugin-easing-bounce": "4.1.3",
"@tsparticles/plugin-easing-circ": "4.1.3",
"@tsparticles/plugin-easing-cubic": "4.1.3",
"@tsparticles/plugin-easing-elastic": "4.1.3",
"@tsparticles/plugin-easing-expo": "4.1.3",
"@tsparticles/plugin-easing-gaussian": "4.1.3",
"@tsparticles/plugin-easing-linear": "4.1.3",
"@tsparticles/plugin-easing-quart": "4.1.3",
"@tsparticles/plugin-easing-quint": "4.1.3",
"@tsparticles/plugin-easing-sigmoid": "4.1.3",
"@tsparticles/plugin-easing-sine": "4.1.3",
"@tsparticles/plugin-easing-smoothstep": "4.1.3",
"@tsparticles/plugin-emitters-shape-canvas": "4.1.3",
"@tsparticles/plugin-emitters-shape-path": "4.1.3",
"@tsparticles/plugin-emitters-shape-polygon": "4.1.3",
"@tsparticles/plugin-export-image": "4.1.3",
"@tsparticles/plugin-export-json": "4.1.3",
"@tsparticles/plugin-export-video": "4.1.3",
"@tsparticles/plugin-hsv-color": "4.1.3",
"@tsparticles/plugin-hwb-color": "4.1.3",
"@tsparticles/plugin-infection": "4.1.3",
"@tsparticles/plugin-lab-color": "4.1.3",
"@tsparticles/plugin-lch-color": "4.1.3",
"@tsparticles/plugin-manual-particles": "4.1.3",
"@tsparticles/plugin-motion": "4.1.3",
"@tsparticles/plugin-named-color": "4.1.3",
"@tsparticles/plugin-oklab-color": "4.1.3",
"@tsparticles/plugin-oklch-color": "4.1.3",
"@tsparticles/plugin-poisson-disc": "4.1.3",
"@tsparticles/plugin-polygon-mask": "4.1.3",
"@tsparticles/plugin-responsive": "4.1.3",
"@tsparticles/plugin-sounds": "4.1.3",
"@tsparticles/plugin-themes": "4.1.3",
"@tsparticles/plugin-trail": "4.1.3",
"@tsparticles/plugin-zoom": "4.1.3",
"@tsparticles/shape-arrow": "4.1.3",
"@tsparticles/shape-cards": "4.1.3",
"@tsparticles/shape-cog": "4.1.3",
"@tsparticles/shape-heart": "4.1.3",
"@tsparticles/shape-infinity": "4.1.3",
"@tsparticles/shape-matrix": "4.1.3",
"@tsparticles/shape-path": "4.1.3",
"@tsparticles/shape-ribbon": "4.1.3",
"@tsparticles/shape-rounded-polygon": "4.1.3",
"@tsparticles/shape-rounded-rect": "4.1.3",
"@tsparticles/shape-spiral": "4.1.3",
"@tsparticles/shape-squircle": "4.1.3",
"@tsparticles/updater-gradient": "4.1.3",
"@tsparticles/updater-orbit": "4.1.3",
"tsparticles": "4.1.3"
},
"publishConfig": {
"access": "public"
Expand Down
2 changes: 1 addition & 1 deletion bundles/all/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tsparticles/all",
"version": "4.1.2",
"version": "4.1.3",
"description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
"homepage": "https://particles.js.org",
"scripts": {
Expand Down
4 changes: 4 additions & 0 deletions bundles/basic/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03)

**Note:** Version bump only for package @tsparticles/basic

## [4.1.2](https://github.com/tsparticles/tsparticles/compare/v4.1.1...v4.1.2) (2026-06-01)

### Bug Fixes
Expand Down
24 changes: 12 additions & 12 deletions bundles/basic/package.dist.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tsparticles/basic",
"version": "4.1.2",
"version": "4.1.3",
"description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
"homepage": "https://particles.js.org",
"repository": {
Expand Down Expand Up @@ -105,17 +105,17 @@
"./package.json": "./package.json"
},
"dependencies": {
"@tsparticles/engine": "4.1.2",
"@tsparticles/plugin-blend": "4.1.2",
"@tsparticles/plugin-hex-color": "4.1.2",
"@tsparticles/plugin-hsl-color": "4.1.2",
"@tsparticles/plugin-move": "4.1.2",
"@tsparticles/plugin-rgb-color": "4.1.2",
"@tsparticles/shape-circle": "4.1.2",
"@tsparticles/updater-opacity": "4.1.2",
"@tsparticles/updater-out-modes": "4.1.2",
"@tsparticles/updater-paint": "4.1.2",
"@tsparticles/updater-size": "4.1.2"
"@tsparticles/engine": "4.1.3",
"@tsparticles/plugin-blend": "4.1.3",
"@tsparticles/plugin-hex-color": "4.1.3",
"@tsparticles/plugin-hsl-color": "4.1.3",
"@tsparticles/plugin-move": "4.1.3",
"@tsparticles/plugin-rgb-color": "4.1.3",
"@tsparticles/shape-circle": "4.1.3",
"@tsparticles/updater-opacity": "4.1.3",
"@tsparticles/updater-out-modes": "4.1.3",
"@tsparticles/updater-paint": "4.1.3",
"@tsparticles/updater-size": "4.1.3"
},
"publishConfig": {
"access": "public"
Expand Down
2 changes: 1 addition & 1 deletion bundles/basic/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tsparticles/basic",
"version": "4.1.2",
"version": "4.1.3",
"description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
"homepage": "https://particles.js.org",
"scripts": {
Expand Down
7 changes: 7 additions & 0 deletions bundles/confetti/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [4.1.3](https://github.com/tsparticles/tsparticles/compare/v4.1.2...v4.1.3) (2026-06-03)

### Bug Fixes

- various fixes after deeper review ([37ecd22](https://github.com/tsparticles/tsparticles/commit/37ecd2203c2574cc30055cdc3ef5c0f86a57bcd9))
- various fixes after deeper review ([d1a1e59](https://github.com/tsparticles/tsparticles/commit/d1a1e59980d949e5f592631844d17f1a9ba5a145))

## [4.1.2](https://github.com/tsparticles/tsparticles/compare/v4.1.1...v4.1.2) (2026-06-01)

### Bug Fixes
Expand Down
34 changes: 17 additions & 17 deletions bundles/confetti/package.dist.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tsparticles/confetti",
"version": "4.1.2",
"version": "4.1.3",
"description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
"homepage": "https://particles.js.org",
"repository": {
Expand Down Expand Up @@ -105,22 +105,22 @@
"./package.json": "./package.json"
},
"dependencies": {
"@tsparticles/basic": "4.1.2",
"@tsparticles/engine": "4.1.2",
"@tsparticles/plugin-emitters": "4.1.2",
"@tsparticles/plugin-motion": "4.1.2",
"@tsparticles/shape-cards": "4.1.2",
"@tsparticles/shape-emoji": "4.1.2",
"@tsparticles/shape-heart": "4.1.2",
"@tsparticles/shape-image": "4.1.2",
"@tsparticles/shape-polygon": "4.1.2",
"@tsparticles/shape-square": "4.1.2",
"@tsparticles/shape-star": "4.1.2",
"@tsparticles/updater-life": "4.1.2",
"@tsparticles/updater-roll": "4.1.2",
"@tsparticles/updater-rotate": "4.1.2",
"@tsparticles/updater-tilt": "4.1.2",
"@tsparticles/updater-wobble": "4.1.2"
"@tsparticles/basic": "4.1.3",
"@tsparticles/engine": "4.1.3",
"@tsparticles/plugin-emitters": "4.1.3",
"@tsparticles/plugin-motion": "4.1.3",
"@tsparticles/shape-cards": "4.1.3",
"@tsparticles/shape-emoji": "4.1.3",
"@tsparticles/shape-heart": "4.1.3",
"@tsparticles/shape-image": "4.1.3",
"@tsparticles/shape-polygon": "4.1.3",
"@tsparticles/shape-square": "4.1.3",
"@tsparticles/shape-star": "4.1.3",
"@tsparticles/updater-life": "4.1.3",
"@tsparticles/updater-roll": "4.1.3",
"@tsparticles/updater-rotate": "4.1.3",
"@tsparticles/updater-tilt": "4.1.3",
"@tsparticles/updater-wobble": "4.1.3"
},
"publishConfig": {
"access": "public"
Expand Down
2 changes: 1 addition & 1 deletion bundles/confetti/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tsparticles/confetti",
"version": "4.1.2",
"version": "4.1.3",
"description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
"homepage": "https://particles.js.org",
"scripts": {
Expand Down
Loading
Loading